基于流水算法的旅行商问题求解

| 浏览次数:

摘要:为了求解旅行商问题,本文借用“水无常形,水往低处流,水流千里归大海”的自然规律,提出新型元启发式求解算法:流水算法。新算法主要包括流水局部搜索、水漫溢出、流水凿洞、蒸发下雨4个算子,同时具有禁忌搜索和正反馈机制特点,兼顾全局搜索和局部搜索能力。最后,本文应用MATLAB平台对算例进行仿真,并与其他经典的元启发式算法进行比较,结果表明流水算法是求解旅行商问题的有效方法,具有较好的收敛性。

关键词:旅行商问题;流水算法;元启发式算法;优化

中图分类号:C934文献标识码:A文章编号:10035192(2014)01006505doi:10.11847/fj.33.1.65

1引言

旅行商问题(Traveling Salesman Problem,简称TSP)又称为旅行推销员问题、货郎担问题,最早于1859年由威廉·汉密尔顿首次提出,属于运筹学中经典的组合优化难题。该问题是单一旅行者由起点出发,不重复地走完其余地点并回到原出发点,在所有可能的路径中求出路径长度最短的一条。旅行商问题属于组合优化范畴,是NPhard问题,具有组合优化问题的典型特征,并且问题描述简单,因此很多学者将旅行商问题算例作为算法研究的公共实例。同时,旅行商问题有着广泛的实际应用背景,如物流配送、调度排班、道路交通、计算机网络节点配置、生产调度、组合优化求极值等问题。所以,旅行商问题成为优化领域里的研究热点,吸引了管理优化、运筹学、数学、物理、生物和人工智能等领域的研究者的关注。

TSP问题的解空间是多维、多局部极值、复杂的解空间。这个解空间类似一个无穷大的丘陵地带,山峰、山谷连绵起伏,其中的山谷就代表局部极低值,最低的山谷代表最短路径,对应的方案就是最佳旅行方案。旅行商问题的求解方法大体可以分为两类:精确求解法和近似求解法。精确求解法主要是通过解析方法求得最优解,包括枚举法、分枝定界法、动态规划等。旅行商问题描述虽然非常简单,但随着需要访问城市数目的增加,会出现所谓的“组合爆炸”现象,在多项式时间内无法精确求解。所以,人们提出了以获得次优解为目标的近似启发式求解算法。受到自然界的启发,人们提出各种各样的元启发式算法(MetaHeuristics)用于优化求解,如遗传算法[1]、模拟退火[2]、禁忌搜索算法[3]、蚁群算法[4~6]、粒子群优化算法[7]等。这些智能算法被广泛地应用于TSP问题求解,虽然不能保证获取最优解,但当问题规模较大时,保证在可行时间内找到满意的解。求解TSP问题的近似求解算法又可分为环路构造算法和环路改进算法两类[8]。前者从某个非法解开始,通过某种增广策略逐步改变该解,直到得到一个合法解为止,这类算法包括最近邻算法、贪心算法、ClarkeWright算法和Christofides算法等。环路改进算法则在给定初始的合法解后使用某种策略来改进初始解。这些策略更多的是元启发式算法,包括遗传算法[9~12]、模拟退火[13]、禁忌搜索算法[14]、蚁群算法[15,16]、粒子群优化算法[17,18]等。旅行商问题的本质是根据旅行商问题的解空间特征,研究局部最优解、全局最优解和邻域结构之间的关系,具体包括:一种邻域结构的局部最优解和另一种邻域结构的局部最优解之间的关系;全局最优解和所有邻域结构的局部最优解之间的关系。所以,提出一种更能协调上述关系的启发式算法是组合优化领域学者长期追求的目标。

3流水算法原理

现代元启发式算法成为近似求解大规模复杂的旅行商问题的研究热点。研究者从生物系统的进化和大自然中自适应性现象得到灵感,提出了一些以搜索近优解为目标的仿生元启发式算法,如遗传算法、蚁群优化算法、粒子群优化算法等。仿生优化算法是一类模拟自然生物进化或者群体社会行为的随机搜索方法的统称。借鉴自然和社会的各种现象,提出并设计优化算法成为一个重要的求解途径。本文正是在这样的背景下,基于旅行商问题的解空间类似一个无穷大的丘陵地带特点,受到自然现象“水无常形,水往低处流,水流千里归大海”的启发,设计新型的求解旅行商问题的元启发式算法—流水算法。

3.1流水的启示

