2022年程序实现---遗传算法与最小生成树算法解决旅行商问题分析对比 .pdf
《2022年程序实现---遗传算法与最小生成树算法解决旅行商问题分析对比 .pdf》由会员分享,可在线阅读,更多相关《2022年程序实现---遗传算法与最小生成树算法解决旅行商问题分析对比 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、遗传算法与最小生成树算法解决旅行商问题分析对比名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 摘要:本实验采用遗传算法实现了旅行商问题的模拟求解,并在同等规模问题上用最小生成树算法做了一定的对比工作。遗传算法在计算时间和占用内存上, 都远远优于最小生成树算法。这间接证明了智能算法在解决大规模问题上性能优于传统算法程序采用 Microsoft visual studio 2008 结合 MFC 基本对话框类库开发。 32 位 w
2、indows 7系统下调试运行。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 引言遗传算法( Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,由密歇根大学的约翰?霍兰德和他的同事于二十世纪六十年代在对细胞自动机(英文: cellular automata)进行研究时率先提出 , 并于 1975 年出版了颇有影响的专著 Ada
3、ptation in Natural and Artificial Systems ,GA 这个名称才逐渐为人所知,约翰?霍兰德教授所提出的GA 通常为简单遗传算法(SGA) 。在二十世纪八十年代中期之前,对于遗传算法的研究还仅仅限于理论方面,直到在伊利诺伊大学召开了第一届世界遗传算法大会。随着计算机计算能力的发展和实际应用需求的增多,遗传算法逐渐进入实际应用阶段。1989 年,纽约时报作者约翰?马科夫写了一篇文章描述第一个商业用途的遗传算法 - 进化者(英文:Evolver ) 。之后,越来越多种类的遗传算法出现并被用于许多领域中,财富杂志 500 强企业中大多数都用它进行时间表安排、数据分
4、析、未来趋势预测、预算、以及解决很多其他组合优化 问题。遗传算法是从代表问题可能潜在的解集的一个种群(population)开始的,而一个种群则由经过基因(gene )编码的一定数目的个体 (individual)组成。每个个体实际上是染色体 (chromosome)带有特征的实体。 染色体作为遗传物质的主要载体,即多个基因的集合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现, 如黑头发的特征是由染色体中控制这一特征的某种基因组合决定的。因此,在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化, 如二进制编码, 初代种群名师资
5、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 产生之后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解,在每一代,根据问题域中个体的适应度(fitness )大小选择(selection )个体,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉( crossover )和变异( mutation) ,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生
6、代种群比前代更加适应于环境,末代种群中的最优个体经过解码(decoding ) ,可以作为问题近似最优解1。遗传算法是借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的。 其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法, 能自动获取和指导优化的搜索空间, 自适应地调整搜索方向, 不需要确定的规则。 遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
7、- - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 综述:程序总体流程图:初始化算法参数创建初试基因组(种群)生成点的序列,随机打乱进化得到最优基因组输出程序运行的性能指标对大部分基因进行单性繁殖自我进行两点交叉变异排序基因组,最好的两个基因直接进入下一代基因组数量,变异率进化代数,地点数这个程序的思想是,随机生成“地点数”编辑框输入的数字的地点,存储在一个 vector 里。 然后用一个“基因类”表示该基因代表第几个点,接着一个“基因组类”有序包含了很多“基因类”,如果一个“基因组类”包含的基因类顺序为:
8、基因组 .基因0.data = 第二个点;基因组 .基因1.data = 第三个点;基因组.基因3.data = 第一个点;就说明该基因组表示的连线顺序是从第二点连到名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - 第三个点再连到第一个点。给每个城市一个固定的基因编号,例如10 个城市为0 1 2 3 4 5 6 7 8 9 ,随机地组成一个染色体(以下所有情况都以 10 个城市为例说明)。约定这 10 个城市之间的行走路线为:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年程序实现-遗传算法与最小生成树算法解决旅行商问题分析对比 2022 程序 实现 遗传 算法 最小 生成 解决 旅行 问题 分析 对比
限制150内