吕兴亚的一种改进的遗传算法及其应用
- 格式:doc
- 大小:125.00 KB
- 文档页数:6
遗传算法的一种改进实现向婷,潘大志,陈友军,杨爽(西华师范大学数学与信息学院,四川南充 637009)摘要:遗传算法是模拟生物界的遗传和进化过程而形成的一种自适应全局优化搜索算法.针对基本遗传算法的缺点,从选择、交叉和变异三个算子出发,采取替换部分最差个体、引入小生境思想和集中因子等方式进行处理,提出一种改进的遗传算法(IGA).通过测试函数Rastrigin确定IGA中的相关参数,并与基本遗传算法比较,体现IGA 的优越性和可行性.关键词:遗传算法;小生境;集中因子;自适应中图分类号:TP18 文献标识码:A1 引言遗传算法最早由美国密执安大学的Holland教授提出[1],后由De. Jong进行了大量的纯数值函数优化计算实验[2],80年代由Goldberg归纳形成基本框架[3].目前,遗传算法由于其运算简单和解决问题的有效能力而被运用到了众多领域,主要体现在优化问题、自动控制、机器人智能控制等领域.但是,基本遗传算法(GA)存在易早熟、收敛速度慢等缺点.人们也提出了许多改进措施,主要着眼于编码表示、适应度函数、选择策略、控制参数、遗传算子、算法融合等方面.如JaehunLee[4]等提出了染色体矩阵编码方法,实现了遗传算法与贝叶斯网络两种算法的集成和应用;文献[5]中提到的重复串的适应度处理通过选择策略的改变调控并维持种群多样性等.马坚[6]提出基于改进遗传算法的彻底进化神经网络算法,实现对电力变压器故障的快速且准确的判断.目前,遗传算子的改进是遗传算法改进的焦点与突破口.如文献[7]中的交叉算子将种群逐步向极值点引导,并将惩罚策略与修复策略相结合提出修复算子,提高了算法搜索效率以及对非线性约束的处理能力;唐国新等[8]优化设计了交叉算子和变异算子,并引入了自定义的插入和删除两种操作提高算法的进化效率,已成功应用于机器人路径规划中;Fatemeh Vafaee等人[9]提出的利用差分进化实现遗传算子自适应选择的方法卓有成效,推动了自适应选择的方向发展.本文从遗传算法的三个基本算子出发,采取替换部分最差个体、引入小生境思想和集中因子等方式实现改进,改进算法的收敛速度和稳定性都大为提高,其优势在高维的优化问题中尤为明显.2 基本遗传算法遗传算法是建立在达尔文(Darwin)的生物进化论和孟德尔(Mendel)的遗传学说基础上的一种自适应全局优化搜索算法.遗传算法的运算对象是由多个个体组成的集合,称为群体.基本遗传算法中包含了选择、交叉和变异三种算子,其运算过程是运用三种算子的反复迭代过程,最终得到群体的优良个体,它所对应的表现型将达到或者接近于所求问题的最优解.基本遗传算法的主要步骤如下:step1. 根据待解问题的参数集进行编码;step2. 初始化群体;step3. 计算群体中每个个体的适应度值;step4. 按照由个体的适应度值所决定的某个规则选择将进入下一代的个体;收稿日期:2014-06-18基金项目:四川省教育厅自然科学基金( 14ZA0127,14ZA0134); 西华师范大学博士启动基金(12B022)作者简介:向婷(1991—),女,四川巴中人,西华师范大学数学与信息学院硕士研究生,主要从事智能计算、数值计算研究通讯作者:潘大志(1974—),男,四川三台人,西华师范大学数学与信息学院教授,硕士生导师,主要从事智能计算,算法设计研究step5. 按交叉概率而进行交叉操作; step6. 按变异概率而进行变异操作;step7. 如果没有满足某种终止条件,则转到第step3,否则进入step8; step8. 输出种群中适应度值最优的染色体作为问题的满意解或最优解.3 改进的遗传算法虽然遗传算法被运用到众多领域,理论上也证明了算法能够从概率意义上以随机的方式寻求问题的最优解,但是在遗传算法的应用中仍存在着缺点:易早熟收敛,搜索性能不高,不易达到全局收敛;时间复杂度比较高,搜索的效率比较低.而局部最优和收敛速度往往相互矛盾.为了协调这一矛盾,提高遗传算法的搜索效率的同时保证得到全局最优解,本文从三个基本算子出发,提出了改进的遗传算法(IGA ). 3.1 选择算子的改进选择操作在实际的运算初期,对所有个体进行赌盘选择会让算法需要很长时间才能收敛到最优解,影响运算效率.针对这一缺点,将群体中适应度最差的部分个体用适应度较好的个体替换,提高种群的整体适应度.改进的选择算子如下:Step1. 利用公式(1)计算出个体的赌盘概率,按概率大小对种群中的全部个体进行升序排列,得到最小概率min p 和最大概率max p ;∑==Mk k i i F F p 1/ (1)Step2. 把概率在min p ~)(min max min p p p -+α范围内的N 个低概率个体丢掉,从概率在)(min max min p p p -+α~max p 范围的个体中随机选择N 个个体加入种群,保证种群大小为M 不变. Step3. 对种群进行赌盘选择.其中i F 为第i 个个体的适应度值,α为替换因子.该方法可使每一代中的优良个体得到保护,不良个体被淘汰,以期通过交叉等操作产生更优的个体,让算法的寻优速度得以提高. 3.2 交叉算子的改进基本遗传算法中关于交叉算子的操作是非常简陋的,且交叉概率为一个恒定不变的数,不会考虑到个体的相似度[10].这种交叉一方面会使部分相似度较高的个体进行交叉,产生的子代和父代差别很小,使得交叉过程作用不大;另一方面在运算后期,恒定的c p 很容易将优良基因模式破坏,使算法不能够收敛或者是收敛速度明显变慢.本文效仿自识别交叉算子[11],利用小生境的思想,得到了改进的交叉算子,其步骤如下:Step1. 计算交叉个体i X 和j X 的距离ij s ; Step2. 如果D L s ij⨯≤,转step4,否则按公式(2)计算交叉概率:TtP P P P c c c c ⋅--=)(min 00 (2) Step3. 根据c P 进行交叉操作;Step4. 交叉操作结束.其中L 为临界距离系数;D 为问题维数;0c p 为初始交叉概率;min c p 为最小的交叉概率;t 代表当前迭代次数;T 为终止代数.当j i s 较大时,父代个体的相似度较低,进入交叉操作.迭代初期,c p 较大,可增强群体的多样化程度,产生很多新的个体.随着迭代次数t 的增加,在进化后期,群体逐渐靠近最优解,此时较小的c p 可以一定程度上保护优良模式的个体,加快算法的收敛速度.3.3 变异算子的改进在进化后期,种群中的个体都趋近于最优解,种群的平均适应度和最优个体的适应度非常接近,部分个体也可能处于局部最优点.此时需要施加一个较大的变异概率来增强个体间的竞争力,帮助部分个体跳出局部最优,防止算法停滞不前或陷入局部最优[12]. 改进的变异算子中采用集中因子[13]来描述种群的集中程度,根据集中因子来控制变异概率.改进的变异算子如下:Step1. 计算种群的集中因子m :max max /)(F F F m avg -= (3) Step2. 计算自适应变异概率: Ttm k p p m m ⋅⋅-=max (4) Step3. 根据m p 进行变异.其中max m p 为变异概率的最大值;k 为变异系数.4 参数选择及算法性能测试4.1 参数选择IGA 中共涉及了三个参数,分别是:替换因子α、临界距离系数L 和变异系数k ,本文选用标准测试函数Rastrigin 来确定取值.Rastrigin 函数为:]12.5,12.5[,)10)2cos(10()(12-∈+-=∑=i ni i i x x x x f π该函数是一个多峰函数,当),...,1(0D i x i ==时函数达到全局极小值点,全局极小值为0,在其可行解集},...,1],12.5,12.5[|),..,({1D i x x x X S i D =-∈==内大约存在D 10个局部极小值点.在利用Rastrigin 函数对IGA 进行测试时设定:8.00=c P ,4.0min =c P ,3.0max =m P ,种群大小40=M ,最大迭代次数2000max =T .通过前期数据处理分析,测试时,α取值为0.2、0.3和0.4, L 取值为0.01、0.05和0.1,k 取值为0.5、1.0、1.5、2.0和2.5,总共构成45种参数取值组合.在每种参数组合下,算法各运行20次,得到各组参数下Rastrigin 函数求解的最优值、最差值、平均值,对运行结果进行分析,确定出参数最佳取值组合.由于维数对算法的求解有一定的影响,为了考察IGA 在不同维数下的求解能力,这里分别考虑了Rastrigin 函数在维数D 分别为15、20和25下的运行结果.由于篇幅关系,这里没有给出IGA 算法在45组参数组合下求解Rastrigin 函数的优化结果,而是根据运行得到的基本数据给出分别按α、L 和k 进行均值计算的结果,结果见表1-表3.表1 不同的替换因子α在L 和k 的15种组合下运行结果的均值Tab.1 Average value of different alternative factor α under15 kinds of L and k .αD=15Best Worst AvgD=20 Best Worst AvgD=25Best Worst Avg0.2 0.3 0.4 4.1E-04 1.9E-04 1.2E-047.0435 6.1284 5.5128 1.6800 1.5283 1.3888 1.0266 0.6750 0.3365 23.0945 18.2814 13.4251 9.4023 6.9597 5.8565 9.3232 5.6150 4.9570 47.8013 34.8830 26.7250 25.0435 16.7653 13.5910表2 不同的临界距离系数L 在α和k 的15种参数组合下运行结果的均值 Tab.2 Average value of different distance coefficient L under15 kinds of αand K.表 3 不同的变异系数k 在α和L 的9种参数组合下运行结果的均值Tab.3 Average value of the different coefficient of variation k under 9 kinds of αand L .由表1可知,在替换因子4.0=α时,IGA 算法求解Rastrigin 函数获得最好结果.在表2中,当临界距离系数01.0=L 时,IGA 算法在求解15维的Rastrigin 函数的最优值的均值最小,而在其他情况下IGA 算法均是在05.0=L 时求解Rastrigin 函数的均值最小.从表3可知,只是当变异系数5.2=k 、25=D 时,IGA 算法求解Rastrigin 函数的最差值的均值最好,而在其他情况下,都是在0.2=k 时,算法获得最好值.经过上面的分析可知,IGA 算法中的替换因子α、临界距离系数L 和变异系数k 三参数的取值组合可为:4.0=α、05.0=L 、0.2=k .4.2 算法性能测试表4 IGA 和GA 分别求解Rastrigin 函数的结果比较Tab.4 The results comparison between IGA and GA respective solution to the Rastrigin function.算法 D=15Best Worst AvgD=20Best Worst AvgD=25Best Worst AvgIGA GA9.8E-05 2.0E-04 3.9871 45.4676 1.3705 13.3850 0.0050 18.7578 10.9631 94.4858 5.7904 54.6772 2.0019 60.7102 26.8801 135.4671 12.8357 102.6030算法中的参数确定后,需要测试IGA 算法的性能,现将其与GA 算法同时用于求解Rastrigin 函数,求解结果对比见表4.从表4中可知,在求解Rastrigin 函数的最优解时,IGA 算得到的结果远LD=15Best Worst Avg D=20Best Worst AvgD=25Best Worst Avg0.01 0.05 0.12.1E-04 2.3E-04 2.7E-046.3293 5.8118 6.5437 1.5712 1.5022 1.5236 0.6143 0.5497 0.8741 20.0990 16.4174 18.28467.2286 7.1604 7.8295 6.4919 6.3876 7.0156 36.0328 35.6566 37.7199 18.9283 18.0496 18.4219k D=15Best Worst AvgD=20Best Worst AvgD=25Best Worst Avg2.5 2.0 1.5 1.0 0.52.5E-04 1.6E-04 2.5E-043.6E-04 1.8E-04 6.5586 5.5621 6.7810 5.6694 6.5701 1.7900 1.4863 1.5227 1.3024 1.5603 0.7918 0.4563 0.7967 0.9003 0.4517 16.1262 15.2865 19.5412 17.9083 22.4728 7.0187 6.8348 7.1783 7.5048 8.4942 5.5735 5.0642 7.1965 7.1464 8.1781 33.3256 34.1913 37.5103 35.7341 41.5875 16.9489 16.7880 18.5581 18.9659 21.0722远好于GA 算法得到的结果,特别是在高维优化时,IGA 算法更加有效.分析表明IGA 算法相应的改进方法是有效可行的.为了进一步了解GA 和IGA 算法在求解Rastrigin 函数最优值时的种群变化,在图1-图3中给出了两种算法的种群均值随迭代过程.tR a s t r i g i n图1. D=15时,种群均值迭代过程Fig.1 The iterative process of populationmean with D=15tR a s t r i g i n图2. D=20时,种群均值迭代过程Fig.2 The iterative process of populationmean with D=20tR a s t r i g i n图3. D=25时,种群均值迭代过程Fig.3 The iterative process of populationmean with D=25从图中可知,IGA 算法比GA 算法具有更好的稳定性,并且收敛速度更快,进一步表明IGA 算法的相关改进操作是有效可行的.综上所述,IGA 算法是在基本算法基础上从三个基本算子出发的改进遗传算法,让选择算子和交叉算子缩短寻找最优解的时间,变异算子增强遗传算法跳出局部收敛的能力,从而达到调节遗传算法局部最优与收敛速度的矛盾的结果.通过测试函数Rastrigin 确定参数的取值和评价IGA 性能,由测试性能知:IGA 算法得到的结果远远好于GA 算法得到的结果,高维优化时IGA 算法更加有效,且IGA 算法比GA 算法具有更好的稳定性,收敛速度更快,表明IGA 算法的相关改进操作是有效可行的.参考文献:[1] HOLLAND J H .Adaptation in Nature and Artificial Systems[M].MIT Press ,1992.[2] DE JONG K A.An Analysis of the Behavior of a Class of Genetic Adaptive Systems[M].Ph.D Dissertation, University of Michigan ,1975.[3] GOLDBERG D E ,Genetic Algorithms in Search,Optimization and Machine Learning[M], Addition Wesley , 1989.[4] JAEHUN LEE, WOO YONG CHUNG, EUNTAI KIM,SOOHAN KIM . A New Genetic Approach for Structure Learning of Bayesian Networks: Matrix Genetic Algorithm[J]. International Journal of Control Automation, and Systems ,2010, 8(2): 398-407.[5] 刘学增,周 敏.改进的自适应遗传算法及其工程应用[J].同济大学学报(自然科学版),2009, 37(3): 303-307. [6] 马 坚.基于遗传算法及其改进的进化神经网络算法[J].硅谷,2012,04:166-180.[7] 何大阔,王福利,贾明兴.改进的遗传算法在优化设计中的应用[J].东北大学学报(自然科学版), 2005, 26(12): 1123-1126.[8] 唐国新,陈 雄,袁 杨.机器人路径规划中的改进型遗传算法[J].计算机工程与应用,2007, 43(22): 67-70. [9] FATEMEH VAFAEE,PETER C NELSON . Self-adaptation of Genetic Operator Probabilities Using Differential Evolution[C].Third IEEE International Conference on Self-adaptive and Self-organizing Systems, San Francisco ,2009:274-275.[10] 吴少岩,许卓群.遗传算法中遗传因子的启发式构造策略[J 」.计算机学报, 1998,21(l1):1003-1008.[11] 孟佳娜,王立宏.具有自识别能力的遗传算法求解旅行商问题[J].计算机工程与应用,2006,26(13):51-52.[12] HOLLAND J H.Adaptation in Natural and Artificial Systems[M].MIT Press, Cambridge, Massachusetts. 1992.[13] 郎敏峰.遗传算法的改进及其在组合优化中的应用[D].华东师范大学,2004.Realization of Improved Genetic AlgorithmXIANG Ting,PAN Da-zhi,CHEN You-jun,YANG Shuang (college of Mathematics and Information, China West Normal University, Nanchong 637009, China) Abstract:Genetic Algorithm is an adaptive search algorithm for global optimization of genetic biological evolution and the formation of simulation. C ontrary to b asic genetic algorithm’s shortcomings, this article will put an improved genetic algorithm (IGA) from the three operators:selection,crossover and mutation, starting to use the ways of replacing the worst individual part, introducing niche ideas and Concentration factor for processing. Through testing Rastrigin to determine the relevant parameters in IGA and comparing with traditional genetic algorithms, IGA reflects the superiority and feasibility.Key words: Genetic algorithm; Niche; Concentration factor; Adaptive。
自适应遗传算法交叉变异算子的改进
自适应遗传算法交叉变异算子的改进是一种能够更好地适应复杂环境的遗传算法变异
算法。
传统的遗传算法变异算子需要在交叉变异的过程中设置固定的参数以及变异概率,
这一流程给实施遗传算法带来了很多困难,经常无法得到期望的结果。
为了解决这一问题,目前提出了自适应遗传算法交叉变异算子的改进思想。
自适应遗传算法交叉变异算子的改进,使用学习方法根据环境条件,动态调整变异参
数和变异概率。
这样能够有效地根据实际情况,调节算子的参数,获得最优的变异参数和
变异概率,从而提高遗传算法的求解效率。
最后,自适应遗传算法交叉变异算子的改进同时带来了另一个优势:可以更好地调整
遗传算法交叉变异算子参数和变异概率,帮助合理匹配算法参数,减少求解运行过程中的
误差和损失,从而提高遗传算法的求解质量。
《改进遗传算法及其在TSP问题中的应用》篇一一、引言遗传算法是一种基于自然进化理论的搜索启发式算法,广泛应用于组合优化问题。
旅行商问题(Traveling Salesman Problem,简称TSP)作为典型的组合优化问题之一,吸引了众多研究者的关注。
本文旨在探讨改进遗传算法及其在TSP问题中的应用,通过分析现有遗传算法的优缺点,提出一种改进的遗传算法,并在TSP问题中验证其有效性和优越性。
二、遗传算法概述遗传算法模拟自然进化过程,通过种群个体的选择、交叉和变异等操作,实现全局搜索和优化。
其基本步骤包括初始化种群、计算个体适应度、选择操作、交叉操作和变异操作等。
三、现有遗传算法在TSP问题中的局限性在TSP问题中,遗传算法面临着多个挑战。
一方面,搜索空间随城市数量急剧增长;另一方面,由于问题的复杂性,传统遗传算法容易陷入局部最优解。
此外,传统遗传算法在处理城市间的距离计算和路径优化时,往往无法有效平衡全局搜索和局部搜索。
四、改进的遗传算法设计针对上述问题,本文提出一种改进的遗传算法。
该算法主要从以下几个方面进行优化:1. 初始化种群策略:采用更精细的编码方式,使个体更好地表示路径。
同时,引入随机性因素,扩大搜索空间。
2. 适应度函数设计:针对TSP问题,设计更为合理的适应度函数,将城市间的距离和路径长度综合考虑,提高搜索效率。
3. 选择操作:采用多种选择策略相结合的方式,如轮盘赌选择、锦标赛选择等,提高种群的多样性。
4. 交叉操作:引入多种交叉方式,如单点交叉、多点交叉和均匀交叉等,提高算法的搜索能力。
5. 变异操作:在变异过程中引入扰动机制,增加种群的活跃度,避免陷入局部最优解。
五、实验设计与结果分析为了验证改进的遗传算法在TSP问题中的有效性,本文设计了多组实验。
实验中,我们采用了不同规模的TSP问题实例(如城市数量从几十到几百不等),并与其他遗传算法进行比较。
实验结果表明,改进的遗传算法在TSP问题上具有更好的性能。
第11卷第20期2011年7月1671—1815(2011)20-4836-03科学技术与工程Science Technology and EngineeringVol.11No.20July 2011 2011Sci.Tech.Engng.一种改进的遗传算法及其应用排新颖马善立(中国石油大学(华东)数学与计算科学学院,青岛266555)摘要遗传算法在实际应用中容易出现早熟收敛和搜索结果精度不高的问题。
针对早熟收敛和最优值精度低,采用了对搜索参数进行动态调整的优化计算。
在进化的全过程中,算法始终保持较强的全局搜索能力和局部寻优能力。
测试结果表明,对遗传算法的此种改进是有效的,不易陷入局部最优,并能大大提高最优解的精度。
关键词遗传算法实数编码过早收敛中图法分类号O231;文献标志码A2011年3月23日收到,4月2日修改第一作者简介:排新颖(1977—),山东临清人,讲师,博士,研究方向:非线性分析。
遗传算法将生物的演化过程看作一个长期的优化过程,利用生物演化的思想去解决复杂的问题,这样不必精确地描述问题的全部特征,对优化对象没有可导、连续等要求;采用基于种群的搜索机制,强调个体之间的信息交换,只需根据优胜劣汰的自然法则产生新的更优解。
尽管遗传算法有许多优点,但在实际应用中仍然存在许多不足,主要表现为遗传算法的“早熟”现象,即很快收敛到局部最优解而不是全局最优解;遗传算法的搜索结果是在最优值附近跳跃摆动,精度不高等等。
1算法简述改进的遗传算法步骤为:1)初始化,输入待求解问题的各种数据及控制参数:种群规模、交叉概率、变异概率及算法终止标准,初始标准差D ,标准差D 的最大值,最小值;压缩因子C (用来调整进化过程中的标准差)。
2)采用十进制浮点数编码,随机产生满足约束条件的初始群体;求出每个个体的适应值。
3)运用“适者生存,优胜劣汰”的自然选择规律,按照个体性能进行锦标赛选择。
4)根据交叉概率使用解群中性能最好的个体X (1)与选择出的个体X (n )进行交叉操作[1]:g =X (n )+r *(X (1)-X (n )),其中r 是[0,1]之间的随机数;若g 满足约束条件,则用g 替换X (n ),存储相应的适应值,否则继续交叉操作;交叉操作结束后,寻找当前适应值最好的个体代替X (1)。
《改进遗传算法及其在TSP问题中的应用》篇一一、引言遗传算法(Genetic Algorithm, GA)是一种基于自然选择和遗传学原理的优化搜索算法。
在众多领域中,遗传算法都表现出了强大的优化和搜索能力。
尤其当面对复杂的、多峰值的优化问题时,遗传算法展现出其独特的优势。
近年来,随着问题复杂性的增加和大数据时代的到来,传统遗传算法的不足逐渐显现,如何改进遗传算法以提高其性能和效率成为了一个重要的研究课题。
本文旨在探讨改进遗传算法的思路及其在旅行商问题(Traveling Salesman Problem, TSP)中的应用。
二、遗传算法概述遗传算法是一种模拟自然选择和遗传机制的搜索算法,它通过模拟生物进化过程中的选择、交叉和变异等操作来寻找问题的最优解。
在遗传算法中,问题的潜在解被表示为染色体(或个体),而整个解空间则构成一个种群。
通过不断迭代进化,种群中的个体逐渐接近问题的最优解。
三、传统遗传算法的不足虽然传统的遗传算法在很多问题中都能取得不错的性能,但面对某些问题时仍然存在一些明显的不足,例如局部搜索能力较弱、收敛速度较慢等。
因此,为了更好地适应不同的优化问题,我们需要对传统遗传算法进行改进。
四、改进的遗传算法针对传统遗传算法的不足,本文提出以下几种改进策略:1. 初始化策略改进:通过引入更丰富的初始种群,提高种群的多样性和全局搜索能力。
2. 选择策略改进:采用多种选择策略相结合的方式,如轮盘赌选择与最佳保留策略相结合,以增强算法的局部搜索能力和收敛速度。
3. 交叉与变异策略改进:引入自适应交叉与变异概率,根据进化过程中的信息动态调整交叉和变异的概率,以提高算法的灵活性。
4. 融入其他优化算法思想:结合其他优化算法的优点,如模拟退火、蚁群算法等,共同协作求解问题。
五、改进遗传算法在TSP问题中的应用TSP问题是一个典型的组合优化问题,其目标是在给定一系列城市及其之间的距离后,寻找一条访问每个城市一次并最终返回起点的最短路径。
遗传算法遗传算法技术遗传算法的改进应用1. 遗传算法
遗传算法是一种启发式算法,它根据自然选择和遗传学的原理,模拟生物进化过程,以此来寻找最优解或最优解集的算法。
在遗传算法中,将问题抽象成个体的基因类型,构造初始个体集,通过遗传算子(交叉、变异、选择等)进行个体的演化,最终得到适应度高的解或解集。
2. 遗传算法技术
遗传算法技术包括初始个体生成、适应度函数设计、遗传算子设计等。
初始个体生成需要选择一定的随机策略,保证生成的个体具有一定的多样性和可行性。
适应度函数设计需要准确反映出问题的优化目标,同时需要避免出现局部最优解陷阱。
遗传算子设计需要根据问题的特点来确定交叉、变异和选择的策略,保证搜索的效率和质量。
3. 遗传算法的改进
遗传算法的改进主要包括进化策略、多目标优化、协方差矩阵适应度进化等。
进化策略中,通过设置不同的演化控制策略,可以改进寻优效率和质量。
多目标优化中,考虑多个目标同时优化的问题,可以采用多种策略来解决。
协方差矩阵适应度进化中,结合梯度下降算法的思想,通过适应度函数的形式来调节种群的参
数,可以快速有效地找到最优解。
4. 应用
遗传算法可以应用于多种领域,如优化问题、机器学习、控制系统、计算机视觉、图像处理等。
在优化问题中,可以解决线性规划、非线性规划、整数规划等多种类型的优化问题。
在机器学习中,可以用于特征选择、分类、回归等任务。
在控制系统中,可以用于控制器设计、参数优化等问题。
在计算机视觉和图像处理中,可以用于图像分割、图像匹配等任务。
一种摘要:为解决遗传算法的早熟和局部收敛现象,提出的一种改进的遗传算法,该算法引入海明距离构造初始种群,在选择、交叉、变异过程中采用最优保存策略。
实验表明改进的遗传算法增强了种群的多样性,并在一定程度上避免早熟现象发生,同时又能较快找到全局最优解。
关键词:遗传算法;多样性;最优保存策略;背包问题An Improved Genetic AlgorithmAbstract:In this paper,an improved genetic algorithm is proposed to solve the problems of prematurity andlocal convergence. The Hamming distance is employed to generate the original population,and the elitistpreserved strategy is used in the process of the selection,crossover,and mutation. Experiments show that the improved genetic algorithm is efficient.Key words:genetic algorithm;diversity;elitist preserved strategy;knapsack problem1引言生物种群的生存过程普遍遵循达尔文的物竞天择、适者生存的进化准则。
种群中的个体根据对环境的适应能力而被大自然所选择或淘汰。
进化过程的结果反映在个体结构上,其染色体包含若干基因,相应的表现型和基因型的联系体现了个体的外部性与内部机理间的逻辑关系。
生物通过个体间的选择、交叉、变异来适应大自然环境。
生物染色体用数学方式或计算机方式来体现就是一串数码,仍叫染色体,有时也叫个体;适应能力用对应一个染色体的数值来衡量;染色体的选择或淘汰问题是按求最大还是最小问题来进行的。
20世纪60年代以来,如何模仿生物来建立功能强大的算法,进而将它们运用于复杂的优化问题,越来越成为一个研究热点。
进化计算(evolutionary computation)正是在这一背景下孕育而生的。
进化计算包括遗传算法(genetic algorithm,GA)、进化策略(evolution strategy)、进化编程(evolutionary programming)和遗传编程(genetic programming)。
人类不满足于模仿生物进化行为,希望能够建立具有自然生命特征的人造生命和人造生命系统。
对人工生命(artificial life,ALife)的研究,自1987年取得了重要进展。
这是人工智能和计算智能的一个新的研究热点。
进化计算为人工生命研究提供了计算理论和有效的开发工具。
遗传算法是模仿生物遗传学和自然选择机理,通过人工方式构造的一类优化搜索算法,是对生物进化过程进行的一种数额学仿真,是进化计算的一种最重要的形式。
遗传算法与传统数学模型截然不同,它为那些难以找到传统数学模型的难题找到了一个解决方法。
同时,进化计算和遗传算法借鉴了生物科学的某些知识,从而体现了人工智能这一交叉学科的特点。
自从霍兰德(Holland)于1975年在他的著作Adaptation in Natural and Artificial Systems 中首次提出遗传算法以来,经过近30年的研究,遗传算法现在已发展到一个比较成熟的阶段,并且在实际中得到很好的应用。
遗传算法[1]是当今影响最广泛,同时也是发展最迅速的进化计算方法之一。
作为一种模拟生物进化过程的新颖方法,遗传算法对非线性和复杂问题具有很强的鲁棒性和全局搜索能力,因此,被广泛应用于机器学习、模式识别、数学规划等领域。
但传统的遗传算法往往存在易早熟、易陷入局部最优解、后期收敛速度较慢等不足。
针对以上问题,文献[2]提出一种基于物种方程和Kriging 算子的多种群遗传算法;文献[3]提出通过引入具有优良性能的修正种群替换进化种群较差个体的策略,以提高种群的多样性;文献[4]提出一种自适应调节交叉概率和变异概率的策略以避免早熟,提高算法的收敛速度。
本文提出引入海明距离构造初始种群,以提高种群的多样性,在选择、交叉、变异操作中采用最优保存的策略,以提高算法的收敛速度。
实验结果表明,改进的遗传算法不仅能加快遗传进化速度,而且还能增强算法的全局收敛性能,从而得到满意的全局最优值。
2遗传算法的基本原理遗传算法是模拟达尔文的生物自然选择学说和自然界的生物进化过程的一种自适应全局概率搜索算法。
在解决具体问题时先大致确定问题的潜在解的一个集合,这个集合就是算法的初始种群。
种群由计算机生成(一般是随机生成)的一定数目的个体组成,个体就是潜在解的计算机编码,那么我们最后要求的解就由这些初始生成的个体进化而来。
每个个体具有其自的特征(携带不同基因),我们根据这些个体的不同的特征来确定其存活到下一代的可能性高低,按照优胜劣汰的法则,我们由父代来产生子代,如此来繁衍。
当然在具体的进化过程中为了保持种群多样性防止过早收敛,还要在其中使个体以一定小概率发生变异。
这样在最后满足收敛条件后的种群最优个体就是问题的近似最优解。
遗传算法的实现过程主要包括编码、产生群体、计算适应度、复制、交换、变异等操作。
概括地讲,遗传算法求解组合优化问题的具体步骤可描述如下:(1) 根据具体问题,选择编码方式,随机产生初始群体,个体数目一定,每个个体表示为染色体的基因编码;(2) 选择合适的适应度函数,计算并评价群体中各个体的适应度;(3) 选择(selection):根据各个个体的适应度,按照一定的规则或方法,从当前群体中选择出一些优良的个体遗传到下一代群体。
(4) 交叉(crossover):将选择过后的群体内的各个个体随机搭配成对,对每一对个体,以一定概率(交叉概率)交换它们中的部分基因。
(5) 变异(mutation):对交叉过后的群体中的每一个个体,以某个概率(称为变异概率)改变某一个或某一些基因位上的基因值为其他的等位基因。
(6) 终止条件判断。
若满足终止条件,则以进化过程中得到的具有最大适应度的个体作为最优解输出,终止运算;否则,迭代执行(2) - (5)步。
适应度是评价群体中染色体个体好坏的标准,是算法进化的驱动力,是自然选择的唯一依据,改变种群结构的操作皆通过适应度函数来控制。
在遗传算法中,以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。
个体的适应度越大,被遗传到下一代的概率就越大;相反,被遗传到下一代的概率就越小。
在进化过程中,遗传算法除适应度外不再需要其它信息,也不需要适应度函数满足连续可微,唯一要求是针对输入可计算出能加以比较的结果。
3 一种改进的遗传算法3.1初始种群的构造遗传算法对初始种群很敏感,采用随机生成初始种群的方法会导致算法收敛速度较慢。
为了加快求解速度,本文引入海明距离的定义[5]来构造初始种群,使得初始种群在解空间中尽量分布均匀。
定义1 相同长度的以a 为基的2 个字符串中对应位不相同的个数量称为海明距离,记为GH。
设个体是以a 为基的字符串,个体的长度为dlen,种群的规模大小为N,则要求入选种群的所有个体之间的海明距离GH 必须满足:GHij ≥(dlen-b),i≠j ,(1)式中i、j 为2 个个体,i、j = 1,2,…,N;b 是由编码形式而定的一个常数, 这里以二进制编码为例,则b = int(dlen/2);a 类似于b,a = 2 表示使用二进制编码。
采用这种方法使初始种群个体之间保持一定距离,即各个个体尽可能均匀分布在整个解空间上,这样有利于扩大搜索空间,保证种群的多样性,增加算法收敛于全局最优解的可能。
3.2最优保存策略本文提出在遗传算法的选择、交叉和变异操作过程中采用最优保存的策略。
在选择操作时将个体按适应度从小到大进行排序,然后将父代种群中适应度最大的10%个体直接进入匹配池成为子代种群中的个体。
该方法可保证在遗传过程中所得到的最优个体不会被交叉和变异操作所破坏,能将最优个体保留到下一代,同时该策略又能保持子代的多样性。
在交叉和变异操作过程中,最优保存策略只保留最优个体,即只保留交叉和变异的结果优于父个体的子个体。
这种最优保存策略容易使得局部最优个体不易被淘汰,从而增强算法的全局搜索能力。
4 改进的遗传算法在0- 1 背包问题上的应用0- 1 背包问题(Knapsack Problem ,KP )是一个典型的离散的NP 难问题。
该问题描述为,假定n 个物品和一个背包,物品i (i=1,2,…,n )的质量是Wi ,其价值为Pi ,背包的容量是C ,如何选择装入背包的物品,使得装入背包中的物品总价值最大。
0- 1 背包问题在数学上实际是一个0- 1 规划问题,即Xi 为0- 1 决策变量,物品装入背包中表示为Xi=1,物品不装入背包中表示为Xi=0。
其数学模型为: ,),,,(max 121∑==⋅⋅⋅ni ii n X P x x x f (2)C X W t s ni i i ≤∑=∙∙14.1 修正策略由于约束条件的存在,初始种群以及经由交叉、变异操作而产生的备选解不一定为可行解,因此,通常背包问题只对不可行解进行修正使之成为可行解。
本文提出借鉴贪心算法对不可行解及背包承重不足的可行解都进行修正的策略。
4.1.1 对可行解修正对背包承重不足的可行解的具体操作如下:(1) 如果被选物品总质量还没有超出背包的最大容量,则将剩余物品按价值密度(Pi / Wi )从大到小排列;(2)按上述排列的先后次序依次从剩余物品中取出价值密度最大的物品,加入背包,直到超出背包最大容量。
2.1.2 对不可行解修正对于不可行解,通过以下步骤将其修正[6]:(1)如果被选物品质量超出背包的最大容量,则将背包中的物品按价值密度(Pi / Wi ) 从小到大排列;(2) 按上述排列的先后次序依次减掉背包中价值密度最小的物品,直到形成可行解为止。
修正策略通过贪心算法对个体(可行解、不可行解) 进行改良,提高了遗传算法的集中搜索能力,提高了搜索速度,能较快得到全局最优解。
4.2 求解0- 1 背包问题的改进的遗传算法改进遗传算法求解0- 1 背包问题的步骤如下:(1)确定种群规模,采用海明距离方式产生均匀的初始种群,根据算法修正初始种群。
(2)计算个体的适应度。
(3)采用最优个体保存和轮盘赌结合的方法,实现选择操作。
(4)按交叉率Pc 从子代新种群中选择部分个体进行交叉,并对交叉后得到结果采用修正策略进行修正;用最优保存策略得到新种群。