欢迎来到天天文库
浏览记录
ID:56205355
大小:59.00 KB
页数:4页
时间:2020-06-21
《一种改进的遗传算法及其在TSP中的实.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一种改进的遗传算法及其在TSP中的实现摘要文章针对TSP问题,提出了一种改进的遗传算法。在遗传算法中引入进化算法的思想,在此基础上提出顶端培育策略和分阶段策略,以求在保证群体多样性的同时加快收敛速度。算法的仿真和测试表明,该算法对遗传算法的改进是有效的。关键词TSP遗传算法进化算法1引言TSP问题是典型的NP完全问题。目前求解TSP问题的主要方法有启发式搜索法、模拟退火算法、遗传算法、Hopfield神经网络算法、二叉树描述算法,遗传算法是求解此类NP完全问题的一种比较有效的全局搜索方法。但遗传算法中一个较难解决的问题是提高收敛速度的同时取得最优
2、解或较优解。文献一中提出的思维进化算法在对TSP问题的求解中取得了较好的结果,本文在遗传算法的基础上,引入思维进化算法加强收敛性。此外,本文提出的分阶段策略和顶端培育策略有利于保持群体多样性的同时加快收敛速度。2思维进化算法简介[1]对于思维进化算法(原名Mind-Evolution-BasedMachineLearning,现更名为MindEvolutionaryComputation),据文献1介绍如下:群体中共有n个子群体。在每个子群体中包含m个体和一个局部标志矩阵,用于记录子群体进化时的信息。在整个环境中有一个全局标志矩阵,用于记录群体中
3、优胜个体的基因信息。首先,在子群体内部进行竞争,淘汰部分较差个体,提取优胜者信息并记录到局部标志矩阵,其中的最优个体代表该子种群;另外,将每个子种群的最优个体信息记入全局标志矩阵,并用末位淘汰制淘汰最差的子群体,该子群体的新个体由全局标志矩阵指导产生,而在各子群体内部则据局部标志矩阵产生新个体来补充被淘汰的个体。因为全局标志矩阵记录了各代各子群中最优个体的信息,所以据它所产生的新个体以较大概率成为较优个体,有利于加强收敛速度。而局部标志矩阵记录了各子群内部部分较优个体的信息,所以,据它所产生的新个体以较大概率在局部(子群内部)成为较优个体。这样也
4、有利于保持群体的多样性。3算法综述3.1主要思想:本算法在遗传算法的基础上引入进化思想的方法,将遗传算法与思维进化算法有机结合起来。即利用传统的遗传算子(选择、交叉、变异)来产生优良的一部分个体后代,而另一部分个体后代则依据已产生各辈的优良基因记录(标志矩阵)来生成。另外,本文提出了“顶端培育策略”和“分阶段策略”以加快收敛速度。“顶端培育策略”是指对顶端(群体中优胜个体)加大培育力度(增加变异概率和变异方式);“分阶段策略”是指对迭代的不同时期采取不同变异概率和变异方式。3.2顶端培育策略:“一母生九子,九子各不同”,在生物学中,这是遗传中客观
5、存在的生理现象。针对TSP问题,通常需求的是全局最优解。因此,对同一代中不同个体应采取不同培育力度:即对于优胜个体应该加大培育力度。基于这一生理现象,“顶端修改策略”即对当前群体内(或子群)的最优个体作为重点培育种子,加大对它的变异概率和方式。因为当前群体内(或子群)的最优个体是当前目标值最小的个体,它的基因通常较接近全局最优解的基因,通过它的成功变异能提高收敛速度。3.3分阶段策略:对于不同进化阶段,群体间个体之间的差异性有明显不同,初始群体由随机生成,个体差异很大,进化了一定的代数之后(尤其是较为接近最优解时),个体之间差异较小,即群体内的大
6、部分个体(尤其是那些优胜个体)的基因趋同。种群的多样性大为降低,易陷入“早熟”而停止收敛。所以,应该加大变异操作的概率或增加变异的方式来增强后期的收敛速度。3.4算法框架:<1>初始化:Generation=0;//初始化进化代数InitialPop(Pop);//初始化种群Pop(n,m,N)MaxNumber=constMax;//定义常量最大循环次数X=constX;//定义常量系数(分阶段策略)PublicRecord(N,N)=1;//全局标志矩阵赋初值SubRecord(n,N,N)=1;//局部标志矩阵赋初值BestRecord(n
7、,2)=0;//记录最优个体矩阵赋初值While(Generation选择:Select(N,Pop,PublicRecord,SubRecord);//选择UpdateBestRecord(BestRecord);//记录子种群的最优个体UpdatePublicRecord(PublicRecord);//记录全局优胜个体UpdateSubRecord(SubRecord);//记录局部优胜个体<3>交叉:Xover(N,Pop);//交叉<4>生成:Complete(N,Pop,PublicRecord,SubR
8、ecord);//据标志矩阵生成新个体<5>变异:ifGeneration>X*MaxNumberAddMutateProbabilit
此文档下载收益归作者所有