CN101520858A - 一种求解旅行商问题的蚁群优化-微分进化融合方法 - Google Patents

一种求解旅行商问题的蚁群优化-微分进化融合方法 Download PDF

Info

Publication number
CN101520858A
CN101520858A CN200810101081A CN200810101081A CN101520858A CN 101520858 A CN101520858 A CN 101520858A CN 200810101081 A CN200810101081 A CN 200810101081A CN 200810101081 A CN200810101081 A CN 200810101081A CN 101520858 A CN101520858 A CN 101520858A
Authority
CN
China
Prior art keywords
ant
tau
pheromones
path
city
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200810101081A
Other languages
English (en)
Other versions
CN101520858B (zh
Inventor
张祥银
段海滨
金季强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2008101010819A priority Critical patent/CN101520858B/zh
Publication of CN101520858A publication Critical patent/CN101520858A/zh
Application granted granted Critical
Publication of CN101520858B publication Critical patent/CN101520858B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

一种求解旅行商问题的蚁群优化-微分进化融合方法,实施步骤为:(1)初始化算法参数;(2)初始化蚂蚁群体;(3)进行第一次迭代;(4)从第二代起,对各分队信息素执行变异、交叉操作,产生新的信息素;(5)选中第一分队;(6)各分队蚂蚁按原始信息素构建各自最优路径;(7)各分队蚂蚁按新信息素构建各自最优路径;(8)比较两个最优路径,选出路径优化结果更好的信息素;(9)更新蚂蚁分队信息素,并传给下一代;(10)返回第六步,直至所有分队完成计算;(11)确定本代最优路径及长度;(12)返回第四步,进行下一代计算,直到满足结束条件;(13)确定全局最优路径及长度。该方法具有更好的收敛性,并具有更强的全局寻优能力,是解决诸如旅行商问题等大规模复杂优化问题的有效途径。

Description

一种求解旅行商问题的蚁群优化-微分进化融合方法
(一)技术领域
本发明一种求解旅行商问题的蚁群优化(Ant Colony Optimization,AGO)-微分进化(Differential Evolution,DE)融合方法,属于应用人工智能技术领域。
(二)背景技术
旅行商问题(Traveling Salesman Problem,TSP)是一个经典的组合优化问题,经典的旅行商问题可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的哈密尔顿(Hamilton)回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸。作为组合优化中研究最多的问题之一,旅行商问题吸引了许多不同领域的研究工作者,包括数学、运筹学、物理、生物和人工智能等领域,它是目前优化领域里的研究热点。
蚁群优化算法(也称“蚁群算法”或“蚂蚁算法”)是一种最新发展的模拟昆虫王国中蚂蚁群体觅食行为的仿生优化算法,该算法采用了正反馈并行自催化机制,具有较强的鲁棒性、优良的分布式计算机制、易于与其他方法结合等优点,在解决许多复杂优化问题方面已经展现出其优异的性能和巨大的发展潜力。
蚁群算法是由蚂蚁觅食行为演化来的优化算法,蚂蚁个体之间是通过一种称之为信息素(Pheromone)的物质进行信息传递,从而能相互协作,完成复杂的任务。蚂蚁在运动过程中,在它所经过的路径上会留下一定量的信息素,信息素的强度与路径长度有关。并且蚂蚁在运动过程中能够感知路径上信息素的存在及其强度,并以此指导自己的对路径的选择,蚂蚁倾向于朝着信息素强度较高的方向移动。因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象:某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大。蚂蚁个体之间就是通过这种信息的交流达到搜索食物的目的。蚁群算法采用了正反馈并行自催化机制,该算法具有较强的鲁棒性、优良的分布式计算机制、易于与其他方法结合等优点。蚁群算法由意大利学者M.Dorigo提出之后最早用于求解旅行商问题以及工件排序问题,显示出了比其他算法更好的效果,此外,该算法在解决其他许多复杂优化问题方面也已经展现出了优异的性能和巨大的发展潜力。
作为一种新兴的启发式仿生智能优化算法,目前人们对蚁群优化算法的研究已经由当初单一的旅行商问题领域渗透到了多个应用领域,由解决一维静态优化问题发展到解决多维动态组合优化问题,由离散域范围内的研究逐渐拓展到了连续域范围内的研究,而且在蚁群优化算法的硬件实现上也取得了很多突破性进展,从而使这种新兴的仿生优化算法展现出勃勃生机和广阔的发展前景。
微分进化算法是由Storn和Price在1995年提出来的一种新的进化算法,和其它的进化算法相比,微分进化算法的性能更加突出,它的过程简单,几乎每次运行都能找到最优解,而且微分进化算法只有很少的参数需要设置,并且同样的参数设置可以用到许多的不同的问题中。已有研究指出,在大多数的数值Benchmark问题中微分进化算法表现的比粒子群算法等其它进化算法都要好。微分进化算法首先在搜索空间内随机产生初始的解群体,然后通过将群体中两个成员间的差向量增加到第三个成员的方法来生成新的个体,如果新个体的适应度值更好,那么新产生的个体将代替原个体。其它的进化算法相比,这种新颖的搜索算法过程简单,鲁棒性好,它更容易理解、易于实现,有很强的空间搜索能力,且收敛速度快。
实践证明,单纯依赖一种算法求解复杂问题,有时效果并不好,将两种进行有机的融合,是一种很好的思路。蚁群算法采用的正反馈机制是其不同于其它算法最为显著的特点,但其在实际应用中也有着一些不足,比如,基本蚁群算法一般需要较长的搜索时间,且容易出现停滞现象,同时,蚁群算法的收敛性能对对初始化参数的设置比较敏感。而对于微分进化算法,收敛速度快、搜索能力强的特点使它可以对蚁群算法有一个有力的补充。同时,微分进化算法只有很少的参数需要设置,并且同样的参数设置可以用到许多的不同的问题中。
(三)发明内容
本发明的目的是针对著名的旅行商问题,利用融入了微分进化思想的改进型蚁群优化算法寻找最优解。与传统的蚁群算法相比,该发明所提出的算法具有更好的收敛性,以及更强的寻优能力。该方法是解决诸如旅行商问题等大规模复杂优化问题的有效途径,同时,本发明也可应用于其它复杂的智能优化问题。
自然界中,像蚂蚁这类社会性动物,单只蚂蚁的能力和智力非常简单,但它们通过相互协调、分工、合作完成不论工蚁还是蚁后都不可能有足够能力来指挥完成的筑巢、觅食、迁徙、清扫蚁穴等复杂行为。蚂蚁的食物源总是随机散布于蚁巢周围,我们只要仔细观察就可以发现,经过一段时间后,蚂蚁总能找到一条从蚁巢到食物源的最短路径。科学家曾经通过“双桥实验”对蚁群的觅食行为进行了研究。发现除了能找到巢穴和食物源之间的最短路径之外,蚁群对环境有着极强的适应能力。例如当原有的最短路径由于一个新的障碍物的出现而变得不可行时,蚁群能迅速找到一条新的最短路径。
在现实生活中,我们总可以观察到大量蚂蚁在巢穴与食物源之间形成近乎直线的路径,而不是曲线或者圆等其它形状,如图1(a)所示。蚂蚁群体不仅能完成复杂的任务,而且还能适应环境的变化,如在蚁群运动路线上突然出现障碍物时,一开始各只蚂蚁分布是均匀的,不管路径是否长短,蚂蚁总是先按同等概率选择各条路径,如图1(b)所示。蚂蚁在运动过程中,能够在其经过的路径上留下信息素,而且能感知这种物质的存在及其强度,并以此指导自己运动的方向,蚂蚁倾向于信息素浓度高的方向移动。相等时间内较短路径上的信息量就遗留得比较多,则选择较短路径的蚂蚁也随之增多,如图1(c)所示。不难看出,由于大量蚂蚁组成的蚁群集体行为表现出了一种信息正反馈现象,即某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大,蚂蚁个体之间就是通过这种信息交流机制来搜索食物,并最终沿着最短路径行进,如图1(d)所示。
蚁群是如何完成这些复杂任务的呢?仿生学家经过大量的观察、研究发现,蚂蚁在寻找食物时,能在其经过的路径上释放一种蚂蚁特有的信息素,使得一定范围内的其他蚂蚁能够感觉到这种物质,且倾向于朝该物质强度高的方向移动。因此,蚁群的集体行为表现为一种信息正反馈现象:某条路径上经过的蚂蚁数越多,其上留下的信息素也就越多(当然,随时间的推移会逐渐蒸发),后来蚂蚁选择该路径的概率也越高,从而更增加了该路径上信息素的强度。随着时间的推移,整个蚁群最终会收敛到最短的遍历路径上。
蚁群算法最初是用于解决旅行商问题,旅行商问题的简单形象描述是:给定n个城市,有一个旅行商从某一城市出发,访问各城市一次且仅有一次后再回到原出发城市,要求找出一条最短的巡回路径。
1、基本蚁群算法的数学模型
设bi(t)表示t时刻位于元素i的蚂蚁数目,τij(t)为t时刻路径(i,j)上的信息量,n表示TSP规模,即城市总数目,m为蚁群中蚂蚁的总数目,则 m = Σ i = 1 n b i ( t ) ; Γ = { τ ij ( t ) | c i , c j ⋐ C } 是t时刻集合C中元素(城市)两两连接lij上残留信息量的集合。在初始时刻各条路径上信息量相等,并设初始信息量为τij(0)=const。
蚂蚁k(k=1,2,.....,m)在运动过程中,根据各条路径上的信息量决定其转移方向。这里用禁忌表tabuk(k=1,2,....,m)来记录蚂蚁k当前所走过的城市,集合tabuk随着进化过程作动态调整。在搜索过程中,蚂蚁根据各条路径上的信息量及路径的启发信息来计算状态转移概率。
Figure A200810101081D00083
表示在t时刻蚂蚁k由元素(城市)i转移到元素(城市)j的状态转移概率
p ij k ( t ) = [ τ ij ( t ) ] α [ η ij ] β Σ k ∈ allowed k [ τ ik ( t ) ] α [ η ik ] β if j ∈ allowed k 0 otherwise - - - ( 1 )
式中,allowedk={C-tabuk}表示蚂蚁k下一步允许选择的城市。α为信息启发式因子,表示轨迹的相对重要性,反映了蚂蚁在运动过程中所积累的信息在蚂蚁运动时所起的作用,其值越大,则该蚂蚁越倾向于选择其它蚂蚁经过的路径,蚂蚁之间协作性越强;β为期望启发式因子,表示能见度的相对重要性,反映了蚂蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度,其值越大,则该状态转移概率越接近于贪心规则。ηij(t)为启发函数,其表达式如下
η ij ( t ) = 1 d ij - - - ( 2 )
式中,dij表示相邻两个城市之间的距离。对蚂蚁k而言,dij越小,则ηij(t)越大,
Figure A200810101081D00086
也就越大。显然,该启发函数表示蚂蚁从元素(城市)i转移到元素(城市)j的期望程度。
为了避免残留信息素过多引起残留信息淹没启发信息,在每只蚂蚁走完一步或者完成对所有n个城市的遍历(也即一个循环结束)后,要对残留信息进行更新处理。这种更新策略模仿了人类大脑记忆的特点,在新信息不断存入大脑的同时,存贮在大脑中的旧信息随着时间的推移逐渐淡化,甚至忘记。由此,t+n时刻在路径(i,j)上的信息量可按如下规则进行调整
τij(t+n)=(1-ρ)·τij(t)+Δτij(t)        (3)
Δτ ij ( t ) = Σ k = 1 m Δτ ij k ( t ) - - - ( 4 )
式中,ρ表示信息素挥发系数,则1-ρ表示信息素残留因子,为了防止信息的无限积累,ρ的取值范围为: ρ ⋐ [ 0,1 ) ; Δτij(t)表示本次循环中路径(i,j)上的信息素增量,初始时刻 Δτ ij k ( 0 ) = 0 ,
Figure A200810101081D00094
表示第k只蚂蚁在本次循环中留在路径(i,j)上的信息量。
在Ant-Cycle模型中,
Figure A200810101081D00095
式中,Q表示信息素强度,它在一定程度上影响算法的收敛速度;Lk表示第k只蚂蚁在本次循环中所走过路径的总长度。
2、微分进化算法(DE)基本原理
微分进化算法有三个主要操作称为变异(Mutation)、交叉(Crossover)和选择(Selection),但是这些进化操作的实现和遗传算法等其它进化算法是完全不同的。设群体规模为NP,向量的维度为D,那么群体中的目标向量可以用xi=[xi1,xi2,…,xiD],(i=1,…,NP)表示。对于任意一个目标向量xi而言,按下面公式生成变异向量vi
v i = x r 1 + F × ( x r 2 - x r 3 ) , i = 1,2 · · · , NP - - - ( 6 )
其中,
Figure A200810101081D00097
是群体中随机选择的三个个体,并且r1≠r2≠r3≠i。F是一个介于[0,2]间的实型常量因子,用于控制差向量
Figure A200810101081D00098
的影响,一般称为放缩因子。显然,
Figure A200810101081D00099
之间的差向量越小,扰动也就越小,这意味着如果群体靠近优化值,扰动会自动减小。
微分算法的交叉操作的目的是通过变异向量vi和目标向量xi的结合以提高变异向量的多样性。算法通过下面公式生成新的向量ui=[ui1,ui2,…,uiD]:
u ji = v ji , if randb ≤ CR or j = randr , x ji , if randb ≤ CR or j ≠ randr , - - - ( 7 )
i=1,…,NP,j=1,…,NP
这里,randb是[0,1]间的随机数;CR是范围在[0,1]间的常数,称为交叉常量,CR的值越大,发生交叉的可能就越大,CR=0表示没有交叉;randr是在[1,D]随机选择的整数,它保证ui至少要从vi中获得一个元素,否则就不会有新的向量生成,群体也就不会发生变化。
微分进化算法中的选择操作,是一种“贪婪”选择模式,当且仅当新的向量个体vi的适应度值比目标向量个体xi的更好时,才会被保留到下一代群体中。否则,目标向量个体xi仍然保留在群体中,再一次作为下一代的父向量。
3、改进型蚁群优化-微分进化算法(DEACO)
在蚁群算法中,信息素对蚂蚁探路活动起着重要的作用,一个良好的信息素分布将直接影响到蚁群对最优路径的探索。为此,提出将微分进化算法的思想融入到蚁群算法中,利用微分进化算法中的随机偏差扰动产生新个体的方式,对蚁群留下的信息素数量进行一些扰动,以期在各个城市之间达到更好的信息素分布,从而得到最优的路径。
在改进算法中,微分算法中的变异、交叉以及选择操作的作用对象都将是蚁群算法中蚂蚁在路径上留下的信息素。
首先对蚁群算法中的蚂蚁群体略微做些调整,即是将蚂蚁分为若干相互间独立的小分队(Ant-team),分队数量记为Team,(Team最好是蚂蚁总数m的约数)。每队的城市间上的信息素记为τ={τi},i=1,...,Team,显然,τi是一个n×n的矩阵。对于各队蚂蚁当前的信息素,按照下列公式产生变异后的信息素分布:
τ 1 i = τ r 1 + F × ( τ r 2 - τ r 3 ) , i = 1,2 , · · · , Team - - - ( 8 )
其中,是在所有的蚂蚁分队中随机选择的三个信息素个体,并且仍有r1≠r2≠r3≠i。显然,同样之间的差向量越小,扰动也就会越小,这意味着当各个分队的信息素收敛于最佳的信息素分布附近时,变异产生的扰动会自动减小。
改进算法中利用微分进化算法的交叉操作,通过变异信息素分布
Figure A200810101081D00104
和当前的目标信息素τi的结合以提高城市间信息素的多样性。算法通过下面公式生成新的信息素矩阵 τ 2 i = τ 2 i 1,1 · · τ 2 i 1 , n · · · · · · · · τ 2 i n , 1 · · τ 2 i n , n , i=1,...,Team:
τ 2 i j , k = τ i j , k , if randb ≤ CR or rand k = k , τ 1 i j , k , if randb > CR or rand k ≠ k , - - - ( 9 )
这里,
Figure A200810101081D00112
代表变异操作前第i分队蚂蚁在城市j,k之间的信息素,代表经变异操作后,第i分队蚂蚁在城市j,k之间的中间信息素分布矩阵,
Figure A200810101081D00114
代表对
Figure A200810101081D00115
Figure A200810101081D00116
实行选择操作后,第i分队蚂蚁在城市j,k之间的信息素;randb是[0,1]间的随机数;CR是范围在[0,1]间的常数,称为交叉常量,CR的值越大,发生交叉的可能性就越大,CR=0表示没有交叉,意味着各蚂蚁分队之间没有信息素的交流;randk是在[1,n]上随机选择的整数,它保证了新生成的信息素矩阵
Figure A200810101081D00117
至少要从经变异后的信息素
Figure A200810101081D00118
中获得一个元素,否则就信息素就不会产生变化,不利于蚂蚁分队间的信息交流。
在旅行商问题中,各分队的蚂蚁按照其信息素矩阵τi计算来的转移概率pj,k构建路径,得到的最优路径的长度L_besti即为信息素τi的适应度值。对新生成的信息素,以及蚂蚁在其基础上的探路活动的认可与否,需要对原始目标信息素分布τi与新的信息素个体
Figure A200810101081D00119
进行适应度值的评价,执行一种“贪婪”选择模式。当且仅当新个体的适应度值比原始个体的更好时,才会被接受并保留到下一代的信息素分布矩阵中;否则,目标信息素分布τi仍将留在该蚂蚁分队的城市信息素分布中。所以,信息素的选择操作可用下式表示为:
&tau; , i , t = &tau; 2 i , t , if L _ best 2 i < L _ best 0 i &tau; i , t , if L _ best 2 i &GreaterEqual; L _ best 0 i - - - ( 10 )
其中,τi,t为第i蚂蚁分队进行到第t次迭代时,在城市路径上遗留的信息素;
Figure A200810101081D001111
为第i蚂蚁分队在第t次迭代时,城市路径上的信息素经变异、交叉操作后得到的新的信息素矩阵;τ’i,t等于τi,t中具有较高适应度的信息素矩阵。L_best0i为蚂蚁按照信息素τi,t构建出的最短路径长度,即信息素τi,t的适应度;L_best2i为蚂蚁按照信息素
Figure A200810101081D0011154138QIETU
构建出的最短路径长度。
选择操作结束后,以信息素矩阵τi,t
Figure A200810101081D0011154138QIETU
构建路径的第i蚁群分队,按照其队内各蚂蚁个体走过路径的长度,依照蚁周(Ant-Cycle)模型的信息素公式(5)释放出各自的信息素,并对被选中的信息素τ’i,t进行信息素的更新,得到新的信息素分布τi,t+1,并将各分队的信息矩阵传给下一代的蚁群。
4、蚁群优化-微分进化算法解决旅行商问题的具体实现步骤
步骤一:参数初始化。令当前的迭代次数Nc=1,设置最大循环迭代次数Ncmax,设置城市坐标集合C,城市总数为n,令连接城市j、k的路径上的初始化信息素τj,k=常数,蚂蚁总数m,与蚁群算法有关的参数α,β,ρ,Q,与微分算法有关的参数F,CR,设置蚂蚁分队的数量Team。
步骤二:初始化蚂蚁群体。将所有蚂蚁分为总数为Team的蚂蚁分队,各分队蚂蚁数量记为T_m(i);对于第i个分队,将其中的所有T_m(i)只蚂蚁随机置于n个城市上。
步骤三:进行第一次迭代。令i=1,对第i分队中的T_m(i)只蚂蚁个体按照状态转移概率公式(1)计算的概率pj,k选择城市k并前进,直至将所有城市遍历完,然后根据公式(3)、(4)以及(5)更新路径上的信息素,得到τi,2;令i=i+1,重复执行步骤三,直到i>Team。
步骤四:迭代次数Nc=Nc+1。按照公式(8)执行变异操作,产生中间信息素矩阵
Figure A200810101081D00121
再按照公式(9)执行交叉操作,产生新的信息素矩阵
Figure A200810101081D00122
令i=i+1,重复执行步骤四,直到i>Team。
步骤五:蚂蚁分队数目i=1。
步骤六:第i分队的所有蚂蚁个体按照矩阵τi所给的信息素,利用状态转移概率公式(1)得来的概率完成对所有城市的遍历,计算出每只蚂蚁遍历路径的长度,选出最短路径的,其长度记为L_best0i
步骤七:第i分队的所有蚂蚁个体按照矩阵
Figure A200810101081D00123
所给的信息素,利用状态转移概率公式(1)计算的概率完成对所有城市的遍历,计算出每只蚂蚁遍历路径的长度,选出最短的路径,其长度记为L_best2i
步骤八:比较L_best0i和L_best2i,按照公式(10)执行选择操作,将τi
Figure A200810101081D00124
赋予
Figure A200810101081D00125
并将L_best0i与L_best2i较小的赋予L_besti,并将其对应的城市遍历路径记入R_besti
步骤九:对信息素进行更新。若在步骤八中选择了τi赋予
Figure A200810101081D00126
则依照步骤六中各蚂蚁个体的遍历路径,利用公式(3)、(4)、(5)进行信息素的更新;若在步骤八中选择了
Figure A200810101081D00127
赋予
Figure A200810101081D00128
则依照步骤七中各蚂蚁个体的遍历路径,利用公式(3)、(4)、(5)进行信息素的更新。
步骤十:蚂蚁分队数目i=i+1,返回执行步骤六,直到i>Team。
步骤十一:在L_besti中选出最小的,即为本次迭代最短路径长度LNc,其对应的遍历路径记为RNc
步骤十二:返回执行步骤四,直到Nc≥Ncmax时,结束循环。
步骤十三:在LNc(Nc=1,…,Ncmax)中选出最小者,记为Shortest_length,其在RNc中对应的遍历路径记为Shortest_routh,即得旅行商问题的最终解。
本发明提出了一种求解旅行商问题的蚁群优化-微分进化融合方法,其优点及功效在于:与传统的蚁群算法相比,该融合算法使得整个蚁群集体既有各个蚂蚁个体之间的信息素交流,又有各蚂蚁分队之间的信息素交流,从而提高了蚂蚁信息素的多样性,使蚁群具有了更强的全局搜索能力,并具有更好的收敛性。该方法在解决旅行商问题方面有着优异表现,同时,本发明也可应用于解决其它复杂的组合优化问题。
(四)附图说明
图1现实中蚁群寻找食物的过程
图2微分算法中的变异操作
图3微分算法中的交叉操作
图4蚁群优化-微分进化算法的流程图
图5基本蚁群算法解决Att48TSP的最优路径
图6蚁群优化-微分进化算法解决Att48TSP的最优路径
图7最优路径进化曲线对比图
图8平均路径进化曲线对比图
图中标号及符号说明如下:
Tau——城市间的信息素分布矩阵
Tau2——经变异、交叉操作后的信息素矩阵
T_m(i)——第i分队的蚂蚁数
L_best0(i)——第i分队的蚂蚁由信息素矩阵Tau得到的最优路径长度
L_best2(i)——第i分队的蚂蚁由信息素矩阵Tau2得到的最优路径长度
Nc——算法循环次数
Nc_max——算法最大循环次数
Team——队列
Y——是
N——否
Shortest Length——最短路径长度
Average Length——平均路径长度
basic_ACO——基本蚁群算法
DEACO——蚁群优化-微分进化算法
Att48TSP——城市数目为48的旅行商问题
(五)具体实施方式
为了验证改进的蚁群优化-微分进化优化算法在在解决旅行商问题时的优越性,本发明利用48城市旅行商问题(Att48TSP)进行了实验,其具体实现步骤如下:
步骤一:参数初始化:令当前的迭代次数Nc=1,设置最大循环迭代次数Ncmax=100,参数赋值:m=30,α=2,β=4,ρ=0.7,Q=10,F=2,CR=0.5,Team=5。
步骤二:输入要解决的48城市旅行商问题中的城市坐标集合C,城市总数为n=48,计算城市j与城市k之间的路径长度djk,以及ηjk=1/djk令连接城市j与城市k的路径上的初始化信息素τj,k=1,将所有蚂蚁分配到各个蚂蚁分队中,每个分队蚂蚁数为T_m(i)=m/Team=6;将各分队的蚂蚁随机置于各个城市上。
步骤三:进行第一次迭代。令i=1,对第i分队中的T_m(i)只蚂蚁个体按照下列状态转移概率公式计算的概率pj,k选择城市k并前进,直至将所有城市遍历完;
p j , k = [ &tau; j , k ] 2 [ &eta; j , k ] 4 &Sigma; s &Element; allowed t - m ( i ) [ &tau; j , k ] 2 [ &eta; j , k ] 4 if k &Element; allowed T - m ( i ) 0 otherwise
每只蚂蚁遍历路径长度记为LT_m(i);然后根据下列公式更新路径上的信息素,得到下一代的信息素矩阵τi,2
Figure A200810101081D00142
&Delta;&tau; i = &Sigma; s = 1 6 &Delta;&tau; s j , k
τi,2=(1-0.7)·τi+Δτi
令i=i+1,重复执行步骤三,直到i>Team=5。
步骤四:令迭代次数Nc=Nc+1。按照下列公式执行变异操作,产生中间信息素矩阵
&tau; 1 i = &tau; r 1 + 2 &times; ( &tau; r 2 - &tau; r 3 ) , i = 1,2 &CenterDot; &CenterDot; &CenterDot; , 5
再按照下式执行交叉操作,产生新的信息素矩阵
Figure A200810101081D00153
&tau; 2 i j , k = &tau; i j , k , if randb &le; 0.5 or rand k = k , &tau; 1 i j , k , if randb > 0.5 or rand k &NotEqual; k ,
令i=i+1,重复执行步骤四,直到i>5。
步骤五:蚂蚁分队数目i=1。
步骤六:第i分队的所有蚂蚁个体按照矩阵τi所给的信息素,利用状态转移概率公式
p j , k = [ &tau; i j , k ] 2 [ &eta; j , k ] 4 &Sigma; s &Element; allowed t - m ( i ) [ &tau; i j , k ] 2 [ &eta; j , k ] 4 if k &Element; allowed T - m ( i ) 0 otherwise
得来的概率完成对所有城市的遍历,计算出每只蚂蚁遍历路径的长度,选出最短路径的,其长度记为L_best0i
步骤七:第i分队的所有蚂蚁个体按照矩阵所给的信息素,利用状态转移概率公式
p j , k = [ &tau; 2 i j , k ] 2 [ &eta; j , k ] 4 &Sigma; s &Element; allowed t - m ( i ) [ &tau; 2 i j , k ] 2 [ &eta; j , k ] 4 if k &Element; allowed T - m ( i ) 0 otherwise
计算的概率完成对所有城市的遍历,计算出每只蚂蚁遍历路径的长度,选出最短的路径,其长度记为L_best2i
步骤八:比较L_best0i和L_best2i,按照公式
&tau; , i = &tau; 2 i , if L _ best 2 i < L _ best 0 i &tau; i , if L _ best 2 i &GreaterEqual; L _ best 0 i
执行选择操作,将τi
Figure A200810101081D00159
赋予
Figure A200810101081D001510
并将L_best0i与L_best2i较小的赋予L_besti,并将其对应的城市遍历路径记入R_besti
步骤九:对信息素进行更新。若在步骤八中选择了τi赋予
Figure A200810101081D001511
则依照步骤六中各蚂蚁个体的遍历路径,利用下列公式
Figure A200810101081D00161
&Delta;&tau; i = &Sigma; s = 1 6 &Delta;&tau; s j , k
τi=0.3·τ’i+Δτi
进行信息素的更新;若在步骤八中选择了赋予则依照步骤七中各蚂蚁个体的遍历路径,利用上述三个公式进行信息素的更新。最终得到传给下一代的信息素τi
步骤十:蚂蚁分队数目i=i+1,返回执行步骤六,直到i>5。
步骤十一:在L_besti中选出最小的,即为本次迭代最短路径长度LNc,其对应的遍历路径记为RNc
步骤十二:返回执行步骤四,直到Nc≥100时,结束循环。
步骤十三:在LNc(Nc=1,…,Ncmax)中选出最小者,记为Shortest_length,其在RNc中对应的遍历路径记为Shortest_routh,即得到48城市旅行商问题的最终解。
图5~图8即为利用基本蚁群算法(basic_ACO)和本发明提出的蚁群优化-微分进化算法(DEACO)解决48城市旅行商问题时,得到的最优路径图,以及最短路径长度与平均路径长度的进化曲线对比图。
在路径长度对比图中,实线为利用基本蚁群算法得到的进化曲线,虚线是利用蚁群优化-微分进化算法得到的进化曲线。
由实际应用结果可见,与传统的蚁群算法相比,该发明所提出的蚁群优化-微分进化融合方法具有更好的收敛性,并具有更强的全局寻优能力。该方法是解决诸如旅行商问题等大规模复杂优化问题的有效途径,同时,本发明也可应用于解决其它复杂的组合优化问题(如机器人路径规划、作业调度、图着色、网络路由等)。

Claims (1)

1、一种求解旅行商问题的蚁群优化-微分进化融合方法,其特征在于:它的具体实现步骤如下:
步骤一:参数初始化:令当前的迭代次数Nc=1,设置最大循环迭代次数Ncmax,设置城市坐标集合C,城市总数为n,令连接城市j与城市k的路径上的初始化信息素τj,k=常数,蚂蚁总数m,与蚁群算法有关的参数α、β、ρ、Q,以及与微分算法有关的参数F、CR,设置蚂蚁分队的数目Team;
步骤二:初始化蚂蚁群体:将所有蚂蚁分为总数为Team的蚂蚁分队,各分队蚂蚁数量记为T_m(i);对于第i个分队,将其中的所有T_m(i)只蚂蚁随机置于n个城市上;
步骤三:进行第一次迭代:令i=1,对第i分队中的T_m(i)只蚂蚁个体按照下列状态转移概率公式
p j , k = [ &tau; j , k ] &alpha; [ &eta; j , k ] &beta; &Sigma; s &Element; allowed t - m ( i ) [ &tau; j , k ] &alpha; [ &eta; j , k ] &beta; ifk &Element; allowed T - m ( i ) 0 otherwise
计算的概率pj,k选择城市k并前进,直至将所有城市遍历完;其中,allowedT-m(i)是第i队中的第T_m(i)只蚂蚁可以选择的城市的集合;然后根据下列公式
Figure A200810101081C00022
&Delta;&tau; i = &Sigma; s = 1 T _ m ( i ) &Delta;&tau; s j , k
τi,2=(1-ρ)·τi+Δτi
更新路径上的信息素,得到第二代的信息素τi,2;令i=i+1,重复执行步骤三,直到i>Team;
步骤四:迭代次数Nc=Nc+1:按照下列公式执行变异操作,产生中间信息素矩阵
Figure A200810101081C00024
&tau; 1 i = &tau; r 1 + F &times; ( &tau; r 2 - &tau; r 3 ) , i = 1,2 , &CenterDot; &CenterDot; &CenterDot; , 5
再按照下述公式执行交叉操作,产生新的信息素矩阵
Figure A200810101081C00032
&tau; 2 i j , k = &tau; i j , k , ifrandb &le; CRor rand k = k , &tau; 1 i j , k , ifrandb > CRor rand k &NotEqual; k ,
令i=i+1,重复执行步骤四,直到i>Team;
步骤五:令蚂蚁分队数目i=1;
步骤六:第i分队的所有蚂蚁个体按照矩阵τi所给的信息素,利用状态转移概率公式
p j , k = [ &tau; i j , k ] &alpha; [ &eta; j , k ] &beta; &Sigma; s &Element; allowed t - m ( i ) [ &tau; i j , k ] &alpha; [ &eta; j , k ] &beta; ifk &Element; allowed T - m ( i ) 0 otherwise
得来的概率完成对所有城市的遍历,计算出每只蚂蚁遍历路径的长度,选出最短路径的,其长度记为L_best0i
步骤七:第i分队的所有蚂蚁个体按照矩阵
Figure A200810101081C00035
所给的信息素,利用状态转移概率公式
p j , k = [ &tau; 2 i j , k ] &alpha; [ &eta; j , k ] &beta; &Sigma; s &Element; allowed t - m ( i ) [ &tau; 2 i j , k ] &alpha; [ &eta; j , k ] &beta; ifk &Element; allowed T - m ( i ) 0 otherwise
计算的概率完成对所有城市的遍历,计算出每只蚂蚁遍历路径的长度,选出最短的路径,其长度记为L_best2i
步骤八:比较L_best0i和L_best2i,按照下述公式执行选择操作,
&tau; &prime; i = &tau; 2 i , ifL _ best 2 i < L _ best 0 i &tau; i , ifL _ best 2 i &GreaterEqual; L _ best 0 i
将τi
Figure A200810101081C00038
赋予将L_best0i与L_best2i中较小的赋予L_besti,并将其对应的城市遍历路径记入R_besti
步骤九:对信息素进行更新:若在步骤八中选择了τi赋予
Figure A200810101081C000310
则依照步骤六中各蚂蚁个体的遍历路径,利用下列三个公式进行信息素的更新;
Figure A200810101081C00041
&Delta;&tau; i = &Sigma; s = 1 T _ m ( i ) &Delta;&tau; s j , k
&tau; i = ( 1 - &rho; ) &CenterDot; &tau; i &prime; + &Delta;&tau; i
若在步骤八中选择了
Figure A200810101081C00044
赋予
Figure A200810101081C00045
则依照步骤七中各蚂蚁个体的遍历路径,利用上面三个公式进行信息素的更新;
步骤十:蚂蚁分队数目i=i+1,返回执行步骤六,直到i>Team;
步骤十一:在L_besti中选出最小的,即为本次迭代最短路径长度LNc,其对应的遍历路径记为RNc
步骤十二:返回执行步骤四,直到Nc≥Ncmax时,结束循环;
步骤十三:在LNc(Nc=1,…,Ncmax)中选出最小者,记为Shortest_length,其在RNc中对应的遍历路径记为Shortest_routh,即得旅行商问题的最终解。
CN2008101010819A 2008-02-28 2008-02-28 一种求解旅行商问题的蚁群优化-微分进化融合方法 Expired - Fee Related CN101520858B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101010819A CN101520858B (zh) 2008-02-28 2008-02-28 一种求解旅行商问题的蚁群优化-微分进化融合方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101010819A CN101520858B (zh) 2008-02-28 2008-02-28 一种求解旅行商问题的蚁群优化-微分进化融合方法

Publications (2)

Publication Number Publication Date
CN101520858A true CN101520858A (zh) 2009-09-02
CN101520858B CN101520858B (zh) 2011-03-16

Family

ID=41081439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101010819A Expired - Fee Related CN101520858B (zh) 2008-02-28 2008-02-28 一种求解旅行商问题的蚁群优化-微分进化融合方法

Country Status (1)

Country Link
CN (1) CN101520858B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872355A (zh) * 2010-05-21 2010-10-27 杭州电子科技大学 一种基于征税机制的蚁群优化方法
CN102158799A (zh) * 2011-01-24 2011-08-17 东软集团股份有限公司 一种确定推荐经由地顺序的方法及系统
CN102945511A (zh) * 2012-10-23 2013-02-27 浙江大学 基于遥感电子地图的旅行商路径规划方法
CN103116806A (zh) * 2013-03-13 2013-05-22 兰州理工大学 基于混沌克隆算子的铝液抬包配载优化方法
CN103839105A (zh) * 2014-03-10 2014-06-04 北京航空航天大学 行程推荐方法和装置
CN104700251A (zh) * 2015-03-16 2015-06-10 华南师范大学 一种车辆调度问题的改进最大-最小蚁群优化方法及系统
CN105426992A (zh) * 2015-11-09 2016-03-23 江苏理工学院 移动机器人旅行商优化方法
CN105527965A (zh) * 2016-01-04 2016-04-27 江苏理工学院 基于遗传蚁群算法的路径规划方法及系统
CN106295791A (zh) * 2016-07-29 2017-01-04 西安电子科技大学 用于寻找旅行商最优路径的方法
CN108695002A (zh) * 2018-05-14 2018-10-23 浙江大学 一种智能结肠癌癌细胞检测仪
CN109740829A (zh) * 2019-03-08 2019-05-10 武汉轻工大学 基于蚁群算法的粮食运输方法、设备、存储介质及装置
CN109803341A (zh) * 2018-09-29 2019-05-24 江苏开放大学(江苏城市职业学院) 无线传感器网络中的自适应路径规划方法
CN111353621A (zh) * 2018-12-20 2020-06-30 中国科学院沈阳自动化研究所 一种基于冷热度原理改进蚁群算法的agv路径规划方法
CN116861796A (zh) * 2023-07-31 2023-10-10 无锡科技职业学院 一种场景检测视场生成及路径规划方法及其应用

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2408599A (en) * 2003-11-29 2005-06-01 Ibm Multi-objective genetic optimization method
CN1622129A (zh) * 2004-12-13 2005-06-01 中国科学院长春光学精密机械与物理研究所 人工神经网络的优化方法

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101872355A (zh) * 2010-05-21 2010-10-27 杭州电子科技大学 一种基于征税机制的蚁群优化方法
CN102158799A (zh) * 2011-01-24 2011-08-17 东软集团股份有限公司 一种确定推荐经由地顺序的方法及系统
CN102158799B (zh) * 2011-01-24 2013-07-31 东软集团股份有限公司 一种确定推荐经由地顺序的方法及系统
CN102945511A (zh) * 2012-10-23 2013-02-27 浙江大学 基于遥感电子地图的旅行商路径规划方法
CN103116806A (zh) * 2013-03-13 2013-05-22 兰州理工大学 基于混沌克隆算子的铝液抬包配载优化方法
CN103839105A (zh) * 2014-03-10 2014-06-04 北京航空航天大学 行程推荐方法和装置
CN103839105B (zh) * 2014-03-10 2016-09-21 北京航空航天大学 行程推荐方法和装置
CN104700251A (zh) * 2015-03-16 2015-06-10 华南师范大学 一种车辆调度问题的改进最大-最小蚁群优化方法及系统
CN104700251B (zh) * 2015-03-16 2018-02-02 华南师范大学 一种车辆调度问题的改进最大‑最小蚁群优化方法及系统
CN105426992B (zh) * 2015-11-09 2021-11-16 江苏理工学院 移动机器人旅行商优化方法
CN105426992A (zh) * 2015-11-09 2016-03-23 江苏理工学院 移动机器人旅行商优化方法
CN105527965A (zh) * 2016-01-04 2016-04-27 江苏理工学院 基于遗传蚁群算法的路径规划方法及系统
CN106295791A (zh) * 2016-07-29 2017-01-04 西安电子科技大学 用于寻找旅行商最优路径的方法
CN108695002A (zh) * 2018-05-14 2018-10-23 浙江大学 一种智能结肠癌癌细胞检测仪
CN109803341A (zh) * 2018-09-29 2019-05-24 江苏开放大学(江苏城市职业学院) 无线传感器网络中的自适应路径规划方法
CN111353621A (zh) * 2018-12-20 2020-06-30 中国科学院沈阳自动化研究所 一种基于冷热度原理改进蚁群算法的agv路径规划方法
CN111353621B (zh) * 2018-12-20 2023-08-29 中国科学院沈阳自动化研究所 一种基于冷热度原理改进蚁群算法的agv路径规划方法
CN109740829A (zh) * 2019-03-08 2019-05-10 武汉轻工大学 基于蚁群算法的粮食运输方法、设备、存储介质及装置
CN116861796A (zh) * 2023-07-31 2023-10-10 无锡科技职业学院 一种场景检测视场生成及路径规划方法及其应用
CN116861796B (zh) * 2023-07-31 2024-01-26 无锡科技职业学院 一种场景检测视场生成及路径规划方法及其应用

Also Published As

Publication number Publication date
CN101520858B (zh) 2011-03-16

Similar Documents

Publication Publication Date Title
CN101520858B (zh) 一种求解旅行商问题的蚁群优化-微分进化融合方法
Akhand et al. Discrete spider monkey optimization for travelling salesman problem
Noroozi et al. Golden search optimization algorithm
Teodorovic et al. Bee colony optimization–a cooperative learning approach to complex transportation problems
Teodorovic et al. Bee colony optimization: principles and applications
McMullen An ant colony optimization approach to addressing a JIT sequencing problem with multiple objectives
CN103971160B (zh) 基于复杂网络的粒子群优化方法
CN106228314A (zh) 基于深度增强学习的工作流调度方法
CN101136080A (zh) 基于满意决策蚁群智能无人作战飞机自适应航路规划方法
Brajevic Artificial bee colony algorithm for the capacitated vehicle routing problem
Chen et al. Ant colony optimization with tabu table to solve TSP problem
Czaczkes How to not get stuck—negative feedback due to crowding maintains flexibility in ant foraging
Jiang et al. An improved reinforcement-immune algorithm for agricultural resource allocation optimization
Mo et al. Biogeography based optimization for traveling salesman problem
Li Solving TSP by an ACO-and-BOA-based Hybrid Algorithm
Zhang et al. DEACO: Hybrid ant colony optimization with differential evolution
You et al. A modified Vicsek model based on the evolutionary game
CN106295791A (zh) 用于寻找旅行商最优路径的方法
Bonyadi et al. Population-based optimization algorithms for solving the travelling salesman problem
Banarjee et al. Emotional ant based modeling of crowd dynamics
Kaveh et al. Optimal size and geometry design of truss structures utilizing seven meta-heuristic algorithms: a comparative study
Zhishui Ant colony algorithm based on path planning for mobile agent migration
Kayvanfar et al. Intelligent water drops algorithm on parallel machines scheduling
Lee et al. Improved ant colony optimization algorithm by path crossover for optimal path planning
Zhong et al. Automatic crowd navigation path planning in public scenes through multiobjective differential evolution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110316

Termination date: 20120228