基于差分进化改进蚁群算法求解MDCVRP

蚁群算法求解MDCVRP

摘要

配送车辆的路径问题(Vehicle Routing Problem,VRP)是研究物流配送的关键,VRP 一直是物流研究领域中的一个具有重要理论意义和现实意义的问题[1-2]。因此,在物流保障过程中,需要制定合理有效的配送路径,选择省时省力的方法,在完成保障任务的前提下,尽最大努力满足客户对配送的需求。

配送车辆的路径问题(Vehicle Routing Problem,VRP)是 Dantzig 和 Ramser [3]在 1959 年提出来的。所谓 VRP,一般指的是:调用多辆车辆,从车场出发,对客户组织适当的行车路线,有序地访问所有客户并且只访问一次,在满足所有设定的约束条件下,力争实现所设定的目标。多车场车辆带容量约束的车辆路径问题(MDCVRP)是车辆路径问题(VRP)中的基本问题之一,广泛应用于资源配置和物流运输等方面。

求解 MDCVRP 的算法大致可以分为精确算法和启发式算法两类[4-5]。精确算法 (Accurately Arithmetic)在求解规模较小的路径优化问题时能够在可承受的空间与时间消耗下得到精确解。但是配送路径优化问题属于 NP 问题,实际求解过程中问题的规模较大,使用精确算法所消耗的空间和时间成本都是比较大的。而启发式算法(Heuristics)不管是求解小规模的问题还是大规模的问题,都能够在一定的范围和较短的时间内给出满意解或最优解。因此,目前相关领域的专家以及研究人员对于求解算法的主要研究方向是启发式算法,特别是对现代启发式算法的研究。蚁群算法作为现代启发式算法之一,自从被提出之后就受到了广泛的关注,该算法具有正反馈性、并行性和鲁棒性等优点,在解决任务分配、路径优化等问题时表现出了良好的性能,但同时蚁群算法也存在一定的缺陷,如在解决大规模的问题时,会出现运算时间长、收敛速度慢、容易陷入局部最优解等问题[6]。本文在基本的蚁群算法基础上进行合理改进,提高了算法的性能,使算法的运算结果更加准确。首先,制定转移规则,更加科学地初始化车辆的位置,使得车辆有更大概率地走出最佳的路径;然后,在搜索的过程中与禁忌搜索算法结合,添加新的参数负信息素来记忆已经访问过的客户;同时,使用局部信息素更新和全局信息素更新相结合的信息素更新方式,并且,全局信息素更新添加了动态更新的新模式;最后,使用 2-opt搜索[7]对结果进行进一步的探索,扩大搜索的范围,增加了得到最优解的概率。通过仿真实验,用不同的算法对已知案例进行仿真,结果显示本文算法相对于其他算法,无论是结果的准确性还是运算时间的长短都表现出了更好的性能。

正文

1、问题描述及数学建模

MDCVRP 是从多车场出发的多辆车辆访问多个客户进行运送货物的问题。已知出发车场的位置以及需要访问的客户的位置,客户的数量以及需求数量,车辆的数量以及负载数量,对客户组织适当的行车路线,有序地访问所有客户并且只访问一次,在满足所有设定的约束条件下,力争实现所设定的目标(车辆所走的路径最短或者花费最少)。将现实问题转化为数学模型,可以将 CVRP 描述为 m 辆车分别从i个车场出发访问 n 位客户进行运送货物的问题。设 d i {{d}_{i}} di为客户 i i i 的需求数量, c i j {{c}_{ij}} cij为车辆从客户 i 到客户 j 的运输花费, b k {{b}_{k}} bk为车辆 k 的负载数量,而

