基于遗传算法的TSP问题求解与仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 14 卷第 4 期 2007 年 8 月 文章编号 : 1671- 637
电光与控制 ELECTRONICS OPT ICS & CONTROL ( 2007) 04 0154 05
Vol. 14 .4 Aug. 2007
基于遗传算法的 TSP 问题求解与仿真
刘雁兵 , 刘付显
713800) ( 空军工程大学导弹学院 , 陕西 三原
0
引言
方案、 连锁店的货物配送路线[ 2] , 以及防空作战中火 力单元的部 署优 化和空 袭目 标分配 优化 等, 解决 TSP 问题有很重要的理论和实际意义。 TSP 问题表述 为: 有 N 个城市, 寻 求一条巡回 路线 , 不重复地经过所有城市, 使路线的距离最短。 TSP 问题通常分为两类, 一类是对称的 TSP 问题 , 任 意两城市间的往返距离相等; 另一类是非对称 TSP 问题, 其中任意两城市间往返的距离不等 , 本文主要 讨论对称 TSP 问题。
Solution and simulation of TSP problem based on genetic algorithm
LIU Yan- bing, LIU Fu- xian
( Missile Institute, Air Force Engineering University , Sanyuan 713800, China)
156 现较方便。 4) 变异算子。
电光与控制
第 14 卷
1. 4
算法步骤 1) 设置算法参数 , 产生初始种群 ; 2) 解码并计算适应度; 3) 进行选择操作 ; 4) 对种 群进 行 Doping 操 作 ( pop size ( ( 1-
& 单点变异。随机选择一个变异点, 变异值满 足式 ( 1) 。一条 9 城市巡回路线为 T 1 = ( 1, 7, 6, 9, 5, 8, 3, 4, 2) , 其编码为 S 1 = ( 0, 7, 5, 5, 3, 1, 0, 1, 0) 。现 对 s 4 进行单点单位变异 , 即每步只对变异位进行减 ( 增) 1 操作, 变异操作结果如图 1 所示。
收稿日期 : 2005 11 14 修回日期 : 2006 02 09
1
遗传算法
作者简介 : 刘雁 兵 ( 1978 ) , 男 , 湖 北洪 湖人 , 硕士 生 , 主 要研 究方向为作战规划与对策研究 , 智能优化算法。
传统的求解 TSP 问题通常采用自然编码 ( 即按 照巡回路 线经过 的城 市序号 的先后 顺序排 列 ) 和 Grefenstence 编码[ 3] 等, 二者均有 一些 明显的 缺点。
S = ( 0, s 2 , !, sN - 1 , 0) = ( s 2 , !, sN - 1 ) 。 适应度函数 初始种群根据编码规则随机产生 M 个个体 , 将 个体基因型解码为个体表现型, 然后计算出个体的 路径长度 l ( S i ) , 记为 li , 个体 Si 的适应度定义为 f ( Si ) = l#( S i ) / 其中 l#( Si ) = 0 max ( li ) - li l i % max ( li ) li < max ( l i ) ( 3) 式中 : 为适应度系数; max ( li ) 为本代个体的最大 巡回距离。 通过修改 可以调整选择压力 , 当 = 1 时, 最 差个体适应度为 0; 当 < 1 时 , 对于 l i % max ( l i ) 的 个体 S i , 其适应度等于 0, 在选择操作时将被淘汰。 当 > 1 时, 所有个体均有可能被复制到下一代。 越小选择压力越大 , 收敛速度也就越快, 但是过大的 选择压力容易导致算法早熟 , 通常取 0. 9< 1. 3 遗传算子 < 1. 5。 i = 1, 2, !, M
第4期
刘雁兵等 :
基于遗传算法的 TSP 问题求解与仿真
155
自然编码虽然直观简单, 但是在进行交叉操作时会 产生非法个体; Grefenstence 编码解决了以上不足 , 但 在进行交叉变异操作时 , 对父代的 模式破坏较大。 本文引入了一种新的编码机制 , 能够使得每个基因 型个体对应一条实际巡回路线 , 在遗传操作时产生 的子代个体合法 , 且有效地把父代中的优良模式遗 传到下一代。 1. 1 编码与解码规则 对于一个 N 城市旅行商问题, 假定对各个城市 的一个访问顺序为 T = ( t 1, t2 , !, ti , !, tN ) , 1 ∀ t i ∀ N 其中 : ti 为遍历城市编号 , 其对应编码为 S = ( s 1 , s 2 , !, s i , !, sN ) , 其中 s i 等于在 T 中 ti = i 左侧且比 ti 大的城市编号个数。 以 9 个城市为例 , 一条巡回路线为 ( 1, 7, 6, 9, 5, 8, 3, 4, 2) , 则对应的编码中 s 1 为巡回路线中在城市 1 左侧且比数值 1 大的城市编号个数 , 显然 此例中 s 1 = 0; s 2 为在城市 2 的左侧且比数值 2 大的城市编 号有 7、 6、 9、 5、 8、 3、 4 共 7 个 , 故 s 2 = 7; 同理 s 3 为巡 回路线中在城市 3 的左侧比数值 3 大的城市编号个 数, 有 7、 6、 9、 5、 8 共 5 个, 故 s 3 = 5; 依此类推 , 可得 路径编码 S = ( 0, 7, 5, 5, 3, 1, 0, 1, 0) 。 解码即编码的逆过程, 按 照 sN 到 s 1 的顺 序逐 一将路径编码还原为巡回路线。设一巡回路径编码 为 S #= ( 1, 6, 4, 5, 2, 2, 1, 1, 0) , 其对应巡回 路线为 T#。 s 9 = 0, 即在城市 9 左侧比数值 9 大的城市编号 个数为 0 ( 显然此式恒成立) , T#= ( 9) ; s 8= 1, 即在城 市 8 的左侧 , 比数值 8 大的城市编号个数为 1, 故城 市 8 应在城市 9 的右侧 , T#= ( 9, 8) ; s 7 = 1, 即在城 市 7 的左侧 , 比数值 7 大的城市编号个数为 1, 故城 市 7 应在城市 9 的右侧, 城市 8 的左侧 , T#= ( 9, 7, 8) ; 依此类推直至得到完整巡回路径 , 可得 : T#= ( 9, 1, 7, 5, 6, 3, 8, 2, 4) 。 对于城市数为 N 的编码 , 基因取值满足下式 : 0 ∀ s1 ∀ N - 1 0 ∀ s2 ∀ N - 2 ( 1) 0 ∀ sN - 1 ∀ 1 sN = 0 由于 sN = 0, 所以编码时将其省略; 另外为进一步降 低编码位长, 缩小搜索空间 , 避免冗余搜索, 将城市 1 固定在巡回路线的起始位置 , 即 s 1 = 0。则 N 城市 遍历回路 T 的编码长度为 N - 2, 编码为 1. 2
P d ) ∀ j < pop size) ; 5) 交叉、 变异操作 , 产生下代种群 ( 0 ∀ k < pop size) ; 6) 是否满足终止条件 , 如果满足则转 7) ; 否则 转 2) ; 7) 解码并输出最短巡回路径。
2
算法仿真
为了测试算法, 本文分别对不同规模的 TSP 问

