标签:基因突变 范围 多目标 sel 初始 现在 oss 参数 工作
在几十亿年的演化过程中,自然界中的生物体已经 形成了一种优化自身结构的内在机制,它们能够不 断地从环境中学习,以适应不断变化的环境。对于大多数生物体,这个过程是通过自然选择和有性生殖来完成的。自然选择决定了群体中哪些个体 能够存活并繁殖,有性生殖保证了后代基因的混合 与重组。
演化计算(Evolutionary Computation, EC)是在达尔文(Darwin)的进化论和孟德 尔(Mendel)的遗传变异理论的基础上产生的一种在基因和种群层次上模拟自然界生 物进化过程与机制,进行问题求解的自组织、自适应的随机搜索技术。它以达尔文进化论的“物竟天择、适者生存”作为算法的进化规则,并结合孟德尔的遗 传变异理论,将生物进化过程中的繁殖(Reproduction)、变异(Mutation)、竞争 (Competition)、选择(Selection)引入到了算法中,是一种对人类智能的演化模拟方法演化计算的主要有遗传算法、演化策略、演化规划和遗传规划四大分支。其中,遗传算 法是演化计算中最初形成的一种具有普遍影响的模拟演化优化算法。
遗传算法简称GA(Genetic Algorithms)是1962年由美国Michigan大学的Holland教授提出的模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法。
遗传算法是以达尔文的自然选择学说为基础发展起来的。
自然选择学说包括以下三个方面:
遗传:这是生物的普遍特征,亲代把生物信息交给子代,子代总是和亲代具有相同或相似的性状。生物有了这个特征,物种才能稳定存在。
变异:亲代和子代之间以及子代的不同个体之间的差异,称为变异。变异是随机发生的,变异的选择和积累是生命多样性的根源。
生存斗争和适者生存:具有适应性变异的个体被保留下来,不具有适应性变异的个体被淘汰,通过一代代的生存环境的选择作用,性状逐渐与祖先有所不同,演变为新的物种。
遗传算法将“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按所选择的适应度函数并通过遗传中的复制、交叉及变异对个体进行筛选,使适应度高的个体被保留下来,组成新的群体
新的群体既继承了上一代的信息,又优于上一代这样周而复始,群体中个体适应度不断提高,直到满足一定的条件遗传算法的算法简单,可并行处理,并能得到全局最优解。
遗传算法的基本操作有三种:
变异的重要作用:没有变异,则无法在初始基因组合以外的空间进行搜索;使进化过程在早期就陷入局部解而进入终止过程;为了在尽可能大的空间中获得质量较高的优化解(水至清则无鱼)
研究生物遗传是从染色体入手的
染色体是由基因排成的串,可以理解为生物编码
研究遗传算法,研究如何编码是第一步工作
编码是通过某种机制把求解问题抽象为由特定符号按一定顺序 排成的串
使用二进制串进行编码是常见的方法
利用遗传算法求下列一元函数的最大值,其中x∈[-1,1],求解结果精确到6位小数,请问如何编码?
f(x)=x*sin(8πx)+3.0
【解】由于区间长度为2,求解结果精确到6位小数,因此可以将自变量定义区间划分为等份。又因为2^20 < 2*10^6 < 2^21,所以本例的二进 制编码长度至少需要21位,本例的编码过程实质上是将区间[-1,1]内对 应的实数值转化为一个二进制串( )
确定编码方案后,遗传算法通常采用随机方法生成若干个个体的集合,该集合称为初始种群,初始种群中个体的数量称为种群规模。
遗传算法对一个个体(解)的好坏用适应度函数值来评价
适应度函数值越大,解的质量越好
适应度函数是遗传算法进化过程的驱动力,也是进行自然选择的唯一标准,它的设计应结合求解问题本身的要求而定
遗传算法使用选择运算来实现对群体中的个体进行优胜劣汰操作:适应度高的个体被遗传到下一代群体中的概率大;适应度低的个体,被遗传到下一代群体中的概率小
交叉运算是指对两个相互配对的染色体依据交叉概率 Pc 按某种方式相互交换其部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算法中起关键作用,是产生新个体的主要方法。交叉算子一般采用单点交叉算子:
交叉前(用”|"来表示交叉点):
00000|01110000000010000
11100|00000111111000101
交叉后:
00000|00000111111000101
11100|01110000000010000
所谓变异运算,是指依据变异概率 Pm 将个体编码串中的某些基因值用其它基因值来替换,从而形成一个新的个体。
遗传算法中的变异运算是产生新个体的辅助方法,它决定了遗传算法的局部搜索能力,同时保持种群的多样性,交叉运算和变异运算的相互配合,共同完成对搜索空间的全局搜索和局部搜索,变异算子采用基本位变异算子。基本位变异算子是指对个体编码串随机指定的某一位或某几位基 因作变异运算。对于基本遗传算法中用二进制编码符号串所表示的个体,若需要进行变异操作的原有基因值为0,则变异操作将其变为1;反之,若原有基因值为1,则变异操作将其变为0
变异前: 000001110000000010000
变异后: 000001110001000010000
利用遗传算法求函数最值(极值)问题是清晰地理解遗传算法的一个较好的途径
【例】求函数f(x1,x2)=x1^2+x2^2的最大值,其中x1 及x2取值范围为{1,2,3,4,5,6,7}
本例用无符号二进制整数来表示,因 x1, x2 为 0 ~ 7之间的整数,分别用3位无符号二进制整数来表示
将它们连接在一起所组成的6位无符号二进制数就形成了个体的基因型,表示一个可行解
如:基因型X=101110所对应的表现型是:x=[ 5,6 ]。个体的表现型x和基因型X之间可通过编码和解码程序相互转换
遗传算法是对群体进行的进化操作,需要给其准备一些表示起始搜索点的初始群体数据
本例中,群体规模的大小取为4,即群体由4个个体组成,每个个体可通过随机方法产生
如:011101,101011,011100,111001
遗传算法以个体适应度的大小来评定各个个体的优劣程度,从 而决定其遗传机会的大小
本例中,目标函数总取非负值,并且是以求函数最大值为优化目标,故可直接利用目标函数值作为个体的适应度
选择运算(或称为复制运算)把当前群体中适应度较高的个体按某种规则或模型遗传到下一代群体中,一般要求适应度较高的个体将有更多的机会遗传到下一代群体中
采用与适应度成正比的概率来确定各个个体复制到下一代群体中的数量。其具体操作过程是:
交叉运算是遗传算法中产生新个体的主要操作过程,它以某一概率相互交换某两个个体之间的部分染色体。本例采用单点交叉的方法,其具体操作过程是:先对群体进行随机配对,其次随机设置交叉点位置;最后再相互交换配对染色体之间的部分基因
其中新产生的个体“111101”、“111011”的适应度较原来两个个体的适应度都要高
变异运算是对个体的某一个或某一些基因座上的基因值按某一较小的概率进行改变,它也是产生新个体的一种操作方法。本例中,我们采用基本位变异的方法来进行变异运算,其具体操作过程是:首先确定出各个个体的基因变异位置,下表所示为随机产生的变异点位置,其中的数字表示变异点设置在该基因座处;然后依照某一概率将变异点的原有基因值取反
对群体P(t)进行一轮选择、交叉、变异运算之后可得到新一代的群体p(t+1)
群体经过一代进化之后,其适应度的最大值、平均值都得到了明显的改进。事实上,这里已经找到了最佳个体“111111”
标签:基因突变 范围 多目标 sel 初始 现在 oss 参数 工作
原文地址:https://www.cnblogs.com/wangxiaozhang/p/12241354.html