x i j k = { 1 , kij 0 x_{ij}^{k}=\left\{ \begin{matrix} 1 & ,\text{k}\text{i}\text{j} \\ 0 & \\ \end{matrix} \right. xijk={10,kij (1),

求解 MDCVRP 是为了使车辆走出的总的路径最短[8-9],从而令运输的成本 J J J最小,即

J = min ⁡ ∑ k = 1 m ∑ i , j = 0 n c i j x i j k i ≠ j   J=\min \sum\limits_{k=1}^{m}{\underset{i\ne j}{\mathop{\sum\limits_{i,j=0}^{n}{{{c}_{ij}}x_{ij}^{k}}}}\,} J=mink=1mi=ji,j=0ncijxijk (2)

且应满足以下约束条件:

∑ j = 1 n x 0 j k = ∑ j = 1 n x j 0 k = 1 , k ∈ ( 1 , 2 , . . . , m ) \sum\limits_{j=1}^{n}{x_{0j}^{k}}=\sum\limits_{j=1}^{n}{x_{j0}^{k}}=1,k\in (1,2,...,m) j=1nx0jk=j=1nxj0k=1,k(1,2,...,m) (3)

∑ k = 1 m ∑ j = 0 n x i j k i ≠ j   = 1 , i ∈ ( 1 , 2 , . . . , n ) \sum\limits_{k=1}^{m}{\underset{i\ne j}{\mathop{\sum\limits_{j=0}^{n}{x_{ij}^{k}}}}\,}=1,i\in (1,2,...,n) k=1mi=jj=0nxijk=1,i(1,2,...,n) (4)

∑ k = 1 m ∑ i = 0 n x i j k i ≠ j   = 1 , j ∈ ( 1 , 2 , . . . , n ) \sum\limits_{k=1}^{m}{\underset{i\ne j}{\mathop{\sum\limits_{i=0}^{n}{x_{ij}^{k}}}}\,}=1,j\in (1,2,...,n) k=1mi=ji=0nxijk=1,j(1,2,...,n) (5)

∑ i = 1 n d i ∑ j = 0 n x i j k i ≠ j   ≤ b k \sum\limits_{i=1}^{n}{{{d}_{i}}}\underset{i\ne j}{\mathop{\sum\limits_{j=0}^{n}{x_{ij}^{k}}}}\,\le {{b}_{k}} i=1ndii=jj=0nxijkbk (6)

式(3)表示所有车辆都从各自车场出发,完成所担负的任务之后全部返回车场,每一辆车走出的路径都形成一个哈密尔顿巡回;式(4)和式(5)表示车辆要对所有客户进行服务,并且只能服务一次;式(6)表示每辆车服务客户时,自身的负载量不能低于被服务客户的总的需求量。

2、算法设计

2.1 蚁群算法求解 MDCVRP

使用蚁群算法对 CVRP 进行求解时,蚂蚁会在各路径上产生信息素,信息素 τ i j {{\tau }_{ij}} τij表示车辆 k k k在对客户$ i 服 务 完 成 之 后 , 下 一 个 客 户 服务完成之后,下一个客户 j $对车辆 k k k 产生的吸引程度。当车辆的负载量能够满足客户的需求时,车辆按照设定好的转移规则来选定客户。在选好所有客户形成回路之后,对各路径上的信息素实行更新策略,进而实现一次迭代。在迭代达到最大次数时,可以获得一个 $Pareto $解集。跟其他的启发式算法相比,蚁群算法具有更高的机能,但在对 CVRP的求解过程中还是会有一些不可避免的缺陷。

2.1.1 选取初始客户过程中的局限

在 CVRP 中,因为车辆都有一定的负载,访问多个客户要满足客户需求,而每辆车在访问客户时都会有货物量限制和访问先后的问题,所以求解CVRP 受到选取初始客户的极大影响。运用蚁群算法求解 CVRP 时,初始化蚂蚁位置的方式有两种:

1)全部放置方式。将所有蚂蚁全部放置于每个节点,这样搜索的范围会很大,更容易得到全局最优的解,但同时也将造成大量时间的消耗,在处理较大规模的 CVRP 时,会令问题更加复杂。

2)随机放置方式。将部分蚂蚁随机放置到部分节点,这样做可以节省时间,降低问题的复杂程度,但是也容易造成得到的结果只是局部最优的,令每次迭代得到的 Pareto 解差距过大。

2.1.2 信息素更新过程的局限性。

随着算法的不断运算,寻找着最优路径,而信息素在路径上不停地累积,当前已寻找到的最优路径上的信息素越来越多,这或许会造成以下的不良后果:

1)在当前已寻找到的最优路径上的信息素过多,造成算法的停滞。

