当前位置:文档之家› 遗传算法理论及其应用研究进展

遗传算法理论及其应用研究进展

遗传算法理论及其应用研究进展
遗传算法理论及其应用研究进展

遗传算法理论及其使用研究进展

本文作者(边霞米良),请您在阅读本文时尊重作者版权。

遗传算法理论及其使用研究进展

(四川大学a.计算机学院;b.制造科学和工程学院, 成都610065)

摘要:首先阐述遗传算法的原理和求解问题的一般过程;然后讨论了近年来从遗传算子、控制参数等方面对遗传算法的改进,并对遗传算法在计算机科学和人工智能、自动控制以及组合优化等领域的使用进行陈述;最后评述了遗传算法未来的研究方向和主要研究内容。

关键词:遗传算法;遗传算子;控制参数;组合优化文章编号:1001-3695(2010)07-2425-05

doi:10.3969/j.issn.1001-3695.2010.07.006

Development on genetic algorithm theory and its applications

BIAN Xia a,MI Liang b

(a.College of Computer Science,b.College of Manufacturing Science Engineering, Sichuan University, Chengdu 610065, China)Abstract:This paper first set out the principle and processes of the genetic algorithms, and then introduced a number of schemes on improving the genetic algorithms such as the genetic operators and control parameters, as well as the application of genetic algorithms in computer science and artificial intelligence, automatic control, combinatorial optimization and so on.Finally,presented some remarks on the further research and directions.

Key words:genetic algorithms(GA); genetic operators; control parameters; combinatorial optimization

遗传算法[1](GA)是由美国Michigan大学的Holland教授于1975年首先提出的。它源于达尔文的进化论、孟德尔的群体遗传学说和魏茨曼的物种选择学说;其基本思想是模拟自然界遗传机制和生物进化论而形成的一种过程搜索最优解的算法。从公开发表的论文看,我国首先开始研究使用遗传算法的有赵改善[2]和华中理工大学的师汉民等人[3]。遗传算法最早使用于一维地震波形反演中[4],其特点是处理的对象是参数的编码集而不是问题参数本身,搜索过程既不受优化函数联系性的约束,也不要求优化函数可导,具有较好的全局搜索能力;算法的基本思想简单,运行方式和实现步骤规范,具有全局并行搜索、简单通用、鲁棒性强等优点,但其局部搜索能力差,容易出现早熟现象[5]。

自1985年起,国际遗传算法会议每两年召开一次,在欧洲,从1990年开始每隔一年也举办一次类似的会议。1993年,国际上第一本以遗传算法和进化计算为核心内容的学术期刊《Evolutionary Computation》(进化计算)在MIT创刊;1994年,在美国奥兰多召开的IEEE World Congress on Computation Intelligence (IEEE全球计算智能大会)上,进化计算和模糊逻辑、神经网络一起统称为计算智能;1997年,《IEEE Transactions on Evolutionary Computation》创刊。这些刊物及时全面地报道了近年来遗传算法的最新研究成果。目前,和遗传算法有关的学术会议包括ICGA、PPSN、ICEC、ANN GA、EP、FOGA、COGANN、EC、GP、SEAL等。

1 遗传算法原理

遗传算法[1]是模拟生物在自然环境中优胜劣汰、适者生存的遗传和进化过程而形成的一种具有自适应能力的、全局性的概率搜索算法。它是从代表问题可能潜在解集的一个种群开始,首先将表现型映射到基因型即编码,从而将解空间映射到编码空间,每个编码对应问题的一个解,称为染色体或个体。初始种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度大小选择个体,并借助自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程使种群像自然进化一样,后代种群比前代更加适应于环境,末代种群中的最优个体经过解码可以作为问题近似最优解。利用遗传算法求解问题的流程[6]如图1所示。

a)建立数学模型。

b)编码,即用设计好的算法将表现型映射到个体基因型。

c)解码,遗传算子只对编码后的染色体起作用,由个体表现型计算目标函数值后就可以判断染色体的优劣。

d)确定适应度转换规则,染色体所对应的解空间的值可能相差很大,需要一定的转换使其适合

e)设计遗传算子,即设计交叉、变异和选择算子等。遗传算子和待优化问题、染色体的编码方案有很大的关系。

f)确定运行参数,运行参数包括交叉概率、变异概率和种群数目等。遗传算法本身的参数还缺乏定量的标准,目前采用的多是经验数值,并且遗传参数的选取和编码和遗传算子的设计有很大关系。

2 遗传算法的改进

目前在遗传算法的使用中,最突出的问题是局部搜索能力差和容易出现早熟现象。近年来, 众多学者围绕这两个核心问题发表了大量有价值的学术论文[7~31],从各方面对遗传算法进行了改进。

2.1 遗传算子的改进

在遗传算子方面,Pan等人[7]提出自适应变异算子,使得变异能够根据解的质量自适应地调整搜索区域,较明显地提高了搜索能力。Louis等人[8]根据个体之间的海明距离进行非均匀的交叉和变异,在保持群体多样性的同时还防止了早熟。夏虎等人[9]提出了一种考虑环境作用的协同免疫遗传算法,在该算法中,设计了克隆环境演化算子和自适应探索算子,并构造了三个子种群协同进化来发挥克隆环境演化算子的作用,从而提高了算法的全局搜索能力。蔡良伟等人[10]提出一种改进的交叉操作,根据种群的多样性和个体的相关性选择不同的交叉策略以减少无效的交叉操作,从而提高了交叉操作的效率并改善了算法的收敛性能。江雷等人[11]提出的基于并行遗传算法求解TSP,对遗传算法的杂交算子进行改进,探讨了使用弹性策略来维持群体的多样性,使得算法跨过局部收敛的障碍,向全局最优解方向进化。Whitley等人[12]提出了自适应和有指导的变异,这种方法对改进遗传算法的性能起了一定的作用。

本文作者(边霞米良),请您在阅读本文时尊重作者版权。

遗传算法理论及其使用研究进展

(四川大学a.计算机学院;b.制造科学和工程学院, 成都610065)

摘要:首先阐述遗传算法的原理和求解问题的一般过程;然后讨论了近年来从遗传算子、控制参数等方面对遗传算法的改进,并对遗传算法在计算机科学和人工智能、自动控制以及组合优化等领域的使用进行陈述;最后评述了遗传算法未来的研究方向和主要研究内容。

关键词:遗传算法;遗传算子;控制参数;组合优化文章编号:1001-3695(2010)07-2425-05

doi:10.3969/j.issn.1001-3695.2010.07.006

Development on genetic algorithm theory and its applications

BIAN Xia a,MI Liang b

(a.College of Computer Science,b.College of Manufacturing Science Engineering, Sichuan University, Chengdu 610065, China)Abstract:This paper first set out the principle and processes of the genetic algorithms, and then introduced a number of schemes on improving the genetic algorithms such as the genetic operators and control parameters, as well as the application of genetic algorithms in computer science and artificial intelligence, automatic control, combinatorial optimization and so on.Finally,presented some remarks on the further research and directions.

Key words:genetic algorithms(GA); genetic operators; control parameters; combinatorial

optimization

遗传算法[1](GA)是由美国Michigan大学的Holland教授于1975年首先提出的。它源于达尔文的进化论、孟德尔的群体遗传学说和魏茨曼的物种选择学说;其基本思想是模拟自然界遗传机制和生物进化论而形成的一种过程搜索最优解的算法。从公开发表的论文看,我国首先开始研究使用遗传算法的有赵改善[2]和华中理工大学的师汉民等人[3]。遗传算法最早使用于一维地震波形反演中[4],其特点是处理的对象是参数的编码集而不是问题参数本身,搜索过程既不受优化函数联系性的约束,也不要求优化函数可导,具有较好的全局搜索能力;算法的基本思想简单,运行方式和实现步骤规范,具有全局并行搜索、简单通用、鲁棒性强等优点,但其局部搜索能力差,容易出现早熟现象[5]。

