收藏 分享(赏)

精品毕业论文--基于遗传算法的TSP问题研究.doc

上传人:微传9988 文档编号:2515854 上传时间:2018-09-20 格式:DOC 页数:38 大小:278.50KB
下载 相关 举报
精品毕业论文--基于遗传算法的TSP问题研究.doc_第1页
第1页 / 共38页
精品毕业论文--基于遗传算法的TSP问题研究.doc_第2页
第2页 / 共38页
精品毕业论文--基于遗传算法的TSP问题研究.doc_第3页
第3页 / 共38页
精品毕业论文--基于遗传算法的TSP问题研究.doc_第4页
第4页 / 共38页
精品毕业论文--基于遗传算法的TSP问题研究.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、 目 录摘要 .IAbstractII第 1 章 绪论 - 1 -1.1 旅行商问题 - 1 -1.2 研究意义 - 1 -1.3 论文的组织结构 .- 1 -第 2 章 遗传算法理论概述 - 2 -2.1 遗传算法的起源和发展 - 2 -2.2 遗传算法基本原理 - 3 -2.3 遗传算法的基本步骤 - 4 -2.4 遗传算法的流程图 .- 4 -2.5 遗传算法的特点 - 5 -2.6 遗传算法的应用 - 6 -第 3 章 TSP 问题及研究的基本方法 - 8 -3.1 TSP 问题概述 - 8 -3.2 TSP 的应用与价值 - 8 -3.3 TSP 问题的数学模型 - 9 -3.4 T

2、SP 问题的分类 .- 9 -3.5 现有的求解 TSP 问题的几种算法 - 10 -第 4 章 遗传算法在 TSP 的应用 .- 12 -4.1 遗传算法在 TSP 上的应用 .- 12 -4.2 算法的实现 .- 12 -4.3 编码 .- 12 -4.4 初始化种群 .- 13 -4.5 适应度函数 .- 13 -4.6 选择操作 .- 13 -4.7 交叉操作 .- 15 -4.8 变异操作 .- 17 -4.9 实验结果 .- 18 -结 论 - 20 -展望 - 20 -参 考 文 献 .- 21 -致 谢 - 22 -附录程序 - 23 -I摘 要TSP 问题(Traveling

3、 Salesman Problem)是已知有 n 个城市,现有一推销员必须遍访这 n个城市,且每个城市只能访问一次,最后又必须返回出发城市。要安排其访问次序,使其旅行路线的总长度最短。TSP 是经典的 NP-hard 组合优化问题之一,也是一个测试算法优劣性的标准问题,且现实中有很多应用问题都可归结或转化为 TSP 问题。故对此问题的求解具有理论与实用两方面的意义。传统的求解方法在面对较大规模的问题时,很不容易得到最优解。遗传算法(Genetic Algorithms,简称 GA)是借鉴生物选择和进化机制发展起来的一种高度并行、随机和自适应搜索算法。特别适合于处理传统搜索算法解决不好的复杂和非

4、线形问题。它的两个最大的显著特点是隐含并行性和全局搜索。对遗传算法及其应用的研究是目前智能计算的研究热点之一。关键词:遗传算法;TSP 问题;交叉算子 IIIIAbstractThe TSP question is one of most classical NPhard combination optimization questions,and it is also a standard question to test algorithm performanceIn the reality,there al e many application questions can be summ

5、ed up or converted intoTSP.Therefore solve this problem is significance with both the theory and practicalTo large-scale problems,the traditional solution method is too inadequate.Genetic Algorithm(GA)is all algorithm which is highly parallel,stochastic and autoadapted searchingIt is profits from on

6、e kind which the biological choice and the evolution mechanismEspecially,it qualifies in the questions that complex and non-linear for tradition searching algorithmIts two most major outstanding features are conceal parallelism and the global searchTo the genetic algorithm and the application resear

7、ch ofit is one hot spot of the intelligent computation stratosphereKey words:genetic algorithm;TSP; crossover opera- 1 -第 1 章 绪论1.1 旅行商问题旅行商问题 (Traveling Salesman Problem,TSP),也称货郎担问题,是指对于给定的甩个城市,旅行商从某一个城市出发,不重复地访问其余每一个城市,最后又返回到原出发城市,要求找出一条旅行路线,使其的旅行所付出的代价最小。旅行商问题是一个比较古老的问题,最早可追溯到 Euler 提出的骑士旅行问题,同时

