1、2009 年 7 月 Journal on Communications July 2009第 30 卷第 7 期 通 信 学 报 Vol.30 No.7改进混合蛙跳算法求解旅行商问题罗雪晖,杨烨,李霞(深圳大学 信息工程学院,广东 深圳 518060)摘 要:以旅行商问题(TSP )为例,引入调整序思想设计了局部搜索策略,同时在全局信息交换过程中加入变异操作,提出一种改进混合蛙跳算法求解 TSP 问题。实验结果表明,与遗传算法和粒子群优化算法相比较,改进混合蛙跳算法在求解 TSP 问题上具有更好的搜索性能和顽健性。关键词:混合蛙跳算法;旅行商问题;局部搜索;全局信息交换中图分类号:TP18
2、文献标识码:A 文章编号:1000-436X(2009)07-0130-06Modified shuffled frog-leaping algorithm to solve traveling salesman problemLUO Xue-hui, YANG Ye, LI Xia(College of Information Engineering, Shenzhen University, Shenzhen 518060,China )Abstract: Modified shuffled frog-leaping algorithm to solve TSP was proposed,
3、 which presented the concept of adjustment sequence to design the strategy of local searching, and added the mutation operation in the global exchange of information. Experimental results indicate that, compared with genetic algorithm and particle swarm optimization algorithm, the proposed algorithm
4、 has more powerful search capability and more strong robustness in solving TSP.Key words: shuffled frog-leaping algorithm; traveling salesman problem; local search; global information exchange1 引言混合蛙跳算法是 2000 年由 Muzaffar Eusuff 和Kevin Lansey 提出的一种基于群智能的亚启发式计算优化算法,用于解决离散组合优化问题 1。作为一种新型的仿生物学智能优化算法,SFL
5、A 结合了基于模因(meme)进化的模因演算法(MA, memetic algorithm)和基于群体行为的粒子群算法(PSO, particle swarm optimization)2 种群智能优化算法的优点。该算法具有概念简单,调整的参数少,计算速度快,全局搜索寻优能力强,易于实现的特点 2。混合蛙跳算法主要应用于解决多目标优化问题,例如水资源分配、桥墩维修、车间作业流程安排等工程实际应用问题 35。著名的旅行商问题 6(TSP, traveling salesman problem)是一类典型组合优化问题,求得一条遍历所有城市的最短回路,属于 NP 难问题。对 TSP问题一般分为两大类
6、的研究:一类着重于研究算法解决大规模实际问题 7,如文献7中解决的 TSP问题城市规模最大达到 316 228 个,侧重点在于算法能快速地有效求得可行解;另一类则是利用TSP 问题来验证优化算法解决离散组合优化问题的有效性。几十年来,出现了很多近似优化算法用于求解 TSP 问题,基本分为 2 类:与问题本身特征相关的局部启发式搜索算法,如 2-Opt、3-Opt 和 Lin-Kernighan(LK) 8等。这类优化算法收稿日期:2008-08-02;修回日期:2008-11-20基金项目:国家自然科学基金资助项目(60772148)Foundation Item: The National
7、Natural Science Foundation of China (600772148)第 7 期 罗雪晖等:改进混合蛙跳算法求解旅行商问题 131多数充分利用问题本身特征的相关信息有效寻找问题的局部最优解,但是这些算法过分依赖于问题本身特征,当问题的规模扩大后,问题本身特征的相关信息更复杂,大大增加算法计算量,使得算法搜索时间过长。独立于问题的经典智能优化算法,如蚁群算法、遗传算法、模拟退火法、粒子群算法、免疫算法等。此类算法大多数是模拟生物进化算法,不依赖于问题本身特征,具有较强的全局搜索能力。近年来,许多学者将局部启发式搜索算法和智能优化算法相结合产生新型混合算法应用于求解 TSP
8、 问题。文献8提出了一种求解 TSP 问题的混合遗传算法,该算法结合了基于领域的 LK 算法和采用了交叉逆转算子;文献9介绍了求解 TSP 问题的蚁群算法,在算法中引入局部信息激素、信息激素更新策略与变参数策略等;文献10提出了基于改进粒子群优化算法求解旅行商问题,文中引入了速度变异机制和粒子自探索机制。这些研究成果表明把智能优化算法与局部启发式搜索相结合能有效提高算法搜索到最优解的能力。混合蛙跳算法提出时间不长,无论在理论还是在实践方面都处于起步阶段。文献11 尝试提出了运用混合蛙跳算法求解 TSP 问题,本文在此基础上引入调整序思想设计了局部搜索策略,同时在全局信息交换过程中加入变异操作,
9、从而提出一种改进的混合蛙跳算法求解 TSP 问题。实验结果表明,与遗传算法和粒子群优化算法相比较,改进的混合蛙跳算法在求解 TSP 问题上具有更好的搜索性能和顽健性。2 混合蛙跳算法的数学模型 1混合蛙跳算法(SFLA)是一种受自然生物模仿启示而产生的基于群体的协同搜索方法。这种算法模拟青蛙群体寻找食物时,按族群分类进行模因信息传递的过程。混合蛙跳算法主要包括 2 个部分:局部搜索和全局信息交换。各族群局部搜索使模因信息在局部个体间传递优化局部个体,混合全部青蛙,然后排序再分族群的过程使局部间的模因信息得到全局信息交换。局部搜索和全局信息交换一直持续交替进行到满足收敛条件结束为止。以下简要介绍
10、混合蛙跳算法的数学模型。2.1 基本概念随机生成 只青蛙组成初始群体,每个青蛙F个体表示问题的一个可行解为 ,12(,)dU计算青蛙个体适应度 ,其中 表示解空间的)(ifd维数。在随机生成初始群体之后,将青蛙个体按适应度 降序排列存储于)(if,然后按照特定的划分,1,XUF原则将整个青蛙群体分成 个族群mY1,Y 2,Y m,每个族群中包含 只青蛙,满足n下列关系: kkkk ifiUiif )(,1()(|,)( 1 , ,; f nFmn (1)若设定 =3, 只青蛙按适应度由高到低排mF列,位置位于第 1 的青蛙分入第 1 族群,第 2 的青蛙分入第 2 族群,第 3 的青蛙分入第
11、3 族群,第 4 的青蛙分入第 1 族群,依次类推,将所有青蛙个体划分到 3 个族群中。2.2 局部搜索青蛙种群中各族群执行局部搜索策略的目的是在不同的搜索方向上搜索局部最优,搜索迭代一定次数后使得族群中局部最优个体逐步趋向于全局最优个体。首 先 将 青 蛙 种 群 划 分 成 多 个 族 群 , 对 每 个 族 群进 行 局 部 搜 索 , 但 是 为 了 避 免 青 蛙 个 体 过 早 陷 入 局部 最 优 , 同 时 加 快 收 敛 速 度 , 在 每 个 族 群 中 按 照 特定 的 原 则 选 择 一 定 数 目 的 青 蛙 构 成 该 族 群 的 子 族 群 。对于青蛙群体,具有全
12、局最好适应度的解表示为 ;对于每一个子族群,具有最好适应度的gU解表示为 ,最差适应度的解表示为 。首先B WU对每个子族群进行局部搜索,即对子族群中最差适应度的青蛙个体进行更新操作,更新策略为 BWmaxBWmint(), 0ax, rdsSU (2)(3)qS其 中 , 表 示 青 蛙 个 体 的 调 整 矢 量 , 表 示 青 蛙Smaxs个 体 允 许 改 变 的 最 大 步 长 。 如 设 =1 3 5 4 2, WUB=2 1 5 3 4,允 许 改 变 的 最 大 步 长 =3, 若a132 通 信 学 报 第 30 卷rand=0.5, 则 =1+minint0.5(21),3
13、=1; q()U=3+maxint0.5(13), 3=2;依 此 相 同 的 操q(2)作 完 成 更 新 策 略 后 可 得 到 一 个 新 解 =1 2 5 4 3。qU2.3 全局信息交换全局信息交换有助于收集各族群搜索的局部信息,通过模因在全局中的传递,获得新的搜索全局最优解的方向。当所有族群经过一定次数的局部搜索后,将各族群中青蛙个体混合在一起,按适应度 降序排列后,重新划分族群,这样使)(if得青蛙个体间的模因信息得到充分的传递,然后继续进行局部搜索,如此反复直到满足收敛条件算法停止。3 混合蛙跳算法求解 TSP 问题TSP 问题描述如下:给定 个城市及各个城市d的坐标,求一条经
14、过各城市一次且仅一次,起始城市和终止城市相同的最短闭合路径。3.1 青蛙个体位置向量表示每个青蛙个体的位置向量表示 TSP 问题的一个可行解。设青蛙 ,其中12(,)dU代表 个城市的编号, 表示从城市dU,21 U出发依次经过城市 最后回到城市 的, 1路径。另外,青蛙个体适应度函数 定义为闭)(if合路径长度的倒数。3.2 子族群的构造和青蛙个体的更新策略子族群中青蛙个体的选择策略是青蛙个体的选择权重大小与适应度的大小成正比,即适应度越大的青蛙个体,选择权重越大,越容易被选入子族群;反之亦然。族群中的青蛙依概率选取构造成子族群,其概率公式为, (4)2(1)/()iPni1,2in其中,
15、表示在当前族群中第 青蛙被选入子族群i的概率, 表示每个族群中青蛙个数,族群中每个青蛙被选择的概率之和满足关系式 。1niP2.1 节中有关混合蛙跳算法的青蛙个体更新策略有可能会出现不可行解,所以针对 TSP 问题,混合蛙跳算法中的青蛙个体更新策略为任意截取中的一段路径序列,替换 与之相对应的位BUWU置, 其余位置的城市序号若出现在这段路径序W列中,则将其去除掉,反之保持不变,最后将没有出现的城市序号随机插入路径序列中,从而生成一个新的可行解 。若 优于 ,用 更新qUqWqU,否则,用全局最优的 代替 ,然后进行WUgB上述相同操作,生成一个新的可行解 。若 优qq于 ,用 更新 ,否则,
16、随机产生一个新的qW可行解更新 Uw。4 改进的混合蛙跳算法求解 TSP 问题虽然文献11中混合蛙跳算法采用的局部搜索能保证更新解的可行性,但是随机截取一段的操作存在盲目性,使得局部搜索容易早熟。为此,本文在文献11 的基础上,引入调整因子和调整序思想设计了局部搜索策略,同时在全局信息交换过程中加入变异操作,从而提出了一种改进的混合蛙跳算法求解 TSP 问题。4.1 基于调整序的局部搜索策略调整序 12是一个可行解向另一个可行解转换的一个调整序列。局部搜索中子族群的最差解利用调整序思想优化,比简单的随机截取一段替换更有指导性,所以在局部搜索中引入这种思想更新子族群的最差解。4.1.1 调整因子
17、和调整序 121) 调整因子设 个城市的 TSP 问题的解为 d (),iU定义调整因子 为将 中的1,2i ),(21iTO插入到 位置之前,则 为 经U2i ),(21 i调整因子 操作后的新解。例如,当 =(1 3 ),(1TO5 2 4),调整因子为 ,则 =(1 )2,4( ),4(T2 3 5 4)2) 调整序一个或多个调整因子的有序排列就是调整序,记作 , ,其中ST),(21NTO是调整因子,它们之间的顺序是有NO,21意义的。 、 分别为 2 个不同解,调整序AUB表示将 调整为 的调整序,即B()ABU12()(,)NSTT(5)A12NO构造一个调整序。设定 =(1 3
18、5 2 4),A=(3 1 4 2 5),需要构造一个调整序 ,BUBA()S第 7 期 罗雪晖等:改进混合蛙跳算法求解旅行商问题 133使得 。可见 ,所ABAB()USTU12BA3以第一个调整因子 , ,得到12(OTO=(3 1 5 2 4); ,所以第二个调整因354子是 , ,由此类推,可)(A12()得 B123(,)5,(,4)STUT文献12中求解 2 个 TSP 解序列之间的调整序之前,需要将两个 TSP 解序列转化为均以 1 为起点,预处理的目的是求解出两个 TSP 解序列之间的最简短的调整序列(即调整因子个数最少) 。因为在求解过程中,大多数所得的调整序是将局部最差解调
19、整为局部最优解的情况,为了尽可能使得调整序中调整因子个数较多,增加青蛙个体更新的多样性,从而增加了算法搜索能力,避免过早陷入局部最优,本文在求解调整序列时,不需要进行解序列预处理。4.1.2 青蛙个体的更新策略青蛙个体之间的差异是青蛙个体之间的调整序,调整序的数目为非负数,所以青蛙个体的更新策略为(6)BWmaxmint(),lradlegthSTUl(7)()| ,12iiSTOi(8)q其中, 表示调整序B()length中全部调整因子个数, 表示更新BW()Ul所选用的 部分调整因子个数,ST表示允许选用的最大调整因子个数, 表示更maxl S新 的调整序。图 1 所示为青蛙个体更新的一
20、个例子 , ,BW()5length3l。12,STO3图 1 改进的混合蛙跳算法中局部搜索的青蛙个体更新策略4.2 全局信息交换策略求解 TSP 问题的混合蛙跳算法并未考虑到TSP 问题所具有的特点,即边与边之间的邻接关系,不能很好地保留原有边的邻接关系,所以不能将可行解中的优良性能很好地保留在青蛙群体中,不能提高算法的收敛速度。因此在改进的算法中,各个族群的青蛙进行过局部搜索之后,将全体青蛙重新混合在一起,按照一定的概率对每一个青蛙个体进行贪婪倒位变异操作。改进的混合蛙跳算法在全局信息交换过程中加入青蛙个体变异操作,保证了青蛙个体的多样性,缩短算法搜索到全局最优解的时间。贪婪倒位变异算子
21、13利用了贪婪法的基本思想,其主要思想是:对某一青蛙个体 ,随机选U择一个城市 ,与城市 左、右连接的城市分别iUi表示为 , ,然后选取除了 、 、1ii1i以外的距离 最近的城市 ,若在 中i i j与 之间间隔的城市数少于 与 之间间ji i隔的城市数,则对 到 之间的城市进行倒位;1ij反之,则对 与 之间的城市进行倒位。例如:j对青蛙个体 (1 3 5 2 6 4 8 7 9) ,随机选择一个U城市 =5,则 =2, =3,离城市 5 最近的ii1i城市 =8,则倒位后产生新的青蛙个体 (1 3 5 j U8 4 6 2 7 9) ,如果新的青蛙个体 优于青蛙个体,则用 取代 U 放
22、入青蛙群体中。14.3 算法实现不 失 一 般 性 , 假 设 算 法 收 敛 的 准 则 为 连 续 多次 迭 代 所 得 TSP 路 径 的 总 长 度 未 有 改 善 。 以 下 给出 改 进 的 混 合 蛙 跳 算 法 求 解 TSP 问 题 的 基 本 步 骤 。1) 初始化参数(青蛙族群数 ,族群中青蛙m数 n(总青蛙数 F=(mn),子族群中青蛙数 q,还有族群中青蛙更新迭代次数 的设置);IT2) 随机产生 个初始可行解,并计算青蛙个体的适应度;3) 青蛙个体按适应度降序排列划分成 个族m群,构造子族群;4) 局部搜索。对每个族群中的子族群按 4.1节的方式进行青蛙个体的更新;
23、5) 所 有 族 群 混 合 , 每 个 青 蛙 个 体 进 行 4.2 节 青蛙 个 体 变 异 操 作 , 如 产 生 的 新 个 体 优 于 原 来 个 体 则取 代 原 来 青 蛙 个 体 放 入 青 蛙 种 群 中 , 重 新 计 算 适 应134 通 信 学 报 第 30 卷度 ;6) 判断是否满足算法收敛条件,若满足,输出最优路径序列;否则,更新全局最优解,返回到步骤 3) 。5 实验仿真本文采用 TSPLIB14中的Burma14、Bays29 、Eil51 和 Eil101 对算法进行测试。实验环境:PC 机 PIV-2.8GHz CPU,512M RAM,Window XP
24、,Matlab 6.5。参数设置:青蛙群体总数 ,族群数 ,子族群中青蛙10FN10m个数 ,族群中青蛙更新迭代次数 IT=q,2/3q青蛙个体允许选择的最大调整因子个数(其中 表示城市数) 。采用平均距离max/l对算法的性能进行客观评价,收敛时所需的平均时间对算法运算量进行评价;算法稳定性的评价是基于相对误差。实验仿真是以同样实验条件下对每个 TSP 问题进行 50 次计算机仿真的统计平均,结果如表 1 所示,其中针对不同规模 TSP 问题,第一行表示混合蛙跳算法的实验结果,第二行是改进混合蛙跳算法的实验结果。表 1 混合蛙跳算法和改进混合蛙跳算法在不同规模 TSP 问题上的测试结果TSP
25、 实例 已知最优值 算法最优值 平均距离 相对误差/%平均运行时间/s30.88 30.88 0.00 1.84Burma1430.8830.88 30.88 0.00 2.352 020 2 044 1.20 6.75Bays2920202 020 2 020 0.00 8.21428.87 436.76 1.84 17.42Eil51428.8711428.87 430.66 0.42 22.36655 673 6.99 28.38Eil101 629629 649 3.18 42.74注:相对误差 %10OptAvgEr由表 1 可 知 , 与 混 合 蛙 跳 算 法 相 比 较 , 改
26、 进 算法 在 求 解 Burma14、 Bays29 和 Eil51 问 题 能 够 搜 索到 最 优 路 径 , 而 且 寻 找到最优路径的成功率有显著改善。值得注意的是,混合蛙跳算法在求解 Eil101问题搜索不到最优解,而改进算法可以搜索到最优 解 。以 51 点 Eil51 为 例 , 运 行 10 次 每 次 迭 代 50 代 。将 改 进 混 合 蛙 跳 算 法 与 混 合 蛙 跳 算 法 在 搜 索 最 优 值时 , 随 迭 代 次 数 变 化 的 平 均 情 况 如 图 2 所 示 。 由 图中 可 见 , 虽 然 改 进 混 合 蛙 跳 算 法 每 一 次 迭 代 需 要
27、操作 的 步 骤 增 多 了 , 但 是 它 所 需 的 收 敛 次 数 明 显 比 混合 蛙 跳 算 法 少 , 而 且 搜 索 的 平 均 结 果 也 有 改 善 , 所以 所 耗 费 的 运 行 时 间 虽 然 较 长 , 但 综 合 考 虑 还 是 可接 受 范 围 。图 2 混合蛙跳算法和改进混合蛙跳算法求解 Eil51问题的搜索收敛速度对比表 2 给 出 了 改 进 混 合 蛙 跳 算 法 , 改 进 粒 子 群 优化 算 法 15, 遗 传 局 部 搜 索 算 法 16在 运 行 环 境 大 致 相同 的 情 况 下 求 解 Eil51 问 题 所 得 到 的 算 法 最 优 值
28、 、平 均 距 离 、相对误差和平均运行时间的数据结果。表 2 混合蛙跳算法与其他改进算法在求解 Eil51 问题上的测试结果算法类型 平均距离 算法最 优值相对误差/%平均运行时间/s改进粒子群优化算法 15 440.78 436.77 2.77 遗传局部搜索算法 16 437.83 431.99 2.09 18.44改进混合蛙跳算法 430.66 428.87 0.42 22.36实验结果显示,在各算法运行时间相当的情况下,改进混合蛙跳算法在求解较大规模 TSP 问题上与其他 2 种优化算法相比,其性能更稳定。6 结束语混合蛙跳算法是一种基于群智能的亚启发式计算优化算法,用于解决离散组合优
29、化问题。本文在文献11的基础上引入调整序思想设计了局部搜索策略,同时在全局信息交换过程中加入变异操作,从而提出一种改进的混合蛙跳算法求解TSP 问题。实验仿真结果表明,与遗传算法和粒第 7 期 罗雪晖等:改进混合蛙跳算法求解旅行商问题 135子群优化算法相比较,改进的混合蛙跳算法在求解 TSP 问题上具有更好的搜索性能和顽健性。在通信网络中,网路的 QoS 路由规划问题是计算带有多个条件限制的最短路径问题,与 TSP问题同属于离散组合优化问题。改进混合蛙跳算法已经成功地应用于 TSP 问题,取得了较好的结果。由于混合蛙跳算法与其他群智能优化算法相比,其算法涉及参数少、易于实现、搜索能力强,所以
30、下一步工作将探讨如何将混合蛙跳算法应用于 QoS 路由规划问题。参考文献:1 EUSUFF M M, LANSEY K E. Water distribution network design using the shuffled frog leaping algorithmA.World Water CongressC. 2001.2 李英海, 周建中, 杨俊杰等. 一种基于阈值选择策略的改进的混合蛙跳算法J. 计算机工程与应用,2007,43(35),19-21.LI Y H, ZHOU J Z, YANG J J, et al. Modified shuffled frog leapin
31、g algorithm based on threshold selection strategyJ. Computer Engineering and Applications, 2007, 43(35):19-21.3 EUSUFF M M, LANSEY K E. Optimization of water distribution network design using the shuffled frog leaping algorithmJ. J Water Resource Plan Manage, 2003, 129(3):10-25.4 HATEM E, EMAD E, TA
32、REK H, et al. Comparison of two evolutionary algorithms for optimization of bridge deck repairsJ. Computer-Aided Civil and Infrastructure Engineering, 2006, 21:561-572.5 ALIREZA R V, ALI H M. Solving a Bi-criteria Permutation Flow-shop Problem Using Shuffled Frog-Leaping AlgorithmM. Soft Comput, Spr
33、inger-Verlag, 2007.6 LAWLER E L, LENSTRA J K, RINNOOY K, et al. The Travelling Salesman Problem: a Guided Tour of Combinatorial OptimizationM. Chichester: John Wiley & Sons, 1985.7 NGUYEN H D, YOSHIHARA I, YAMAMORI K, et al. Implementation of an effective hybrid ga for large-scale traveling salesman
34、 problemsJ. IEEE Trans on Systems, man, and Cybernetics-Part B: Cybernetics, 2007, 37(1):92-99.8 莫海芳, 康立山 . 求解 TSP 的混合遗传算法J. 计算机工程与应用,2007,43(18),40-44.MO H F, KANG L S. Hybrid genetic algorithm for traveling salesman problemJ. Computer Engineering and Applications, 2007, 43(18): 40-44.9 张军英,敖磊,贾江涛等
35、. 求解 TSP 问题的改进蚁群算法J.西安电子科技大学学报(自然科学版),2005,32(5),681-685. ZHANG J Y, AO L, JIA J T, et al. An improvement of the ant colony algorithm for solving TSP problemsJ. Journal of Xidian Unviersity, 2005, 32(5):681-685.10 王翠茹,冯海讯,张江维等. 基于改进粒子群优化算法求解旅行商问题J.微计算机信息(测控自动化),2006,22(8),273-275.WANG C P, FENG H X,
36、 ZHANG J W, et al. Solving traveling salesman problem based on improved particle swarm optimization algorithmJ. Micro-Computer Information (Automation of measurement and control), 2006, 22(8):273-275.11 LUO X H, YANG Y, LI X. Solving TSP with shuffled frog-leaping algorithmA. The Eighth Internationa
37、l Conference on Intelligent Systems Design and Applications, 2008.12 WANG C R, ZHANG J W, YANG J, et al. A modified particle swarm optimization algorithm and its application for solving traveling salesman problemJ. Neural Networks and Brain, 2005, 689-694.136 通 信 学 报 第 30 卷罗雪晖(1974-),女,广东汕头人,硕士,深圳大学
38、讲师,主要研究方向为智能信息处理及优化算法。杨烨(1981-),男,江苏盐城人,深圳大学硕士生,主要研究方向为智能信息处理及优化算法。李霞(1968-),女,四川乐山人,博士,深圳大学教授,主要研究方向为智能信息处理、模糊模式识别与优化算法。13 彭丹平, 林志毅, 王江晴. 求解 TSP 的一种改进遗传算法J. 计算机工程与应用,2006(13),91-93.PENG D P, LIN Z Y, WANG J Q. An improved genetic algorithm for tsp problemJ. Computer Engineering and Application, 200
39、6, (13): 91-93.14 Ruprecht karls universitat heidelbergEB/OL. http:/www.iwr.uni- heidelberg.de/groups/comopt/software/TSPLIB95/.15 ZHANG C S, SUN J G, WANG Y, et al. An improved discrete particle swarm optimization algorithm for TSPA. International Conferences on Web Intelligence and Intelligent Agent Technology-WorkshopsC. 2007.16 GHOSEIRI K, SARHADI H. A 2opt-DPX Genetic local search for solving symmetric traveling salesman problemA. Proceedings of the 2007 IEEE IEEMC. 2007. 903-906.作者简介: