一种引入好奇因子的蚁群优化方法

文档序号:6441685阅读:188来源:国知局
专利名称:一种引入好奇因子的蚁群优化方法
技术领域
本发明属于信息与控制技术领域,涉及自动化技术,特别是涉及一种改进的蚁群优化方法。
背景技术
蚁群优化算法是由意大利学者M. Dorigo, V. Maniezzo, A Colorni等人在20世纪90年代初首先提出来的,并成功解决旅行商(TSP)等组合优化问题。蚁群算法不仅能够智 能搜索、全局优化,而且具有稳健性(鲁棒性)、正反馈、分布式计算、易与其它算法结合等 特点。因此,蚁群算法的问世为诸多领域解决复杂优化问题提供了有力的工具。但蚁群算 法在构造解的过程中,利用了随机选择策略,这种选择策略使得进化速度较慢,容易出现停 滞现象,即搜索进行到一定程度后,所有个体所发现的解完全一致,不能对解空间进一步进 行搜索,不利于发现更好的解。

发明内容
本发明的目标是针对蚁群算法容易出现早熟收敛的难题,根据人类所特有的创新 思维,引入了好奇因子以提高蚁群算法的全局搜索能力和搜索速度。本发明的技术方案是好奇因子赋予蚂蚁人类创新思维的特点,让蚂蚁对陌生路径 产生好奇感。在蚂蚁的选择机制中考虑满足蚂蚁这种好奇感,刺激蚂蚁尝试那些陌生的潜 在最优路径,有利于对解空间更全局的搜索,从而可以有效地克服蚁群算法的不足。本发明方法的具体步骤是步骤1、初始化蚂蚁个数m、挥发系数P、初始每条边上的的信息素τ ^.(0),随机放 置m个蚂蚁到η个城市上。步骤2、初始化禁忌表tabuk(s),令s = 1,tabuk表示第k个蚂蚁的禁忌表, tabuk(s)表示禁忌表中第s个元素;步骤3、蚂蚁k (k = 1,2. . . m)随机选择转移到城市j,在时刻t蚂蚁k由城市i转 移到城市j的概率《幻为 其中τ ^.(t)表示时刻t时路径(i,j)上信息素浓度,启发因子Ilij = 1/Cij; Cij 为路径(i,j)的距离。α和β两个参数,分别用来控制信息素浓度和路径长度的相对重 要程度。all0Wedk = {0,1,... , n_l}表示蚂蚁k下一步允许选择的城市。好奇因子x的 表达式如式2所示
m-Nc 其中,Nc表示当前迭代次数,参数5是一个正实数,maxn代表启发因子n u的 最大值,Q。(i,j)是从第一次迭代开始,到时刻t时经过路径(i,j)的蚂蚁总个数。然后将j插入到tabuk(S)中,将城市j从allowedk中删除,并对第k个蚂蚁经过 的路径进行信息素浓度局部更新,得到 (0 (0= (1-会) (0 +会 10式2式中,、=^~,\ G W,l],Lm表示最近的相邻城市路径长度,如此重复直到每只蚂蚁都遍历n个城市。步骤4、计算每只蚂蚁的总路线长度,更新找到的最短路径,更新时刻t至t+1,对 最优蚂蚁经过的路径进行全局更新,得到t+1时刻的信息素浓度t ij (t+1),所述最优蚂蚁 经过的路径为所有蚂蚁经过的最短路径。
式 3
At \(Lgby (/,y)e全局最优路径 TiJ~l o否则式中,p为一个取值范围在0到1之间的常数系数,Lgb为到目前为止找出的全局 最优路径。步骤5、将A 置零,重复步骤2至步骤(4),如果Nc大于设定的值或者所有的 蚂蚁选择同一条路径,则结束本次算法,同时输出全局优化的最佳路径。本发明的有益效果本发明针对蚁群算法容易出现早熟收敛的难题,提出了好奇 因子,刺激蚂蚁尝试那些陌生的潜在最优路径,有利于对解空间更全局的搜索,从而可以有 效地克服蚁群算法的不足。
具体实施例方式一种引入好奇因子的蚁群优化方法,包括如下步骤步骤1、初始化蚂蚁个数m、挥发系数P、初始每条边上的的信息素T u(0),随机放 置m个蚂蚁到n个城市上。步骤2、初始化禁忌表tabuk(s),令s = 1,tabuk表示第k个蚂蚁的禁忌表, tabuk(s)表示禁忌表中第s个元素;步骤3、蚂蚁k (k = 1,2. . . m)随机选择转移到城市j,在时刻t蚂蚁k由城市i转 移到城市j的概率磅 为
^Gallowec^ 其中t u(t)表示时刻t时路径(i,j)上信息素浓度,启发因子I」=1/Cij,C^. 为路径(i,j)的距离。a和0两个参数,分别用来控制信息素浓度和路径长度的相对重 要程度。all0Wedk = {0,1,... , n-1}表示蚂蚁k下一步允许选择的城市。好奇因子x的 表达式如式2所示 其中,Nc表示当前迭代次数,参数δ是一个正实数,max η代表启发因子Hij的 最大值,Q。(i,j)是从第一次迭代开始,到时刻t时经过路径(i,j)的蚂蚁总个数。然后将j插入到tabuk(S)中,将城市j从allowedk中删除,并对第k个蚂蚁经过 的路径进行信息素浓度局部更新,得到&⑴Ty(0 = (1 一Ty( ) + ξ·r。式 2式中,h=;^",^ e W,1],Lnn表示最近的相邻城市路径长度, 如此重复直到每只蚂蚁都遍历η个城市。步骤4、计算每只蚂蚁的总路线长度,更新找到的最短路径,更新时刻t至t+Ι,对 最优蚂蚁经过的路径进行全局更新,得到t+Ι时刻的信息素浓度τ u (t+1),所述最优蚂蚁 经过的路径为所有蚂蚁经过的最短路径。τ υ (t+1) = P · τ。.α) + (1-ρ ) Δ Tij 式 3
Δγ \(Lgby Gye全局最优路径 、_1 ο否则式中,ρ为一个取值范围在0到1之间的常数系数,Lgb为到目前为止找出的全局 最优路径。步骤5、将Δ τ 置零,重复步骤2至步骤(4),如果Nc大于设定的值或者所有的 蚂蚁选择同一条路径,则结束本次算法,同时输出全局优化的最佳路径。
权利要求
一种引入好奇因子的蚁群优化方法,其特征在于该方法包括如下步骤步骤1、初始化蚂蚁个数m、挥发系数ρ、初始每条边上的的信息素τij(0),随机放置m个蚂蚁到n个城市上;步骤2、初始化禁忌表tabuk(s),令s=1,tabuk表示第k个蚂蚁的禁忌表,tabuk(s)表示禁忌表中第s个元素;步骤3、蚂蚁k(k=1,2...m)随机选择转移到城市j,在时刻t蚂蚁k由城市i转移到城市j的概率为 <mrow><msubsup> <mi>P</mi> <mi>ij</mi> <mrow><mo>(</mo><mi>k</mi><mo>)</mo> </mrow></msubsup><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>=</mo><mfrac> <mrow><msup> <mrow><mo>[</mo><msub> <mi>&tau;</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>]</mo> </mrow> <mi>&alpha;</mi></msup><mo>&CenterDot;</mo><msup> <mrow><mo>[</mo><msub> <mi>&eta;</mi> <mi>ij</mi></msub><mo>]</mo> </mrow> <mi>&beta;</mi></msup><mo>&CenterDot;</mo><msub> <mi>&chi;</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow> </mrow> <mrow><munder> <mi>&Sigma;</mi> <mrow><mi>k</mi><mo>&Element;</mo><msub> <mi>allowed</mi> <mi>k</mi></msub> </mrow></munder><msup> <mrow><mo>[</mo><msub> <mi>&tau;</mi> <mi>ik</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>]</mo> </mrow> <mi>&alpha;</mi></msup><mo>&CenterDot;</mo><msup> <mrow><mo>[</mo><msub> <mi>&eta;</mi> <mi>ik</mi></msub><mo>]</mo> </mrow> <mi>&beta;</mi></msup><mo>&CenterDot;</mo><mi>&chi;</mi><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow> </mrow></mfrac> </mrow>其中τij(t)表示时刻t时路径(i,j)上信息素浓度,启发因子ηij=1/Cij,Cij为路径(i,j)的距离,α表示控制信息素浓度参数,β表示路径长度参数,allowedk={0,1,...,n-1}表示蚂蚁k下一步允许选择的城市, <mrow><msub> <mi>&chi;</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>=</mo><mfrac> <mrow><mi>m</mi><mo>&CenterDot;</mo><mi>Nc</mi> </mrow> <mrow><mi>m</mi><mo>&CenterDot;</mo><mi>Nc</mi><mo>+</mo><mi>&delta;</mi><mo>&CenterDot;</mo><mi>Qc</mi><mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo></mrow><mo>&CenterDot;</mo><msub> <mi>&eta;</mi> <mi>ij</mi></msub><mo>/</mo><mi>max</mi><mi>&eta;</mi> </mrow></mfrac> </mrow>其中,Nc表示当前迭代次数,参数δ是一个正实数,maxη代表启发因子ηij的最大值,Qc(i,j)是从第一次迭代开始,到时刻t时经过路径(i,j)的蚂蚁总个数;然后将j插入到tabuk(s)中,将城市j从allowedk中删除,并对第k个蚂蚁经过的路径进行信息素浓度局部更新,得到 <mrow><msubsup> <mi>&tau;</mi> <mi>ij</mi> <mo>&prime;</mo></msubsup><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>=</mo><mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&xi;</mi> <mo>)</mo></mrow><mo>&CenterDot;</mo><msub> <mi>&tau;</mi> <mi>ij</mi></msub><mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo></mrow><mo>+</mo><mi>&xi;</mi><mo>&CenterDot;</mo><msub> <mi>&tau;</mi> <mn>0</mn></msub> </mrow>式中,ξ∈
,Lnn表示最近的相邻城市路径长度,如此重复直到每只蚂蚁都遍历n个城市;步骤4、计算每只蚂蚁的总路线长度,更新找到的最短路径,更新时刻t至t+1,对最优蚂蚁经过的路径进行全局更新,得到t+1时刻的信息素浓度τij(t+1),所述最优蚂蚁经过的路径为所有蚂蚁经过的最短路径;τij(t+1)=ρ·τij(t)+(1-ρ)Δτij式中,ρ为一个取值范围在0到1之间的常数系数,Lgb为到目前为止找出的全局最优路径;步骤5、将Δτij置零,重复步骤2至步骤4,如果Nc大于设定的值或者所有的蚂蚁选择同一条路径,则结束本次算法,同时输出全局优化的最佳路径。FSA00000134799400011.tif,FSA00000134799400015.tif,FSA00000134799400017.tif,FSA00000134799400018.tif
全文摘要
本发明涉及一种引入好奇因子的蚁群优化方法。现有的算法容易出现停滞现象。本发明方法首先初始化蚂蚁个数、挥发系数和每条边上的信息素,并随机放置m个蚂蚁到n个城市上,其次让蚂蚁随机选择转移到城市j,将j插入到禁忌表中,将城市j从allowedk中删除,并对第k个蚂蚁经过的路径进行信息素浓度局部更新;然后计算每只蚂蚁的总路线长度,更新找到的最短路径,利用征税算子对路径上的信息素浓度进行调整,得到征税后的信息素浓度最后满足Nc大于设定的值或者所有的蚂蚁选择同一条路径,则结束本次算法,同时输出全局优化的最佳路径。本发明方法实现了对解空间更全局的搜索。
文档编号G06N3/00GK101872432SQ20101018066
公开日2010年10月27日 申请日期2010年5月21日 优先权日2010年5月21日
发明者李春富, 葛铭, 郑小青, 郑松, 魏江 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1