求解TSP 的交配算子设计策略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0引言
旅行商问题(traveling salesman problem,TSP)是著名NP完全问题之一,常被用于测试和评价算法的性能。
该问题可以简单描述如下:有一个商人需要选择一条最短的哈密顿回路拜访
!。
当
细描述了作为比较的各种交配方案,并介绍了实验方法,给出对Gr17,Oliver30,Eil51,Eil76,Krob100等测试数据的进行测试的实验结果,并通过实验结果提出了交配算子的设计策略,再用实验检验了该策略的有效性,最后进行总结。
1
求解TSP 的遗传算法描述
1.1
算法流程
简单遗传算法的流程如图1所示。
1.2适应度函数
适应度函数必须能够配合选择方式有效区分子代的优
劣,文中采用的方式是
,
其中
/20
(
/10次尝试。
同时
因为倒置较长的序列通常不会得到路径提升,所以控制倒置位置a ,b
之间的差小于等于
/5个)位置,设父代1中所选位置对应的
数字从左到右依次为
2
,…,,然后从父代2
中也找到这
1
,
£¬Ë
üµÄÏÂÒ»¸ö³ÇÊÐΪ£¬Èç¹û¸¸´ú2
中
与
/5次。
经过观察可以知道,每进行一次倒序操作,会从父代2中移植一条新边到父代1,同时会产生一条新边,该操作新边的产生速度是可以由操作次数来控制的。
从实验来看,因为引进新边的质量不可控制,纯粹的倒序操作效果并不好,但它引入了边的思想,因此仍然把它归为为TSP 设计的交配算子。
图1简单遗传算法的流程
随机生成初始种群计算适应值并保存最优解
交配变异优化(可省略)计算适应值并保存最优解
选择新子代
是否满足终止条件
结束
Y
N
2.2.2三交叉交配法(3PM )[10]
三交叉交配比传统交配方法增加了一个父代,期望产生
适应性更加强的子代。
方法的主要过程如下:
父代1:12345678父代2:87654321父代3:43217865
(1)令当前位置为1,标准城市为父代1中的第一个城市,即取1;
(2)向右轮转城市,使3个父代当前位置与标准城市一致,本例一次轮转后为:
父代1:12345678父代2:18765432父代3:17865432(3)假设distance
(
)
为城市
的距离,则比较distance
(1,2),distance (1,8),distance (1,7),取最短的路径,假设distance (1,2)最短,则取标准城市为2,当前位置加1,跳转到步骤b 继续轮转,
共执行
,如上例中,城市1
的邻居集V 1是{2,8,3},|V
|不为0,找出min {|V
Ϊ
ΪÏÂÒ»¸ö·ÃÎʳÇÊÐ
|=0,
随机选取一个未访问城市作为下一个访问城市
坐标是迭代次数,其中是在30次仿真实验
中第
*10
图2Gr17的进化过程
Generation
40
80120
160
3PM
EX CM
OR GT
L e n g t h 3600
34003200
30002800260024002200
2000
图4Krob100的进化过程
Generation
200
400
600
8001000
3PM EX
CM GT
OR
L e n g t h
140000120000
10000080000600004000020000
配法(CM)更差。
从进化过程图看,倒序交配法和传统交配算子表现相似,说明尽管它开始考虑了边的信息,但并没有利用好边的信息。
因为在每次倒序中,均要父代1均从父代2中获取一条边,同时产生一条新边,而产生的新边是无法保证其优劣的,因此多次倒序之后(文中是
(文中取0.8)下的贪心策略(GGT),如果随机产生的一个0~1之间的数大于
|不为0,找出min{|VΪ
|}不惟一,则找到distance()(即
边n-k最短)最小的为下一个访问城市|=0,则在未访
问城市中找到distance()最小的为下一个访问城市。