遗传模拟退火算法及其应用
- 格式:pdf
- 大小:631.45 KB
- 文档页数:17
本科毕业设计(论文)外文参考文献译文及原文
学院轻工化工学院
专业制药工程
(天然药物方向)年级班别20 09级(2)班
学号3109002300
学生姓名黄学润
指导教师魏关锋
2013年6月
遗传/模拟退火算法及其应用
Guangming Lv, Xiaomeng Sun, Jian Wang
College of Mechanical and Electronic Engineering, Harbin Institute of Technology, Harbin Heilongjiang, China
lgmhit@
摘要:本文将模拟退火算法和遗传算法相结合,提出了一种新的算法。遗传算法(GA)中嵌入模拟退火算法(SA),结合成一个新的全局优化算法。SA的使用降低了GA的参数选择的困难。此外,新算法可以缩减组合的搜索区域,并避免了遗传算法中存在的“过早收敛”问题,提高了算法的收敛性。遗传操作的交叉算子在该算法中发挥着重要作用。通过计算机仿真,我们可以看到新的算法相对于传统的遗传算法和模拟退火算法更具优势。
关键词:模拟退火法;遗传算法;过早收敛;交叉算子
I.引言
遗传算法(GA)首先由密歇根大学教授J.Holland提出,源于对自然和人工系统的自适应行为的研究。GA是模拟生物在自然环境中的遗传和进化过程而形成的一种基于达尔文的进化论和孟德尔的遗传学说的自适应全局优化概率搜索算法。对于复杂的优化问题,没有必要使用GA的建模和复杂操作[1]。与传统的搜索算法相比,GA将优化问题的解空间转换成遗传空间。它从一个种群中产生问题的一个解,并根据“优胜劣汰”的原则,一代又一代的达到问题的最优解或最近解。
遗传算法的主要特点是:处理对象不是参数本身,而是参数集的编码操作;GA同时处理的几个群体中个体,即同时估计在搜索空间中的几个解;GA只利用问题的目标函数,不需要任何其他条件或辅助信息;GA不采取一定的角色,而采用概率的变化规律来指导搜索方法;GA可以在较大的解空间快速搜索。
GA通过选择复制的行为和遗传因素保持优化种群的进化使得他们最终收敛到最优解。选择复制给予个体更大的适应性和函数值更大的复制概率,并能加速
算法的收敛速度。交叉算子可以由父代个体的基因互换以帮助搜索出更好的个体。变异操作可以带来遗传基因进化群,避免陷入局部极值点。
近年来,两种类型的全局随机优化方法-模拟退火(SA)和遗传算法已经得到了广泛应用[2]。它们在难以由基于梯度的传统方法解决的复杂的优化问题上,显示出良好的性能。GA通过优胜劣汰的策略,采用生物进化的思想解决优化问题;SA源于统计物理学方法,由Kirkpatrick和其他研究人员首先引入组合优化领域[3]。GA具有较强的全局搜索能力,但存在过早收敛的问题,在进化后期,其搜索效率低,减缓遗传算法的进化,使得搜索效率低;SA具有较强的局部搜
索能力,能避免陷入局部优解,但搜索时不能很好地控制搜索过程而使工作效率很低[4]。在本文中,我们将模拟退火的思想嵌入到遗传算法,并有效地将它们结合在一起,从而减少了GA的参数选择的困难,和提高GA的全局收敛性,避免搜索时陷入局部优解。
II.模拟退火算法
模拟退火(SA)是一种基于Monte Carlo迭代法的启发式随机搜索算法。SA 来源于对固体物质的退火降温过程中的热平衡问题的模拟和随机搜索优化问题,以找到全局最优解或近似全局最优解[5]。SA在寻找最优解的过程中,不仅接受
优解,而且根据随机的验收标准,在一定程度上接受恶化解(Metropolis准则)。此外,接受恶化解的概率逐渐趋向于0,这使得能够跳出局部极值区,从而找到全局最优解,所以要确保算法的收敛性[6]。
模拟退火算法可以划分成三个部分:解空间,目标函数和初始解。其求解过程如下:
第一步:产生随机初始解x0(算法迭代的初始点);
第二步:初始化退火温度T0(足够大);
第三步:在温度T k下,执行如下操作:
(1)产生新的可行解x'(x'是x的相应的目标函数值);
(2)计算新解的评价函数f(x')和旧解的评价函数f(x)的差值:∆f=f x′−f(x);(3)依照概率min{1,exp(−∆f T k)}>random[0,1]接收新解,(random[0,1]
是一个[0,1]区间内的随机数。如果温度达到T k,平衡条件转至第四步或第三步);
第四步:按一定的方式,缓慢降低温度,定义降温函数为T k +1=αT k,k←k +1(α∈[0,1])。α为略小于1.00的常数);
第五步:若满足收敛条件,退火过程结束。否则,转至第三步。
III .模拟退火新的遗传算法(SAGA)
虽然许多研究和应用表明遗传算法的性能是比较好的,但“过早收敛”的问题存在于许多实际应用中。在演化群体中,一些少数个体的适应度比其他个体大得多,再经过几代人,这些个体提前占据整个种群,进化过程提前收敛。为GA 选择一种选择方式,同时保持良好的个体及维持种群多样性,是一个棘手的问题。一些改进的选择方式提高遗传算法的性能是有用的。
传统的遗传算法,竞争只发生子代之间,子代和父代之间不存在竞争,所以可能会失去父代中一些优秀的个体。一些算法把最优解放入下一代以保持它们,但这可能会导致过早收敛。此外,GA采用随机交叉和变异系数和个体后,交叉和变异的个体不一定是优秀的,这可能会破坏原有的优秀个体,影响算法的性能。
GA和SA在一些现有的方法相结合。例如,SAGA在文献[7]中控制变异概率的选择(Pm=exp(−θT));GA在文献[8]中提高了SA的性能,整个算法分为两部分:GA阶段和SA阶段。首先,它产生GA一组解,然后由SA调整优化。
本文中的算法与上述方法不同。通过使用SA,减少了GA的参数选择的困难。交叉操作是GA的主要因素,优化过程主要依赖于它。SAGA采用这个想法,并对每一个确定的个体执行交叉操作,并让交叉和变异后的子代与父代竞争。子代接受Boltzmann机制,这有利于保持良好的个体,可以同时避免过早收敛。随着个体的不断进化,温度逐渐降低,接受恶化解的概率也逐渐降低。它有效地利用SA的爬山特性,并提高了收敛速度。
本文的SAGA步骤如下:
第一步:初始化控制参数:N为种群规模;Pm为变异概率;T为退火初始温度;α一个是温度冷却参数。
第二步:随机生成初始解组。
第三步:对生成解组执行如下操作,直到下一代出来。