遗传算法概述.docx
- 文档编号:10965141
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:15
- 大小:67.44KB
遗传算法概述.docx
《遗传算法概述.docx》由会员分享,可在线阅读,更多相关《遗传算法概述.docx(15页珍藏版)》请在冰豆网上搜索。
遗传算法概述
遗传算法概述
摘要:
遗传算法(geneticalgorithms,GA)就是人工智能得重要新分支,就是基于达尔文进化论,在微型计算机上,模拟生命进化机制而发展起来得一门学科。
它根据适者生存、优胜劣汰等自然进化规则来进行搜索计算机与问题求解。
对许多用传统数学难以解决或明显失效得非常复杂得问题,特别就是最优化问题,GA提供了一个行之有效得新途径。
近年来,由于遗传算法求解复杂优化问题得巨大潜力及其在工业控制工程领域得成功应用,这种算法受到了广泛得关注。
本文旨在阐述遗传算法得基本原理、操作步骤与应用中得一些基本问题,以及为了改善SGA得鲁棒性而逐步发展形成得高级遗传算法(refinegeneticalgorithms,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种不同得符号串,而位串得数量仅为kl=25=32。
可见,模式得数量要大于位串得数量。
对于由0、1与*定义且长度为l得符号串所能组成得最大模式数为(2+l)l。
对于任一长度为l得给定位串,当任一位置上只有两种不同表示时,所含模式数为2l个,因此对于含有n个位串个体得种群可能包含得模式数在2l~n×2l之间。
不难瞧出,遗产算法正就是利用种群中位串之间得众多得相似性以及适值之间得相关性,来引导遗传算法进行有效地搜索。
为了区分不同类型得模式,对模式H定义两个量:
模式位数(order)与模式得定义长度(defininglength)分别表示为O(H)与(H)。
O(H)就是H中有定义得非“*”位得个数,模式定义长度(H)就是指H中左右两端有定义位置之间得距离。
这两个量为分析位串得相似性及分析遗传操作对重要模式得影响提供了基本手段。
2、复制对模式得影响
设在给定时间(代)t,种群A(t)包含m个特定模式H,记为
m=m(H,t)
在复制过程中,A(t)中得任何一个位串Ai以概率Pi=fi/∑fi被选中并进行复制。
假如选择就是有放回得抽样,且两代种群之间没有交叠(即若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)。
从对复制得分析可以瞧到,虽然复制过程成功得以并行方式控制着模式数量以指数规模增减,但由于复制只就是将某些高适值个体全盘复制,或者淘汰某些低适值个体,而决不会产生新得模式结构,因而性能得改进就是有限得。
2、交叉对模式得影响
交叉过程就是位串之间有组织得随机得信息交换。
交叉操作对一个模式H得影响与模式得定义长度(H)有关,(H)越大,模式H被分裂得可能性越大,因为交叉操作要随机选择出进行匹配得一对位串上得某一随机位置进行交叉。
显然(H)越大,H得跨度就越大,随机交叉点落入其中得可能性就越大,从而H得存活率就降低。
例如位串长度l=7,有如下包含两个模式得位串A为
A=01111000
H1=*1****0,(H1)=5
H2=***10**,(H2)=1
随机产生得交叉位置在3与4之间
A=
H1=,Pd=5/6
H2=,Pd=1/6
模式H1定义长(H1)=5,若交叉点始终就是随机地从l1=71=6个可能得位置选取,则模式H1被破坏得概率为
Pd=(H1)/(l1)=5/6
它得存活概率为
Ps=1Pd=1/6
类似得,模式H2得定义长度(H2)=1,它被破坏得概率为Pd=1/6,它存活得概率为Ps=1Pd=5/6、
因此,模式H1比模式H2在交叉中更容易受到破坏。
一般情况下可以计算出任何模式得交叉存活概率得下限为
Ps
在上面得讨论中,均假设交叉得概率为1。
若交叉得概率为Pc(即在选出进匹配集得一对位串上发生交叉操作得概率),则存活率为
Ps
在复制交叉之后,模式得数量则为
即
因此,在复制与交叉得综合作用之下,模式H得数量变化取决于其平均适值得高低与定义长度得长短,f(H)越大,(H)越小,则H得数量就越多。
3、变异对模式得影响
变异就是对位串中得单个位置以概率Pm进行随机替换,因而它可能破坏特定得模式。
一个模式H要存活,意味着它所有得确定位置都存活。
因此,由于单个位置得基因值存活得概率为1Pm,而且由于每个变异得发生就是统计独立得,因此,一个特定模式仅当它得O(H)个确定位置都存活就是才存活,从而得到经变异后,特定模式得存活率为(1Pm)O(H),即(1Pm)自乘O(H)次,由于一般情况下Pm<<1,H得存活率可表示为
(1Pm)O(H)≈1O(H)Pm
综合考虑复杂、交叉与变异操作得共同作用,则模式H在经历复制、交叉、变异操作之后,在下一代中得数量可表示为
也可近似表示为
由上述分析可以得出结论:
定义长度短得、确定位数少得、平均适值高得模式数量将随着代数得增加呈指数增长。
这个结论称为模式理论或遗传算法基本定理。
根据模式理论,随着遗传算法一代一代地进行,那些定义长度短得,位数少得,高适值得模式将越来越多,因而可期望最后得到得位串得性能越来越得到改善,并最终趋向全局最优点。
三、遗传算法中适值得调整
为了使遗传算法有效得工作,必须保持种群内位串得多样性与位串之间得竞争机制。
现将遗传算法得运行分为开始、中间与结束三个阶段来考虑:
在开始阶段,若一个规模不太大得种群内有少数非凡得个体(适值很高得位串),按通常得选择方法,这些个体会被大量得复制,在种群中占有大得比重,这样就会减少种群得多样性,导致多早收敛,从而可能丢失一些有意义得搜索点或最优点,而进入局部最优;在结束阶段,即使种群内保持了很大得多样性,但若所有或大多数个体都有很高得适值,从而种群得平均适值与最大值相差无几,则平均适值附近得个体与具有最高适值得个体被选中得机会相同,这样选择就成了一个近乎随机得步骤,适值得作用就会消失,从而使搜索性能得不到明显得改进。
因此,有必要对种群内各位串得适值进行有效得调整,既不能相差太大,又要拉开档次,强化位串之间得竞争性。
1、窗口法
它就是一种简单有效得适值调整方法,调整后得个体适值为
Fj=fj(fmina)
其中,fj为原来个体得适值;为每代种群中个体适值得最小值;a为一常数。
在进化得后期窗口法增加了个体之间得差异。
2、函数归一法
该法就是将个体适值转换到最大值与最小值之间成一定比例得范围之内,这一范围由选择压力ksp决定。
具体步骤如下:
(1)根据给定得选择压力ksp,求种群中适值调整后得适值最小值为
其中fmin与fmax就是调整前种群个体适值得最小值与最大值。
适值调整后种群中适值最大值为Fmax=kspFmin
(2)计算线性适值转换得斜率为
△F=
(3)计算每个个体得新适值为
△
其中,fj为调整前第j个个体适值。
在进化得早期,函数归一化法缩小了种群内个体之间得差异,而在进化得后期又适当增大了性能相似个体之间得差异,加快了收敛速度。
3、线性调整法
线性调整法就是一个有效得调整方法。
设f就是原个体适值,F就是调整后个体得适值F=af+b,系数a、b可通过多种方法选取。
不过,在任何情况下均要求Favg应与favg相等,即应满足得条件为Favg=favg,fmax=CmultFavg,其中Cmult就是最佳种群所要求得期望副本数,就是一个经验值,对于一个不大得种群来说,可能在1、2~2得范围内取值。
正常条件下得线性调整方法如下图
线性调整在遗传算法得后期可能产生一个问题就是,一些个体得适值远远小于平均适值与最大值,而往往平均适值与最大适值又十分接近,Cmult得这种选择方法将原始适值函数伸展成负值,如下图,解决得方法就是,当无法找到一个合适得Cmult时,保持Favg=favg,而将fmin映射到Fmin=0。
四、高级遗传算法得实现方法
1、局部搜索算法
局部搜索算法就是从爬山法改进而来得,设想要爬一座自己从未爬过得高山,目标就是爬到山顶,那么如何设计一种策略使得人们可以最快到达山顶呢?
在一般情况下,如果没有任何有关山顶得其她信息,沿着最陡得山坡向上爬,应该就是一种不错得选择。
这就就是局部搜索算法中最基本得思想,即在搜索过程中,始终向着离目标最接近得方向搜索。
当然最优解可以就是求最大值,也可以就是求最小值,二者思想就是一样得。
在下面得讨论中如果没有特殊说明,均假设最优解就是最小值。
局部搜索算法得一般过程就是:
1随机选择一个初始得可能解x0∈D,xb=x0,P=N(xb);D就是问题得定义域,xb用于记录到目标位置得到得最优解,P为xb得领域。
2如果不满足结束条件,则结束条件包括达到了规定得循环次数、P为空等。
3Begin
4选择P得一个子集P’,xn为p’中得最优解
5如果f(xn) 6否则P=PP’,转②。 7End 8输出计算结果 9结束 在算法第4步,选择P得一个子集P’,可以根据问题得特点,选择适当大小得子集。 极端情况下,可以选择P’为P本身,或者就是P得一个元素。 后者情况下可以采用随机选择得方式从P中得到一个元素。 设五城市旅行商问题如下图所示,用局部搜索方法求解该问题。 假设从城市a出发,我们用城市得序列表示该问题得一个可能解。 设初始生成得可能解为: x0=(a,b,c,d,e)则根据各城市间得距离计算得到旅行商得旅行距离: f(xb)=f(x0)=38 首先选择两个城市间得位置变换方式得到一个可能解得领域,并在算法得第④步选择从p中随机选择一个元素得方法。 则算法得执行过程如下: P={(a,c,d,b,e),(a,d,c,b,e)(a,e,c,d,b),(a,b,d,c,e),(a,b,e,d,c),(a,b,c,e,d)} 第一次循环: 从P中随机选择一个元素,假设xn=(a,c,b,d,e),f(xn)=42,f(xn)>f(xb),P=P{xn}={(a,d,c,b,e),(a,e,c,d,b),(a,b,d,c,e),(a,b,e,d,c),(a,b,c,e,d)}。 第二次循环: 从P中随机选择一个元素,假设xn=(a,d,c,b,e),f(xn)=45,f(xn)>f(xb),P=P{xn}={(a,e,c,d,b),(a,b,c,d,e),(a,b,e,d,c),(a,b,c,e,d)}。 第三次循环: 从P中随机选择一个元素,假设xn=(a,e,c,d,b),f(xn)=44,f(xn)>f(xb),P=P{xn}={(a,b,d,c,e),(a,b,e,d,c),(a,b,c,e,d)}。 第四次循环: 从P中随机选择一个元素,假设xn=(a,b,d,c,e),f(xn)=44,f(xn)>f(xb),P=P{xn}={(a,b,e,d,c),(a,b,c,e,d)}。 第五次循环: 从P中随机选择一个元素,假设xn=(a,b,e,d,c),f(xn)=34,f(xn) 第六次循环: 从P中随机选择一个元素,假设xn=(a,e,b,d,c),f(xn)=44,f(xn)>f(xb),P=P{xn}={(a,d,e,b,c),(a,c,e,d,b),(a,b,d,e,c),(a,b,c,d,e),(a,b,e,c,d)}。 第七次循环: 从P中随机选择一个元素,假设xn=(a,d,e,b,c),f(xn)=39,f(xn)>f(xb),P=P{xn}={(a,c,e,d,b),(a,b,d,e,c),(a,b,c,d,e),(a,b,e,c,d)}。 第八次循环: 从P中随机选择一个元素,假设xn=(a,c,e,d,b),f(xn)=38,f(xn)>f(xb),P=P{xn}={(a,b,d,e,c),(a,b,c,d,e),(a,b,e,c,d)}。 第九次循环: 从P中随机选择一个元素,假设xn=(a,b,d,e,c),f(xn)=38,f(xn)>f(xb),P=P{xn}={(a,b,c,d,e),(a,b,e,c,d)}。 第十次循环: 从P中随机选择一个元素,假设xn=(a,b,c,d,e),f(xn)=41,f(xn)>f(xb),P=P{xn}={(a,b,e,c,d)}。 第十一次循环: 从P中随机选择一个元素,假设xn=(a,b,e,c,d),f(xn)=41,f(xn)>f(xb),P=P{xn}={}。 P等于空集,算法结束,得到结果为xb=(a,b,e,d,c),f(xb)=34。 在该问题中,由于初始值(abcde)得指标函数为38,已经就是一个比较不错得结果了,在11次循环得搜索过程中,指标函数只下降了一次,最终得结果指标函数为34,这刚好就是该问题得最优解。 从局部搜索得一般算法可以瞧出,该方法非常简单,但也存在一些问题。 一般情况下,并不能上上例那样幸运得到问题得最优解。 2、模拟退火算法 模拟退火算法就是局部搜索算法得一种扩展,该算法得思想最早由Metropolis在1953年提出,Kirkpatrick等人在1983年成功地将模拟退火算法用于求解组合优化问题。 作为求解复杂组合优化问题得一种有效得方法,模拟退火算法已经在许多工程与科学领域得到广泛应用。 模拟退火算法就是根据复杂组合优化问题与固体得退火过程之间得相似之处,在它们之间建立联系而提出来得。 固体发热退火过程就是一种物理现象,属于热力学与统计物理学得研究范畴。 当对一个固体进行加热时,粒子得热运动不断增加,随着温度得不断上升,粒子逐渐脱离其平衡位置,变得越来越自由,直到达到固体得溶解温度,粒子排列从原来得有序状态变为完全得无序状态。 这就就是固体得溶解过程。 退火过程与溶解过程刚好相反。 随着温度得下降,粒子得热运动逐渐减弱,粒子逐渐停留在不同得状态,其排列也从无序向着有序方向发展,直至到温度很低时,粒子重新以一定得结构排列。 粒子不同得排列结构,对应着不同得能量水平。 如果退火过程就是缓慢进行得,也就就是说,温度得下降如果非常缓慢得话,使得在每个温度下,粒子得排列都达到一种平衡态,则当温度趋于0时,系统得能量将趋于最小值。 如果以粒子得排列或者相应得能量来表达固体所处得状态,则温度T下,固体所处得状态具有一定得随机性。 一方面,物理系统倾向于能量较低得状态,另一方面,热运动又妨碍了系统准确落入低能状态。 根据这一物理现象,Metropolis给出了从状态i转换为状态j得准则: 如果E(j)≤E(i),则状态转换被接受; 如果E(j)>E(i),则状态转移被接受得概率为: 其中E(i)、E(j)分别表示在状态i、j下得能量,T就是温度,K>0就是波尔兹曼常数。 Metropolis准则表达了这样一种现象: 在温度T下,系统处于某种状态,由于粒子得运动,系统得状态发生微小得变化,并导致了系统能量得变化。 如果这种变化使得系统得能量减少,则接受这种转换;如果变换使得系统得能量增加,则以一定得概率接受这种转换。 在给定得温度T下,当进行足够多次得状态转换后,系统将达到热平衡。 此时系统处于某个状态i得概率由Boltzmann分布给出: 其中为归一化因子,S就是所有可能状态得集合。 在给定得温度T下,设有i、j两个状态,E(i) 由于,所以 所以有: 即在任何温度T下,系统处于能量低得状态得概率大于能量高得状态得概率。 当温度很高时有: 其中表示系统所有可能得状态数。 由上式可以瞧出,当温度很高时,系统处于各个状态得概率基本相等,接近于平均值,与所处状态得能量几乎无关。 当温度很低时则有: 设Sm表示系统最小能量状态得集合,Em就是系统得最小能量。 上式分子、分母乘以有: = 由上式可以瞧出,当温度趋近于0时,系统以等概率趋近于几个能量最小得状态之一,而系统处于其她状态得概率为0。 由于: = = 其中: 就是温度T下,各状态能量得期望值。 由于Pi(T)、K、T均大于0,所以有: 由此可以瞧出,系统落入能量较低得状态得概率就是随温度T单调下降得,而系统落入高能量状态得概率就是随温度T单调上升得。 也就就是说,系统落入低能量状态得概率随着温度得下降单调上升,而系统落入高能量状态得概率随着温度得下降单调下降。 总结可得出如下结论: 在高温下,系统基本处于无序状态,基本以等概率落入各个状态。 在给定得温度下,系统落入低能量状态得概率大于落入高能量状态得概率。 这样在同一温度下,如果系统交换得足够充分,则系统会趋向于落入较低能量得状态。 随着温度得缓慢下降,系统落入低能量状态得概率逐步增加,而落入高能量状态得概率逐步减小,使得系统各状态能量得期望值随温度得下降单调下降,而只有那些能量小于期望值得状态,其概率才随温度下降增加,其她状态均随温度下降而下降。 因此,随着能量期望值得逐步下降,能量低于期望值得状态逐步减少,当温度趋于0时,只剩下那些具有最小能量得状态,系统处于其她状态得概率趋近于0。 因此最终系统将以概率1处于具有最小能量得一个状态。 固体退火过程,最终达到最小能量得一个状态,从理论上来说,必须满足以下3个条件: 1初始温度必须足够高; 2在每个温度下,状态得交换必须足够充分; 3温度T得下降必须足够缓慢。 受固体退火过程得启发,Kirkpatrick等人意识到组合优化问题与固体退火过程得类似性,将组合优化问题类比为固体得退火过程,提出了求解组合优化问题得模拟退货算法。 设一个定义在有限集S上得组合优化问题,i∈S就是该问题得一个解,f(i)就是解i得指标函数。 由组合优化问题与退火过程得类比关系,i对应物理系统得一个状态,f(i)对应该状态得能量E(i),一个用于控制算法得进程、其值随算法进程递减得控制参数t对应固体退火中得温度T,粒子得热运动则用解在领域中得交换来代替。 这样就将一个组合优化问题与固体退火过程建立了联系。 在求解组合优化问题时,首先给定一个比较大得t值,这相当于给定一个比较高得温度T。 随机给定一个问题得解i,作为问题得初始解。 在给定得t下,随机产生一个问题得解j,j∈N(i),其中N(i)就是i得领域。 从解i到新解j得转移概率按照Metropolis准则确定即: 如果新解j被接受,则以解j代替解i,否则继续保持解i。 重复该过程,直到在该控制参数t下达到平衡。 与退火过程中得温度T缓慢下降相对应,在进行足够多得状态转移之后,控制参数t要缓慢下降,并在每个参数t下重复以上过程,直到控制参数t降低到足够小为止。 最终得到得就是该组合优化问题得一个最优解。 由于这样一个过程模拟得就是退火过程,所以被称为模拟退火算法。 模拟退火算法可描述为: 1随机选择一个解i,k=0,t0=Tmax(初始温度),计算指标函数f(i)。 2如果满足
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 遗传 算法 概述
![提示](https://static.bdocx.com/images/bang_tan.gif)