自1985年起,国际遗传算法会议每两年召开一次,在欧洲,从1990年开始每隔一年也举办一次类似的会议。1993年,国际上第一本以遗传算法和进化计算为核心内容的学术期刊《Evolutionary Computation》(进化计算)在MIT创刊;1994年,在美国奥兰多召开的IEEE World Congress on Computation Intelligence (IEEE全球计算智能大会)上,进化计算和模糊逻辑、神经网络一起统称为计算智能;1997年,《IEEE Transactions on Evolutionary Computation》创刊。这些刊物及时全面地报道了近年来遗传算法的最新研究成果。目前,和遗传算法有关的学术会议包括ICGA、PPSN、ICEC、ANN GA、EP、FOGA、COGANN、EC、GP、SEAL等。

1 遗传算法原理

遗传算法[1]是模拟生物在自然环境中优胜劣汰、适者生存的遗传和进化过程而形成的一种具有自适应能力的、全局性的概率搜索算法。它是从代表问题可能潜在解集的一个种群开始,首先将表现型映射到基因型即编码,从而将解空间映射到编码空间,每个编码对应问题的一个解,称为染色体或个体。初始种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度大小选择个体,并借助自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程使种群像自然进化一样,后代种群比前代更加适应于环境,末代种群中的最优个体经过解码可以作为问题近似最优解。利用遗传算法求解问题的流程[6]如图1所示。

a)建立数学模型。

b)编码,即用设计好的算法将表现型映射到个体基因型。

c)解码,遗传算子只对编码后的染色体起作用,由个体表现型计算目标函数值后就可以判断染色体的优劣。

d)确定适应度转换规则,染色体所对应的解空间的值可能相差很大,需要一定的转换使其适合

e)设计遗传算子,即设计交叉、变异和选择算子等。遗传算子和待优化问题、染色体的编码方案有很大的关系。

f)确定运行参数,运行参数包括交叉概率、变异概率和种群数目等。遗传算法本身的参数还缺乏定量的标准,目前采用的多是经验数值,并且遗传参数的选取和编码和遗传算子的设计有很大关系。

2 遗传算法的改进

目前在遗传算法的使用中,最突出的问题是局部搜索能力差和容易出现早熟现象。近年来, 众多学者围绕这两个核心问题发表了大量有价值的学术论文[7~31],从各方面对遗传算法进行了改进。

2.1 遗传算子的改进

在遗传算子方面,Pan等人[7]提出自适应变异算子,使得变异能够根据解的质量自适应地调整搜索区域,较明显地提高了搜索能力。Louis等人[8]根据个体之间的海明距离进行非均匀的交叉和变异,在保持群体多样性的同时还防止了早熟。夏虎等人[9]提出了一种考虑环境作用的

协同免疫遗传算法,在该算法中,设计了克隆环境演化算子和自适应探索算子,并构造了三个子种群协同进化来发挥克隆环境演化算子的作用,从而提高了算法的全局搜索能力。蔡良伟

等人[10]提出一种改进的交叉操作,根据种群的多样性和个体的相关性选择不同的交叉策略

以减少无效的交叉操作,从而提高了交叉操作的效率并改善了算法的收敛性能。江雷等人[11]提出的基于并行遗传算法求解TSP,对遗传算法的杂交算子进行改进,探讨了使用弹性策略来

维持群体的多样性,使得算法跨过局部收敛的障碍,向全局最优解方向进化。Whitley等人[12]

提出了自适应和有指导的变异,这种方法对改进遗传算法的性能起了一定的作用。

遗传算法理论及其使用研究进展(3)

3.1 在计算机科学和人工智能方面

遗传算法在计算机科学和人工智能领域中的使用包括数据库查询优化[57]、数据挖掘和知识获取[58,59]、人工神经网络结构和参数优化[60~63]、模式识别[64,65]、专家系统[66,67]等。另外,遗传算法在软件测试用例[68]自动生成方面也作出了很大的贡献。

3.2 自动控制领域

遗传算法可用于求解系统参数辨识问题。Karr[39]采用遗传算法设计自适应模糊逻辑控制器,取得了显著的效果; Esposito等人[69]将基于GA的优化技术使用

于RBF神经网络输出层权值的优化;Vesin等人[70]将GA用于解决网络结构和权值的完全优化问题。遗传算法也可用于控制器参数优化整定;Fonesca等人[71]

将MOGA(多目标遗传算法)用于控制器的优化设计以解决磁悬浮列车的控制器设

计问题;颜文俊等人[72]则提出了一类新型的多目标鲁棒优化控制器设计方法,

通过有效算法求解满足系统鲁棒稳定性和鲁棒性能的优化解。此外,GA在故障诊断[73]和机器人行走路径规划[74]中的使用也取得了成功。

3.3 在组合最优化问题方面

组合优化(combinatorial optimization)研究那些含有有限个可行解的、日常生活中大量存在的问题。这其中一个重要并且普遍的使用领域就是考虑如何有效利用稀缺资源来提高生产力[75]。GA在组合优化问题中的使用包括路径覆盖[76]、装箱[77,78]、背包[79]、确定最小生成树[80]、机器调度排序和平衡[81]、车辆路径[82]、网络设计和路径[83]、旅行推销员分配[84]等。

3.4 在多目标函数优化问题方面

多目标问题最早由意大利经济学家Pareto在1896年从政治经济学的角度提出的。多目标群体决策是当前管理科学、决策理论、系统工程、运筹学、福利经济学等学科研究中十分重要的内容[85]。GA很适合求解多目标优化问题,因为GA可以

并行地处理各个目标,避免了目标间的优先排序处理。GA通过保持一个潜在解的种群进行多方向搜索,这种种群对种群的搜索可以跳出局部最优解,从而突破了

数学规划法的点对点的搜索方法。GA在整个解空间同时开始寻优搜索,注重区域搜索和空间扩展的平衡,因此可以有效地避免陷入局部极值点,具备全局最优搜

索性,不会受到如Pareto曲面形状、目标个数等条件的限制,还可处理带随机的、不确定的离散搜索空间问题,这正是数学规划法所难以克服的。Hajela等人[86]把多目标问题通过效用函数转换为单目标问题,再用GA来求解。目前,怎样利用GA的智能性来求解多目标函数优化问题,仍然是一个值得研究的新课题[87,88]。

3.5 遗传学习

将遗传算法用于知识获取,构成以遗传算法为核心的机器学习系统。比较经典的是Holland设计的用于序列决策学习的桶链算法(bucket brigade)反馈机制(该系统被称为分类器系统),以及机器人规则、概念学习、模式识别等。

3.6 社会和经济领域

早期的经济学研究采用遗传算法来求解数学公式,取得了不错的效果,但离机器

学习还差得很远。例如,Lettau[89]在1997年建立的一个简单的主体模型中就使用了这种方法;Bauer[90]对遗传算法在经济和投资中的使用进行了全面分析。近年来,商业、金融领域已经成为遗传算法使用热点,目前已经有许多基于遗传算法的软件包使用于金融系统和股票投资分析。

4 结束语

遗传算法的研究归纳起来可分为理论和技术研究和使用研究两个方面。可以说,遗传算法的使用已经渗透到了各个领域。但目前遗传算法的算法分析和理论分析还没有跟上,还有很多富有挑战性的课题亟待完善和解决,主要有:

a)算法规模小。虽然遗传算法模拟了生物的进化过程,但目前遗传算法的运行规模还远小于生物的进化规模。随着计算机系统性能的不断提高,人们将有可能实现模拟更接近于自然的进化系统,从而充分利用遗传算法的并行性解决更复杂更有价值的问题。

b)遗传算法的编码问题。编码是遗传算法求解问题的前提, 最基本的是二进制编码。其他的编码方法有格雷码、实数编码、符号编码、多参数编码和DNA编码等。不同的使用应该采用不同的编码方式,因此基于不同的使用,遗传算法的编码还

有待改进和完善。

c)遗传算法控制参数的选择问题。遗传算法中控制参数的不同选取会对遗传算法的性能产生较大的影响,将影响到整个算法的收敛性。这些参数包括交叉概率、变异概率和种群数目(Npop)等。

d)早熟收敛和局部搜索能力差问题。早熟收敛和局部搜索能力差是遗传算法最突出的两个问题。有很多学者针对这两个问题发表了大量的学术文章,但从根本上解决这两个问题还有待研究发现。

e)遗传算子的无方向性问题。基本遗传算子包括选择算子、交叉算子和变异算子。设计性能优良的遗传算子一直是遗传算法的重要问题,如果能从遗传算子的方向性着手改进遗传算法,有可能会得到意想不到的结果。

对上述问题的深入研究必将大大促进遗传算法理论和使用的发展, 遗传算法也必将在智能计算领域中展现出更加光明的前景。

参考文献:

[1]

HOLLAND J H.Adaptation in natural and artificial

systems[M].Cambridge:MIT Press,1975.

[2]赵改善.求解非线性最优化问题的遗传算法[J].地球物理学进

展,1992,7(1):90-97.

遗传算法理论及其使用研究进展(4)

[3]师汉民,陈吉红.基因遗传算法的原理及在机械工程中的使用[J].中国机械工程,1992,3(3):18-21.

[4]STOFFA P L,SEN M K.Nonlinear multiparameter optimization using genetic algorithms:inversion of plane-wave

seismogram[J].Geophysics,1991,56(11):1794-1810.

[5]周明,孙树栋.遗传算法原理及使用[M].北京:国防工业出版社,2001.

[6]姜昌华.遗传算法在物流系统优化中的使用研究[D].上海:华东师范大

学,2007.

[7]PAN Zheng-jun,KANG Li-shan,NIE Si-xiang.Evolving both the topology and weights of neural network[J].Parallel Algorithms and Applications,1996,9(3 4):299-307.

[8]LOUIS S J,RAWLINS G J E.Syntactic analysis of convergence in genetic algorithms[M]//Foundations of Genetic Algorithm.San Mateo:Morgan Kaufmann,1993:141-151.

[9]夏虎,庄健,王立忠,等.一种考虑环境作用的协同免疫遗传算法[J].西安交通大学学报,2009,43(11):80-84.

[10]蔡良伟,李霞.遗传算法交叉操作的改进[J].系统工程和电子技

术,2006,28(6):925-928.

[11]江雷.基于并行遗传算法的弹性TSP 研究[J].微电子学和计算

机,2005,22(8):130-134.

[12]WHITLEY D,STRAKWEATHER T,BOGART C.Genetic algorithms and neural

Computing,1990,14(3):347-361.

[13]贺新,刘智明,周激流.基于主附种群结构的遗传算法[J].四川大学学报:自然科学版,2003,40(2):278-282.

[14]叶在福,单渊达.基于多种群遗传算法的输电系统扩展规划[J].电力系统自动化,2000,24(5):24-27.

[15]朱灿,梁昔明,颜东煌.一种考虑性别特征的遗传算法[J].武汉理工大学学报,2008,30(12):110-113,128.

[16]De JONG K A.An analysis of the behavior of a class of genetic adaptive systems[D].Michigan:University of Michigan,1975.

[17]丁承民,张传生,刘贵忠.利用正交试验法优化配置遗传算法控制参数[R].西安:西安交通大学电子和信息工程学院信息工程研究所,1996.

[18]李康顺,李茂民,张文生.一种基于改进遗传算法的图像分割方法[J].计算机使用研究,2009,26(11):4364-4367.

[19]REYNOLDS R G,SVERDLIK W.Problem solving using cultural

algorithms[C]//Proc of International Conference on Evolutionary Computation.1994:645-650.

-

fuzzy cultural algorithms with evolutionary programming[J].IEEE Trans on Systems,Man,and Cybernetics,Part B,2001,31(1):1-18.

[21]REYNOLDS R G,PENG B.Cultural algorithms:modeling of how cultures learn to solve problems[C]//Proc of the 16th IEEE Internatio-Conference on Tools with Artificial Intelligence.Washington DC:IEEE Computer Society,2004:166-172.

[22]王磊,潘进,焦李成.免疫算法[J].电子学报,2000,28(7):552-561.

[23]JIAO Li-cheng,WANG Lei.A Novel genetic algorithm based on immunity[J].IEEE Trans on Systems, Man,and Cybernetics,Part A:Systems and Humans,2000,30(5):552-561.

[24]朱灿,梁昔明,周书仁.基于物种选择的遗传算法[J].小型微型计算机系

统,2009,30(3):534-536.

[25]周兰凤,洪炳熔.用基于知识的遗传算法实现移动机器人路径规划[J].电子

学报,2006,34(5):911-914.

-RUIZ J S,RIQUELME J C.Knowledge-based fast evaluation for evolutionary learning[J].IEEE Trans on Systems, Man, and Cybernetics, Part C:Applications and Reviews,2005,35(I):1-7.

[27]HAGEMAN J A,WEHRENS R,SPRANG H A van,et al.Hybrid genetic algorithm-tabu search approach for optimising multilayer optical coatings[J].Analytica Chimica Acta,2003,490(1-2):211-222.

[28]魏明,蔡延光.一种基于混沌领域搜索的自适应遗传算法[J].计算机使用研究,2009,26(2):464-465.

[29]任子武,伞冶.实数遗传算法的改进及性能研究[J].电子学

报,2007,35(2):269-274.

[30]YOGESWARAN M,PONNAMBALAM S G,TIWARI M K.An efficient hybrid evolutionary heuristic using genetic algorithm and simulated annealing algorithm to solve machine loading problem in FMS[J].International Journal of Production Research,2009,47(19):5421-

[31]OH S K,PEDRYCZ W,PARK H S.Genetically optimized fuzzy polynomial neural networks [J].IEEE Trans on Fuzzy Systems,2006,14(1):125-144.

[32]KUMAR P,CHANDNA V K,THOMAS M S.Fuzzy-genetic algorithm for

pre-processing data at the RTU[J].IEEE Trans on Power

Systems,2004,19(2):718-723.

[33]MURATA T,MIYATA S.Gene linkage identification in permutation problems for local search and genetic local search[C]//Proc of IEEE International Conference on Systems,Man and Cybernetics.2005:1920-1924.

遗传算法的研究及应用毕业设计

毕业设计 遗传算法的研究及应用 摘要 本文分为三部分:第一部分:遗传算法的概述。主要介绍了遗传算法的基本思想、遗传算法的构成要素、遗传算法的特点、遗传算法的基本模型、遗传算法的应用情况及今后的研究方向等等的内容。第二部分:基于Matlab 7.0下的遗传算法求解函数最值问题。遗传算法作为一种新的优化方法,广泛地用于计算科学、模式识别和智能故障诊断等方面,它适用于解决复杂的非线性和多维空间寻优问题,近年来也得到了较为广阔的应用。本人选择了函数优化这个应用领域,按照遗传算法的步骤,即编码、解码、计算适应度(函数值)、选择复制运算、交叉运算和变异运算,对函数进行求解最值。第三部分:对遗传算法求函数最值问题的改进。这部分主要针对本文第二部分进行改进,通过改变基本遗传算法运行参数值,如改变交叉概率Pc值和变异概率Pm值,从而使最优值更加接近相对标准下函数的最值。 关键词:遗传算法适应度交叉概率变异概率

目录 1 前言 (1) 2 遗传算法概述 (1) 2.1生物进化理论和遗传学的基本知识 (1) 2.2遗传算法的基本思想 (3) 2.3遗传算法的构成要素 (3) 2.3.1 染色体编码方法 (3) 2.3.2 适应度函数 (4) 2.3.3 遗传算子 (4) 2.3.4 基本遗传算法运行参数 (5) 2.4遗传算法的特点 (6) 2.5遗传算法的基本模型 (7) 2.6遗传算法的应用 (8) 2.7遗传算法今后的研究方向 (10) 3 基于MATLAB 7.0下的遗传算法求解函数最值问题 (11) 3.1遗传算法的标准函数 (11) 3.2解题步骤说明 (12) 3.2.1 编码问题 (12) 3.2.2 选择运算 (12) 3.2.3 交叉运算 (13) 3.2.4 变异运算 (13) 3.3运行参数说明 (14) 3.4对遗传算法求得的最值的分析 (14) 3.5运行程序以及对其解释 (14) 3.6从数学的角度求解函数最优值 (18) 3.6.1 自变量x以0.2为步进单位 (18) 3.6.2 自变量x以0.1为步进单位 (19) 3.6.3 自变量x以更精确的数为步进单位 (21)

