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