免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用遗传算法解决旅行商问题用遗传算法解决旅行商问题关键词:旅行商问题,遗传算法,交叉,变异,1.引言假如有一个推销员,要到n 个 城市推销商品,他要找出一个包含所有n个城的路径并且这条路径必须经过所有城市,不重复,且要求最短,那该如何呢?2.问题概述所谓旅行商问题是最短路径问题就是在给定的起始点S到终止点T的通路集合中,寻求距离最小的通路,这样的通路成为S点到T点的最短路径。在寻找最短路径问题上,有时不仅要知道两个指定顶点间的最短路径,还需要知道某个顶点到其他任意顶点间的最短路径。用遗传算法解决这类问题,没有太多的约束条件和有关解的限制,因而可以很快地求出任意两点间的最短路径。如图所示红点为城市。从某城市出发,一直到走完所有城市,要求是不重复,路径要求段。解决此问题要用 遗传算法3遗传算法1)遗传算法的介绍遗传算法是一种模拟生命进化机制的搜索和优化方法,是把自然遗传学和计算机科学结合起来的优化方程,有很强的解决问题的能力和广泛的适应性。其假设常描述为二进制位串,位 串的含义依赖于具体应用。搜索合适的假设从若干初始假设的群体集合开始。当前种群成员通过模仿生物进化 的方式来产生下一代群体,如随机变异和交叉。每一步,根据给定的适应度评估当前群体的假设,而后使用概率方法选出适应度最高的假设作为产生下一代的种子。遗传算法的基本概念:(1)染色体:在使用遗传算法时,需要把问题的解编成一个适合的码子。这种具有固定结构的符号串既是染色体,符号串的每一位代表一个基因。符号串的总位数成为染色体的长度,一个染色体就代表问题的一个解,每个染色体也被称为一个个体。(2)群体:每代所产生的染色体 总数成为 群体,一个群体包含了该问题在这一代的一些 解的集合。(3)适应度:对群体中每个染色体进行编码后,每个个体对应一个具体问题的解,而每个解对应于一个函数值。该函数值即适应函数,就是衡量染色体对环境适应度的指标,也是反映实际问题的目标函数基本的遗传操作有:(1)选择:按一定的概率从上代群体中选择M对个体作为双亲,直接拷贝到下一代,染色体不发生变化。(2)交叉:对于选中进行繁殖的两个染色体X,Y,以X,Y为双亲作交叉操作,从而产生两个后代X1,Y1.(3)变异:对于选中的群体中的个体(染色体),随机选取某一位进行取反运算,即将该染色体码翻转。用遗传算法求解的过程是根据待解决问题的参数集进行编码,随机产生一个种群,计算适应函数和选择率,进行选择、交叉、变异操作。如果满足收敛条件,此种群为最好个体,否则,对产生的新一代群体重新进行选择、交叉、变异操作,循环往复直到满足条件。2)遗传算法原型:GA(Fitness,Fitness_threshold,p,r,m)Fitness:适应度评分函数,为给定假设赋予一个评估分数Fitness_threshold:指定终止判据的阈值p:群体中包含的假设数量r:每一步中通过交叉取代群体成员的比例m:变异率l 初始化群体:P随机产生的p个假设l 评估:对于P中的每一个h,计算Fitness(h)l 当maxFitness(h)Fitness_threshold,做产生新的一代Ps:1.选择:用概率方法选择P的(1-r)p个成员加入Ps.从P中选择假设hi的概率用下面公式计算: 2.交叉:根据上面给出的,从P中按概率选择r(p/2)对假设.对于每对假设,应用交叉算子产生两个后代.把所有的后代加入Ps3.变异:使用均匀的概率从Ps中选择m%的成员.对于选出的每个成员,在它表示中随机选择一个为取反4.更新:PPs5.评估:对于P中的每个h计算Fitness(h)从P中返回适应度最高的假设4问题分析旅行商问题要从图G的所有周游路线中求取最小成本的周游路线,而从初始点出发的周游路线一共有(n-1)!条,即等于除初始结点外的n-1个结点的排列数,因此旅行商问题是一个排列问题。排列问题比子集合的选择问题通常要难于求解得多,这是因为n个物体有n!种排列,只有n! 个 子集合(n!O( )。通过枚举(n-1)!条周游路线,从中找出一条具有最小成本的周游路线的算法,其计算时间显然为O(n!)。5问题的遗传算法设计问题的图论描述 求最短路径问题,用图论术语描述如下:在图G(V,A)中,V表示顶点集合,V=(v1,v2,vn) 对G中的某一边( , ),相应的有一个数d( , ),如果G中不存在边( , ),则令d( , )无穷大,如果把d( , )认为是边( , )的长度,则通路的长度定义为组成路的各条边的长度总和。 顶点 , 之间是否有边相连,由邻接矩阵来决定。 邻接矩阵A:对一个具有v个顶点,e条边的图G的邻接矩阵A= 是一个vv阶方阵,其中 =1,表示 和 邻接, =0表示vi和vj不相邻接(或i=j)染色体编码对于一个给定的图模型,将图中各顶点序号自然排序,然后按此顺序将每个待选顶点作为染色体的一个基因,当基因值为1时,表示相应的顶点被选入该条路径中,否则反之。此染色体中的基因排列顺序即为各顶点在次条通路中出现的先后顺序,染色体的长度应等于该图中的顶点个数。在本程序的TSP问题中一共有20个城市,也就是在图模型中有20个顶点,因此一个染色体的长度为20。适应函数f(i)对具有n个顶点的图,已知各顶点之间(,)的边长度d(,),把到间的一条通路的路径长度定义为适应函数: 对该最优化问题,就是要寻找解,使f()值最小。、选择操作选择作为交叉的双亲,是根据前代染色体的适应函数值所确定的,质量好的个体,即从起点到终点路径长度短的个体被选中的概率较大。 交叉与变异操作将被选中的两个染色体进行交叉操作的过程是先产生一个随机数,确定交叉点,位于染色体的第几位基因上.然后在此位置进行部分基因交换。变异操作是将染色体中某位基因逆变,即由1变为0,或反之。变异的意义为在某条路径上去掉或增加某顶点.但这样做的结果并不一定能使路径的长度减少。也就是说有可能使各代中产生的比较好的方案在遗传过程中丢失,迟缓了获得最优解的速度。为了使算法尽可能快地获得更好的解,改善遗传算法的收敛性。在变异操作时,增加了个体求优的自学习过程,即在某位基因变异后.计算新产生的染色体的适应函数值,若适应函数值更小,即获得的路径更短,则保留;否则,保持原来的解不变。如果有连续N/3次没有得到更好的解,则该过程结束。其中N表示从起点到终点的顶点数。旅行商问题的遗传算法的具体步骤解最短路径的遗传算法如下:第一:Generatep(n);表示程序开始时要首先产生一个群体,群体个数为n第二:Evaluatep(h);表示计算每个个体适应度,h是种群中的一个个体第三:Repeat roof Generations times;重复下面的操作,直到满足条件为止第四:Select p(h) from p(n-1);表示从前一代群体中选择一对双亲,用于交叉、变异 操作,P(n)代表第n代群体第五:Crossover and mutation p(n);进行交叉和变异操作第六:Learningp(n);自学习过程第七:Evaluatep(h);计算新生成的种群中每个个体的适应度6.实验测试结果交叉率不可选择过小,否则,延缓获得最优解的过程,本程序选择=0.85。变异率的选择对规模大的优化问题影响很大,本程序选=0.1。 群体中的个体数的选取是算法中一个很重要的参数,群体中的个体数目越大,算法就越能找到更好的解,个体数目过小,有可能找不到最优解。本程序种群大小为300。因为有20个城市,每个城市作为染色体中的一个基因,因此在本程序中染色体的长度为20。本程序的循环终止的条件是迭代次数不大于100,因此,最大迭代次数为100。本程序中总共运行10次,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汾西社区工作者招考真题及答案2025
- 2025年洛阳职业技术学院招聘真题
- 南京市六合区冶山街道招聘考试真题2025
- 作文开头-中考语文作文易混易错(解析版)
- 教育培训从业人员在招生中弄虚作假检讨书
- 人教版七年级语文下册期中综合评价卷含答案
- 话剧院戏韵一夏 - 暑期话剧观赏手册
- 告别粗心失分|六年级英语语态入门暑假易错题型清零课件
- 2026年账户异常处理通知书6篇范本
- 企业供应链中断物流调配预案
- 2026年甘肃庆阳宁县直事业单位选聘24人笔试模拟试题及答案详解
- 2026四川省水电投资经营集团有限公司所属电力公司员工招聘5人备考题库含答案详解(精练)
- 2026年江苏省高考地理试卷(含答案及解析)
- 食品安全地方标准 桑黄
- 2017年中小学德育工作指南
- GB/T 44521-2024刮板输送机安全规范
- 甄嬛传电子版剧本第01-10集
- RB/T 180-2017基于过程的质量管理体系审核指南
- GB/T 7829-1987故障树分析程序
- GB/T 13389-2014掺硼掺磷掺砷硅单晶电阻率与掺杂剂浓度换算规程
- GB 29449-2012轮胎单位产品能源消耗限额
评论
0/150
提交评论