遗传算法讲义.doc

遗传算法讲义.doc

ID:59127526

大小:200.50 KB

页数:6页

时间:2020-09-13

遗传算法讲义.doc_第1页
遗传算法讲义.doc_第2页
遗传算法讲义.doc_第3页
遗传算法讲义.doc_第4页
遗传算法讲义.doc_第5页
资源描述:

《遗传算法讲义.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、TechnicalReportTSP问题的遗传算法求解马广才,大连大学数学建模工作室一、序言本材料简单介绍了遗传算法的概念和算法的流程,结合2010年东北三省数学建模联赛B题:周游全中国,给出了用遗传算法求解TSP问题的matlab程序。二、遗传算法的概念遗传算法(GeneticAlgorithm)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的J.Holland教授1975年首先提出。它将问题域中的可能解看作是群体的个体,并将个体编码成符号串形式(即染色体),模拟生物进化过程,对群体反

2、复进行杂交等操作,根据预定的适应度函数对每个个体进行评价,依据优胜劣汰的进化规则,不断得到更优的群体,同时搜索优化群体中的最优个体,求得满足要求的最优解。三、遗传算法的基本流程a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0)。b)个体评价:计算群体P(t)中各个个体的适应度。c)选择运算:将选择算子作用于群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体再遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。d)交叉运算;将交叉算子作用于群体。所谓交叉是指把

3、两个父代个体的部分结构加以替换重组而生成新个体的操作。遗传算法中起核心作用的就是交叉算子。e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t1)。f)终止条件判断:若tT,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。四、问题描述TSP问题,又称旅行商问题,旅行推销员问题,是指对于给定的n个城市,旅行商从某一城市出发不重复的访问其余城市后回到出发的城市,要求找出一条旅行路线,使总的旅行路程最短。2010年东北三省数学建

4、模联赛B题:周游全中国,即为一个典型的TSP问题,图论中,将地图视为一个附权图,该问题就是求该图的一个最短哈密尔顿圈。到目前为止,哈密尔顿图的非平凡的充分必要条件尚不知道,因此TSP问题还没有有效的方法,现在的解决方法都是寻找一个近似最优的哈密尔顿圈。同时,TSP问题属于组合优化为范畴,目前流行的求解算法有模拟退火算法、蚁群算法、遗传算法等启发式算法。下面我们将给出用遗传算法求解该问题的MATLAB程序。遗传算法的一般算法流程一、求解程序1、种群规模、最大繁殖代数等基本参数的设定我们设定种群的规模为50,即种群中有50个个体,一个个

5、体对应问题的一个解。基因长度为34,即问题中我们要走访34个城市。最大的繁殖后代为第1000代。个体发生杂交的概率为0.9,发生变异的概率为0.15。读入距离矩阵distance,距离矩阵是一个34*34,主对角线为0的对称矩阵。-----------------------------------------------------------------PopSize=50;City=34;k=20;Max_gen=1000;PcX=0.9;Pm=0.15;distance=xlsread('distance.xls');---

6、--------------------------------------------------------------2、种群的初始化这里我定义了一个函数Initialize.m用来初始化种群。-----------------------------------------------------------------functionPop=Initialize(PopSize,City)Pop=zeros(PopSize,City);fori=1:PopSizePop(i,:)=randperm(City);endPop

7、=[Pop,zeros(PopSize,1)];-----------------------------------------------------------------Pop先设为PopSize行,City列的全0矩阵。之后,Pop的每一行为1—City的随机序列。最后在Pop矩阵加一列0,该列用以存放对应个体的适应值。1、初始种群适应值的计算为计算种群的适应值,我定义了一个Caculate.m函数。对种群中的每个个体,对应Pop矩阵中的每一行,分别计算按照该行的路径走的总路程,并存于该行的最后一个位置。---------

8、--------------------------------------------------------fori=1:sdd=0;forj=1:t-2dd=dd+distance(Pop(i,j),Pop(i,j+1));en

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。