[0059] 以下结合附图对本发明作进一步说明。
[0060] 本发明方法具体是:
[0061] 步骤1:获取基础数据,其中包括运输车辆信息、运输道路信息、人口分布和危化品信息。
[0062] 步骤2:构建危化品车辆运输路径规划模型。
[0063] 本发明将危化品运输路径规划模型定义在一个完整的有向图G=(N,L)中。N={0,1,2,…,n}是有向图中的节点集,节点0是仓储节点,C={1,2,…,n}为客户节点集,qi,i∈C是节点i对危化品的需求量;L为有向图中的弧集,arcij∈L是节点i,j之间的运输路径,dij为arcij的弧长;K={k1,k2,...,k|K|)是运输车辆集,每辆车k∈K有固定的负载能力限制Qk。
模型约束如下:
[0064] 运输车辆必须从仓储节点出发最终回到仓储节点;
[0065] 每一个顾客的需求都要被满足;
[0066] 每一个顾客只能被服务一次;
[0067] 车辆不能超载;
[0068] 使用的运输车辆数量不能超过|K|。
[0069] 2‑1、计算运输风险
[0070] 根据“概率‑后果”框架,运输风险被定义为事故概率与事故后果的乘积,任意两节点间的运输风险如下:
[0071] Rij=Pij×Csij,i,j∈N
[0072] 式中,Rij是节点i,j∈N间的运输风险,Pij是弧arcij∈L上的事故概率;Csij是弧arcij∈L上的事故后果。
[0073] 弧arcij∈L上的事故概率Pij计算方法如下:
[0074] Pij=ARij×Prij×dij,i,j∈N
[0075] 式中,ARij是弧arcij∈L上的事故率;Prij是弧arcij∈L上的危化品泄漏事故概率。
[0076] 弧arcij∈L上的事故后果严重程度计算方法如下:
[0077]
[0078] 式中,pdij是事发地点周边的人口密度; 是事故影响半径,通常设为1公里。
[0079] 2‑2、引入二型模糊变量
[0080] 由于人口的流动性,本发明将人口密度设为一个梯形二型模糊变量 如下:
[0081]
[0082] 式中, 与 为两个梯形一型模糊变量, 的上、下层隶属度函数分别为: 与
为上层隶属度函数的参数, 为下层隶属度函数的参数, 和 分别为 和
的高。
[0083] 因此,弧arcij∈L上的运输风险计算如下:
[0084]
[0085] 2‑3、危化品车辆运输路径规划模型
[0086] 模型决策变量如下:
[0087]
[0088] 模型目标函数如下:
[0089]
[0090] 模型约束如下:
[0091] 运输车辆必须从仓储节点出发最终回到仓储节点
[0092]
[0093] 每一个顾客的需求都要被满足,且只能被服务一次
[0094]
[0095] 车辆不能超载;
[0096]
[0097] 使用的运输车辆数量不能超过|K|
[0098] ∑k∈K∑j∈Cx0jk≤|K|
[0099] 2‑4、机会约束规划模型
[0100] 根据区间二型模糊变量 的边界隶属度函数,本工作采用了置信度方法将上述模型转换为2个机会约束规划模型。
[0101] 对于上层隶属度函数, 机会约束规划模型如下:
[0102]
[0103] 对于下层隶属度函数, 机会约束规划模型如下:
[0104]U L
[0105] 式中,α 和α 是预定义的置信度水平;现记,等价约束如下:
[0106]
[0107] 式中, 和 定义如下:
[0108]
[0109]
[0110] 上述机会约束模型的等价确定性模型如下:
[0111]
[0112]
[0113] 最终,可将原危化品车辆运输路径规划模型转化为:
[0114]
[0115] 步骤3:模型求解
[0116] 根据模型特性,本发明提出了一个有效的模拟退火算法求解危化品车辆运输路径规划模型的等价确定型。算法流程图如图1。所提出的模拟退火算法由一个初始解开始,采用邻域算子在初始解的邻域中搜寻新解。Metropolis准则用来判断新解是否可以替换当前
解。若当前解优于最优解,则采用当前解替换最优解。当达到最大内部迭代数时,当前温度将按照预定义的降温率下降。算法之后会重复上述过程直至满足停止迭代标准。
[0117] ①初始解构造
[0118] 初始解由一个随机序列生成。用一个具体的例子说明了初始解的构造。如图2所示,三辆车的运输车队需要服务15个客户,即,K={k1,k2,k3},N={0,1,2…,15}以及C={1,
2,…,15}。一组随机序列为:[12,1,5,11,16,2,10,4,9,3,8,17,6,13,14,7,15]。现以随机序列中大于客户数量的数字为断点构成初始解。
[0119] ②目标函数
[0120] 为了加快算法的收敛速度,本发明在目标函数中引入惩罚因子如下:
[0121]
[0122]
[0123] 式中,δk表示车辆k超载程度;pf为所有车辆超载程度。
[0124] 带惩罚因子的目标函数如下:
[0125] Z*=Zr(1+pc*pf)
[0126] 式中,pc为惩罚系数,pc越大,算法对不可行解的容忍度越小。
[0127] ③邻域算子
[0128] 根据模型特性,本发明采用了三种邻域算子产生新解。
[0129] Swap算子:随机交换解对应的序列内的两个数字的位置,如图3所示,解χ={{0,12,1,5,11,0},{0,2,10,4,9,3,8,0},{0,6,13,14,7,15,0}}中的‘4’和‘7’的位置被Swap算子交换,则新解χnew={{0,12,1,5,11,0},{0,2,10,0},{0,9,3,8,4,6,13,14,7,15,0}}。
[0130] Reversion算子:逆反解对应序列内的随机区域,如图4所示,解χ={{0,12,1,5,11,0},{0,2,10,4,9,3,8,0},{0,6,13,14,7,15,0}}对应序列内的[4,9,3,8,17]区域被Reversion算子逆反,则新解χnew={{0,12,1,5,11,0},{0,2,10,0},{0,8,3,9,4,6,13,14,
7,15,0}}。
[0131] Insertion算子:随机将解对应序列中的一个数字插入到另一个位置,如图5,解χ={{0,12,1,5,11,0},{0,2,10,4,9,3,8,0},{0,6,13,14,7,15,0}}对应序列内的‘4’被重新插入到‘17’的后面,则χnew={{0,12,1,5,11,0},{0,2,10,9,3,8,0},{0,4,6,13,14,7,15,0}}。
[0132] ④Metropolis准则
[0133] Metropolis准则用于判定邻域算子作用到当前解χ所产生的新解χnew是否可替换* *
当前解,记Δ为当前解与新解之间的目标函数增量,Δ=Z (χnew)‑Z (χ)。对于最小化问题,Δ<0表明新解χnew优于当前解χ,则采用新解替换当前解。若Δ>0,当前解被替换掉的概率为exp(‑(Δ/T)),T为算法当前温度。