遗传算法实例.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

旅行商问题:

一个旅行商需要访问5个城市,在任意路线的两个城市之间有一个关联的费用(例如公里数、航空费用等)。找出一个费用最少的路径:从一个城市出发,经过所有其他的城市一次且仅一次,然后回到出发点,城市编号为1,2,...,5。给定种群规模N=100,进化代数T=20,交叉率Pc=0.95,变异率Pm=0.08。

1、问题分析

本问题中一个旅行商要访问5个城市,寻找费用最少的路径。因为费用一般与路途长远成成一定比例,这里我们不妨将城市之间的距离代替为旅行城市之间的费用,这样旅行费用最少问题我们可以化为一个寻找一条最短的遍历5个城市的最短路径,即搜索自然数子集W={1,2,3,4,5}(W的元素表示对5个城市的编号)的一个排列π(W)={V1,V2,V3,V4,V5},使length=∑d(Vi,Vi+1)+d(V1,V5)取最小值,式中的d(Vi,Vi+1)表示城市Vi到城市Vi+1的距离.

算法基本流程

3.基因个体编码方法

由于遗传算法不能直接处理问题空间的数据,所以我们必须将问题空间的数据映射成遗传空间的基因型串结构数据,而算法程序是可以处理遗传空间的基因型串结构数据的。比如现在要计算北京、天津武汉、西安、拉萨这五个城市的一条最优路径,但算法程序不能够直接处理北京、天津、武汉、西安、拉萨这些数据,所以我们得给它们编上号,北京(0)、天津(1)、武汉(2)、西安(3)、拉萨(4),路径(天津→西安→北京→武汉→拉萨)可以表示成基因型串结构数据(13024),这样算法程序只要直接处理它们的编号就行了。

本例采用互换编码在旅行商问题中,一串基因编码用来表示遍历的城市顺序,如:23451,表示五个城市中,先经过城市2,再经过城市3,依此类推。

4.初始种群产生方法

路径编码是最直观的方式,以城市序号作为遗传基因。在本例中,我们用一个N维向量来表示一个个体,N是城市总数,元素表示城市遍历顺序,以最后一个到达的城市为结束。则群体用一个N*POP的矩阵表示,POP为群体中的人口(个体数)。初始群体在空间中自动生成。

5.适应度计算方法

遗传算法对一个个体(解)的好坏用适应度函数值来评价,适应度函数值越大,解的质量越好。适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准,它的设计应结合求解问题本身的要求而定。本例中,遍历各城市路径之和越小越好,由于暂时无法先验估计收敛性和目标结果,所以以一个参数,最大遗传代数作为程序结束控制。

6、遗传算子设计

(1)、选择(selection):选择或复制操作是为了从当前群体中选出优良的个体,

使它们有机会作为父代为下一代繁殖子孙。个体适应度越高,其被选择的机会就越多。此处采用与适用度成比例的概率方法进行选择。具体地说,就是首先计算群体中所有个体适应度的总和(),再计算每个个体的适应度所占的比例(),并以此作为相应的选择概率。

(2)、交叉操作:交叉操作是遗传算法中最主要的遗传操作。简单的交叉(即一

点交叉)可分两步进行:首先对种群中个体进行随机配对;其次,在配对个体中随机设定交叉处,配对个体彼此交换部分信息。

(3)、变异:变异操作是按位(bit)进行的,即把某一位的内容进行变异。变异操作同样也是随机进行的。一般而言,变异概率都取得较小。变异操作是十分微妙的遗传操作,它需要和交叉操作配合使用,目的是挖掘群体中个体的多样性,克服有可能限于局部解的弊病。

程序

%主程序

%初始化

a=[00;12378;345567;12341221;788423];%a:假定的5个城市的坐标

n=100;%n:种群个数

T=20;%C:停止代数

m=1;%m:适配值淘汰加速指数

Pc=0.95;%Pc:交叉概率

Pm=0.85;%Pm:变异概率

D=distance(a);%生成距离矩阵

[R,Rlength]=GeneTSP(D,a,n,T,m,Pc,Pm);

%返回值:最优路径R,总距离Rlength

-----------------------------------------------------------------

%子程序(.h文件)

%GeneTSP.h

%D:距离矩阵

%n:种群个数

%a:5个城市的坐标,在初始化时设定

%T:停止代数

%m:适值淘汰加速指数,不宜太大(5以下)

%Pc:交叉概率

%Pm:变异概率

%R:最短路径,Rlength:路径长度

function[R,Rlength]=GeneTSP(D,a,n,T,m,Pc,Pm)

[N,NN]=size(D);

文档评论(0)

bookljh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档