基于鱼群蚁群算法的时间最短应急物流路径的优化方法技术领域
本发明涉及一种基于鱼群蚁群算法的时间最短应急物流路径的优化方法。
背景技术
近些年来,重大灾害以及公共卫生事件频发,造成了重大的人员伤亡以及巨大的经
济损失,应急物流在这种情况下孕育而生。应急物流是一种狭义的概念,主要指国家或
地区在应对各种天灾人祸、重大险情或突发事故中所进行的紧急物流活动。国内对于应
急物流研究起步较晚,而且主要是对其进行宏观研究,而对于应急物流的路径优化等微
观问题的研究少之又少。时间最短应急物流路径优化问题,是以满足应急物流时间要求
为提前,以最大程度的节省救灾物资配送时间为目标,合理的安排车辆的运行路线,用
以减少灾害带来的损失。
蚁群算法是一种仿生学算法,由意大利学者M.Dorigo等提出,具有并行性、正反馈、
鲁棒性等特点,适用于求解复杂的组合优化问题,已经广泛应用于求解旅行商问题、分
配问题、job-shop调度问题等,取得了较好的效果。蚁群算法基本描述如下:
设有n座城市,任意两座城市i、j之间的距离为dij(i,j=1,2,…,n),bi(t)表示t时
刻位于城t=0时各条路径上的信息量强度相等,即τij(0)=const(const为常数)。
随着时间的推移,新的信息素加进来,旧的信息素挥发,ρ表示全局信息素的挥发
因子,一般取值为市i的蚂蚁数量,为蚂蚁的总数,τij(t)表示t时刻支路ij上
的信息素量,,决定信息素挥发的快慢。当所有蚂蚁完成一次周游后,各条路径上的信
息素为
τij(t+1)=(1-ρ)τij(t)+Δτij(t) (1)
Δτ
ij
(
t
)
=
Σ
k
=
1
m
Δτ
ij
k
(
t
)
-
-
-
(
2
)
]]>
式中,Δτij(t)表示本次周游中路径ij上的信息素增量,设初始时刻的Δτij(0)=0;表
示第k只蚂蚁在周游过程中释放在路径ij上的信息素,其值视蚂蚁表现的优劣程度而定。
路径越短释放的信息素就越多。
式中,Q为强度系数,Lk表示本次周游第k只蚂蚁所形成的回路长度。蚂蚁k在周游时由
城市i向城市j的转移概率为
其中,allowedk=(1,2,..n)-tabuk表示蚂蚁k当前能选择的城市集合;tabuk(k=1,2,…,m)
表示蚂蚁k的禁忌表,记录蚂蚁k已经经过的城市,用来说明人工蚂蚁的记忆性;ηij(t)为
启发函数,表示由城市i转移到城市j的期望程度,一般取ηij(t)=1/dij;dij表示受灾点i
到受灾点j的距离;α为残留信息的重要程度,β为启发信息的重要程度,dij为城市i到
城市j的距离。
蚁群算法的基本运行过程:m只蚂蚁同时从某个城市出发,根据式(4)选择下一个
要访问的城市,蚂蚁趋向于访问具有较高信息素强度值的路径。已经去过的城市放入
tabuk中,当所有蚂蚁完成了一次巡回后,由式(1)到式(3)更新每条路径的信息素,
反复上述过程,直到终止条件成立。
用基本蚁群算法寻找时间最短应急物流路径优化方案主要存在下述不足之处:
1、基本蚁群算法需要花费大量时间去寻找到时间最短应急物流路径优化方案:蚂蚁
群落中每一个单独的蚂蚁运动都不是有序的,蚂蚁虽然通过遗留下来的信息素找到那个
寻找食物的最佳路线前进,可是如果群体数量很多时,那么就不易在少量的时间内从大
量没有次序的寻找食物的路线里挑出一条又好又快的路线。
2、基本蚁群在解决时间最短应急物流路径优化问题时,由于需要较长时间才能完成
算法的收敛进程,因此基本蚁群算法的收敛速度慢。
3、基本蚁群算法寻找时间最短应急物流路径优化方案时,容易在寻找到局部最优路
径优化方案时产生停滞现象。在基本蚁群算法中由于设定的初始条件是随机的,并不能
完全反映出最优路径的方向;算法执行过程中由于正反馈的存在,造成该条路径上的信
息素浓度随着算法的继续执行大大高于其他路径,导致所有的蚂蚁都趋向于这条局部最
优的路径,最终出现停滞现象。
发明内容
本发明是为了克服现有技术中的不足之处,提供一种基于鱼群蚁群算法的时间最短
应急物流路径的优化方法,将拥挤度因子引入到基本蚁群算法中,用于解决时间最短应
急物流路径优化问题,增强寻找到应急物流路径优化最佳方案的能力,减少基本蚁群算
法陷入局部最优的可能性。
本发明通过下述技术方案实现:
一种基于鱼群蚁群算法的时间最短应急物流路径的优化方法,其特征在于,包括下
述步骤:
(一)输入蚂蚁数量m、最大迭代次数NCmax以及车辆最大载重量Q1,选择应急情
况,输入残留信息素的重要程度α、启发信息素的重要程度β、蒸发系数ρ以及强度系
数Q,其中,蒸发系数ρ的取值为:0≤ρ<1;应急情况分为不带路况情形和带路况情
形两种;
(二)寻找时间最短应急物流路径:
(1)建立时间最短应急物流路径优化问题的模型:
min
t
=
Σ
i
=
0
n
Σ
j
=
0
n
Σ
k
1
=
1
l
t
ij
w
ijk
1
+
Σ
i
=
0
n
Σ
k
1
=
1
l
τ
i
π
ik
1
-
-
-
(
1
)
]]>
t
ij
=
d
ij
v
×
μ
ij
-
-
-
(
2
)
]]>
t
j
=
t
i
+
t
ij
w
ijk
1
+
τ
i
π
ik
1
-
-
-
(
7
)
]]>
ti≤Ti (8)
d
ij
=
(
x
i
-
x
j
)
2
+
(
y
i
-
y
j
)
2
-
-
-
(
12
)
]]>
式(1)为模型的目标函数,包括配送时间和卸货时间两
个部分;其中,i表示当前蚂蚁所在的受灾点,j表示当前蚂蚁下一步的目标受灾点,n为
受灾点数,l为车辆数,tij为从当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j的
行驶时间,τi为当前蚂蚁所在的受灾点i的卸货时间;规定了是否车辆k1从当前蚂
蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j;规定了车辆k1到达当前蚂蚁所在
受灾点i是否卸货;
式(2)定义了当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j的行驶时间;
dij为当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j之间的距离,v是在无道路
障碍影响下的平均速度,μij是路况系数;
式(3)保证了受灾点的需求量的总和不超过车辆的最大载重量;其中,qi为受灾点
的需求量,Q1为车辆最大载重量;规定了当前蚂蚁所在受灾点i的配送任务是否由车
辆k1完成;
式(4)规定了每个受灾点只能由一辆车来配送,式(5)和式(6)是变量和
变量之间的关系;规定了当前蚂蚁下一步的目标受灾点j的配送任务是否由车
辆k1完成;是为1,否则为0;
式(7)为车辆从应急配送中心到达当前蚂蚁下一步的目标受灾点j所用的时间;ti为
从应急配送中心到达当前蚂蚁所在受灾点i的时间;
式(8)是当前蚂蚁所在受灾点i的时间要求,Ti为配送车辆到达当前蚂蚁所在受灾
点i的最晚时刻;
式(12)定义了当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j之间的距离,
(xi,yi)为当前蚂蚁所在受灾点i的坐标,(xj,yj)为当前蚂蚁下一步的目标受灾点j的坐
标,(x0,y0)为应急配送中心坐标;
(2)模型的求解过程包括下述步骤:
①参数初始化:
令NC=0,τij(0)=const,bus_load=0,
τij(t)表示t时刻受灾点i到受灾点j之间支路ij上的信息素量,τij(0)表示t=0时刻受
灾点i到受灾点j之间支路ij上的信息素量,当t=0时各条路径上的信息量强度相等,
const为常数;bus_load为车辆负载;
NC为迭代次数;
②将m只蚂蚁放在应急配送中心,其中,为蚂蚁的总数,bi(t)表示t时
刻位于受灾点i的蚂蚁数量;
③根据下式计算蚂蚁k的转移概率;
其中,allowedk=(1,2,..n)-tabuk表示蚂蚁k当前未选择的受灾点的集合;
tabuk(k=1,2,…,m)表示蚂蚁k的禁忌表,记录蚂蚁k已经经过的受灾点;
ηij(t)为启发函数,表示由受灾点i转移到受灾点j的期望程度,取ηij(t)=1/dij,dij表
示受灾点i到受灾点j的距离;
τis(t)为t时刻受灾点i到受灾点s之间路径的信息素,受灾点s为蚂蚁k当前未选择的
受灾点集合中的一个受灾点;
ηis(t)为t时刻受灾点i到受灾点s之间路径的期望程度;
④根据转移概率选择并移动到下一个受灾点j,同时将城市j加入到tabuk;
⑤计算拥挤度因子:
h
ij
(
t
)
=
1
-
τ
ij
(
t
)
/
Σ
i
≠
j
τ
ij
-
-
-
(
14
)
]]>
δ(t)=γe-bt (15)
式中,hij(t)表示t时刻受灾点i到受灾点j之间路径上的拥挤度因子,δ(t)为拥挤度门限,
γ为极值接近水平,b为门限变化系数;
⑥若蚂蚁通过转移概率找到一条路径,且hij(t)>δ(t),则选择该条路径,否则,
返回步骤③,重新选择下一个受灾点;
⑦检查车辆负载bus_load是否达到最大载重量Q1,若达到,返回应急配送中心;
⑧检查tabuk是否满,若为否,回到步骤③,若为是,继续步骤⑨;
⑨计算目标函数,记录当前最好解,按下式进行信息素更新;
τij(t+1)=(1-ρ)τij(t)+Δτij(t) (16)
Δτ
ij
(
t
)
=
Σ
k
=
1
m
Δτ
ij
k
(
t
)
-
-
-
(
17
)
]]>
式中,ρ为蒸发系数,取值为0≤ρ<1,决定信息素挥发的快慢,Δτij(t)表示本次周
游中路径ij上的信息素增量,设初始时刻的Δτij(0)=0,表示第k只蚂蚁在周游过
程中释放在路径ij上的信息素,
式中,Lk表示本次周游第k只蚂蚁所形成的回路长度;
⑩若NC<NCmax,则NC=NC+1,清空tabuk,回到步骤②,否则,结束;
(三)显示配送路线结果及算法在解决时间最短应急物流路径优化问题的性能比较结
果。
本发明具有下述技术效果:
1、本发明的最短应急物流路径的优化方法将鱼群中的拥挤度因子引入到基本蚁群
算法中,用于解决时间最短应急物流路径优化问题,在算法解决问题的初期,大多数蚂
蚁可以随机的选择路径,即使找了某条信息素浓度比较高的路径,下一只蚂蚁可能不会
选择此条路径,而选择其他路径,因为信息素浓度比较高的路径,其蚂蚁聚集的数量也
必然较多,因而,该算法避免了早熟现象,避免基本蚁群算法解决该问题出现的停滞现
象,能够增强寻找到应急物流路径优化最佳方案的能力,减少基本蚁群算法陷入局部最
优的可能性。应用鱼群蚁群算法,能够寻找到更短时间到达受灾点的路径优化方案,相
比较基本蚁群算法而言,其寻找应急物流路径优化方案更加高效。
2、本发明的最短应急物流路径的优化方法设计考虑路况选择的应急物流路径问题,
对于用户来说,操作简单方便,给应急路径决策一个良好的参考值。
附图说明
图1为本发明基于鱼群蚁群算法的时间最短应急物流路径的优化方法的路线图;
图2为本发明基于鱼群蚁群算法的时间最短应急物流路径的优化方法与基本蚁群算
法优化方法的对比图;
图3为本发明基于鱼群蚁群算法的时间最短应急物流路径的优化方法的流程图。
具体实施方式
以下结合附图和具体实施例对本发明进行详细说明。
本发明的鱼群蚁群算法解决时间最短应急物流路径优化问题,主要应用于应急救援
中,以时间最短作为解决急物流路径优化问题的最终目标,区别于以往以降低运输成本
为目的的路径优化问题。
该优化系统包括基本参数设置模块、应急情况选择模块、蚁群算法基本参数模块、执
行单元模块、结果显示模块。
基本参数设置模块用于输入时间最短应急物流路径优化问题所需的基本参数数据,能
够实现蚂蚁数量、最大迭代次数以及车辆负载的数据录入功能。
应急情况选择模块用于选择最短时间应急物流的配送路径的路况情况,能够实现带路
况与不带路况两种应急情况的选择。
蚁群算法基本参数模块,用于输入鱼群蚁群算法所需要的基本参数数据,能够实现残
留信息素的重要程度α、启发信息素的重要程度β、蒸发系数ρ以及强度系数Q的数据
录入功能。
执行单元模块,用于提出鱼群蚁群算法解决时间最短应急物流路径优化问题的解决方
案,主要集中时间最短应急物流路径优化问题的模型以及鱼群蚁群算法求解过程。
结果显示模块,用于显示最终的配送路径,并且能够通过与传统蚁群算法比较,分
析改进蚁群算法的性能。
时间最短应急物流路径优化过程中,首先要建立时间最短应急物流路径优化模型,
本发明所建模型仅考虑了位置已知的单一应急配送中心,配送中心的配送车辆型号单一,
载重量已知,全部以应急配送中心作为起点。配送的物资可以混装,并且每个受灾点所
需要的物资不超过车辆的最大载重量。受灾点的位置和需求量已知,每个受灾点的需求
由且仅由一辆车一次配送满足,车辆对每个受灾点服务,途中只有卸货而无装货的情况。
车辆的平均行驶速度已知且确定,行驶路程与车辆行驶时间成正比。由于受到灾害的影
响,应急运输车辆必须在受灾点要求的时间之前到达,否则,道路将由于客观原因无法
通行而被放弃。应急配送中心的配送车辆由于是从各地临时调配来的,因此车辆在完成
配送任务后,车辆不必再返回到应急配送中心。
建立时间最短应急物流路径优化问题的模型:
min
t
=
Σ
i
=
0
n
Σ
j
=
0
n
Σ
k
1
=
1
l
t
ij
w
ijk
1
+
Σ
i
=
0
n
Σ
k
1
=
1
l
τ
i
π
ik
1
-
-
-
(
1
)
]]>
式(1)为目标函数,以时间最短作为建立模型的目标。其时间包括两个部分,一部
分为配送车辆的配送时间另一部分为配送车辆的卸货时间
其中,i表示当前蚂蚁所在的受灾点,j表示当前蚂蚁下一步的目标受灾点,
n为受灾点数,l为车辆数,tij为从当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾
点j的行驶时间,定义如式(9)所示,车辆k1从当前蚂蚁所在受灾点i到当前蚂蚁
下一步的目标受灾点j时,否则为0。τi为当前蚂蚁所在的受灾点i的卸货时
间,定义如式(11)所示,规定了车辆k1到达当前蚂蚁所在受灾点i是否卸货,
即当前蚂蚁所在受灾点i的卸货时间是否算入总时间内。车辆k1到达当前蚂蚁所在受灾点
i卸货时,否则0。
t
ij
=
d
ij
v
×
μ
ij
-
-
-
(
2
)
]]>
式(2)定义了当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j的行驶时间,
为当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j之间的距离dij与在无道路障
碍影响下的平均速度v的比值乘以路况系数μij。由于灾后,可能会造成部分道路毁坏,
从而增加了其他完好路段的车流量,导致交通拥堵。因此,车流量的变化采用路况系数μij
表示,路况系数越大,路况就越差,车辆运行速度就越慢,所需时间越长。对于不带路
况的情形,路况系数μij=1。dij定义如式(12)所示。
式(3)保证了受灾点的需求量的总和不超过车辆的最大载重量。其中,qi为受灾点
的需求量,定义如式(10)所示,规定了当前蚂蚁所在受灾点i的配送任务是否
由车辆k1完成。当前蚂蚁所在受灾点i的配送任务由车辆k1完成时,否则为0。
Q1为车辆最大载重量。
式(4)规定了每个受灾点只能由一辆车来配送,式(5)和式(6)是变量和变
量之间的关系。规定了当前蚂蚁下一步的目标受灾点j的配送任务是否由车辆
k1完成,由车辆k1完成,为1,否则为0。
t
j
=
t
i
+
t
ij
w
ijk
1
+
τ
i
π
ik
1
-
-
-
(
7
)
]]>
式(7)为车辆从应急配送中心到达当前蚂蚁下一步的目标受灾点j所用的时间。从
应急配送中心到达当前蚂蚁下一步的目标受灾点j所用的时间为三个部分时间的总和。
第一部分为从应急配送中心到达当前蚂蚁所在受灾点i的时间ti,第二部分为当前蚂蚁所
在受灾点i到当前蚂蚁下一步的目标受灾点j所需行驶时间第三部分为车辆在当
前蚂蚁所在受灾点i的卸货时间
ti≤Ti (8)
式(8)是当前蚂蚁所在受灾点i的时间要求。Ti为配送车辆到达当前蚂蚁所在受灾
点i最晚时刻。由于受到灾害的影响,配送车辆必须在受灾点规定的时刻之前到达,否则,
道路将由于客观原因无法通行而被放弃。因此,应急配送中心到达当前蚂蚁所在受灾点i
的时间不能滞后于Ti。
式(9),式(10),式(11)分别为的定义式。规定了是否
车辆k1从当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j。规定了当前蚂蚁
所在受灾点i的配送任务是否由车辆k1完成。规定了车辆k1到达当前蚂蚁所在受灾点
i是否卸货,即当前蚂蚁所在受灾点i的卸货时间是否算入总时间内。
d
ij
=
(
x
i
-
x
j
)
2
+
(
y
i
-
y
j
)
2
-
-
-
(
12
)
]]>
式(12)定义了当前蚂蚁所在受灾点i到当前蚂蚁下一步的目标受灾点j之间的距离。
(xi,yi)为当前蚂蚁所在受灾点i的坐标,(xj,yj)为当前蚂蚁下一步的目标受灾点j的坐
标,(x0,y0)为应急配送中心坐标。
以下以20个受灾点的最短应急物流路径的优化方法为例对本发明进行详细说明。
应急配送中心坐标(x0,y0)为(3.2,14.1),配送车辆向20个受灾点进行应急配送,
行驶的平均速度为v=15km/h,各个受灾点的坐标(xi,yi)、受灾点的需求量qi(单位是吨)、
配送车辆到达当前蚂蚁所在受灾点i的最晚时刻Ti和当前蚂蚁所在的受灾点i的卸货时间
τi如表1所示。各个受灾点之间以及受灾点与应急配送中心之间的距离利用距离公式(12)
计算。各个受灾点之间的路况情况系数μij如表2所示。输入基本蚁群算法的蚂蚁数量
m=50,输入车辆最大载重量Q1=8,输入最大迭代次数NCmax=200,输入路径ij上残
留信息的重要程度α=1,输入启发信息的重要程度β=3,输入蒸发系数ρ=0.3,输入
强度系数Q=100,本实施例选择不带路况情形,μij=1。
表1 受灾点坐标、时间窗、卸货时间及所需的物资重量
表2 路况系数
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
0
-
1.2
1.1
1.3
1.5
1.6
1.7
1.8
1.9
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.3
1.4
1
1.2
-
1.3
1.4
1.5
1.7
1.9
1.6
1.1
1.1
1.2
1.3
1.0
1.6
1.5
1.4
1.3
1.2
1.0
1.1
1.2
2
1.1
1.3
-
1.5
1.4
1.6
1.7
1.8
1.3
1.2
1.1
1.0
1.8
1.75
1.69
1.74
1.62
1.1
1.2
1.4
1.5
3
1.3
1.4
1.5
-
1.1
1.2
1.3
1.6
1.5
1.3
1.1
1.2
1.4
1.6
1.7
1.81
1.8
1.7
1.9
1.2
1.3
4
1.5
1.5
1.4
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.1
1.7
1.3
1.5
1.6
1.9
1.8
2.1
2.0
1.9
5
1.6
1.7
1.6
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
1.9
1.8
1.7
1.6
1.7
6
1.7
1.9
1.7
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
1.9
1.8
1.7
1.8
7
1.8
1.6
1.8
1.6
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
1.9
1.8
1.9
8
1.9
1.1
1.3
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
1.9
1.8
9
1.0
1.1
1.2
1.3
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0
1.9
10
1.1
1.2
1.1
1.1
1.6
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.8
11
1.2
1.3
1.0
1.2
1.1
1.6
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.7
12
1.3
1.0
1.8
1.4
1.7
1.7
1.6
1.5
1.4
1.3
1.3
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.6
13
1.4
1.6
1.75
1.6
1.3
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.6
1.5
14
1.5
1.5
1.69
1.7
1.5
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.5
1.4
15
1.6
1.4
1.74
1.81
1.6
2.0
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.3
1.4
1.3
16
1.7
1.3
1.62
1.8
1.9
1.9
2.0
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.3
1.2
17
1.8
1.2
1.1
1.7
1.8
1.8
1.9
2.0
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
1.1
18
1.9
1.0
1.2
1.9
2.1
1.7
1.8
1.9
2.0
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
-
1.1
1.2
19
1.3
1.1
1.4
1.2
2.0
1.6
1.7
1.8
1.9
2.0
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
-
1.3
20
1.4
1.2
1.5
1.3
1.9
1.7
1.8
1.9
1.8
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1.2
1.3
-
如图1所示,为本发明基于鱼群蚁群算法的时间最短应急物流路径的优化方法的不
带路况情形的路线图。图中,实心的圆心是应急配送中心,空心圆是各个受灾点。
图3为本发明基于鱼群蚁群算法的时间最短应急物流路径的优化方法的流程图,包
括下述步骤:
(一)、输入蚂蚁数量m、最大迭代次数NCmax以及车辆最大载重量Q1,选择应急情
况,输入残留信息素的重要程度α、启发信息素的重要程度β、蒸发系数ρ以及强度系
数Q,其中,蒸发系数ρ,取值为0≤ρ<1。应急情况分为不带路况情形和带路况情形
两种。本实施例选择不带路况情形,μij=1。
(二)给出鱼群蚁群算法解决时间最短应急物流路径优化问题的解决方案,根据所
建立的时间最短应急物流路径优化问题的模型进行求解:
①参数初始化:
令NC=0,τij(0)=const,bus_load=0。
τij(t)表示t时刻受灾点i到受灾点j之间支路ij上的信息素量,τij(0)表示t=0时刻受
灾点i到受灾点j之间支路ij上的信息素量。当t=0时各条路径上的信息量强度相等,
const为常数;bus_load为车辆负载。
NC为迭代次数;
②将m只蚂蚁放在应急配送中心,其中,为蚂蚁的总数,bi(t)表示t时
刻位于受灾点i的蚂蚁数量;
③根据下式计算蚂蚁k的转移概率;
其中,allowedk=(1,2,..n)-tabuk表示蚂蚁k当前未选择的受灾点的集合;
tabuk(k=1,2,…,m)表示蚂蚁k的禁忌表,记录蚂蚁k已经经过的受灾点;
ηij(t)为启发函数,表示由受灾点i转移到受灾点j的期望程度,取ηij(t)=1/dij,dij表
示受灾点i到受灾点j的距离;
α为残留信息素的重要程度;
β为启发信息的重要程度;
τis(t)为t时刻受灾点i到受灾点s之间路径的信息素,受灾点s为蚂蚁k当前未选择的
受灾点集合中的一个受灾点;
ηis(t)为t时刻受灾点i到受灾点s之间路径的期望程度;
由于受灾点s为蚂蚁k当前未选择的受灾点集合中的一个受灾点,因此对于受灾点s
选择是随机的,只要其在allowedk=(1,2,..n)-tabuk当中即可,因此,每次计算的的
值也不相同,也是随机的;
④根据转移概率选择并移动到下一个受灾点j,同时将城市j加入到tabuk;
⑤计算拥挤度因子hij;
鱼群蚁群算法中的拥挤度因子是用以控制蚂蚁聚集数量的多少,在较优解的周围期
望有较多的蚂蚁聚集,而在次优解的周围则期望有较少蚂蚁聚集或没有蚂蚁聚集。把拥
挤度因子引入到基本蚁群算法中,该算法在初期可以有效的抑制蚁群过早的聚集在具有
高信息素的路径上,从而增强了全局寻优的能力,减少早熟现象出现的机会。但该算法
在后期则会对收敛速度造成一定的影响。因此,按照如下方法构造拥挤度因子hij(t)。
h
ij
(
t
)
=
1
-
τ
ij
(
t
)
/
Σ
i
≠
j
τ
ij
-
-
-
(
14
)
]]>
δ(t)=γe-bt (15)
式中,δ(t)为拥挤度门限,γ为极值接近水平,b为门限变化系数;
在优化的初期,拥挤度门限值接近1,大多数蚂蚁可以随机的选择路径,即使找到了
某条信息素浓度比较高的路径,下一只蚂蚁可能不会选择此条路径,而选择其他路径,
因为信息素浓度比较高的路径,其蚂蚁聚集的数量也必然较多,因而,该算法避免了早
熟现象,避免陷入局部最优。在算法的后期,随着拥挤度门限的减小,信息素浓度在路
径选择上的作用越来越明显,最终,路径的选择只与信息素浓度有关,而与拥挤度因子
没有了任何关系。这样,拥挤度因子的引入也不会影响算法的收敛速度。
⑥若蚂蚁通过转移概率找到一条路径,且hij(t)>δ(t),表示该条路径不拥挤,可
以选择该条路径,否则,返回步骤③,按照转移概率重新选择路径;
⑦检查车辆负载bus_load是否达到最大载重量Q1,若达到,返回应急配送中心;
⑧检查tabuk是否满,若为否,回到步骤③,若为是,继续步骤⑨;
⑨计算目标函数,记录当前最好解,按下式进行信息素更新;
τij(t+1)=(1-ρ)τij(t)+Δτij(t) (16)
Δτ
ij
(
t
)
=
Σ
k
=
1
m
Δτ
ij
k
(
t
)
-
-
-
(
17
)
]]>
式中,ρ为蒸发系数,取值为0≤ρ<1,决定信息素挥发的快慢,Δτij(t)表示本次周
游中路径ij上的信息素增量,设初始时刻的Δτij(0)=0,表示第k只蚂蚁在周游过
程中释放在路径ij上的信息素,
式中,Q为强度系数,Lk表示本次周游第k只蚂蚁所形成的回路长度;
⑩NCmax为最大迭代次数,若NC<NCmax,则NC=NC+1,清空蚂蚁k的禁忌表
tabuk,回到步骤②,否则,结束整个优化搜索过程。
(三)显示配送路线结果及算法在解决时间最短应急物流路径优化问题的性能比
较结果。
通过上述过程得到图1所示的结果,从图中可以明显看出不带路况情况下得到的三
条配送路线分别为:
(1)应急配送中心-受灾点9-受灾点18-受灾点10-受灾点11-受灾点3-受灾
点2-受灾点8;
(2)应急配送中心-受灾点12-受灾点7-受灾点20-受灾点1-受灾点14;
(3)应急配送中心-受灾点6-受灾点15-受灾点13-受灾点5-受灾点4-受灾
点19-受灾点17-受灾点16;
本发明基于鱼群蚁群算法的时间最短应急物流路径的优化方法与基本蚁群算法优
化方法的对比图如图2所示,图中,a线为利用基本蚁群优化方法完成配送所需时间,b
线为利用鱼群蚁群优化方法完成配送所需时间。从图中明显看出,鱼群蚁群优化方法完
成配送所需时间低于基本蚁群优化方法完成配送所需时间,即鱼群蚁群优化方法能够寻
找到更短时间到达受灾点的路径优化方案,相比较基本蚁群算法而言,其寻找应急物流
路径优化方案更加高效。