总启示:“水无常形,水往低处流,水流千里归大海”是众多流水全局寻优,求极值(地势最小)的过程。如图1所示,一个流水从初始位置A,流经B、C、D等锚点位置(局部极小)最终到达最低点E(全局最小)。流水的位置与旅行商问题可行域具体解的编码相互映射。

(1)流水局部搜索启示:“水无常形,水往低处流” 是一个流水根据地势状况局部搜索更低点,并向着下一个局部更低位置流动的过程,在这个过程中流水总是尽可能选择并流经最短路径到达最低点。并且,流水不可能倒着流动,具有禁忌搜索的特点。

(2)水漫溢出的启示:当流水流到一个局部最低的位置,会出现停滞(如图1中位置B);但随着水量增加,水位上升到一定高度,流水从一个局部次优的位置溢出,并由此继续向下流动,跳出局部收敛。从优化算法的角度,流水的这种特点具有突破局部收敛的能力,即当流水若干代不变后,强行更换位置到局部次优的位置,从而继续进行局部搜索。

(3)流水凿洞的启示:流水向着下一个更低、更好位置流动时,落差越大,流水冲击惯性越大,就会对周围的泥土或岩石进行磨损,甚至可以凿洞突破当前位置的限制,向着比当前位置好的附近点流动(向着局部较优解方向搜索),向着最低点流动(向着全局最优解方向搜索)。并且,在现实中往往可以通过人工凿洞方式,让水流到更低位置,并且路径较短。从优化算法的角度,流水的这种特点具有突破局部收敛、向着全局最优解收敛的优点。

(4)蒸发下雨的启示:在自然界中,位置高、水量少的流水容易被蒸发掉形成水蒸气;相应水蒸气会在一定的气候影响下随机下雨,形成相对应数量的流水。从优化算法的角度,“蒸发”具有“优胜劣汰”优点;“下雨”具有多样化群体,具备随机全局寻优的优点。

(5)涓涓细流汇成江河的启示:在自然界中涓涓流水总是汇集到更低更短的路径上,集聚成江河,最后流归到大海。从流量的角度解释,只有更低、更短的路径才能吸引更多的涓涓细流,使得这些更低更短路径上的水量得到不断的增加。流水的这一特征表现为很强的流量正反馈机制,引导流水在进行路径选择时,倾向流经水量大的路径(具有位置更低、路径更短的特征),从而使得整个流水系统向最佳路径的方向进化。

3.2流水算法的提出

全局寻优、局部寻优和计算时间的矛盾一直是困惑旅行商问题求解的难题。本文借用大自然“水无常形,水往低处流,水流千里归大海”的规律,设计新型的求解算法“流水算法”对旅行商问题进行寻优求解。流水算法简单流程如图2所示,具体设计和相关主要操作如下。

在流水算法中,一个可行解可以用编码表达,对应流水所流经的一个当前位置,具体的编码形式因具体的优化问题而异。在求解旅行商问题中,编码形式具体体现为旅行路线的所有城市排列顺序,如图3所示。

(2)初始化流水群

流水算法是群体并行协作寻优的算法机制,所以算法开始首先要初始化流水群。本文采用随机式和启发式两种方式按照特定比例产生流水群,即旅行商问题的可行解群。随机式是指没有任何规则的随机产生解群,可以保证初始解群的多样性和随机性;启发式是指依据距离短规则和流量大规则启引导产生解群(详见3.3节),保证初始解群一定程度的良好。

(3)流水局部搜索操作

流水局部搜索操作基本思想是在搜索过程中系统地改变邻域结构集来拓展搜索范围,获得局部最优解。一个解在当前位置随机按照一定方式搜索一定步长进行局部搜索,向着下一个更好位置流动;如果没有更好位置则更新步长继续搜索。并且,解不可能倒着搜索,具有禁忌搜索特点。如图3所示,城市编码的排序对应的就是一个解,其中每个排列位置上的编码代表一个城市,如a、b 。在具体的应用中,存在着许多种局部搜索方式,本文按照步长距离交换两个节点位置进行局部搜索,例如图3中,原始解中城市a与一个步长距离的城市b进行交换,形成一个新解。流水局部搜索操作的具体流程见图4。

(4)水漫溢出操作

