遗传算法概述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
遗传算法概述
摘要:遗传算法(genetic algorithms, GA)就是人工智能得重要新分支,就是基于达尔文进化论,在微型计算机上,模拟生命进化机制而发展起来得一门学科。它根据适者生存、优胜劣汰等自然进化规则来进行搜索计算机与问题求解。对许多用传统数学难以解决或明显失效得非常复杂得问题,特别就是最优化问题,GA提供了一个行之有效得新途径。近年来,由于遗传算法求解复杂优化问题得巨大潜力及其在工业控制工程领域得成功应用,这种算法受到了广泛得关注。本文旨在阐述遗传算法得基本原理、操作步骤与应用中得一些基本问题,以及为了改善SGA得鲁棒性而逐步发展形成得高级遗传算法(refine genetic algorithms, RGA)得实现方法。
一、遗传算法得基本原理与特点
遗传算法将生物进化原理引入待优化参数形成得编码串群体中,按着一定得适值函数及一系列遗传操作对各个体进行筛选,从而使适值高得个体被保留下来,组成新得群体,新群体包含上一代得大量信息,并且引入了新一代得优于上一代得个体。这样周而复始,群体中各个体适值不断提高,直至满足一定得极限条件。此时,群体中适值最高得个体即为待优化参数得最优解。正就是由于遗传算法独具特色得工作原理,使它能够在复杂得空间进行全局优化搜索,并且具有较强得鲁棒性;另外,遗传算法对于搜索空间,基本上不需要什么限制性得假设(如连续性、可微及单峰等)。
同常规优化算法相比,遗传算法有以下特点。
(1)遗传算法就是对参数编码进行操作,而非对参数本身。遗传算法首先基于一个有限得字母表,把最优化问题得自然参数集编码为有线长度得字符串。例如,一个最
优化问题:在整数区间【0,31】上求函数f(x)=x2得最大值。若采用传统方法,需要
不断调节x参数得取值,直至得到最大得函数值为止。而采用遗传算法,优化过程
得第一步得就是把参数x编码为有限长度得字符串,常用二进制字符串,设参数x
得编码长度为5,“00000”代表0,“11111”代表31,在区间【0,31】上得数与二
进制编码之间采用线性映射方法;随机生成几个这样得字符串组成初始群体,对
群体中得字符串进行遗产操作,直至满足一定得终止条件;求得最终群体中适值
最大得字符串对应得十进制数,其相应得函数值则为所求解。可以瞧出,遗传算法
就是对一个参数编码群体进行得操作,这样提供得参数信息量大,优化效果好。
(2)遗传算法就是从许多点开始并行操作,并非局限于一点,从而可有效防止搜索过程收敛于局部最优解。
(3)遗传算法通过目标函数计算适值,并不需要其她推导与附加信息,因而对问题得依赖性较小。
(4)遗传算法得寻优规则就是由概率决定得,而非确定性得。
(5)遗传算法在解空间进行高效启发式搜索,而非盲目得穷举或完全随机搜索。
(6)遗传算法对求解得优化问题没有太多得数学要求。由于它得进化特性,它在解得搜索中不需要了解问题得内在性质。遗传算法可以处理任意形式得目标函数与
约束,无论就是线性得还就是非线性得,离散得还就是连续得,甚至就是混合得搜
索空间。
(7)遗传算法具有并行计算得特点,因而可通过大规模并行计算来提高计算速度。
二、遗传算法得模式理论
1、模式
一个模式(schemata)就就是一个描述种群在位串得某些确定位置上具有相似性得一组符号串。为了描述一个模式,在用以表示位串得两个字符{0,1}中加入一个通配符“*”,就构成了一个表示模式用得3个字符得符号表{0,1,*}。因此用三个元素符号表{0,1,*}可以构造
出任意一种模式。当一个模式与一个特定位串相匹配时,意味着该模式中得1与位串中得1相匹配,模式中得0与位串中得0相匹配,模式中得“*”与位串中得0或1相匹配。例如,模式00*00匹配了两个位串,即{00100,00000};模式*111*可以与{01110,01111,11110,11111}中得任何一个相匹配;模式0*1**则匹配了长度为5,第一位为0、第三位为1得八个位串,即{00100,00101,00110,00111,01100,01101,01110,01111}。
模式得思路提供了一种简单而有效得方法,使能够在有限符号表得基础上讨论有限长位串得严谨定义得相似性。应强调得就是,“*”只就是一个代表其她符号得一个元符号,它不能被遗传算法直接处理,但可以据此计算出所有可能得模式。
一般地,假定符号表得基数就是k,例如{0,1}得基数就是2,则定义在该符号表上得长度为l得位串中,所有可能包含得最大模式数为(k +l)l,原因就是在l个位置中得任何一个位置上即可以取k个字符中得任何一个又可以取通配符“*”,即共有k + l个不同得表示,则l个位置得全排列数为(k +l)l。例如,对长度l=5,k=2(对应0,1),则会有3×3×3×3×3=35=243=(k +l)l种不同得符号串,而位串得数量仅为k l=25=32。可见,模式得数量要大于位串得数量。
对于由0、1与*定义且长度为l得符号串所能组成得最大模式数为(2+l)l。对于任一长度为l得给定位串,当任一位置上只有两种不同表示时,所含模式数为2l个,因此对于含有n个位串个体得种群可能包含得模式数在2l~n×2l之间。不难瞧出,遗产算法正就是利用种群中位串之间得众多得相似性以及适值之间得相关性,来引导遗传算法进行有效地搜索。为了区分不同类型得模式,对模式H定义两个量:模式位数(order)与模式得定义长度(defining length)分别表示为O(H)与(H)。O(H)就是H中有定义得非“*”位得个数,模式定义长度(H)就是指H中左右两端有定义位置之间得距离。这两个量为分析位串得相似性及分析遗传操作对重要模式得影响提供了基本手段。
2、复制对模式得影响
设在给定时间(代)t,种群A(t)包含m个特定模式H,记为
m=m(H,t)
在复制过程中,A(t)中得任何一个位串A i以概率P i=f i/∑f i被选中并进行复制。假如选择就是有放回得抽样,且两代种群之间没有交叠(即若A(t)得规模为n,则在产生A(t+1)时,必须从A(t)中选n个位串进匹配集),可以期望在复制完成后,在t+1时刻,特定模式H得数量为:
m(H,t+1)=m(H,t)nf(H)/∑fi
其中,f(H)就是在t时刻对应模式H得位串得平均适值,因为整个群得平均适值f=∑fi/n,则上式又可写为
m(H,t+1)=m(H,t)
经过复制操作后,下一代中特定模式得数量H正比于所在位串得平均适值与种群平均适值得比值。若f(H)>,则H得数量将增加,若f(H)<,则H得数量将减少。即若包含H得个体位串得平均适值高于当前种群中所有个体位串得平均适值,则种群包含特模式得下一代中得数量将增加;反之,减少。操作中模式得增减在复制中就是并行得,这恰恰表现了遗传算法隐含得并行性。
为了进一步分析高于平均适值得模式数量得增长,假设(c就是一个大于零得常数),则上式可写为:
从原始种群开始(t=0),并假定就是一个稳态得值,则有
t
可见,对于高于平均适值得模式数量将按指数规律增长(c>0)。
从对复制得分析可以瞧到,虽然复制过程成功得以并行方式控制着模式数量以指数规模