当前位置:
文档之家› 旅行商问题_TSP_算法的比较
旅行商问题_TSP_算法的比较
综述
旅 行 商 问 题 ( TS P ) 算 法 的 比 较
苗卉
杨韬
澳大利亚昆士兰大学信息技术与电气工程学院 西南交通大学 电气工程学院 成都 610031
摘要: 旅行商问题是一种典型的求解多局部最优的最优化问题: 有n个城市, 一个旅行者从其中的一个城市出发, 经过所有的城市一次并返回出发的城市, 求最短的路线。本文 运用Matlab7.0实现三种能解决TSP问题的算法( 贪心算法, 模拟退火算法和遗传算法) , 并在TSP测试文件 berlin52.tsp和krob100.tsp上运行三种算法。从而比较和归纳每个算法的优 缺点。
在TSP测试文件berlin52.tsp和krob100.tsp上运行三种算法。从而 内能, E为其改变量, k为Boltzman常数。
比较和归纳每个算法的优缺点。
用固体退火模拟组合优化问题, 将内能E模拟为目标函数
1. 旅行商问题简介
值f, 温度T演 化 成 控 制 参 数t, 即 得 到 解 组 合 优 化 问 题 的 模 拟 退
化问题中又有着广泛的应用,故长期以来一直吸引着国内外许
2) 对k=1至k=L做第(3)至第6步;
多研究人员进行研究,他 们 尝 试 着 用 各 种 算 法 来 求 解TSP问 题,
3) 产生新解s′( 一般利用2- opt算法来产生新的路径) ;
归纳起来有:近似解法、局部搜索法、神经网络、遗传算 法、克隆
平均路径长度为7917.9, 与最优值的平均差: 375.9, 与最优解的 平均方差:475.6。在遗传序列算法中, 平 均 路 径 长 度 为8515.6, 与最优值的平均差: 973.6, 与最优解的平均方差: 1043.0。从以 上数据可以看出, 模拟退火算法的效率最高, 在有限的迭带次 数下求得的结果离最优解最近 ( 与最优解的平均方差为 475.6) 。
技 术 0与 市 场 81
2007 / 2
综述
生更适应环境的新一代“ 染色体”群。这样, 一代一代地进化, 最 后就会收敛到最适应环境的一个“ 染色体”上, 它就是问题的最 优 解 。 下 列 是 实 现 遗 传 算 法 解 决 TSP问 题 的 步 骤 :
1) 产 生 一 群 染 色 体( 不 同 的 游 历 路 径) 然 后 计 算 评 估 每 个 染色体的健壮度( 总路径长度) 。
5. 总结 本文运用Matlab7.0实现三种能解决TSP问题的算法 ( 贪心 算 法 , 模 拟 退 火 算 法 和 遗 传 算 法) , 并 在TSP测 试 文 件berlin52. tsp和 krob100.tsp上 运 行 三 种 算 法 。从 而 比 较 和 归 纳 每 个 算 法 的 优缺点。实验结果表明, 每个算法都有各自的优缺点。另外, 在 模 拟 退 火 算 法 和 遗 传 序 列 算 法 中 , 初 始 温 度 、衰 减 因 子 和 马 尔 可夫链长度等参数的控制, 还需要做进一步研究。今后应在更 先进的硬件平台 的 基 础 上 尝 试 较 大 的TSP地 图( 上 千 城 市 规 模 的地图) 来进 一 步 测 试 算 法 的 性 能 。 解 决TSP问 题 的 算 法 在 对 钻孔路线方案、连锁店的货物配送、网络布线, 铁路网优化等问 题中有着广泛的 应 用 , 所 以 改 进 和 研 究 解 决TSP问 题 算 法 对 实 际的工业生产是有重要意义的。 参考文献: [1] 王 忠 业,房 丽 娜. 基 于 遗 传 算 法 的 项 目 投 资 决 策 分 析[J]. 科 技 进步与对策, 2006, ( 5) : 110- 111. [2] 魏 延,谢 开 贵. 模 拟 退 火 算 法[J]. 蒙 自 师 范 高 等 专 科 学 校 学 报, 1999, ( 8) : 7- 11. [3] 芦金婵,王伟东. 模拟退火算法的改进[J]. 淮北煤师院学报, 2003, ( 12) : 16- 19. [4] 万军洲. 基于模拟退火技术的旅行商问题求解算法[J]. 软件 导刊, 2006, ( 8) : 88- 89. [5] Scott M. Thede An introduction to genetic algorithms October 2004 Journal of Computing Sciences in Colleges, Volume 20 Issue 1.
是最短的路径。如此然后去C, 再到D。所以, 此算法则总是选择 传算法之前, 给出一群“ 染色体”, 也即是假设解。然后, 把这些
最短的路径。
假设 解 置 于 问 题 的“ 环 境 ”中 , 并 按 适 者 生 存 的 原 则 , 从 中 选 择
2.2 模拟退火算法
出较 适 应 环 境 的“ 染 色 体 ”进 行 复 制 , 再 通 过 交 叉 , 变 异 过 程 产
的路径。城市越多, 可能的路径也越多。而且路径的增加速度非 体退火 原 理 , 将 固 体 加 温 至 充 分 高 , 再 让 其 缓 慢 降 温(即 退 火),
常快且是非线形的。当n很大时, 去尝试每一种可能的路径是不 使之达到能量最低点。反之, 如果急速降温(即淬火)则不能达到
可能的, 所以需要设计一个有效的算法去寻找最短的路径。现 最低点。加温时, 固体内部粒子随温升变为无序状, 内能增大,
今可以解决TSP问题的算法 有 很 多 , 如 : 模 拟 退 火 算 法 , 蚁 群 算 而缓慢降温时粒子渐趋有序, 在每个温度上都达到平衡态, 最
法, 遗传算法, 克隆算法等等。本文运用Matlab7.0实现三种能解 后在常温时达到基态, 内能减为最小。根据Metropolis准则, 粒子
决TSP问 题 的 算 法( 贪 心 算 法 , 模 拟 退 火 算 法 和 遗 传 算 法) , 并 在 温 度T时 趋 于 平 衡 的 概 率 为exp(- E/(kT)), 其 中E为 温 度T时 的
2) 选留健壮度较好的染色体( 总路径较短的路径) , 剩下的 作为父染色体;
3) 父 染 色 体 交 换 , 倒 转 或 移 位 产 生 下 一 代 染 色 体( 其 中 有 5%的染色体变异的概率) ;
4) 在下一代染色体的基础上回到第 1 步骤; 5) 循环整个程序多次, 记录下每代的最好的染色体; 6) 选择其中最优秀的染色体作为最优解。 3. TS P 算法的比较 3.1 实验器材与数据 用 来 测 试 算 法 性 能 的TSP文 件berlin52.tsp和kbro100.tsp是 两张具有52个城市和100个城市 的TSP地 图 , 它 们 可 以 从TSP问 题 的 数 据 库 中 下 载 得 到 。 下 载 TSP 测 试 文 件 的 地 址 为 : http: //www.iwr.uni- heidelberg.de/groups/comopt/software/TSPLIB95/tsp/ 测试的硬 件 平 台 主 要 配 置 为Pentium M 1.6 Ghz处 理 器, 333Mhz DDR 256M 内存, 测试算法的软件选用Matlab7.0。 3.2 实验结果 贪心算法: 运行贪心算法 计 算berlin52.tsp和kbro100.tsp各 10 次 , 记 录 路 径 总 长 度 和 程 序 运 行 时 间 , 在 贪 心 算 法 中 : Berlin52.tsp: 平均路径长度为9197.4; 程 序 平 均 执 行 时 间 : 0.032 秒; 与最优值的平均差: 1655.4; 与最优解的平均方差:1785.7。 Kbro100.tsp: 平 均 路 径 长 度 为28303; 程 序 平 均 执 行 时 间 : 0.038 秒; 与最优值的平均差: 6162;与最优解的平均方差: 6435.4。 模 拟 退 火 算 法 : Berlin52.tsp: 平 均 路 径 长 度 为7917.9; 程 序 平均执行时间: 9.3秒; 与最优值的平均差: 375.9;与 最 优 解 的 平 均 方 差: 475.6。Kbro100.tsp: 平 均 路 径 长 度 为23454; 程 序 平 均 执 行 时 间 : 156.8秒 ; 与 最 优 值 的 平 均 差 : 1313;与 最 优 解 的 平 均 方差: 1413.5。 遗 传 序 列 算 法 : 运 行 遗 传 序 列 算 法 计 算 berlin52.tsp 和 kbro100.tsp各10次 , 记 录 路 径 总 长 度 和 程 序 运 行 时 间 , 在 遗 传 序 列 算 法 中 : Berlin52.tsp: 平 均 路 径 长 度 为8515.6; 程 序 平 均 执 行 时 间 : 29.6秒 ; 与 最 优 值 的 平 均 差 : 973.6;与 最 优 解 的 平 均 方 差: 1043.0。 Kbro100.tsp: 平 均 路 径 长 度 为27184; 程 序 平 均 执 行 时 间 : 148.1秒; 与最优值的平均差: 5043;与最优解的平均方差: 5283。 4. 算法的结果分析 首先我们比较三个算法的运行时间 , 拿Berlin52.tsp为 例 : 在 贪 心 算 法 中 , 程 序 平 均 执 行 时 间 : 0.032秒 ; 在 模 拟 退 火 算 法 中, 程序平均执行时间: 9.3秒; 在遗传序列算法中, 程序 平 均 执 行时间: 29.6秒。由上数 据看出, 由于贪心算法不需要迭 代 , 所 以运行速度最快, 而遗传序列算法是计算最慢的算法。 然 后 我 们 比 较 三 个 算 法 的 准 确 度 , 还 是 以Berlin52.tsp为 例 : 在 贪 心 算 法 中 , 平 均 路 径 长 度 为 9197.4, 与 最 优 值 的 平 均 差: 1655.4, 与最优解的平均方差:1785.7。 在 模 拟 退 火 算 法 中 ,
4) 计算增量Cost=Cost(s′)- Cost(s), 其中Cost(s)为评价函数;
算 法 、模 拟 退 火 算 法 、混 合 遗 传 算 法 等 。
5) 若 t′<0 则 接 受 s′ 作 为 新 的 当 前 解 , 否 则 以 概 率 exp