水漫溢出操作是指一个解在当前位置搜索既定步长(设定的阈值)停滞后,强制移动到局部次优的位置,跳出局部收敛。在具体操作时候,水漫溢出操作往往结合局部搜索操作,如图4所示。在这里必须明确局部次优位置具有以下特征:来自流水当前的邻域,并且是流水先前没有经过的,同时从这个次优位置能实现局部搜索寻找到更好的位置(即流水从这个位置能继续向低处流动)。

(5)流水凿洞操作

经过不断搜索,流水群中优秀解往往可能处于局部优位置,这个位置很有可能非常接近全局最优解,这些优秀的流水在自己的位置停滞的时间很久,并且,水漫溢出操作很难实现跳出局部收敛。这时候,本算法采用流水凿洞方式使得当前位置向着当前种群最优解方向搜索,表现为向着全局寻优,具体方式有很多种。本文采取流水凿洞操作的措施是:优秀的流水在当前局部优位置向着当前种群最优解定向搜索若干步长,进行局部搜索。理论上,按照这种定向搜索,优秀的流水一定会搜索到比当前位置更好的解。流水凿洞操作具有跳出局部停滞,向着全局最优解收敛的优点。

具体来说,对比原始解和全局最优解,寻找二者编码有差异的位置,原始解通过自身交换方式,换成与全局最优解中同样位置所对应的编码,直至找到一个更优解(理论上一定可以寻找到)。如图5所示,原始解中某位置城市编号是b,全局最优解中对应位置城市编号是c,通过自身交换让原始解中对应位置城市编号是c,形成新的更换解。

5结论

本文受自然现象“水无常形,水往低处流,水流千里归大海”的启发,设计新型的旅行商问题的元启发式算法,即流水算法。新算法主要包括流水局部搜索、水漫溢出、流水凿洞、蒸发下雨4个算子,具有很强的全局搜索和局部搜索能力,同时具有禁忌搜索、正反馈机制、优胜劣汰、群体并行寻优等特点,并且兼有跳出局部收敛加速全局收敛的能力。通过求解经典的标准TSP测试算例Eil51,对比于其他元启发式算法,该算法具有明显的优势,求解精度高、迭代次数少、收敛速度快,为高效率解决大规模组合优化问题提供了新的思路。本文提出的流水算法研究处于初期,还有许多问题值得研究,如算法的时间复杂度、空间复杂度、稳定度、收敛性、参数变化对寻优的影响及敏感性规律等。从以往经典元启发式算法的研究和应用经验可以推断,这种模仿自然现象的流水算法具有广阔的实际应用前景,如物流配送、旅游路线、道路交通、员工调度排班、生产调度、组合优化求极值等领域。所以,从应用的角度看,更多深入细致的工作还有待于进一步展开。并且,流水算法丰富了中国本土学者原创性元启发式算法的研究,已经被相关领域的专家所关注。

参考文献:

[1]Holland J H. Adaptation in natural and artificial systems: an introductory analysis with applications to biology, control, and artificial intelligence[M]. Ann Arbor, MI: University of Michigan Press, 1975.

[2]Kirkpatrick S, Gelatt C D, Vecchi M P. Optimization by simulated annealing[J]. Science, 1983, 220(4598): 671680.

[3]Glover F. Future paths for integer programming and links to artificial intelligence[J]. Coputers and Operations Research, 1986, 13: 533549.

[4]Colorni A, Dorigo M, Maniezzo V. Distributed optimization by ant colonies[A]. Processings of the First European Conference on Artificial Life[C]. Amsterdam: Elsevier, 1992. 134142.

[5]Colorni A, Dorigo M, Maniezzo V. An investigation of some properties of an ant algorithm[A]. Processings of the Parallel Problem Solving from Nature Conference[C]. Amsterdam: Elsevier, 1992. 509520.

[6]Dorigo M, Maniezzo V, Colorni A. Ant system: optimization by a colony of cooperating agents[J]. IEEE Transactions on System, Man, and Cybernetics PartB: Cybernetics, 1996, 26(1): 2941.

[7]Kennedy J, Eberhart R C. Particle swarm optimization[A]. Proceedings of the 1995 IEEE International Conference on Neural Networks[C]. Piscataway, New Jersey, 1995. 19421948.

[8]戚玉涛,焦李成,刘芳.基于并行人工免疫算法的大规模TSP问题求解[J].电子学报,2008,36(8):15521558.

[9]唐立新.旅行商问题的改进遗传算法[J].东北大学学报,1999,20(1):4042.

[10]Chang P C, Huang W S, Ting C J. Dynamic diversity control in genetic algorithm for mining unsearched solution space in TSP problems[J]. Expert Systems with Applications, 2010, 37(3): 18631878.