大学课件--遗传算法应用的分析与研究-

遗传算法应用的分析与研究 福州八中钱自强 【摘要】 随着科技水平的不断发展,人们在生产生活中遇到的问题也日益复杂,这些问题常常需要在庞大的搜索空间内寻找最优解或近似解,应用传统算法求解已经显得相当困难。而近年来,生物学的进化论被广泛地应用于工程技术、人工智能等领域中,形成的一类有效的随机搜索算法——进化算法,有效的解决了诸多生产生活中的难题而显得越来越流行。 本文的首先将介绍进化算法的原理以及历史使大家对进化算法有一个初步的了解,其次将详细介绍应用遗传算法解题的步骤,并提出有效改进和应用建议。紧接着通过一个NP难题的优化实例让大家对遗传算法有更深刻的了解,最后通过数据分析证明其方法的有效性。 【关键词】 人工智能;进化算法;遗传算法(GA);多目标最小生成树 目录 一、进化算法理论 1.1进化算法概述- 2- 1.2遗传算法介绍- 2- 二、遗传算法 2.1遗传算法基本流程- 3- 2.2遗传算法中各重要因素分析- 3- 2.3重要参数设置- 6- 三、遗传算法在多目标最小生成树问题中的应用 3.1多目标最小生成树- 7- 3.2应用遗传算法解决多目标最小生成树- 9- 3.3测试-11- 四、结束语-15- 附录-16-

一. 进化算法理论 1.1进化算法概述 从远古时代单细胞开始,历经环境变迁的磨难,生命经历从低级到高级,从简单到复杂的演化历程。生命不断地繁衍生息,产生出具有思维和智能的高级生命体。人类得到生命的最佳结构与形式,它不仅可以被动地适应环境,更重要的是它能够通过学习,模仿与创造,不断提高自己适应环境的能力。 进化算法就是借鉴生物自然选择和遗传机制的随机搜索算法。进化算法通过模拟“优胜劣汰,适者生存”的规律激励好的结构,通过模拟孟德尔的遗传变异理论在迭代过程中保持已有的结构,同时寻找更好的结构。作为随机优化与搜索算法,进化算法具有如下特点:进化算法不是盲目式的乱搜索,也不是穷举式的全面搜索,它根据个体生存环境即目标函数来进行有指导的搜索。进化算法只需利用目标的取值信息而不需要其他信息,因而适用于大规模、高度非线性的不连续、多峰函数的优化,具有很强的通用性;算法的操作对象是一组个体,而非单个个体,具有多条搜索轨迹。 1.2遗传算法 遗传算法(Genetic Algorithm)是进化算法的一个重要分支。它由John Holland提出,最初用于研究自然系统的适应过程和设计具有自适应性能的软件。近来,遗传算法作为问题求解和最优化的有效工具,已被非常成功地应用与解决许多最优化问题并越来越流行。 遗传算法的主要特点是群体搜索策略和群体中个体之间的信息互换,它实际上是模拟由个体组成的群体的整体学习过程,其中每个个体表示问题搜索空间中的一个解点.遗传算法从任一初始的群体出发,通过随机选择,交叉和变异等遗传操作,使群体一代代地进化到搜索空间中越来越好的区域,直至抵达最优解点. 遗传算法和其它的搜索方法相比,其优越性主要表现在以下几个方面:首先,遗传算法在搜索过程中不易陷入局部最优,即使在所定义的适应度函数非连续.不规则也能以极大的概率找到全局最优解,其次,由于遗传算法固有的并行性,使得它非常适合于大规模并行分布处理,此外,遗传算法易于和别的技术(如神经网络.模糊推理.混沌行为和人工生命等)相结合,形成性能更优的问题求解方法.

遗传算法的研究及应用

龙源期刊网 https://www.doczj.com/doc/d714137801.html, 遗传算法的研究及应用 作者:彭志勇邓世权 来源:《计算机光盘软件与应用》2013年第07期 摘要:遗传算法是一种典型的优化搜索算法,它的构造是使用人工的方式,并对生物遗传学和自然选择机理来进行模仿,是一种典型的数学仿真,而这种数学仿真是通过生物进化的过程来进行的,它是进化计算的一种非常重要的形式,它可以应用与生活中的很多领域。 关键词:遗传算法;函数优化;生产调度;自动控制 中图分类号:TP183文献标识码:A文章编号:1007-9599 (2013) 07-0000-02 遗传算法是一种典型的优化搜索算法,它的构造是使用人工的方式,并对生物遗传学和自然选择机理来进行模仿,是一种典型的数学仿真,而这种数学仿真是通过生物进化的过程来进行的,它是进化计算的一种非常重要的形式。与传统的数学模型进行比较,遗传算法有很多的不同的地方,因为它能够解决很多复杂的问题,而传统的数学模型却没办法做到。 1遗传算法的理论研究 1.1遗传算法的由来。美国密西根大学的霍兰德(Holland)将该算法应用于自然和人工系统的自适应行为的研究之中,并且在二十世纪七十年代中期,出版他的第一部著作《自然与人工系统中的适应》。随后,Holland与他的学生们将该算法进行了大力的推广,并把它应用到优化及机器学习等问题之中,而且正式定名为遗传算法。 1.2遗传算法的发展。遗传算法的兴起于20世纪70年代,而到了20世纪80年代的时 候,它正好属于一个发展中的过程,到了20世纪90年代时,它已经发展到了颠疯时刻。为一种实用性较强而又很有效率的优化技术,遗传算法的发展还是非常迅速,在国内外已经造成了非常大的影响力。 1.3遗传算法的基本思想。遗传算法是从一个种群(population)开始的,而这个种群代表问题可能潜在解集的,一个种群是由经过基因(gene)编码(coding)的一定数目的个体(individual)所组成。染色体是遗传物质的主要载体,它是由多个基因的集合,其内部表现是某种基因组合决定的。自从初始种群产生以后,按照适者生存和优胜劣汰的原理,逐代(generation)演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度(fitness)大小来挑选(selection)个体,遗传算法是采纳了选择、交叉、变异、迁移、局域 与邻域等自然进化模型,并借助于自然遗传学的遗传算子(genetic operators)进行组合交叉(crossover)和变异(mutation),从而产生出代表新的解集的种群。 遗传算法和传统搜索算法有很大的不同,它是通过一组随机产生的初始解开始搜索过程。染色体是类似于二进制串的一串符号,对于染色体的测量,我们通常是用适应度来它的好坏

遗传算法