要:
TSP 问题常用的自然编码方式在进行遗传操作时, 会产生不合法路径 。 设计了一种
新的编码方式, 能有效避免这一问题 , 遗传操作简单易行 , 无需对不合理的基因片段进行合法化修 正。在求解过程中, 为了解决遗传算法的收敛速度和全局收敛性之间的矛盾 、 避免早熟, 运用了 Doping 策略和参数切换方法。 最后进行了仿真测试 。结果表明, 该算法能迅速淘汰劣解 , 具有较快 的收敛速度 ; 能有效遏制早熟 , 对不同规模的 TSP 问题能有效求得最优解 。 关 键 词: 遗传算法 ; V271. 4; 旅行商问题 ; TP301. 6 组合优化; 参数切换; A 收敛性 中图分类号 : 文献标识码:
j= 1

M
l#( Sj )
( 2)
Hale Waihona Puke Baidu
遗传算子的选择必须与编码方式匹配, 一方面 是为了产生合法的个体 , 使算法得以继续下去; 另一 方面是为了使算法能较快收敛。 1) Doping 算子 ( 掺杂算子) 。 为避免算法出现早熟, 文献[ 4] 中提出了 Doping 算 子, 并证明了这种算子在仿真实验中能有效遏制群体 出现早熟。其基本思想是, 在每代中随机产生 m 个新 个体, 参与选择、 交叉、 变异操作。掺杂浓度为掺杂个 体数量与种群规模之比, 记为 P d 。由于这些掺杂个体 随机产生, 参与遗传操作后, 可以丰富种群个体的多样 性, 使早熟概率大大降低。但是掺杂浓度也不应太大, 否则算法近似于随机搜索。根据作者多次测试, 通常 情况下掺杂浓度 P d 应小于 10% 。 2) 选择算子。 采用比例选择方法 , 根据个体的适应度, 采用概 率选择即轮盘赌策略, 并保留当前最优解 , 使适应度 较大的个体能以较大的概率生存下来。 3) 交叉算子。 采用两点交叉, 即在种群中随机选择两个个体 和两个交叉点 , 互换两个 交叉点之间的基 因片段。 采用前文所述的方法对路径进行编码时 , 种群中每 个染色体的基因值均满足式 ( 1) , 交叉操作后生成的 子代个体仍然满足此式 , 因而子代个体为合法个体, 无需对子代个体进行复杂的基因调整, 在程序中实
TSP ( Traveling Salesman Problem, TSP ) 问 题是 组 合优化问题中最典型的问题之一, 并且是一个 NPHard 问题, 吸引了包括数学、 运筹学、 物理、 生 物和 人工智能等不同领域的研究者。TSP 问题展示了组 合优化的所有方面 , 它已经成为并将继续成为测试 新算法的标准问题 , 如模拟退火、 禁忌搜索、 神经网 络以及进化方法等都用 TSP 来测试 [ 1] 。很多实际问 题可以转化为 TSP 问题, 如印制电路板的钻孔路线
Abstract: In Traveling Salesman Problem( TSP) , illegal routes may be produced by genetic operations using the traditional encoding method. To avoid this problem, a new encoding method is presented. With the new method, it is easy to implement genetic operations, and it is not necessary to adjust the illicit gene parts in children individuals. To prevent premature convergence and solve the conflict between the convergence speed of genet ic algorithm and that of the global convergence, Doping strategy and parameter switch method are used. Experimental result shows that these methods can help to enhance the capabilities of global convergence and avoid premature convergence, and the algorithm is efficient for solving TSP problems with different scales. Key words: genet ic algorithm; switching; convergence traveling salesman problem; combination optimization; parameter
相关文档
最新文档