[11]Albayrak M, Allahverdi N. Development a new mutation operator to solve the traveling salesman problem by aid of genetic algorithms[J]. Expert Systems with Applications, 2011, 38: 13131320.

[12]Nagata Y, Soler D. A new genetic algorithm for the asymmetric traveling salesman problem[J]. Expert Systems with Applications, 2012, 39: 89478953.

[13]Geng X, Chen Z, Yang W. et al.. Solving the traveling salesman problem based on an adaptive simulated annealing algorithm with greedy search[J]. Applied Soft Computing, 2011, 11: 36803689.

[14]刘于江,喻泽峰.一种求解旅行商问题的禁忌搜索算法[J].江西理工大学学报,2006,27(4):3840.

[15]Manfrin M, Birattari M, Stützle T, et al.. Parallel ant colony optimization for the traveling salesman problem[J]. Lecture Notes in Computer Science, 2006, 4150: 224234.

[16]蔡荣英,王李进,吴超,等.一种求解旅行商问题的迭代改进蚁群优化算法[J].山东大学学报(工学版),2012,42(1):611.

[17]郭崇慧,谷超,江贺.求解旅行商问题的一种改进粒子群算法[J].运筹与管理,2010,19(5):2026.

[18]沈继红,王侃.求解旅行商问题的混合粒子群优化算法[J].智能系统学报,2012,7(2):174182.

推荐访问: 求解 算法 流水 旅行

【基于流水算法的旅行商问题求解】相关推荐

工作总结最新推荐

NEW
  • XX委高度重视党校的建设和发展,出台《创建全省一流州市党校(行政学院)实施方案》及系列人才培养政策,为党校人才队伍建设提供了有力的政策支撑。州委党校在省委党校的悉心指导下、州委的正确领导下,深入贯彻落

  • 为推动“不忘初心、牢记使命”主题教育常态化,树牢“清新简约、务本责实、实干兴洛”作风导向,打造忠诚干净担当、敢于善于斗争的执纪执法铁军,经县纪委常委会会议研究,决定在全县纪检监察系统开展“转变作风工作

  • 为进一步发展壮大农村集体经济,增强村级发展活力,按照中共XXX市委抓党建促乡村振兴工作领导小组《关于印发全面抓党建促乡村振兴四个工作计划的通知》要求,工作队与村“两委”结合本村实际,共同研究谋划xx村

  • 今年来,我区围绕“产城融合美丽XX”总体目标,按照“城在林中,水在城中,山水相连,林水相依”以及“城乡一体、景城一体、园城一体”的建设思路,强力推进城市基础设施建设、棚户区改造、房地产开发和城市风貌塑

  • 同志们:新冠疫情发生至今已有近三年时间。三年来,在广大干群的共同努力下,我们坚决打好疫情防控阻击战,集团公司范围内未发生一起确诊病例,疫情防控工作取得了阶段性胜利。当前国际疫情仍在扩散蔓延,国内疫情多

  • 我是毕业于XX大学的定向选调生,当初怀着奉献家乡、服务人民的初心回到XX,在市委的关心关爱下,获得了这个与青年为友的宝贵历练机会。一年感悟如下。一要对党忠诚,做政治坚定的擎旗手。习近平总书记指出,优秀

  • 同志们:今天召开这个会议,主要任务是深入学习贯彻习近平总书记重要指示批示精神,以及李克强总理批示要求,认真落实全国安全生产电视电话会议和全省、全市安全生产电视电话会议精神,研究我县安全生产和安全隐患大

  • 2022年市委政研室机关党的建设工作的总体要求是:坚持以XXX新时代中国特色社会主义思想为指导,全面贯彻党的XX届X中X会和省、市第十二次党代会精神,自觉运用党的百年奋斗历史经验,弘扬伟大建党精神,深

  • 同志们:今天,我们在这里召开市直机关基层党建示范点工作会议,一方面是对各示范点单位进行表彰授牌,另一方面是想通过这种会议交流的方式,给大家提供一个相互学习、取长补短的平台和机会。市直工委历来把创建基层

  • 新冠疫情暴发以来,学校党委坚决贯彻习近平总书记关于疫情防控工作的指示要求和党中央的决策部署,严格执行×××部、×××厅关于疫情防控的系列要求,认真落实驻地防疫部门的工作举措,继承发扬优良传统,以最高标