遗传算法介绍二
转载 遗传算法(Genetic Algorithm,缩写为GA)是一种有效的解决最优化问题的方法。它最先是由John Holland于1975年提出的。从那以后,它逐渐发展成为一种通过模拟自然进化过程解决最优化问题的计算模型。
利用遗传算法解最优化问题,首先应对可行域中的点进行编码(一般采用二进制编码),然后在可行域中随机挑选一些编码组成作为进化起点的第一代编码组,并计算每个解的目标函数值,也就是编码的适应度。接着就像自然界中一样,利用选择机制从编码组中随机挑选编码作为繁殖过程前的编码样本。选择机制应保证适应度较高的解能够保留较多的样本;而适应度较低的解则保留较少的样本,甚至被淘汰。在接下去的繁殖过程中,遗传算法提供了交叉和变异两种算子对挑选后的样本进行交换。交叉算子交换随机挑选的两个编码的某些位,变异算子则直接对一个编码中的随机挑选的某一位进行反转。这样通过选择和繁殖就产生了下一代编码组。重复上述选择和繁殖过程,直到结束条件得到满足为止。进化过程最后一代中的最优解就是用遗传算法解最优化问题所得到的最终结果。
从以上介绍可以看出,GA算法具有下述特点:
1)GA是对问题参数的编码组进行进货,而不是直接对参数本身。
2)GA的搜索是从问题解的编码组开始搜索,而不是从单个解开始。
3)GA使用目标函数值(适应度)这一信息进行搜索,而不需导数等其他信息。
4)GA算法使用的选择、交叉、变异这三个算子都是随机操作,而不是确定规则。
实践表明,遗传算法解最优化问题的计算效率比较高、适用范围相当广。为了解释这一现象,Holland给出了图式定理。所谓图式,就是某些码位取相同值的编码的集合。图式定理说明在进化过程的各代中,属于适应度高、阶数低且长度短的图式的编码数量将随代数以指数形式增长。另外,Holland还发现遗传算法具有隐含的并行计算特性。最近的研究则表明,上述遗传算法经适当改进后对任意优化问题以概率1收敛于全局最优解。
将遗传算法用于解决各种实际问题后,人们发现遣传算法也会由于各种原因过早向目标函数的局部最优解收敛,从而很难找到全局最优解。其中有些是由于目标函数的特性造成的,例如函数具有欺骗性,不满足构造模块假说等等;另外一些则是由于算法设计不当。为此,不断有人对遗传算法提出各种各样的改进方案。例如:针对原先的定长二进制编码方案;提出了动态编码、实数编码等改进方案;针对按比例的选择机制,提出了竞争选择、按续挑选等改进方案;针对原先的一点交叉算子,提出了两点交叉、多点交叉、均匀交叉等算子;针对原先遗传算法各控制参数在进化过程中不变的情况,提出了退化遗传算法、自适应遗传算法等。另外,针对不同问题还出现了分布式遗传算法、并行遗传算法等等。
上一篇:遗传算法介绍一
下一篇:遗传算法介绍三(来自维基百科)

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
遗传算法(二)
1、遗传算法的流程图。 2、 3、 4、 5、
流程图 遗传算法 -
遗传算法基础
1、变异运算规则。
遗传算法 搜索空间 搜素 -
遗传算法(一)
早上再看一个APP推荐的文章,发现作后,保证了以
遗传算法 最优解 迭代