8、它也是个“新问题“,因为计算的复杂性较高,人们一直在尝试用新的方法来改进求解该问题的复杂度。TSP 问题是一个具有广泛的应用背景和重要理论价值的组合优化问题,它是一个典型的 NP 问题。G=(V,E)为赋权图,V=1,2,N 为顶点集,E 为边集, Cij 表示旅行商经过对应弧段(i,j)所花的费用,如时间、距离、花费等。TSP 问题就是要决定一条经过图中所有顶点,当且仅当一次且代价最小的回路,即代价最小的 Hamilton 回路,为简化问题。1.2 研究意义旅行商问题是一个理想化的问题,大多数对于此问题的研究都不是为了直接的实际应用,但这些研究可以经转化后用于许多现实的组合优化问题。在现实生

9、活中,有许多问题都可以归结为 TSP 问题,如电路板钻孔路线选择、车辆路线问题、计划任务、连锁店货物配送路线、管道铺设、火炬接力等问题,这些问题的求解策略均可依据 TSP 问题的求解算法来加以实施。所以 TSP 问题在计算理论上和实际应用上都有很高的价值,将直接带动整个组合优化领域新的发展。而遗传算法是一种的元启发式优化算法,基于遗传算法在许多方面有重要的应用空间。基于此原因,本文的主要是用遗传算法的基本算子解决 TSP 这个有意义的 NP 难问题。1.3 论文的组织结构第 1 章绪论。本章论述旅行商问题的基本概念,以及本课题的主要研究内容及其研究意义,并对本文的章节结构加以概述。第 2 章,

10、概要介绍了遗传算法的起源和发展、思想及应用等问题,并重点介绍了基本遗传算法。第 3 章 概要介绍了 TSP 问题的定义和数学模型、研究现状及评价标准,现有的求解 TSP 问题的几种算法。第 4 章 本章论述如何用基于遗传算法求解 TSP 问题。详细论述了用遗传算法在 TSP 的实现方法和主要参数设置、程序实现。第 5 章 总结- 2 - 2 -第 2 章 遗传算法理论概述2.1 遗传算法的起源和发展20 世纪 40 年代以来,科学家努力从生物学中寻找用于计算机科学和人工系统的新思维、新方法和新途径,生命科学与工程科学相互交叉、相互渗透、相互促进成为近代科学发展的显著特点之一。遗传算法正是从大自

11、然的杰作生物进化论中得到的灵感和启迪,其基本思想是 Darwin 进化论和 Mendel 的遗传学说。Darwin 进化论最核心的是自然选择学说。他认为,生物进化是一个缓慢的变化过程,物种不是被创造出来的,而是自然选择的必然结果。 “物竞天择,适者生存” 。生物要想生存下来,就必须进行生存斗争。斗争是多方面的,有种内斗争、种间斗争以及生物与无机环境间的斗争。只有适应性强的个体才能在斗争中存活下来,并且有更多的机会将有利变异传给后代;而不适应斗争环境、具有不利变异的个体将面临淘汰。Darwin 把这种在生存斗争中适者生存、不适者淘汰的过程称为自然选择。Mendel 遗传学说最重要的是基因遗传原理

12、。他认为遗传以密码方式存在于细胞中,并以基因形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质。所以,每个基因产生的个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去劣的自然淘汰,适应性高的基因结构得以保存下来。现代遗传学和细胞学的研究表明,生物的遗传物质主要保存在染色体中,染色体由 DNA(脱氧核糖核酸)和蛋白质组成;基因则是指携带有遗传信息的 DNA 序列,是控制性状的基本遗传单位。基因可以精确的复制,也可以发生突变,并可以通过控制蛋白质的合成而控制生物的性状。生物体自身通过对基因的复制和交叉即基因分离、基因自由组合和基因连锁互换的操作使其性状的遗传得

