基于遗传算法的组合优化问题研究-毕业设计答辩
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计中所做的改进
三
改进循环贪心交叉算法
在原循环贪心交叉算法理论中,当所 有的城市都被扩展时,算法会随机选取 一个城市进行扩展,但由于随机数的产 生没有规律,当城市数目较大时,会消 耗大量的时间。本设计经过改进,通过 循环在城市队列中来选取城市,这样会 节省大量时间。最后,对两种算法进行 了仿真实验,并且对实验结果进行了比 较,详细情况见论文5.4节。
具体实践所达到的效果
当将一系列诸于车辆选路问题 ,印制电路板问题,连锁店的货物 配送路线问题建模为TSP问题后, 将其中的目标点看作城市,将路费 开销等看作是本设计中的路径,经 过程序的一系列操作,最后可以求 出一条最优路径。
具体实践所达到的效果
具体实践所达到的效果
结束语
遗传算法是一种求解组合优化问题的模 拟人类进化的有效算法,而TSP问题是最 经典的组合优化问题,可推广应用于VLSI 芯片设计、电路版布局、机器人控制、车 辆选路等领域。本文就是从研究最经典的 TSP问题入手,设计了一个用遗传算法解 决TSP问题的方法,并通过地图来进行仿 真。并且对其中的某些算法进行了改进, 并且对结果进行了比较。 另外,遗传算法是新发展起来的一门学 科,各种理论,方法尚未成熟,需要进一 步地发展和完善,这需要你,需要我,来 不断的推动它向前发展。
设计中所做的改进
二
改进循环交叉算法
通过认真分析循环交叉算法的原理, 根据具体的编程实现,对原循环交叉算 法作了改进。对原循环交叉中子代初始 位设为定值的情况,在本设计中我改为 了随机值。这样,种群的结果会多样化 ,从而避免了“早熟收敛”现象。最后 ,对两种算法进行了仿真实验,并且对 实验结果进行了比较,详细情况见论文 5.4节。
TSP问题的遗传算法求解方案
计算机科学与技术二班
要点陈述
1 3 TSP问题的定义及其实用价值
2
遗传算法简介及其优点
3
设计的基本流程
4
设计的具体模块
要点陈述
5 3 各个模块的具体实现 设计中所做的改进 具体实践所达到的效果
6 3
7
8
结束语
TSP问题的定义
TSP(traveling salesman problem, 即旅行商问题)的文 字描述可以如下表达: 给定一组N个城市和他 们两两之间的直达距 离,找出一个闭合的 旅程,使得每个城市 刚好经过一次且总的 旅行距离最短。
随机生成城市
各个模块的具体实现
顺序 近邻表示
矩阵表示
整数编码
各个模块的具体实现
步骤三
城市编码
整数编码: n个城市分别用 0到n-1之间不 同的整数表示 ,n个数的一个 排列就代表旅 行商问题的一 个可能解 ,同 时亦是染色体 的一种构成。
自然,简单和符合逻辑 满足TSP问题的约束条件
保证了每个城市经过且只经过一次,并 且保证任何一个城市子集中不形成回路。
遗传算法简介
遗传算法是仿照人类社会的进化过程 提出的,它首先利用随机方式产生一初 始群体,群体中的每个个体称为染色体, 它对应着优化问题的一个可能解,染色体 的最小组成元素称为基因,它对应可能 解的某一特征,即设计变量。染色体的 评价函数值反映可能解的优劣,按照优胜 劣汰原则对染色体进行选择,相对“好” 的个体得以繁殖,相对“差”的个体将死 亡,因此群体整体的性能,通过选择,交叉, 变异等过程将趋于改善,经过若干代繁衍 进化就可使群体性能趋于最佳。即能找 到最优解。
各个模块的具体实现
步骤四
遗传算法的相关参数的设置
各个模块的具体实现
步骤五
部分匹配交叉算法 顺序交叉算法
交叉算子
改进循环交叉算法
改进循环贪心交叉算法
各个模块的具体实现
步骤六
基于次序的变异算法 基于位置的变异算法
变异算子
倒位变异算法
各个模块的具体实现
步骤七
计算模块
当点击菜单开始后,程序开始 进行寻路算法。经过不断的选择, 交叉,变异,淘汰适应度比较差的 解,保留好的解,经过一代代的循 环,最终找到一条最优的染色体, 即找到一条最优路径。
设计的具体模块
城市生成模块 遗传算法参数设置模块
地图选择模块
毕业设计
交叉算子选择模块
具体输出信息显示模块
变异算子选择模块
各个模块的具体实现
步骤一
选择地图
直角坐标地图:当用 户选择直角坐标地图 时,程序接收一个菜 单响应消息,调用直 角坐标地图类,然后 调用函数在屏幕上画 一个700*420像素的直 角坐标地图,默认地 图为直角坐标地图。
圆形地图:当用户选 择圆形地图时,程序 接收一个圆形地图菜 单响应消息,调用圆 形坐标地图类,然后 调用函数在屏幕上画 一个圆形地图。
直角坐标地图
圆形地图
各个模块的具体实现
步骤二
城市生成
用户可以点击鼠标左键产生城市,也可 以选择菜单栏的设置城市选项,通过输入 城市数目来随机生成城市。还可以按指定 的城市坐标,设置指定的城市。当然,如 果用户选择错了城市,可以在该城市上点 击鼠标右键来清除城市。如果用户要清除 所有的城市,可以双击鼠标右键或选择菜 单栏的结束选项,都可以清除所有的城市 。
TSP问题的实用价值
应用二:印制电路板 的钻空路线方案
应用推广:城市水管, 电缆,电话线的铺设; 网络布线等等。
TSP问题的实用价值
应用三:连锁店的货 物配送路线 。 应用推广:货运公司 上门取货,送货上门 的路线;邮局取运邮 件的路线等等。 其实,TSP问题的应用还很多,像DNA基因序列 长度的计算,机器人控制等。在此就不一一介 绍
各个模块的具体实现
步骤八
结Байду номын сангаас显示模块
当找到一条最优路径以后,程 序即停止运行。最终会用有色线条 将图上的城市点连接起来,并且标 出旅行城市的起点以及各个城市的 访问顺序和编号。同时会将旅行路 线的长度,以及算法所消耗的时间 显示出来。
程序结果
设计中所做的改进
一
数据结构的改进
一般情况下,对于求解TSP问题,均 定义图状数据结构,这样,就必须定义 一系列的操作函数。本设计基于STL(标 准模板库)中包含了诸多在计算机科学领 域里所常用的基本数据结构和基本算法, 因此在VC++中应用STL进行编程。这样 ,既避免了定义复杂数据结构所带来时间 上的开销,又提供了更好的代码重用机 会。
遗传算法的优点
遗传算法作为一种模拟生物进 化的一种算法,提供了一种求解复 杂系统优化问题的通用框架。它不 依赖于问题的具体领域,对问题的 种类有很强的鲁棒性,具有自组织、 自适应和自学习性。这种自组织、 自适应特性不需要事先描述问题的 全部特点,所以可解决那些复杂的 非结构化问题。
设计的基本流程
TSP问题的实用价值
很多实际应用问题, 经过简化处理后,均 可建模为TSP问题, 因而对TSP问题求解 方法的研究具有重要 实际价值。 应用一:TSP问题最直 接的应用是车辆选路 应用推广:校车的选路;公路,铁路的铺设,输油 管道的铺设;灌溉水道的选取,调水工程(例如,南 水北调工程)路线的选择;行军路线的选择等。