遗传算法的基本理论 一、起源: 早在20世纪50年代和60年代,就有少数人几个计算机科学家独立地进行了所谓的“人工进化系统”研究,其出发点是进化的思想可以发展成为许多工程问题的优化工具。早期的研究形成了遗传算法的雏形,如大多数系统都遵循“适者生存”的仿自然法则,有些系统采用了基于群体(population)的设计方案,并且加入了自然选择与变异操作,还有一些系统对生物染色体编码进行了抽象处理,应用二进制编码。由于缺乏一种通用的编码方案,人们只能依赖变异而非交叉来产生新的基因结构,早期的算法收敛甚微。20世纪60年代中期,美国Michigan大学的John Holland在A.S.Fraser和H.J.Bremermann等人工作的基础上提出了位串编码技术。这种编码既适用于变异操作,又适用于交叉(即杂交)操作。并且强调将交叉作为主要的遗传操作。随后,Holland将该算法用于自然和人工系统的自适应行为的研究中,并于1975年出版了其开创性著作“Adaption in Natural and Artificial System”。以后,Holland等人将该算法加以推广,应用到优化及机器学习等问题中,并正式定名为遗传算法。遗传算法的通用编码技术和简单有效的遗传操作作为其广泛、成功地应用奠定了基础。Holland早期有关遗传算法的许多概念一直沿用至今,可见Holland对遗传算法的贡献之大。他认为遗传算法本质上是适应算法,应用最多的是系统最优化的研究。 二、发展: 年份贡献者内容 1962Holland程序漫游元胞计算机自适应系统框架 1968Holland模式定理的建立 1971Hollstein具有交配和选择规则的二维函数优化 1972Bosworth、Foo、Zeigler提出具有复杂变异、类似于遗传算法的基因操作1972Frantz位置非线性和倒位操作研究 1973Holland遗传算法中试验的最优配置和双臂强盗问题 1973Martin类似遗传真法的概率算法理论 1975De Jong用于5个测试函数的研究基本遗传算法基准参数 1975Holland 出版了开创性著作《Adaptation in Natural and Artificial System》 1981Bethke应用Walsh函数分析模式 1981Brindle研究遗传算法中的选择和支配问题 1983Pettit、Swigger遗传算法应用于非稳定问题的粗略研究1983Wetzel用遗传算法解决旅行商问题(TSP) 1984Mauldin基本遗传算法小用启发知识维持遗传多样性1985Baker试验基于排序的选择方法 1985Booker建议采用部分匹配计分、分享操作和交配限制法1985Goldberg、Lingle TSP问题个采用部分匹配交叉 1985Grefenstette、Fitzpattrick对含噪声的函数进行测试 1985Schaffer多种群遗传算法解决多目标优化问题1986Goldberg最优种群大小估计 1986Grefenstette元级遗传算法控制的遗传算法 1987Baker选择中随机误差的减少方法 1987Goldberg复制和交叉时最小欺骗问题(MDP) 1987Goldberg、Richardson借助分享函数的小生境和物种归纳法

遗传算法理论及其研究进展

遗传算法理论及其应用研究进展 摘要:本文阐述了遗传算法的基本原理以及求解问题的一般过程,讨论了遗传算 法存在的不足和针对其不足采取的弥补措施,概述了遗传算法常见的应用领域。最后,讨论了遗传算法的未来研究方向。 关键词:遗传算法;算子;优化 Development on Genetic Algorithm Theory And Its Application Liu Jun (201320620181) (College of Mecha ni cal Engin eeri ng of Un iversity of South Chi na Hen gya ng Hunan 421001) Abstract: This paper stated the basic theory of Genetic Algorithm (GA) and the process of sol ving the problem, discussed the weak ness of gen etic algorithm and the impro ving measures about gen etic algorithm. Then summarized the com mon applicati on fields of gen etic algorithm. Fin ally, poin ted out the gen etic algorithm ' research direct ions in the future. Keywords: gen etic algorithm (GA); operator; optimizati on 遗传算法是一种借鉴生物界自然选择和进化机制发展起来的高度并行、随机、自适应搜索算法。它来源于达尔文的进化论、魏茨曼的物种选择学说和孟德尔的群体遗传学说。遗传算法是模拟自然界生物进化过程与机制求解极值问题的一类自组织、自适应人工智能技术,其基本思想是模拟自然界遗传机制和生物进化论而形成的一种过程搜索最优解的算法,具有坚实的生物学基础;它提供从智 能生成过程观点对生物智能的模拟,具有鲜明的认知学意义;它适合于无表达或有表达的任何类函数,具有可实现的并行计算行为;它能解决任何种类实际问题,具有广泛的应用价值。因此,遗传算法广泛应用于自动控制、计算科学、模式识别、工程设计、智能故障诊断、管理科学和社会科学等领域,适用于解决复杂的非线性和多维

遗传算法的应用研究_赵夫群

2016年第17期 科技创新科技创新与应用 遗传算法的应用研究 赵夫群 (咸阳师范学院,陕西咸阳712000) 1概述 遗传算法(Genetic Algorithms,GA)一词源于人们对自然进化系统所进行的计算机仿生模拟研究,是以达尔文的“进化论”和孟德尔的“遗传学原理”为基础的,是最早开发出来的模拟遗传系统的算法模型。遗传算法最早是由Fraser提出来的,后来Holland对其进行了推广,故认为遗传算法的奠基人是Holland。 随着遗传算法的不断完善和成熟,其应用范围也在不断扩大,应用领域非常广泛,主要包括工业控制、网络通讯、故障诊断、路径规划、最优控制等。近几年,出现了很多改进的遗传算法,改进方法主要包括:应用不同的交叉和变异算子;引入特殊算子;改进选择和复制方法等。但是,万变不离其宗,都是基于自然界生物进化,提出的这些改进方法。 2遗传算法的原理 遗传算法是从某一个初始种群开始,首先计算个体的适应度,然后通过选择、交叉、变异等基本操作,产生新一代的种群,重复这个过程,直到得到满足条件的种群或达到迭代次数后终止。通过这个过程,后代种群会更加适应环境,而末代种群中的最优个体,在经过解码之后,就可以作为问题的近似最优解了。 2.1遗传算法的四个组成部分 遗传算法主要由四个部分组成[1]:参数编码和初始群体、适应度函数、遗传操作和控制参数。编码方法中,最常用的是二进制编码,该方法操作简单、便于用模式定理分析。适应度函数是由目标函数变换而成的,主要用于评价个体适应环境的能力,是选择操作的依据。遗传操作主要包括了选择、交叉、变异等三种基本操作。控制参数主要有:串长Z,群体大小size,交叉概率Pc,变异概率Pm等。目前对遗传算法的研究主要集中在参数的调整中,很多文献建议的参数取值范围一般是:size取20~200之间,Pc取0.5~1.0之间,Pm取0~0.05之间。 2.2遗传算法的基本操作步骤 遗传算法的基本操作步骤为: (1)首先,对种群进行初始化;(2)对种群里的每个个体计算其适应度值;(3)根据(2)计算的适应度,按照规则,选择进入下一代的个体;(4)根据交叉概率Pc,进行交叉操作;(5)以Pm为概率,进行变异操作;(6)判断是否满足停止条件,若没有,则转第(2)步,否则进入(7);(7)得到适应度值最优的染色体,并将其作为问题的满意解或最优解输出。 3遗传算法的应用 遗传算法的应用领域非常广泛,下面主要就遗传算法在优化问题、生产调度、自动控制、机器学习、图像处理、人工生命和数据挖掘等方面的应用进行介绍。 3.1优化问题 优化问题包括函数优化和组合优化两种。很多情况下,组合优化的搜索空间受问题规模的制约,因此很难寻找满意解。但是,遗传算法对于组合优化中的NP完全问题非常有效。朱莹等[2]提出了一种结合启发式算法和遗传算法的混合遗传算法来解决杂货船装载的优化问题中。潘欣等[3]在化工多目标优化问题中应用了并行遗传算法,实验结果表明该方法效果良好。王大东等[4]将遗传算法应用到了清运车辆路径的优化问题求解中,而且仿真结果表明算法可行有效。 3.2生产调度 在复杂生产调度方面,遗传算法也发挥了很大的作用。韦勇福等[5]将遗传算法应用到了车间生产调度系统的开发中,并建立了最小化完工时间目标模型,成功开发了车间生产调度系统模块,并用实例和仿真验证了该方法的可行性。张美凤等[6]将遗传算法和模拟退火算法相结合,提出了解决车间调度问题的混合遗传算法,并给出了一种编码方法以及建立了相应的解码规则。 3.3自动控制 在自动控制领域中,遗传算法主要用于求解的大多也是与优化相关的问题。其应用主要分为为两类,即离线设计分析和在线自适应调节。GA可为传统的综合设计方法提供优化参数。 3.4机器学习 目前,遗传算法已经在机器学习领域得到了较为广泛的应用。邢晓敏等[7]提出了将遗传算子与Michigan方法和基于Pitt法的两个机器学习方法相结合的机器学习方法。蒋培等[8]提出了一种基于共同进化遗传算法的机器学习方法,该方法克服了学习系统过分依赖于问题的背景知识的缺陷,使得学习者逐步探索新的知识。 3.5图像处理 图像处理是一个重要的研究领域。在图像处理过程中产生的误差会影响图像的效果,因此我们要尽可能地减小误差。目前,遗传算法已经在图像增强、图像恢复、图像重建、图像分形压缩、图像分割、图像匹配等方面应用广泛,详见参考文献[9]。 4结束语 遗传算法作为一种模拟自然演化的学习过程,原理简单,应用广泛,已经在许多领域解决了很多问题。但是,它在数学基础方面相对不够完善,还有待进一步研究和探讨。目前,针对遗传算法的众多缺点,也相继出现了许多改进的算法,并取得了一定的成果。可以预期,未来伴随着生物技术和计算机技术的进一步发展,遗传算法会在操作技术等方面更加有效,其发展前景一片光明。 参考文献 [1]周明,孙树栋.遗传算法原理及应用[M].国防工业出版社,1999,6. [2]朱莹,向先波,杨运桃.基于混合遗传算法的杂货船装载优化问题[J].中国船舰研究,2015:10(6):126-132. [3]潘欣,等.种群分布式并行遗传算法解化工多目标优化问题[J].化工进展,2015:34(5):1236-1240. [4]王大东,刘竞遥,王洪军.遗传算法求解清运车辆路径优化问题[J].吉林师范大学学报(自然科学版),2015(3):132-134. [5]韦勇福,曾盛绰.基于遗传算法的车间生产调度系统研究[J].装备制造技术,2014(11):205-207. [6]黄巍,张美凤.基于混合遗传算法的车间生产调度问题研究[J].计算机仿真,2009,26(10):307-310. [7]邢晓敏.基于遗传算法的机器学习方法赋值理论研究[J].软件导刊[J].2009,8(11):80-81. [8]蒋培.基于共同进化遗传算法的机器学习[J].湖南师范大学自然科学学报,2004,27(3):33-38. [9]田莹,苑玮琦.遗传算法在图像处理中的应用[J].中国图象图形学报,2007,12(3):389-396. [10]周剑利,马壮,陈贵清.基于遗传算法的人工生命演示系统的研究与实现[J].制造业自动化,2009,31(9):38-40. [11]刘晓莉,戎海武.基于遗传算法与神经网络混合算法的数据挖掘技术综述[J].软件导刊,2013,12(12):129-130. 作者简介:赵夫群(1982,8-),女,汉族,籍贯:山东临沂,咸阳师范学院讲师,西北大学在读博士,工作单位:咸阳师范学院教育科学学院,研究方向:三维模型安全技术。 摘要:遗传算法是一种非常重要的搜索算法,特别是在解决优化问题上,效果非常好。文章首先介绍了遗传算法的四个组成部分,以及算法的基本操作步骤,接着探讨了遗传算法的几个主要应用领域,包括优化、生产调度、机器学习、图像处理、人工生命和数据挖掘等。目前遗传算法以及在很多方面的应用中取得了较大的成功,但是它在数学基础方面相对还不够完善,因而需要进一步研究和完善。 关键词:遗传算法;优化问题;数据挖掘 67 --

