遗传算法及其在TSP问题中的应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

遗传算法及其在TSP问题中的应用

摘要:本文首先介绍了遗传算法的基本理论与方法,从应用的角度对遗传算法做了认真的分析和研究,总结了用遗传算法提出求解组合优化问题中的典型问题——TSP问题的最优近似解的算法。其次,本文在深入分析和研究了遗传算法基本理论与方法的基础上,针对旅行商问题的具体问题,设计了基于TSP的遗传算法的选择、交叉和变异算子等遗传算子,提出了求解旅行商问题的一种遗传算法,并用Matlab语言编程实现其算法,最后绘出算法的仿真结果,并对不同结果作出相应的分析。然后,本文还针对遗传算法求解TSP时存在的一些问题对该算法进行了适当的改进。如针对初始群体、遗传算子作出适当改进,或者将遗传算法与其他方法相结合,以及在编程过程中对算法流程的改进。本人在用计算机模拟遗传算法求解TSP问题时,首先分析了用Matlab语言设计遗传算法程序的优越性,接着以遗传算法求解TSP问题为例,深入讨论了各个遗传算子的程序实现,并通过分析实验数据,得到各个遗传算子在搜索寻优过程中所起的作用,最后指出了用Matlab语言编程同用其它高级程序语言编程的差异所在,以及运用Matlab编写遗传算法程序的一些注意事项。最后,本文提出将遗传算法与其它算法相结合来求解一般问题的想法;并将遗传算法的应用范围扩展,提出可以运用遗传算法求解由TSP衍生出的各类TSP扩展问题,如求解配送/收集旅行商问题的遗传算法(TSPD)、遗传算法在货物配送问题中的应用(ST-TSP)、多旅行商问题(MTSP)等。

引言:优化问题可以自然地分为两类:一类是连续变量的优化问题;另一类是离散变量的优化问题,即所谓组合优化问题。对于连续变量的优化问题,一般是求一组实数或一个函数;而在组合优化问题中,一般是从一个无限集或有限的几个无限集中寻找一个对象——它可以是一个整数,一个集合,一个排列或者一个图,也即是从可行解中求出最优解的问题。TSP问题就是其中的典型例子,就本质上而言它可抽象为数学上的组合优化,它描述的是旅行商经N个城市的最短路径问题,因而对TSP问题的求解是数学上,同时也是优化问题中普遍关注的。旅行商问题(Traveling Salesman Problem,简称TSP)也称为货担郎问题,是一个较古的问题,最早可以追溯到1759年Euler提出的骑士旅行问题[9]。旅行商问题可以解释为,一位推销员从自己所在城市出发,必须邀访所有城市且每个城市只能访问一次之后又返回到原来的城市,求使其旅行费用最小(和旅行距离最短)的路径。 TSP是一个典型的组合优化问题,并且是一个NP难题,所以一般很难精确地求出其最优解,因而寻找出其有效的近似求解算法就具有重要的理论意义。另一方面,很多实际应用问题,如公安执勤人员的最优巡回路线、流水作业生产线的顺序问题、车辆调度问题、网络问题、切割问题以至机组人员的轮班安排、教师任课班级负荷分配等问题,经过简化处理后,都可建模为TSP问题,因而对旅行商问题求解方法的研究也具有重要的应用价值。再者,在各种遗传算法应用实例中,其个体编码方法大多都是采用二进制编码方法或浮点数编码方法,而TSP问题是一种典型的需要使用符号编码方法的实际问题,所以,研究求解TSP问题的遗传算法,对促进遗传算法本身的发展也具有重要意义。在过去的20年里,在求解旅行商问题的最优解方面取得了极大的进展。尽管有这些成就,但旅行商问题还远未解决,问题的许多方面还要研究,很多问题还在期待满意的回答。

另外,遗传算法就其本质来说,主要是解决复杂问题的一种鲁棒性强的启发式随机

搜索算法。早在1983年,就有学者用GA 求解组合优化中著名的TSP 问题[5]。Wetzel 、

Brady 、Grefenstette 等人都曾用遗传算子来讨论TSP 问题[6,7,8]。实践也证明,遗传

算法对于组合优化中的NP 完全问题非常有效。因此遗传算法在TSP 问题求解方面的应

用研究,对于构造合适的遗传算法框架、建立有效的遗传操作以及有效地解决TSP 问题

等有着多方面地重要意义。

3.TSP 问题的数学模型和基本解法

遗传算法的主要应用领域就包括组合优化问题,而组合优化中主要是TSP 问题等。TSP

问题是一个NP 完全问题,近几年来,基于遗传算法求解TSP 问题的研究相当活跃,在

遗传算法研究中,TSP 问题已被广泛地用于评价不同的遗传操作及选择机制的性能

[14,15]。

TSP 问题的提出最早可追溯到18世纪的欧拉时代,但直到20司世纪中叶才由于优化技

术的兴起逐渐为人所认识而著名。1948年,由美国兰德公司推动,TSP 成为近代组合优

化领域的一个典型难题。它是一个具有广泛应用背景和重要理论价值的组合优化问题。

TSP 的搜索空间随着城市规模数n 的增加而增大,这类组合优化问题称之为NP 完全问题

[16]。

3.1TSP 问题的数学模型

TSP 问题可以简单地描述成:一名旅行商从一个城市出发,欲遍访n 个城市推销商品,

每个城市到一次且仅到一次后返回原出发城市,求总距离最短的巡回路径。

旅行商问题可分为两类:

(1)对称旅行商问题(n j i d d ji ij ,,2,1,,⋅⋅⋅=∀=);

(2)非对称旅行商问题(n j i dji d ij ,,2,1,,⋅⋅⋅=∃≠)。

TSP 问题的数学模型如下:设有n 个城市,寻找一条巡回路径),,,(21n t t t T ⋅⋅⋅=,使得下

列目标函数最小:

∑-=++=1

111),(),()(n i n i i t t d t t d T f

其中i t 为城市号,取值为1到n 之间的自然数,),(j i d 为城市i 和城市j 之间的距离,

对于对称式TSP ,有),(),(i j d j i d =。

旅行商问题属于典型的组合优化问题,并且是一个NP 完全问题,其可能的路径数目为

(n-1)!/2 [11] ,至今尚未找到有效的解决方法。在理论上一些方法是可以解这一问题,

但 当n 较大时,解题的时间消耗会使这些方法显得没有任何实际价值,所以设计一种

有效算法以获得问题的最优解或近似解是具有重要意义的。目前已有很多求解TSP 近似

最优解的算法,主要包括:分枝定界法(branch and bound )、最近邻法(nearest

neighbor )、贪婪法(greedy algorithm )、最近插入法(nearest insertion )、最

远插入法(farthest insertion )、双最小生成树法(double mining spaning tree )、

相关文档
最新文档