遗传算法概述

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)f

H f )( 经过复制操作后,下一代中特定模式的数量H 正比于所在位串的平均适值与种群平均适值的比值。若f(H)>f ,则H 的数量将增加,若f(H)

相关文档
最新文档