2)即便寻找到新的最优路径,这条路径上的信息素也远远没有之前得到的最优路径上的信息素多,几次迭代之后,这种现象也可能没有得到缓解。

总之,在基本蚁群算法中,原有的信息素更新方式会导致信息素的分布不能很好地体现当前最优路径的变化,这会对算法的求解过程造成很大的影响。

2.2 算法改进

针对在求解 MDCVRP 时蚁群算法存在的缺陷,本文改进蚁群算法将提高其求解的性能。

2.2.1 转移概率的改进

为了降低算法的复杂程度,同时加强算法的精确程度,在算法选择初始客户的过程中,本文将蚁群算法和禁忌搜索进行融合,修正转移概率,以改进蚁群算法。将禁忌搜索融入蚁群算法主要是利用禁忌搜索长久的记忆能力来加强蚁群算法搜索的开拓性[10-12]。本文结合禁忌搜索记忆之前访问过的节点,加入了负信息素 ϕ i j {{\phi }_{ij}} ϕij的概念:

ϕ i j = γ / λ i j ( t ) {{\phi }_{ij}}=\gamma /{{\lambda }_{ij}}(t) ϕij=γ/λij(t) (7)

对于每个边 ( i , j ) (i,j) ij γ γ γ 是常量, λ i j ( t ) {{\lambda }_{ij}}(t) λij(t)是边 ( i , j ) (i,j) ij的应用频率 (表示在得到的 Pareto 解中节点 i 和 j 被出现的次数)。每当边 ( i , j ) (i,j) ij ( j , i ) (j,i) ji被包含在任一解中, λ i j ( t ) {{\lambda }_{ij}}(t) λij(t)就增加 1; λ i j ( 0 ) = 1 {{\lambda }_{ij}}(0)=1 λij(0)=1

当蚂蚁 k 处于节点 i 的位置时,根据以下规则选择下一节点:

j = { arg ⁡ max ⁡ { τ i u α ( t ) η i u β ( t ) ϕ i u γ ( t ) } i f : r ≤ r 0 J i f : r > r 0 j=\left\{ \begin{matrix} \arg \max \{\tau _{iu}^{\alpha }(t)\eta _{iu}^{\beta }(t)\phi _{iu}^{\gamma }(t)\} & if:r\le {{r}_{0}} \\ J & if:r>{{r}_{0}} \\ \end{matrix} \right. j={argmax{τiuα(t)ηiuβ(t)ϕiuγ(t)}Jif:rr0if:r>r0 (8)

式中, r : U ( 0 , 1 ) , r 0 ∈ [ 0 , 1 ] r:U(0,1),{{r}_{0}}\in [0,1] r:U(0,1),r0[0,1],由用户指定具体参数值;

J ∈ N i k ( t ) J\in N_{i}^{k}(t) JNik(t)是根据以下转移概率随机选择的节点:

p i j k ( t ) = { τ i u α ( t ) η i u β ( t ) ϕ i u γ ( t ) ∑ u ∈ N i k ( t ) τ i u α ( t ) η i u β ( t ) ϕ i u γ ( t ) i f : ( i , j ) ∈ N i k ( t ) 0 , o t h e r p_{ij}^{k}(t)=\left\{ \begin{matrix} \frac{\tau _{iu}^{\alpha }(t)\eta _{iu}^{\beta }(t)\phi _{iu}^{\gamma }(t)}{\sum\limits_{u\in N_{i}^{k}(t)}{\tau _{iu}^{\alpha }(t)\eta _{iu}^{\beta }(t)\phi _{iu}^{\gamma }(t)}} & if:(i,j)\in N_{i}^{k}(t) \\ 0 & ,other \\ \end{matrix} \right. pijk(t)=uNik(t)τiuα(t)ηiuβ(t)ϕiuγ(t)τiuα(t)ηiuβ(t)ϕiuγ(t)0if:(i,j)Nik(t),other (9)

式中, τ i j {{\tau }_{ij}} τij表示边 ( i , j ) (i,j) ij上的信息素浓度, η i j {{\eta }_{ij}} ηij​表示从一个节点转移到另一个节点的吸引度,在这里可以设

η i j = 1 d i j {{\eta }_{ij}}=\frac{1}{{{d}_{ij}}} ηij=dij1 d i j {{d}_{ij}} dij表示节点 i i i 与节点 j j j 之间的距离, N i k ( t ) N_{i}^{k}(t) Nik(t)是可选节点的集合。基于式中的转移概率,边 ( i , j ) (i,j) ij被用于解中的次数越多,负信息素 ϕ i j {{\phi }_{ij}} ϕij的值就越小,所以和其他被用于解中次数少的边相比,边 ( i , j ) (i,j) ij ϕ i j {{\phi }_{ij}} ϕij的值也就越小,这有利于对被用于解中次数少的边的探索。而大的 γ γ γ值会限制禁忌搜索的记忆效果和探索性,因而可以在初期使用小的 γ γ γ值以利于搜索,并随着迭代次数的增加而增大 γ γ γ值。

2.2.2 信息素更新方式

针对蚁群算法在信息素更新过程中存在的问题,本文使用局部信息素更新和全局信息素更新相结合的信息素更新方式,并且,全局信息素更新添加了动态更新的新模式。

1)局部更新。在构建最优路径的过程中,蚂蚁

每经过边 ( i , j ) (i,j) ij都会依照下面的信息素更新公式来更新这条边上的信息素:

τ i j ( t + 1 ) = ( 1 − ρ 1 ) τ i j ( t ) + ρ 1 τ 0 {{\tau }_{ij}}(t+1)=(1-{{\rho }_{1}}){{\tau }_{ij}}(t)+{{\rho }_{1}}{{\tau }_{0}} τij(t+1)=(1ρ1)τij(t)+ρ1τ0 (10)

其中, ρ 1 {{\rho }_{1}} ρ1表示局部更新的挥发系数, ρ 1 ∈ ( 0 , 1 ) {{\rho }_{1}}\in (0,1) ρ1(0,1) τ 0 {{\tau }_{0}} τ0表示信息素的初始值,是一个较小的正常量,可以设

τ 0 = 1 n G L {{\tau }_{0}}=\frac{1}{{{n}_{G}}L} τ0=nGL1, n G {{n}_{G}} nG表示节点数, L L L表示生成的路径长度。引入信息素局部更新的目的,是为了使蚂蚁在经过边 ( i , j ) (i,j) ij时,会挥发这条边上一部分的信息素,降低其他的蚂蚁同样选择这条边的几率,可以更多地去探索其他的边,从而令算法的开拓性大大加强。

2)全局动态更新。当迭代一次完成后,按下式对此次迭代得到的最优路径上的信息素实行全局更新:

τ i j ( t + 1 ) = ( 1 − ρ ) τ i j ( t ) + ρ Δ τ i j {{\tau }_{ij}}(t+1)=(1-\rho ){{\tau }_{ij}}(t)+\rho \Delta {{\tau }_{ij}} τij(t+1)=(1ρ)τij(t)+ρΔτij (11)

Δ τ i j = L 2 − L 1 L 2 \Delta {{\tau }_{ij}}=\frac{{{L}_{2}}-{{L}_{1}}}{{{L}_{2}}} Δτij=L2L2L1 (12)

其中, ρ ρ ρ 表示全局更新的挥发系数 ρ ∈ ( 0 , 1 ) \rho \in (0,1) ρ(0,1) Δ τ i j \Delta {{\tau }_{ij}} Δτij表示信息素的增加量, L 1 {{L}_{1}} L1 x x x 次迭代时得到的最优路径长度, L 2 {{L}_{2}} L2 x − 1 x-1 x1次迭代之后所有迭代中的最优路径长度。对最优路径上的信息素实行更新策略是为之后迭代过程中的寻优工作提供信息素的正反馈,使得在之后的迭代中能够更好更快地找到最优的路径。

式(11)和式(12)可以依照每次迭代得到的最优路径的情况,对当前迭代所得的最优路径上的全局信息素进行动态调整。在 x x x次迭代后,得到了一个最优路径,相比 x − 1 x-1 x1次迭代,这条路径要短, L 2 {{L}_{2}} L2 L 1 {{L}_{1}} L1的差值就为正,说明当前迭代找到的最优路径比之前寻找到的要好,但此时该路径上的信息素浓度并不高,而根据式(12), L 2 {{L}_{2}} L2的差值越大, Δ τ i j \Delta {{\tau }_{ij}} Δτij就会越大,在之后的迭代中,信息素浓度的积累就会越快; L 2 {{L}_{2}} L2 L 1 {{L}_{1}} L1的差值越小, Δ τ i j \Delta {{\tau }_{ij}} Δτij就会越小,在之后的迭代中,信息素浓度的积累就会越慢;如果在 x x x 次迭代后,得到的最优路径比 L 2 {{L}_{2}} L2要长, L 2 {{L}_{2}} L2 L 1 {{L}_{1}} L1 的差值就为负,说明当前迭代找到的最优路径不如之前寻找到的好,而根据式(12), L 2 {{L}_{2}} L2 L 1 {{L}_{1}} L1 的差值越大, Δ τ i j \Delta {{\tau }_{ij}} Δτij就会越大,在之后的迭代中,信息素浓度就会加快挥发; L 2 {{L}_{2}} L2 L 1 {{L}_{1}} L1的差值越小, Δ τ i j \Delta {{\tau }_{ij}} Δτij就会越小,在之后的迭代中,信息素浓度挥发的就会越慢。这种动态调整是为了让算法能够及时修正迭代得到的结果,引导算法可以更快地找到最优的路径。

2.2.3 局部搜索策略

为了能够增加算法的开拓性,本文在所有车辆对路径选择完成之后选用 2-opt 搜索作为局部搜索的策略,而 2-opt 搜索只用于一辆车所选择的路径之中。

2.2.3 局部搜索策略

为了能够增加算法的开拓性,本文在所有车辆对路径选择完成之后选用 2-opt 搜索作为局部搜索的策略,而 2-opt 搜索只用于一辆车所选择的路径之中。

算法步骤如下:

Step 1:初始化:令迭代计数器初始值为 N c = 0 {{N}_{c}}=0 Nc=0,设 置 节 点 之 间 的 距 离 为 l e n g t h [ i ] [ j ] ( i , j = 0 , 1 , . . . , n ) length[i][j](i,j=0,1,...,n) length[i][j](i,j=0,1,...,n)迭 代 的 最 大 次 数 为 N c _ C O N S T {{N}_{c}}\_CONST Nc_CONST,当前最优的路径长度 b e s t _ s o l . r o u t e s best\_sol.routes best_sol.routes客户服务的需求量 d e m a n d [ j ] demand[j] demand[j],当前最优的路径表 t a b u _ m i n tabu\_min tabu_min,计算信息素的初值 τ 0 {{\tau }_{0}} τ0、转移吸引度 η i j ( i , j = 1 , 2 , . . . , n ) {{\eta }_{ij}}(i,j=1,2,...,n) ηij(i,j=1,2,...,n)以及负信息素 ϕ i j {{\phi }_{ij}} ϕij e e e 辆车放置在车场,初始化每辆车的禁忌表 a n t [ k ] t a b u ( k = 1 , 2 , . . . , e ) ant[k]tabu(k=1,2,...,e) ant[k]tabu(k=1,2,...,e),所走的路径长度 a n t [ k ] l e n g t h ( k = 1 , 2 , . . . , e ) ant[k]length(k=1,2,...,e) ant[k]length(k=1,2,...,e),车辆的负载量 a n t [ k ] . l o a d ( k = 1 , 2 , . . . , e ) ant[k].load(k=1,2,...,e) ant[k].load(k=1,2,...,e)以及路径上的信息素 τ i j ( i , j = 1 , 2 , . . . , n ) {{\tau }_{ij}}(i,j=1,2,...,n) τij(i,j=1,2,...,n)

step 2:初始化车辆的位置。车辆按照式(8)选择客户,将所选择的客户添加到 a n t [ k ] . t a b u ant[k].tabu ant[k].tabu中,并更新 a n t [ k ] . l e n g t h ant[k].length ant[k].length a n t [ k ] . l o a d ant[k].load ant[k].load的值

step 3:路径选择。在满足车辆负载条件的前提下,车辆按照式(9)进行客户的选择;否则车辆返回车场。将所选择的客户或车场添加到 a n t [ k ] . t a b u ant[k].tabu ant[k].tabu中,更新 a n t [ k ] . l e n g t h ant[k].length ant[k].length a n t [ k ] . l o a d ant[k].load ant[k].load的值。

step 4:信息素的局部更新。每当车辆作出一次选择,便根据式(10)对刚刚走过的路径 ( i , j ) (i,j) ij进行信息素的局部更新。

step 5:2-opt 局部搜索。当所有车辆服务客户完成之后,寻找路径完毕时,对每辆车所寻找到的路径进行2-opt 搜索 ,并更新 a n t [ k ] . l e n g t h ant[k].length ant[k].length a n t [ k ] . l o a d ant[k].load ant[k].load;否则返回step 3。

step 6:信息素的全局动态更新。统计当前迭代中的最短路径,将 a n t [ k ] . l e n g t h ant[k].length ant[k].length b e s t _ s o l . r o u t e s best\_sol.routes best_sol.routes进行比较。如果 a n t [ k ] . l e n g t h < b e s t _ s o l . r o u t e s ant[k].length<best\_sol.routes ant[k].length<best_sol.routes,则用 a n t [ k ] . l e n g t h ant[k].length ant[k].length替换 b e s t _ s o l . r o u t e s best\_sol.routes best_sol.routes a n t [ k ] . t a b u ant[k].tabu ant[k].tabu替换 t a b u _ m i n tabu\_min tabu_min。根据式(11)和式(12)对当前最优路径进行信息素全局更新。

step 7:迭代循环。如果 N c ≤ N c _ C O N S T {{N}_{c}}\le {{N}_{c}}\_CONST NcNc_CONST,则返回Step 2,开始新一次的迭代;否则算法结束,输出最优路径 b e s t _ s o l . r o u t e s best\_sol.routes best_sol.routes和最优路径表 t a b u _ m i n tabu\_min tabu_min

。实验参数设置为:ρ1= 0.1,ρ=0.1,α=1,β= 2,γ=1, e = 15 ∼ 30 e=15\sim30 e=1530 r 0 = 0.8 ∼ 0.95 {{r}_{0}}=0.8\sim0.95 r0=0.80.95,NC= 40。

表 1 显示出运用本文算法求解选择出来的这部分算例的结果,求解每个算例都运行 10 次。这里设Y为数据集中目前已知的算例最优解,M为运用本文算法求解该案例得到的最优解,P 为运用本文算法求解案例得到的最优解对比数据集中已知最优解 Y的偏移率。从表 1 可以看出,运用给本文算法求解从数据集中随机抽选的 12 个算例中,有 7个案例的求解结果和数据集中已知最优解相同,而在剩下 5 个结果有所偏差的案例中,案例 N200K17的偏移率最大,但是偏移率仅为 2.67 %。以上说明本文算法的性能是值得肯定的。

此外,从数据集中选择 5 个案例,运用本文算法与其他算法分别对案例进行求解,得出结果进行比较,附表 2 显示了对比的结果。从附表 2 可以看出,本文算法求解案例得到的最优解对比数据集中已知最优解的偏移率平均值为 0.88 %,与其他 3 种算法相比,仅高于 HGA 0.03 %。运用给本文算法求解从数据集中随机抽选的 5 个算例,有 2 个案例的求解结果和数据集中已知最优解相同。在求解运算的消耗时间方面,运用本文算法求解 N51K5、N76K10 所消耗的时间比 SA 要多一些,而求解另外 3 个案例的时间都是最短的,而且求解这 5 个案例所消耗的总时间最短,平均消耗时间也最短。

在这几个大规模问题中,相对于其他 3 种算法,本文算法无论是运算结果还是花费的时间都体现出了更佳的性能,而且问题的规模越大,本文算法体现出的性能越好。

本文首先对 VRP 问题的理论进行了研究,引出MDCVRP 问题,并且对其进行了数学模型的建立,然后在基本蚁群算法的基础上,改进算法使其能更好地对所建模型进行求解,最后从数据集中抽取案例,运用改进后的算法进行求解,并与其他的算法进行比较,得出本文算法无论是运算结果还是花费的时间都体现出了更佳的性能和结论。

[1]骆剑平,李霞,陈泯融.基于改进混合蛙跳算法的 CVRP求解[J].电子与信息学报,2011,33(2):429-434.

[2]张瑞锋,汪同三. 新型遗传算法求解车辆路径问题研究[J].湖北大学学报(自然科学版),2012,34(2):239-242.

[3]DANTZING G,RASMER J. The truck dispatching problem[J].Management Science,1959(6):80-91.

[4]陈印,徐红梅. 混合算法在车辆路径优化问题中的应用[J].计算机仿真,2012,29(25):357-358.

[5]杨亚萍.基于车辆路径问题的建模及算法的研究[J].电脑开发与应用,2012,25(12):962-963.

[6]杨中秋,张延华. 改进蚁群算法在交通系统最短路径问题的研究[J].科学计算与信息处理,2003,32(8):76-78.

[7]刘霞,杨超.最小 - 最大车辆路径问题的蚁群算法[J].解放军理工大学学报(自然科学版),2012,13(3):340-341.

[8]张思亮,葛洪伟.求解车辆路径问题的一种混合方法[J].计算机工程与应用,2012,48(8):226-227.

[9]李艳琴,张立毅,郭纯生,等. 改进蚁群算法在应急 VRP问题中的应用研究[J].数学的实践与认识,2012,42(9):133-140.

[10]KAJI T. Approach by ant tabu agents for traveling salesman problem [C]// In Proceedings of the IEEE International Conference on Systems,Man ,and Cybernetics,2001.

[11]KARABOGA N,KALINLI A,KARABOGA D . Designing digital IIR filters using ant colony optimisation algorithm[J].Engineering Applications of Artificial Intelligence,2004,43(17):301-309.

[12] ROUX O ,FONLUPT C,TALBI E G. Technical report LIL-98-04, laboratoired’inforniatique du littoral[D].Calais. France:University du Littoral,1998.

[13]SOEDERKVIST O . The main algorithm research on financialtime series data mining [D].Linkoeping:Linkoeping University of Sweden,2001.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值