遗传算法的基本原理

第二章 遗传算法的基本原理 2.1 遗传算法的基本描述 2.1.1 全局优化问题 全局优化问题的定义:给定非空集合S 作为搜索空间,f :S —>R 为目标函数,全局优化问题作为任务)(max x f S x ∈给出,即在搜索空间中找到至少一个使目标函数最大化的点。 全局最大值(点)的定义:函数值+∞<=)(**x f f 称为一个全局最大值,当且仅当x ? S x ∈,(ρi i b a <,i 12)定义适应度函数f(X); 3)确定遗传策略,包括群体规模,选择、交叉、变异算子及其概率。 4)生成初始种群P ; 5)计算群体中各个体的适应度值; 6)按照遗传策略,将遗传算子作用于种群,产生下一代种群; 7)迭代终止判定。 遗传算法涉及六大要素:参数编码,初始群体的设定,适应度函数的设计,遗传操作的设计,控制参数的设定,迭代终止条件。

2.1.3 遗传编码 由于GA 计算过程的鲁棒性,它对编码的要求并不苛刻。原则上任何形式的编码都可以,只要存在合适的对其进行操作的遗传算子,使得它满足模式定理和积木块假设。 由于编码形式决定了交叉算子的操作方式,编码问题往往称作编码-交叉问题。 对于给定的优化问题,由GA 个体的表现型集合做组成的空间称为问题(参数)空间,由GA 基因型个体所组成的空间称为GA 编码空间。遗传算子在GA 编码空间中对位串个体进行操作。 定义:由问题空间向GA 编码空间的映射称为编码,而有编码空间向问题空间的映射成为译码。 1)2)3)它们对1) 2) k =1,2,…,K; l =1,2,…,L; K=2L 其中,个体的向量表示为),,,(21kL k k k a a a a =,其字符串形式为kL k k k a a a s 21=,s k 称为个体a k 对应的位串。表示精度为)12/()(--=?L u v x 。 将个体又位串空间转换到问题空间的译码函数],[}1,0{:v u L →Γ的公式定义为: 对于n 维连续函数),,2,1](,[),,,,(),(21n i v u x x x x x x f i i i n =∈=,各维变量的二进制

遗传算法及其在TSP问题中的应用

遗传算法及其在TSP问题中的应用 摘要:本文首先介绍了遗传算法的基本理论与方法,从应用的角度对遗传算法做了认真的分析和研究,总结了用遗传算法提出求解组合优化问题中的典型问题——TSP问题的最优近似解的算法。其次,本文在深入分析和研究了遗传算法基本理论与方法的基础上,针对旅行商问题的具体问题,设计了基于TSP的遗传算法的选择、交叉和变异算子等遗传算子,提出了求解旅行商问题的一种遗传算法,并用Matlab语言编程实现其算法,最后绘出算法的仿真结果,并对不同结果作出相应的分析。然后,本文还针对遗传算法求解TSP时存在的一些问题对该算法进行了适当的改进。如针对初始群体、遗传算子作出适当改进,或者将遗传算法与其他方法相结合,以及在编程过程中对算法流程的改进。本人在用计算机模拟遗传算法求解TSP问题时,首先分析了用Matlab语言设计遗传算法程序的优越性,接着以遗传算法求解TSP问题为例,深入讨论了各个遗传算子的程序实现,并通过分析实验数据,得到各个遗传算子在搜索寻优过程中所起的作用,最后指出了用Matlab语言编程同用其它高级程序语言编程的差异所在,以及运用Matlab编写遗传算法程序的一些注意事项。最后,本文提出将遗传算法与其它算法相结合来求解一般问题的想法;并将遗传算法的应用范围扩展,提出可以运用遗传算法求解由TSP衍生出的各类TSP扩展问题,如求解配送/收集旅行商问题的遗传算法(TSPD)、遗传算法在货物配送问题中的应用(ST-TSP)、多旅行商问题(MTSP)等。 引言:优化问题可以自然地分为两类:一类是连续变量的优化问题;另一类是离散变量的优化问题,即所谓组合优化问题。对于连续变量的优化问题,一般是求一组实数或一个函数;而在组合优化问题中,一般是从一个无限集或有限的几个无限集中寻找一个对象——它可以是一个整数,一个集合,一个排列或者一个图,也即是从可行解中求出最优解的问题。TSP问题就是其中的典型例子,就本质上而言它可抽象为数学上的组合优化,它描述的是旅行商经N个城市的最短路径问题,因而对TSP问题的求解是数学上,同时也是优化问题中普遍关注的。旅行商问题(Traveling Salesman Problem,简称TSP)也称为货担郎问题,是一个较古的问题,最早可以追溯到1759年Euler提出的骑士旅行问题[9]。旅行商问题可以解释为,一位推销员从自己所在城市出发,必须邀访所有城市且每个城市只能访问一次之后又返回到原来的城市,求使其旅行费用最小(和旅行距离最短)的路径。 TSP是一个典型的组合优化问题,并且是一个NP难题,所以一般很难精确地求出其最优解,因而寻找出其有效的近似求解算法就具有重要的理论意义。另一方面,很多实际应用问题,如公安执勤人员的最优巡回路线、流水作业生产线的顺序问题、车辆调度问题、网络问题、切割问题以至机组人员的轮班安排、教师任课班级负荷分配等问题,经过简化处理后,都可建模为TSP问题,因而对旅行商问题求解方法的研究也具有重要的应用价值。再者,在各种遗传算法应用实例中,其个体编码方法大多都是采用二进制编码方法或浮点数编码方法,而TSP问题是一种典型的需要使用符号编码方法的实际问题,所以,研究求解TSP问题的遗传算法,对促进遗传算法本身的发展也具有重要意义。在过去的20年里,在求解旅行商问题的最优解方面取得了极大的进展。尽管有这些成就,但旅行商问题还远未解决,问题的许多方面还要研究,很多问题还在期待满意的回答。 另外,遗传算法就其本质来说,主要是解决复杂问题的一种鲁棒性强的启发式随机

谈谈遗传算法的原理

谈谈遗传算法的原理 发表时间:2011-08-24T09:52:45.450Z 来源:《魅力中国》2011年7月上供稿作者:朱小宝 [导读] 从上表中可以看出,群体经过一代进化之后,其适应度的最大值、平均值都得到了明显的改进。 朱小宝 (南昌航空大学飞行器工程学院江西南昌 330029) 中图分类号:TP301.6 文献标识码:A 文章编号:1673-0992(2011)07-0000-01摘要:自从霍兰德于1975年在他的著作《Adaption im Natural and artificial Systems》中首次提出遗传算法以来,经过了近30年的研究,现在已经发展到了一个比较成熟的阶段,并且在实际中得到了很好的应用。为了更好的了解遗传算法,本文通过最简单的一个手工计算实例来还原遗传算法的全过程。 关键词:遗传算法生物进化染色体种群 自然界的生物进化是按“适者生存,优胜劣汰”规律进行的,而遗传算法就是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。其基本思想是力求充分模仿这一自然寻优过程的随机性、鲁棒性和全局性,这是一种全局优化搜索算法,因为其直接对结构对象进行操作,不存在求导和函数连续性的限定。 遗传算法采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。遗传算法的操作对象是一群二进制串(称为染色体),即种群。这里每一个染色体都对应问题的一个解。从初始种群出发,采用基于适应值比例的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。如此模仿生命的进化一代代演化下去,直到满足期望的终止条件为止。 遗传算法主要步骤: (1)编码:由于遗传算法不能直接处理解空间的数据,必须通过编码将它们表示成遗传空间的基因型串结构数据。 (2)选择初始种群:随机产生N个初始串结构数据,每个串结构数据称为一个个体,也称为染色体,N个个体体构成了一个种群。 (3)选择适应度函数:遗传算法在搜索过程中一般不需要其他外部信息或知识,仅用适应度函数来评价个体的适应度。 (4)选择:利用选择概率再随机的选择个体和复制数量。选择算子的设计可依据达尔文适者生存的进化论原则,选择概率大的被选中的机会较多。 (5)杂交:对被选中的个体进行随机配对并随机的选择基因交换位,交换基因后产生新的个体,全体新个体构成新的(下一代)种群。 (6)变异:变异操作是按位进行求反,对二二进制编码的个体而言,就是对随机选中的某位进行求反运算,即“0”变“1”,“1”变大“0”。 (7)一代种群通过遗传,即选择、杂交和变异产生下一代种群。新种群又可重复上述的选择、杂交和变异的遗传过程。 为更好地理解遗传算法的运算过程,下面用手工计算来简单地模拟遗传算法的各个主要执行步骤。 求下述二元函数的最大值: Max f(x1,x2)= x12+ x22 S,t, x1∈{1,2,3,4,5,6,7} x2∈{1,2,3,4,5,6,7} (1) 个体编码 遗传算法的运算对象是表示个体的符号串,所以必须把变量 x1, x2 编码为一种符号串。本题中,用无符号二进制整数来表示。因 x1, x2 为 0 ~ 7之间的整数,所以分别用3位无符号二进制整数来表示,将它们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可行解。例如,基因型 X=101110 所对应的表现型是:x=[5,6]。个体的表现型x和基因型X之间可通过编码和解码程序相互转换。 (2) 初始群体的产生 群体规模的大小取为4,即群体由4个个体组成,每个个体可通过随机方法产生。 如:011101,101011,011100,111001 (3) 适应度汁算 目标函数总取非负值,并且是以求函数最大值为优化目标,故可直接用目标函数值作为个体的适应度。 (4) 选择运算 我们采用与适应度成正比的概率来确定各个个体复制到下一代群体中的数量。其具体操作过程是: 1.先计算出群体中所有个体的适应度的总和 fi ( i=1.2,…,M ); 2.fi其次计算出每个个体的相对适应度的大小 fi / ,它即为每个个体被遗传到下一代群体中的概率, 3.每个概率值组成一个区域,全部概率值之和为1; 4.最后再产生一个0到1之间的随机数,依据该随机数出现在上述哪一个概率区域内来确定各个个体被选中的次数。

基于数据挖掘的遗传算法

基于数据挖掘的遗传算法 xxx 摘要:本文定义了遗传算法概念和理论的来源,介绍遗传算法的研究方向和应用领域,解释了遗传算法的相关概念、编码规则、三个主要算子和适应度函数,描述遗传算法计算过程和参数的选择的准则,并且在给出的遗传算法的基础上结合实际应用加以说明。 关键词:数据挖掘遗传算法 Genetic Algorithm Based on Data Mining xxx Abstract:This paper defines the concepts and theories of genetic algorithm source, Introducing genetic algorithm research directions and application areas, explaining the concepts of genetic algorithms, coding rules, the three main operator and fitness function,describing genetic algorithm parameter selection process and criteria,in addition in the given combination of genetic algorithm based on the practical application. Key words: Data Mining genetic algorithm 前言 遗传算法(genetic algorithm,GAs)试图计算模仿自然选择的过程,并将它们运用于解决商业和研究问题。遗传算法于20世界六七十年代由John Holland[1]发展而成。它提供了一个用于研究一些生物因素相互作用的框架,如配偶的选择、繁殖、物种突变和遗传信息的交叉。在自然界中,特定环境限制和压力迫使不同物种竞争以产生最适应于生存的后代。在遗传算法的世界里,会比较各种候选解的适合度,最适合的解被进一步改进以产生更加优化的解。 遗传算法借助了大量的基因术语。遗传算法的基本思想基于达尔文的进化论和孟德尔的遗传学说,是一类借鉴生物界自然选择和自然遗传机制的随机搜索算法。生物在自然界的生存繁殖,显示对其自然环境的优异自适应能力。受其启发,人们致力于对生物各种生存特性的机制研究和行为模拟。通过仿效生物的进化与遗传,根据“生存竞争”和“优胜劣汰”的原则,借助选择、交叉、变异等操作,使所要解决的问题从随机初始解一步步逼近最优解。现在已经广泛的应用于计算机科学、人工智能、信息技术及工程实践。[2]在工业、经济管理、交通运输、工业设计等不同领域,成功解决了许多问题。例如,可靠性优化、流水车间调度、作业车间调度、机器调度、设备布局设计、图像处理以及数据挖掘等。遗传算法作为一类自组织于自适应的人工智能技术,尤其适用于处理传统搜索方法难以解决的复杂的和非线性的问题。 1.遗传算法的应用领域和研 究方向 1.1遗传算法的特点 遗传算法作为一种新型、模拟生物进化过程的随机化搜索方法,在各类结 构对象的优化过程中显示出比传统优 化方法更为独特的优势和良好的性能。 它利用其生物进化和遗传的思想,所以 它有许多传统算法不具有的特点[3]: ※搜索过程不直接作用在变量上,而是 作用于由参数集进行了编码的个体 上。此编码操作使遗传算法可以直接 对结构对象进行操作。 ※搜索过程是从一组解迭代到另一组 解,采用同时处理群体中多个个体的 方法,降低了陷入局部最优解的可能 性,易于并行化。

遗传算法的原理及MATLAB程序实现

1 遗传算法的原理 1.1 遗传算法的基本思想 遗传算法(genetic algorithms,GA)是一种基于自然选择和基因遗传学原理,借鉴了生物进化优胜劣汰的自然选择机理和生物界繁衍进化的基因重组、突变的遗传机制的全局自适应概率搜索算法。 遗传算法是从一组随机产生的初始解(种群)开始,这个种群由经过基因编码的一定数量的个体组成,每个个体实际上是染色体带有特征的实体。染色体作为遗传物质的主要载体,其内部表现(即基因型)是某种基因组合,它决定了个体的外部表现。因此,从一开始就需要实现从表现型到基因型的映射,即编码工作。初始种群产生后,按照优胜劣汰的原理,逐代演化产生出越来越好的近似解。在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样,后代种群比前代更加适应环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。 计算开始时,将实际问题的变量进行编码形成染色体,随机产生一定数目的个体,即种群,并计算每个个体的适应度值,然后通过终止条件判断该初始解是否是最优解,若是则停止计算输出结果,若不是则通过遗传算子操作产生新的一代种群,回到计算群体中每个个体的适应度值的部分,然后转到终止条件判断。这一过程循环执行,直到满足优化准则,最终产生问题的最优解。图1-1给出了遗传算法的基本过程。 1.2 遗传算法的特点 1.2.1 遗传算法的优点 遗传算法具有十分强的鲁棒性,比起传统优化方法,遗传算法有如下优点: 1. 遗传算法以控制变量的编码作为运算对象。传统的优化算法往往直接利用控制变量的实际值的本身来进行优化运算,但遗传算法不是直接以控制变量的值,而是以控制变量的特定形式的编码为运算对象。这种对控制变量的编码处理方式,可以模仿自然界中生物的遗传和进化等机理,也使得我们可以方便地处理各种变量和应用遗传操作算子。 2. 遗传算法具有内在的本质并行性。它的并行性表现在两个方面,一是遗传

matlab基本遗传算法应用实例

基本遗传算法应用实例。用基本遗传算法求下面函数的最大值 10090060)(23++-=x x x x f 300≤≤x 个体数目取50,最大进化代数取100,离散精度取0.001,杂交概率取0.9,变异概率取0.004 1、在editor 中建立基本遗传算法函数:GA 程序如下: function[xv,fv]=GA(fitness,a,b,NP,NG,pc,pm,eps) %待优化的目标函数:fitness %自变量下界:a %自变量上界:b %种群个体数:NP %最大进化代数:NG %杂交概率:pc %自变量概率:pm %自变量离散精度:eps %目标函数取最小值时的自变量值:xm %目标函数的最小值:fv L=ceil(log2((b-a)/eps+1)); %根据离散精度,确定二进制编码需要的码长 x=zeros(NP,L); for i=1:NP x(i,:)=Initial(L);%种群初始化 fx(i)=fitness(Dec(a,b,x(i,:),L)); %个体适应值 end for k=1:NG sumfx=sum(fx); %所有个体适应值之和 px=fx/sumfx; %所有个体适应值的平均值 ppx=0; ppx(1)=px(1); for i=2:NP %用于轮盘赌策略的累加 ppx(i)=ppx(i-1)+px(i); end for i=1:NP sita=rand(); for n=1:NP if sita<=ppx(n) SelFather=n; %根据轮盘赌策略确定的父亲 break; end end Selmother=floor(rand()*(NP-1))+1; %随机选择母亲 posCut=floor(rand()*(L-2))+1; %随机选择交叉点 r1=rand(); if r1<=pc %交叉

第七章 遗传算法应用举例

第七章 遗传算法应用举例 遗传算法提供了一种求解非线性、多模型、多目标等复杂系统优化问题的通用框架,它不依赖于问题具体的领域。随着对遗传算法技术的不断研究,人们对遗传算法的实际应用越来越重视,它已经广泛地应用于函数优化、组合优化、自动控制、机器人学、图象处理、人工生命、遗传编码、机器学习等科技领域。遗传算法已经在求解旅行商问题、背包问题、装箱问题、图形划分问题等多方面的应用取得了成功。本章通过一些例子,介绍如何利用第五章提供的遗传算法通用函数,编写MATLAB 程序,解决实际问题。 7.1 简单一元函数优化实例 利用遗传算法计算下面函数的最大值: ()sin(10) 2.0[1,2]f x x x x π=?+∈-, 选择二进制编码,种群中个体数目为40,每个种群的长度为20,使用代沟为0.9,最大遗传代数为25。 下面为一元函数优化问题的MA TLAB 代码。 figure(1); fplot ('variable.*sin(10*pi*variable)+2.0',[-1,2]); %画出函数曲线 % 定义遗传算法参数 NIND= 40; % 个体数目(Number of individuals) MAXGEN = 25; % 最大遗传代数(Maximum number of generations) PRECI = 20; % 变量的二进制位数(Precision of variables) GGAP = 0.9; % 代沟(Generation gap) trace=zeros (2, MAXGEN); % 寻优结果的初始值 FieldD = [20;-1;2;1;0;1;1]; % 区域描述器(Build field descriptor) Chrom = crtbp(NIND, PRECI); % 初始种群 gen = 0; % 代计数器 variable=bs2rv(Chrom,FieldD); % 计算初始种群的十进制转换 ObjV = variable.*sin (10*pi*variable)+2.0; % 计算目标函数值 while gen < MAXGEN, FitnV = ranking (-ObjV); % 分配适应度值(Assign fitness values) SelCh = select ('sus', Chrom, FitnV , GGAP); % 选择 SelCh = recombin ('xovsp',SelCh,0.7); % 重组 SelCh = mut(SelCh); % 变异 variable=bs2rv(SelCh,FieldD); % 子代个体的十进制转换 ObjVSel =variable.*sin(10*pi*variable)+2.0; % 计算子代的目标函数值 [Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV ,ObjVSel); % 重插入子代的新种群 gen = gen+1; % 代计数器增加 % 输出最优解及其序号,并在目标函数图象中标出,Y 为最优解,I 为种群的序号 [Y,I]=max(ObjV),hold on; plot (variable (I),Y , 'bo'); trace (1,gen)=max (ObjV); %遗传算法性能跟踪

遗传算法的特点及其应用

遗传算法的特点及其应用 上海复旦大学附属中学张宁 目录 【关键词】 【摘要】 【正文】 §1遗传算法的基本概念 §2简单的遗传算法 1.选择 2.交换 3.变异 §3简单的遗传算法运算示例 1.计算机公司的经营策略优化问题 2.函数优化问题 §4遗传算法应用举例 1.子集和问题 2.TSP(旅行商)问题 §5结束语 【附录】 1.子集和问题源程序 2.TSP(旅行商)问题源程序 【参考文献】

【关键词】 遗传算法遗传变异染色体基因群体 【摘要】 遗传算法是基于达尔文进化论,在计算机上模拟生命进化机制而发展起来的一门新学科。它根据适者生存,优胜劣汰等自然进化规则来进行搜索计算和问题求解。 文章的第一部分介绍了遗传算法的基本概念。第二部分介绍了遗传算法的原理以及三种运算:选择、交换、变异。第三部分着重介绍三种运算的具体实现,以及简单实例,主要体现遗传算法的实现过程。第四部分介绍了两个具体问题,都是属于NP-完全问题,如何用遗传算法来解决,以及实现时的一些基本问题。 文章在介绍遗传算法的原理以及各种运算的同时,还分析了一些应用中出现的基本问题,对于我们的解题实践有一定的指导意义。 【正文】 遗传算法作为一门新兴学科,在信息学竞赛中还未普及,但由于遗传算法对许多用传统数学难以解决或明显失效的复杂问题,特别是优化问题,提供了一个行之有效的新途径,且能够较好地解决信息学竞赛中的NP难题,因此值得我们进行深入的讨论。 要掌握遗传算法的应用技巧,就要了解它的各方面的特点。首先,让我们来了解一下什么是遗传算法。 §1遗传算法的基本概念 遗传算法(Genetic Algorithms,简称GA)是人工智能的重要新分支,是基于达尔文进化论,在计算机上模拟生命进化机制而发展起来的一门新学科。它

相关主题
文本预览
相关文档 最新文档