13、到选择和控制。同时,通过基因重组、基因变异和染色体在结构和数目上的变异产生丰富多彩的变异现象。能否将生物进化论应用于科学研究和工程实践中的各种搜索和优化问题中?遗传算法正是从这一疑问开始的。上个世纪 60 年代,Michigan 大学的 JHHolland 教授开始认识到生物的遗传和自然进化现象与人工自适应系统的相似关系,并将生物遗传机制引入人工自适应系统的研究。1967 年,他的学生 Bagley JD首次提出“遗传算法” 一词,并发展了复制、交叉、变异、显性、倒位等遗传算子。70 年代,Holland 教授出版了专著(Adaptation in Nature and Artificial

14、Systems),系统阐述了遗传算法的基本理论和方法,提出了遗传算法的基本定理模式定理,为遗传算法的发展奠定了理论基础。美国 DeJong 博士基于遗传算法的思想在计算机上进行了- 3 -大量的纯数值函数优化计算实验,建立了著名的 DeJong 五函数测试平台。80 年代,遗传算法开始在各个领域得到广泛应用。1980 年,Smith 将遗传算法应用于机器学习领域;Bethke 对函数优化的遗传算法进行了系统的研究。1989 年,David Goldberg 出版了(GeneticAlgorithm in Search,Optimization and Machine Leaming一书,成为论

15、述遗传算法的第一本专著。进入 90 年代,遗传算法进入了兴盛期,无论是理论研究还是应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,被广泛地应用于组合优化、生产调度、机器学习、图像处理、人工生命等领域,不仅如此,利用遗传算法进行优化和规则学习的能力也显著提高。1985 年,美国召开了第一届遗传算法国际会议(ICGA),在遗传算法发展史上具有里程碑式的意义。此后 ICGA 每隔一年举行一次,1999 年期,ICGA 与 GP 的系列会议合并为一年一次的遗传与进化国际会议(GECCO)。1994 年 1 月,IEEE 神经网络委员会出版了第一本进化计算专集,同年 6 月组织召开第

16、一届“进化计算”国际会议,以后每年举行一次。2.2 遗传算法基本原理遗传算法是从代表问题可能潜在解集的一个种群(Population)开始的,而一个种群则由经过基因(Gene)编码(Coding)的一定数目的个体(Individual)组成。每个个体实际上是染色体(Chromosome)带有特征的实体。作为多个基因的集合,单个染色体是遗传物质的主要载体,其在种群中的命运由其基因组合决定。初始种群产生以后按照优胜劣汰、适者生存的原理,逐代演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度(fitness)大小挑选个体,并借助代表于自然遗传学的遗传算子(Genetic Operator

17、s)进行交叉(Grossover)和变异(Mutation),产生出代表新的解集的种群。这个过程导致种群象自然进化一样,后代种群比前代更加适应于环境,末代种群中最优个体经过解码(Decoding),可以作为问题的近似最优解。遗传算法采纳了自然进化模型,如选择、交叉、变异、迁移、局域与邻域等。与传统搜索算法不同,遗传算法是从一组随机产生的初始解开始搜索过程。种群中的每个个体是问题的一个解,称为“染色体“,染色体是一串符号,比如二进制 01 串。这些染色体在后续迭代中不断进化,称为遗传。在每一代中用适应度(fitness)来测量染色体的好坏。生成的下一代染色体称为后代(offspring)。后代是

18、由前一代染色体通过交叉(crossover)或者变异(mutation)运算形成的。新一代形成中,根据适应度的大小选择部分后代,淘汰部分后代,从而保持种群大小的稳定性。适应度高的染色体被选中的概率高,这样,经过若干代之后,算法收敛于最好的染色体,它很可能就是问题的最优解或次优解。列出了表 2-1 生物遗传与遗传算法部分概念的对照- 4 - 4 -表 2-1 生物遗传与遗传算法的概念对照生物遗传 遗传算法基因 解中每一分量的特征染色体 解的编码个体 解种群 一组解交配 交叉操作变异 编码的某一个分量发生变化的过程适应性 编码解码后得到的适应度函数值适者生存 选择操作2.3 遗传算法的基本步骤 步

19、骤一:确定参变量及其各种约束条件.即确定个体的表现形式和问题的解空间.步骤二: 建立优化模型. 即确定出求解问题的目标函数和数学描述形式及量化方法. 步骤三:确定染色体的编码方法.即确定个体的基因形式. 步骤四:确定解码方法.即确定出个体的基因形式到个体的表现形式的对应关系和转化方式. 步骤五: 确定个体适应度的量化评价方法.即确定出目标函数值同个体适应度的转化规则. 步骤六: 设计遗传算子.即确定出选择算子,交叉算子和变异算子等遗传算子的具体操作方法. 步骤七: 确定遗传算法的有关运行参数.即确定出遗传算法2.4 遗传算法的流程图- 5 -图 2-1 遗传算法流程图2.5 遗传算法的特点传统

20、的优化方法主要有三种:枚举法、启发式算法和搜索算法。随着问题种类的不同以及问题规模的扩大,需要寻求一种能以有限的代价来解决搜索和优化的通用方法,遗传算法正是为我们提供了一个有效途径,它不同于传统的搜索和优化方法。主要区别在于(1)自组织、自适应和自学习性。应用遗传算法求解问题时,在编码方案、适应度函数及遗传算子确定后,算法将利用进化过程中获得的信息自行组织搜索。由于自然选择策略为“适者生存,不适应淘汰“,因而适应度大的个体具有较高的生存概率。通常,适应度大的个体具有更适应环境的基因结构,在通过基因重组和基因突变等遗传操作,就可能产生更适应环境的后- 6 - 6 -代。进化算法的这种自组织、自适

21、应特征,使它同时具有能根据环境变化来自动发现环境的特性和规律的能力。自然选择消除了算法设计过程中的一个最大障碍,即需要事先描述问题的全部特点,并要说明针对问题的不同特点算法应采取的措施。因此,利用遗传算法的方法,我们可以解决那些复杂的非结构化的问题。 (2)遗传算法的本质并行性。遗传算法按并行方式搜索一个种群数目的点,而不是单点。它的并行性表现在两个方面,一是遗传算法的内在并行性(inherentparallelisml,即遗传算法本身非常适合大规模并行。最简单的并行方式是让几百甚至上千台计算机各自进行独立种群的演化计算,运行过程中甚至不进行任何通信(独立的种群之间若有少量的通信一般会带来更好

22、的结果),等到运算结束才通信比较,选取最佳个体。这种并行处理方式对并行系统结构没有什么限制和要求,可以说,遗传算法适合在目前所有的并行机或分布式系统上进行并行处理,而且对运行效率没有太大的影响。二是遗传算法的内含并行性(implicitparallelism)。由于遗传算法采用种群的方式组织搜索,因而可同时搜索解空间内的多个区域,并相互交流信息。使用这种搜索方式,虽然每次只执行与种群规模 n 成比例的计算,但实质上已经进行了大约 O(n3)次有效搜索,这就使遗传算法能以较少的计算获得较大的收益。(3)遗传算法不需要求导或其他辅助知识,而只需要影响搜索方向的目标函数和相应的适应度函数。(4)遗传

23、算法强调概率转换规则,而不是确定的转化规则。(5)遗传算法可以更加直接的应用。 (6)遗传算法对给定的问题,可以产生许多的潜在解,最终选择可以由使用者确定。 2.6 遗传算法的应用遗 传 算 法 提 供 了 一 种 求 解 复 杂 系 统 问 题 的 通 用 框 架 , 它 不 依 赖 于 问 题 的 具 体 领 域 , 对 问题 的 种 类 有 很 强 的 鲁 棒 性 , 所 以 广 泛 应 用 于 许 多 科 学 。(1)函 数 优 化函 数 优 化 是 遗 传 算 法 的 经 典 应 用 领 域 , 也 是 遗 传 算 法 进 行 性 能 评 价 的 常 用 算 例 , 许 多人 构 造

24、 出 了 各 种 各 样 复 杂 形 式 的 测 试 函 数 : 连 续 函 数 和 离 散 函 数 、 凸 函 数 和 凹 函 数 、 低 维函 数 和 高 维 函 数 、 单 峰 函 数 和 多 峰 函 数 等 。 对 于 一 些 非 线 性 、 多 模 型 、 多 目 标 的 函 数 优 化问 题 , 用 其 它 优 化 方 法 较 难 求 解 , 而 遗 传 算 法 可 以 方 便 的 得 到 较 好 的 结 果 。 (2) 组 合 优 化随 着 问 题 规 模 的 增 大 , 组 合 优 化 问 题 的 搜 索 空 间 也 急 剧 增 大 , 有 时 在 目 前 的 计 算 上 用枚

25、 举 法 很 难 求 出 最 优 解 。 对 这 类 复 杂 的 问 题 , 人 们 已 经 意 识 到 应 把 主 要 精 力 放 在 寻 求 满 意 解上 , 而 遗 传 算 法 是 寻 求 这 种 满 意 解 的 最 佳 工 具 之 一 。 实 践 证 明 , 遗 传 算 法 对 于 组 合 优 化 中 的- 7 -NP 问 题 非 常 有 效 。 例 如 遗 传 算 法 已 经 在 求 解 旅 行 商 问 题 、 背 包 问 题 、 装 箱 问 题 、 图 形 划分 问 题 等 方 面 得 到 成 功 的 应 用(3) 自动控制在自动控制领域中有很多与优化相关的问题需要求解,遗传算法已

26、在其中得到了初步的应用,并显示了良好的效果。基于遗传算法的参数辨识,基于遗传算法的模糊控制规则的学习,利用遗传算法进行人工神经网络的结构优化设计和权值学习等,都显示出了遗传算法在这些领域中应用的可能性。(4)人工生命人工生命是用计算机,机械等人工媒体模拟或构造出的具有自然生物系统特有行为的人造系统,自组织能力和自学能力是人工生命的两大主要特征。人工生命与遗传算法有着密切的关系,基于遗传算法的进化模型是研究人工生命现象的重要基础理论。- 8 - 8 -第 3 章 TSP 问题及研究的基本方法3.1 TSP 问题概述旅行商问题(Travelling Salesman Problem,简记 TSP)

27、 经典说法为:有一名旅行商要从一个城市去若干个城市推销货物,从城市 A 出发,经其余各城市且每个城市只能访问一次,然后回到城市 A,问选择怎样的旅行路线,才能使旅行的总长度最短(各城市间距离为已知)。旅行商问题是组合数学中一个古老而又困难的问题,它易于描述但至今尚未彻底解决,现己归入经典的 NP-hard 组合优化问题之一, 。该问题在图论的意义下就是所谓的最小 Hamilton 圈问题,由于可以广泛应用在许多领域,所以寻找出实际而有效的算法就显得比较重要了。但是遗憾的是,计算复杂性理论给予我们的结论却是,这种可能性尚属未知。3.2 TSP 的应用与价值TSP 在现实生活中有很多应用。直观上,

28、最普通的 TSP 的运用莫过于找出旅行商为遍历每个地理位置上的点的顺序,使他所经历的路径最短。了解了对每个城市访问一次的最优旅行路径能够为旅行节约很多潜在的时间。对提到的实例,图中的节点将通过地理位置顺序连接,而且连接两节点的路径的长度是公制的。在当前,很多的现实事物,包括城市,建筑和地标都已经有了平面电子地图。为解决以上提及的实例,仅需要把期望访问的地理位置具体化,然后用旅行商问题的算法进行求解就行了。TSP 在其他领域还有很多重要的实际应用。例如在组装线上的机器。一些机器的目标就是为了在某种材料片上钻削不同的孔。材料可能是电路板、汽车底盘甚至是用来做书架的木板。钻头通过定位装置在材料片上重

29、定位。在某个局部的区域,钻头可以沿着轨迹移动到任何位置。钻头的重定位所消耗的时间依赖于钻头需要移动的距离。旅行商问题的解可以用来找出孔被加工的最优顺序。在装配线的实例中,对每个工件为完成装配过程节约的少许时间意味着一天的产量的相应增加。为了通过 TSP 解决这个时间的节约问题,对每个节点做了简化,用需要钻孔的位置来代替,而边用节点之间的距离来代替。- 9 -3.3 TSP 问题的数学模型TSP 问题的数学模型如下:设有 n 个城市,寻找一条巡回路径T=(t1,t 2, ,t n),使得下列目标函数最小:f(T)= (ti,ti+1)+d(tn,t1) 1di其中 ti为城市号,取值为 1 到

30、n 之间的自然数,d(i,j)为城市 i 和城市 j 之间的距离,对于对称式 TSP,有 d(i,j)=d(j,i)。除此之外,模型还有其它一些等价的书写形式,这就不一一列举。TSP 问题是组合优化领域中的一个典型问题,涉及求多个变量的函数的最小值。虽然陈述起来很简单,但求解却很困难,它一直是运筹学中最富挑战性的问题之一,且已经被证明是 NP 完全问题。对于具有一个城市的 TSP 问题,其可能的路径数目为(n-1)!2,5 个城市的情形对应12010=12 条路线,10 个城市的情景对应20=条路线。所以对于输入规模为 n 个城市 TSP 找到最优解的时间复杂性函数的数量级是 O(n!),当

31、n 比较大时,耗费的时间己经是个天文数字,至今尚未找到有效的求解方法。在理论上虽然枚举法可以解这一问题,但是当 n 较大时,解题的时间消耗会使枚举法显得没有任何实际价值。因此寻求一种求解时间短,能满足实际问题精度要求的解,成为解决该问题的主要途径。快速、有效地解决 TSP 问题有着极高的实际应用价值,也就吸引了众多领域的学者对它进行研究。尽管 TSP 仍未找到最优解,但是求解它的算法逐渐在改进。1954 年 Dantzig,Fulkerson 和 Johnson 解决了 49 个城市数目的 TSP 问题,经过半个世纪的研究,目前,最大的已成功求解的旅行商问题有 24798 个城市。3.4 TS

32、P 问题的分类从 TSP 问题映射到图的类型,可以分为两类: (1)城市间的距离都是对称的,它对应的是图论中的无向图; (2)两个城市间的距离是非对称的,它所对应的是图论中的有向图. 从问题本身的限制条件的强弱,可分为三类: 1.不做任何限制(但是一般都要求城市间的费用不为负数),只是给出距离矩阵,求最小回路; 2.要求距离间要满足三角不等式; 3.定义在欧式平面上的 TSP 问题,即 EuclidTSP,它给出每个点在欧式平面 上的坐标,而城市间的距离就是以他们的欧式距离来定义.- 10 - 10 -3.5 现有的求解 TSP 问题的几种算法在求解 TSP 的算法的过程中,人们一直在寻找切实

33、有效的方法,按招时间出现的顺序大致可分为:传统算法和智能演化算法。传统算法有精确算法和近似优化算法,精确算法又有线性规划方法、动态规划方法、分支定界方法等,而近似算法有插入法、最近邻算法、r-opt 算法、混合算法、概率算法等。虽然传统算法能够找 TSP 问题的最优解,但随着问题规模的不断增长,算法所需要的时间非常巨大,因此只适用于求解规模较小的 TSP 问题。20 世纪 80 年代以来,一些新颖的智能优化算法,如模拟退火、遗传算法、禁忌搜索、人工神经网络、蚁群算法、粒子群算法、郭涛算法、免疫算法等,通过模拟或揭示某些自然现象(或过程)而得到发展,其思想和内容涉及数学、物理学、生物进化、人工智

34、能、神经科学和统计力学等方面,为解决复杂问题提供了新的思路和手段由于这些算法构造的直观性和自然机理,通常称作智能演化算法,或称为现代启发式算法。引入智能演化算法的原因在于避免陷人局部最优解,希望得到更好的解上界。(1)禁忌搜索算法禁忌搜索算法是局部领域搜索算法的推广,主要思想是标记已经得到的局部最优解,并在进一步的迭代中避开这些局部最优解。此方法需较强技术性,禁忌长度较难取。若禁忌长度过长,则所需内存较大,否则,易陷入局部最优解。(2)模拟退火算法这是一种源于五十年代、基于 Monte Carlo 迭代求解思想的随机搜索算法,八十年代才开始应用于组合优化领域,其出发点是将组合优化问题与统计力学

35、的热平衡作类比,把优化的目标函数视作能量函数,模仿物理学中固体物质的退火处理,先加温使之具有足够高的能量,然后再逐渐降温,其内部能量也相应下降,在热平衡条件下,物体内部处于不同状态的概率服从Boltzmann 分布,若退火步骤恰当,则最终会形成最低能量的基态。这种算法思想在求解优化问题时,不但接受对目标函数(能量函数)有改进的状态,还以某种概率接受使目标函数恶化的状态,从而可使之避免过早收敛到某个局部极值点,也正是这种概率性的扰动能够使之跳出局部极值点,故而得到的解常常很好。(3)蚁群算法 又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型算法。它由 Marco Dorigo 于1992 年在

36、他的博士论文中提出,过模拟蚂蚁的觅食行为, 蚂蚁觅食的时候会在所走过的路径上留下信息激素, 同时信息激素会随时间而挥发.一条路径走过的蚂蚁越多, 留下的信息激素越多; 反过来, 信息激素浓度高的路径上会吸引更多的蚂蚁。通过这种正向反馈, 最终将找到一条最优路径。为了避免蚂蚁两次走上同一条路径( 非法路径) , 为每个蚂蚁设置一个禁忌- 11 -表以记录它已走过的路径。该算法的优点是: 它是一种自 适应度、自组织、本质上并行的方法,而且是一种正向反馈的方法,可以促使整个系统向最优解进化,而且参数少、易于调整,易于移植到其他组合优化问题。 但是,它存在收敛慢、易于陷人局部最优的缺点。(4)人工神经

37、网络人工神经网络(Artificial Neural Network,ANN),是由大量处理单元即神经元(Neurons) 互相连接而成的网络,对人脑进行抽象,简化和模拟的一种工程系统,反映人脑的基本特性。人工神经网络算法成为近年来的热点研究领域,涉及到数学、电气工程、计算机工程、物理学等诸多学科,其应用领域包括了建模、时间序列分析、模式识别和控制等,并且仍然在一断扩展。作为神经网络的基本单元,神经元模型具备三个基本要素。其一是有一组突触或连接,常用表示内部神经元的联接强度,或者称为权值,取值范围可在负值和正值之间,其二是可以反映生物神经元时空整合功能的输入信号累加器,其三是具有一个激励函数用

38、于限制神经元的输出。- 12 - 12 -第 4 章 遗传算法在 TSP 的应用4.1 遗传算法在 TSP 上的应用在遗传算法研究中,TSP 问题已被广泛地用于评价不同的遗传操作及选择机制的性能。TSP问题因其典型性已成为各种启发式的搜索,优化算法的间接比较标准,而遗传算法方法就本质来说,主要处理复杂问题的一个鲁棒性强的启发式随机搜索算法。因此遗传算法在 TSP 问题求解方面的应用研究,对于构造合适的遗传算法框架,建立有效的遗传操作以及有效地解决 TSP等有着多方面的重要意义。4.2 算法的实现图 4-1 遗传算法运用在 TSP 上的流图程4.3 编码- 13 -遗传算法的进化过程是建立在编码

39、机制基础上的,编码对于算法的性能,如搜索能力和种群多样性等影响很大。如何将问题的解转换为编码表达的染色体是遗传算法的关键问题。编码机制的主要工作是把对象抽象为由特定符号按一定顺序排成的串。这就如同研究生物遗传是从染色体着手,而染色体则是由基因排成的串。遗传算法中经常使用二进制串进行编码,其优点是编码、解码操作简单,交叉、变异等操作也易于实现,且便于应用模式定理进行理论分析;其缺点主要是处理连续函数的优化问题时存在映射误差:编码长度较小时达不到精度要求,度较大时又会使算法搜索空间过大。4.4 初始化种群选择一个群体,就是选择一个个体的集合。这个初始群体也就是问题假设解得集合。在遗传算法求解 TS

40、P 问题中通常以随机方式产生串或者个体的集合。初始种群个数越多,得到最优解的希望越大,但个数过多会导致每进行一轮的机器时间变长,致使算法效率低下。4.5 适应度函数在研究自然界中生物的遗传和进化现象时,生物学家常常使用适应度这个术语来衡量某个物种对环境的适应率。适应度较高的物种将会得到更多的繁殖的机会;从而导致适应度低的物种被淘汰。度量物种适应度的函数就被称为适应度函数。本文中适应度函数取为哈密尔顿圈的长度的倒数。void CalFitness(PTSP city)int i,j;int start,end;for(i=0;iDistancei=0;for(j=1;jcolonyij-1;en

41、d=city-colonyij;city-Distancei=city-Distancei+CityDistancestartend;city-fitnessi=N/(city-Distancei);4.6 选择操作遗传算法中的选择操作就是用来确定如何从父代群体中按某种方法选取哪些个体遗传到- 14 - 14 -下一代群体中的一种遗传运算。选择操作的目的是为了避免基因缺失,提高全局收敛性和计算效率。常用的选择可略包括以下几种:(1) 轮盘赌法。(2) 锦标赛选择。(3) 最优保存策略。(4) 期望值方法。(5) 排序选择方法。比较常用的就是轮盘赌法,以及最优策略保留法。本文采用的是轮盘赌法。在

42、轮盘赌法中,各个个体的被选择概率和其适应度值成比例。设群体大小为 N,个体 i 的适应度值 Fi,则个体 i 被选择的概率 Psi为:Psi=Fi (n=l,2 n) nj1显然,概率 Psi反映了个体 i 的适应度在整个群体的个体适应度总和中所占的比例。根据个体适应度值的大小,适应度值越大的,其概率 Psi越大,被选择到的机会也越多,从而其基因结构被遗传到下一代的可能性也越大,反之亦然。轮盘赌的具体执行过程如下:a)先计算出种群中所有个体的适应度的总和。b)其次计算出每个个体的相对适应度的大小,作为被选中的概率。void Select(PTSP city) /选择算子double tempR

43、and,tempflag1;int i,j;for(i=0;iaddFitnessj)/轮盘赌选中第 j 个- 15 -tempflag1=1;/if(i!=city-BestFitCityXuh)if(city-fitnessj=city-fitnessireturn;4.7 交叉操作基于 TSP 问题的顺序编码,若采取简单的一点交叉或多点交叉策略,必然以极大的概率导致未能完全遍历所有城市的非法路径1 2 3 4| 5 6 7 88 7 6 5 |4 3 2 1若采取一点交叉,且交叉点随机选为 4,则交叉后产生的两个后代为8 7 6 5 5 6 7 81 2 3 4 4 3 2 1显然,这两

44、个子路径均未能遍历所有 8 个城市,都违反了 TSP 的约束条件。针对这一问题,当然可以采取上述构造惩罚函数的方法,但是实验效果不佳。解决这一约束问题的另一种处理方法是对交叉,变异等遗传操作作适当的修正,使其自动满足 TSP 的约束条件,本文采用部分匹配交叉法 :部分匹配交叉中先依据均匀随机分布产生两个位串交叉点,定义这两点之间的区域为一匹配区域,并使用位置交换操作交换两个父串的匹配区域,两父串及匹配区域为A=9 8 4 |5 6 7| 1 3 2 0B=8 7 1 |2 3 0| 9 5 4 6首先交换 A 和 B 的两个匹配区域,得到A1=9 8 4 |2 3 0| 1 3 2 0- 16

45、 - 16 -B1=8 7 1 |5 6 7| 9 5 4 6对于 A1,B1 两个串中匹配区域以外出现的遍历重复,依据匹配区域内的位置映射关系,逐一进行交换,对于 A1 有 2 到 5,3 到 6,0 到 7 的位置符号映射,对 A1 的匹配区以外的2,3,0 分别以 5,6,7 替换,则得A2=9 8 4 |2 3 0 |1 6 5 7B2=8 0 1| 5 6 7 |9 2 4 3这样,每个子串的次序部分有其父串确定。这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而产生新的个体,也即对两个父染色体的部分结构进行重组,以产生新一代子染色体。遗传交叉的主要目的

46、是子代尽可能地继承父代的优秀基因。void Cross(PTSP city,double pc)/交叉概率是 pcint crossNum,i;int cityCross2CITY_NUM+1;int tempXuh2;crossNum=int(POPSIZE*pc);for(i=0;iBestFitCityXuh);dochangePoint0=rand()%(CITY_NUM-1);changePoint1=rand()%(CITY_NUM-1)+1;while(changePoint0=changePoint1|changePoint0=0|changePoint1=0|changePo

47、int0-changePoint13);- 18 - 18 -/swichtemp=city-colonyselCitychangePoint0;city-colonyselCitychangePoint0=city-colonyselCitychangePoint1;city-colonyselCitychangePoint1=temp;/Mutation()4.9 实验结果次数 交叉率 变异率 种群数 城市数 最佳城市路径 最优解1 0.8 0.05 50 10 1752 0.8 0.05 50 10 1793 0.8 0.05 50 10 1794 0.8 0.05 50 10 1755

48、 0.8 0.05 50 10 1856 0.8 0.05 50 10 1757 0.8 0.05 50 10 185- 19 -图 4-9-1图 4-9-2状态当 Pc=0.6 , Pm=0.05 种群数为 50,最大的迭代次数为 150 最优解为 175,最佳的路径为 0-3-5-4-9-8-1-7-6-2-0(1) 初始种群的大小决定了种群的多样性。种群个体过少会导致算法过早收敛,从而陷入局部最优解,难以获得全局最优解。但是种群过大导致了一次遗传操作要进行的循环过多,大大加大了机器开销,算法效率低下。一般的 10 个点城市,初始种群取 50 到 100 为好。(2)变异率取值过小,就会导

49、致算法容易陷入局部收敛。从而降低了其抑制早熟的能力。但也不能过大,否则会破坏群体中的优秀个体,导致算法效率低下,甚至有时可能找不到最优值。在本算法中变异率因取 0.01 到 0.1 为宜。(3)交叉概率过小会导致产生新个体的速度变慢,而导致收敛速度降低。但也不能过大,过大可能会破坏种群中的优秀个体。本算法中交叉率取 0.6 到 0.9 为宜。- 20 - 20 -结 论本文通过遗传算法求解 TSP 问题,成功获得了全局最优解。综上所述,在求解的过程中遗传算法能够收敛到某一稳定的“最优解” 。在求解的质量和优化效率上都表现出了比较突出的能力。针对具体 TSP 问题,遗传算法的几个关键参数都有它自己的适合值,种群大小、交叉率、变异率、遗传代数都从一定程度上影响着算法的效率和质量。如种群大小影响了种群的多样性,过少会导致算法陷入局部最优,而找不到全局最优解,过多大大的增加算法的计算量,增大机器开销,算法效率低下。(1)遗传算法是求解 TSP 问题的很有效

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报