7单亲遗传算法求解旅行商问题及MATLAB实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

似最优解, 但规模较大时, 效果还是不理想。
等:退火单亲遗传算法求解旅行商问题及 A"7B"C 实现F F F 第 1 期F F F F F F F 吴值民,
[ / 0 11 ] 遗传算法 !" ( #$%$&’( )*#+,’&-. ) 作为一种
Biblioteka Baidu6@
遗传算法是采用二进制编码方法, 但在大量实际问题 中, 二进制编码操作不简便, 不易进行变异交叉操作, 易产生大量非可行解, 所以针对特殊的问题, 可以灵 采用 活采用不同的编码方法。本文在 782 求解中, 基于城市序号的实数编码, 将染色体定义为 782 的 一条解路线中的城市号序列, 在 A"7B"C 中为一个 没有重复数字的行向量来表示。设有 " 个城市的某 个排列为 )1 、 )4 、 …、 )" , 则个体 ! 的染色体表示为 ! 9 ( )1 )4 … ) " ) 。 &’ &" 产生初始种群 中每一个体为 " 个城市一个排列, 种群 ( 3),$%&)
[ G] 选择操作, 即设置一个 父子竞争中加入模拟退火
骤相同, 它的收敛性取决于染色体表示方式、 初始群 体、 适应度函数和遗传算子的设计。 &’ !" 基于城市序号的编码 旅行商问题中每一种遍历所有城市的方案对应 于解空间的一个解 -, 解空间中的数据 - 是遗传算法 的表现形式, 从表现到基因型的映射称为编码。最初
[ ! Y 3] * * 旅行商问题 .12 命名是: 有 ( 个城市, 一旅
何找到一条最短路线。这是一个典型的优化组合问 题, 已被证明属于 I2 ( 7@7N:>:;O979=>9F C@LM7@O9JL ) 完 全问题, 目前较有希望的求解方法有反馈神经网络
[ ! Y 3] 法、 遗传算法和其他一些智能算法 , 来求解出近
60-%()4%:<7 @;N:; >@ 9OC;@E: >H: 8:7:>9F JL8@;9>HO( P-)JQ9L9>M >@ =@LE: >H: >;JE:L978 =JL:=OJ7 C;@QL:O=( .12) ,J R97N @A CJ;>H:7@ 8:7:>9F JL8@;9>HO= F@OQ97:N S9>H =9O?LJ>:N J77:JL978( 1-$2P- ) SJ= C;@C@=:N ,J7N J7 @C>9OJL OJ97>J97978 @C:;J>9@7 SJ= 97>;@N?F:N+ B@OCJ;:N S9>H =>J7NJ;N P-, 1-$2P- FJ7 :AA:F>9E:LM :7HJ7F: >H: =:J;FH978 :A$ A9F9:7FM J7N F@7E:;8:7F: E:L@F9>M ,>H?= ;:N?F978 ;?77978 >9O: J7N >H: >9O:= @A >H: 9>:;J>9E: @C:;J>9@7+ 1@O: 9OC@;>J7> =>:C= J7N A?7F>9@7= @A >H: JL8@;9>HO C;:=:7>:N S:;: N:=F;9Q:N S9>H ,-./-0 LJ78?J8:+ .H;:: 9LL?=>;J>9E: :TJOCL:= S:;: 97>;@N?F:N+ .H: .12 @A () F9>9:= SJ= =@LE:N QM P- ,2P- J7N 1-$2P- S9>H ,-./-0 /J78?J8:+ .H: ;:=?L> =H@S= >HJ> >H: 1-$2P- 8@> >H: Q:=> >;JE:L978 ;@?>: J7N >H: ;?77978 >9O: 9= ’4 )5 >HJ> @A P- J7N ’"5 >HJ> @A 2P-+ .H: .12 @A ’3" J7N )%) F9>9:= S:;: =@LE:N QM 1-$2P- J7N >H: ;:=?L>= =H@S >HJ> >H: 1-$2P- 8@> >H: Q:=> >;JE:L978 ;@?>:+ .H9= 97N9FJ>:= >H: 1-$2P- FJ7 =@LE: LJ;8: =FJL: .12 AJ9;LM S:LL+ :+; 1"(3-:.12( >;JE:L978 =JL:=OJ7 C;@QL:O) ;CJ;>H:7@ 8:7:>9F JL8@;9>HO;=9O?LJ>:N J77:JL978
解 放 军 理 工 大 学 学 报( 自 然 科 学 版) * * * * * [@L+ 3 I@+ ! 第3 卷 第! 期 * * * * * * * ’""( 年 ’ 月 \:Q+ ’""( Z@?;7JL @A 2/- D79E:;=9>M @A 1F9:7F: J7N .:FH7@L@8M
文章编号: !""#$%&&% ( ’""( ) "!$""&&$")
新个体替换父个体的概率。设父个体为 !, 新个体为 !’ , 1 为当前温度。则替换概率为 2 (
{
1,
( / )3)" ( / )) ; (I) ( / )), ( / )3) $H3 ,( / )3) 4 ( / )) 。 1
(
)
ON
! ! ! ! ! ! ! ! ! ! ! ! ! 第 # 卷! ! ! 解 放 军 理 工 大 学 学 报( 自 然 科 学 版)
退火单亲遗传算法求解旅行商问题及 !"#$"% 实现
吴值民! , * 吴凤丽’ , * 邹 ! 波! , * 李宏伟! , * 卢厚清!
( !+ 解放军理工大学 工程兵工程学院, 江苏 南京 ’!"""( ; ’+ 解放军理工大学 气象学院, 江苏 南京 ’!!!"! )
摘* 要:为了提高遗传算法求解较大规模旅行商问题的能力, 在单亲遗传算法中引入两代竞争模拟退火选择 操作, 与倒位算子和插入算子相结合, 同时加入保优操作, 使遗传搜索效率、 收敛速度都得到大幅提高, 所花费 时间、 收敛迭代次数、 最后结果明显优于一般遗传算法和单亲遗传算法。给出了用 ,-./-0 实现算法的一些 重要步骤和函数, 并进行了简要说明。在仿真实例中, 用一般遗传、 单亲、 退火单亲遗传算法对 () 个城市的 .12 问题进行了求解, 退火单亲遗传算法对 ’3" 、 )%) 个城市 .12 问题进行了求解。结果表明, 退火单亲遗传算 法最终所得结果最好, 但收敛所花时间约为一般遗传的 ’4 )5 , 单亲遗传的 ’"5 , 迭代次数为一般遗传的 ’"5 , 单亲遗传的 ’)5 。 关键词:旅行商问题; 单亲遗传; 模拟退火 中图分类号:.2!3 文献标识码:-
" ,1
{ 1, 4, …, "} , 顶点间的距离集合为 # 9 {$ %& : %, & ! !, 1 &" " } , 称为点到点之间的耗费。要求找出一个 "%, 包含所有 " 个顶点的具有最小耗费和的环路, 即是要 找出一条最短 ;).’*&+% 回路。数学模型如下:
’ ’
.’%# # $ %& ) %& ,
% (1 & (1
(1)
<= &=

) %& # & (1

( 1 ,%, & ( 1, 4, …, ’; ( 1 ,%, & ( 1, 4, …, ’;
) %& # % (1
%, &! *
对所有 ! 的真子集 *; # ) %& "+ * + , 1 ,
) %& ! { ?, 1} , % ( 1, 4, …, ’;& ( 1 , 4, …, ’。 (@)
!"#$%&"’ %" %()*+#&’, -)#+-.)’ /("0#+.- 1&%2 -&.$#)%+3 )’’+)#&’, /)(%2+’" ,+’+%&4 )#,"(&%2. &’ 567869
!" #$%&’%(! , * !" )*(+&,%’ , * #-" ./(&01! , * 23 41(+&5*%! , * 2" 41/&6%(+!
( / !) (
&" 单亲遗传算法
&’ )" 退火选择算子 2!" 算法取消了在两条染色体之间操作的交叉 算子, 代之的是以仅在一条染色体上操作的基因换位 等遗传算子, 从而简化了遗传操作过程, 提高了搜索 效率, 并且不要求初始群体的多样性, 不易出现早熟
[ 4 0 6] 。单亲遗传算法也与一般遗传算法操作步 现象
! ! 在遗传迭代开始设置一个较大的初温 ! ( "" ) , 随 着迭代温度逐渐降低, 降温方式有很多种, 用式 (#) 方式进行降温。 ! ( " # $ ) $ %! ( ") , (#) 其中: % 为一个略小于 $ 的正数。在迭代中温度逐渐 降低, 则当新个体比父个体差时, 替换概率逐渐降低, 在迭代后期, 由于温度很低, 当代个体比父代差时替 换概率几乎为 " 。设最大迭代次数为 &, 最终低温为 则%为 !’ , % $( ! ’ ( !" ) ,
行商从某一城市出发, 对其他城市进行访问, 各城市 均需访问一次且仅访问一次后回到出发地, 问题是如
* * 收稿日期: ’""U$")$’!+ 作者简介: 吴值民 ( !#(( V ) , 男, 助理工程师; 研究方向: 优化 理论与方法; 6$OJ9L: SSWWOO’"""X H@>OJ9L+ F@O+ F7+
$( &
进行操作 +$ = :;99+ ( +’,? ($) ; ! > 随机得到一个 $, @ $) 基因位 +/ = :;99+ ( +’,? ($) ; $, @ $ ) A = <+)6),( +$ ) ; ! ! > 将 +$ 中的基因值放在 A 中 2: +$ B +/ ! ! <+)6),( +/ @ / : $: +$ )= <+)6),( +/ @ $ : $: +$ C $) ; ! ! <+)6),( +/ @ $ )= A; );6) ! ! <+)6),( +$ : $: +/ C $ )= <+)6),( +$ @ $ : $: +/ ) ; ! ! <+)6),( +/ )= A; ),? > 插入操作完毕 <+)6),-: = " ;> 计算新个体的适应值 :9+ D = $ : , C$ ! ! <+)6),-: = <+)6),-: @ E ( <+)6),( D) ,<+)6),(D ) ; @ $) ),? ( <+)6),( ,) ,<+)6),($) ) ; <+)6),-: = <+)6),-: @ ? > 新当代个体适应值计算完毕 2: <+)6),-: F( : 2)> 设置退火置换概率 ! ! < = $; );6) ! ! < = )A< ( (( : 2)C <+)6),-:) G .) ; ! ! + = +’,? ($) ; ! ! 2: + F = < > 按概率进行置换 ! ! ! ! <’+),( 2, : )= <+)6),-; ! ! ! ! ( : 2)= <+)6),-:; ! ! ),? ),?
$) ) # % (1
% % 01
0 $ ) ") 1 。
(5)
文献 [4] 已证明: 当某种选择方式能保证上一代 群体中的所有适应度大于零的个体都有机会被选择 到下一代时, 单亲遗传算法在引入了最优保持操作后 是全局收敛的。但锦标赛选择方式和父子竞争选择 方式都不能保证上一代群体中的所有个体都有机会 被选择到下一代, 所以算法不一定是全局收敛的。在
解决复杂问题的有效方法, 是基于生物进化中自然选 择、 适者生存和物种遗传思想的搜索算法。单亲遗传 算法 2!" ( 3),&-$%+ #$%$&’( )*#+,’&-. )
[ 4 0 5]
是指遗传
操作交叉和变异都是针对单独的一个个体进行操作 的一种遗传算法。在文献 [6 ] 中已说明, 2!" 的基因 换位算子以及其他一些算子隐含了序号编码的 !" 中两条染色体之间基因的交叉操作。因此, 2!" 能 象 !" 一样确保种群朝好的方向进化。
!" #$% 数学模型
[ 1, 5] 782 模型的数学描述为: 给定顶点集合 ! 9
随机生成 . 个 1 0 " 的随机排列, 得到 . 个个体的初 始种群, . 为种群数量。在 A"B"C 中生成 1 0 " 的 随机排列, 可调用函数 ,)%D3$,. ( ") , 生成初始种群 程序代码为 E+, ’ 9 1 : . F F 3),$%& ( ’, : )9 ,)%D3$,. ( %) ; $%D &’ (" 适应度函数 适应度值是 !" 中最重要的数据, 它是进化时优 胜劣汰的依据, 应用中总是根据问题的优化指标来定 (4) (>) (6) 以个体对应路线总长作为个体 义。对于 782 问题, 的适应值, 越小表明该个体越优。在 A"7B"C 求解 中先求出任意两个城市之间的距离, 设为 $ %& , 再计算 出每个个体对应路线总长作为个体的适应值, 存放于 向量 " 中, 某个体 ! 9 ( )1 )4 … ) " ) , 则该个体的适应 值为
( !+ 67897::;978 <7=>9>?>: @A B@;C= @A 67897::;=,2/- D79E+ @A 1F9+ G .:FH+ ,IJ7K978 ’!"""( ,BH97J; ’+ <7=>9>?>: @A ,:>:@;@L@8M,2/- D79E+ @A 1F9+ G .:FH+ ,IJ7K978 ’!!!"! ,BH97J)
相关文档
最新文档