概述
遗传算法是一种借鉴生物界自然选择和自然遗传机制的随机搜索算法。
①优点
1.对可行解表示的广泛性。遗传算法的处理对象不是参数本身,而是针对那些通过参数集进行编码得到的基因个体。此编码操作使得遗传算法可以直接对结构对象进行操作。所谓结构对象,泛指集合、序列、矩阵、树、图、链和表等各种一维或二维甚至多维结构形式的对象。这一特点使得遗传算法具有广泛的应用领域。
2.群体搜索特性。许多传统的搜索方法都是单点搜索,这种点对点的搜索方法,对于多峰分布的搜索空间常常会陷于局部的某个单峰的极值点。相反,遗传算法采用的是同时处理群体中好多个体的方法,即同时对搜索空间中的多个解进行评估。这一特点使遗传算法具有较好的全局搜索性能,也使得遗传算法本身易于并行化。
3.不需要辅助信息。遗传算法仅用适应度函数的数值来评估基因个体,并在此基础上进行遗传操作。更重要的是,遗传算法的适应度函数不仅不受连续可微的约束,而且其定义域可以随意设定。对适应度函数唯一的要求是,编码必须与可行解空间相对应,不能有死码。由于限制条件的缩小,使得遗传算法的应用范围大大扩展。
4.内在启发式随机搜索特性。遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导它的搜索方向。概率仅仅是作为一种工具来引导其搜索过程朝着搜索空间的更优化的解区域移动的。虽然看起来它是一种盲目搜索方法,实际上它有明确的搜索方向,具有内在的并行搜索机制。
5.遗传算法在搜索过程中不容易陷入局部最优,即使在所定义的适应度函数是不连续的、非规则的或者是有噪声的情况下,也能以很大的概率找到全局最优解。
6.遗传算法采用自然进化机制来表现复杂的现象,能够快速可靠地解决求解非常困难的问题。
7.遗传算法具有固有的并行性和并行计算的能力
8.遗传算法具有可扩展性,易于同别的技术混合。
②不足之处
1.编码不规范及编码存在表示的不准确性
2.单一的遗传算法编码不能全面地将优化问题的约束表示出来。考虑约束的一个方法就是对不可行的解采用阈值,这样,计算的时间必然增加。
3.遗传算法通常的效率比其他传统的优化方法低。
4.遗传算法容易出现过早收敛
5.遗传算法对算法的精度、可信度、计算复杂性等方面,还没有有效的定量分析方法。
③与传统解决最优化问题的比较
1.遗传算法搜索种群中的点是并行的,而不是单点
2.遗传算法并不需要辅助信息或辅助知识,只需要影响搜索方向的目标函数和相对应的适应度。
3.遗传算法使用概率变换规则,而不是确定的变换规则。
4.遗传算法工作使用编码参数集,而不是自身的参数集。
④遗传学和遗传算法中基本用语对照表
自然遗传算法 | 人工遗传算法 |
---|---|
染色体 | 解的编码(数据、数组、位串) |
基因 | 解中每一分量的特征(特性、个性、探测器、位) |
等位基因 | 特征值 |
基因座 | 串中位置 |
基因型 | 结构 |
表现型 | 参数集、解码结构、候选解 |
遗传隐匿 | 非线性 |
个体 | 解 |
适者生存 | 在算法停止时,最优目标值的解有最大的可能被留住 |
适应性 | 适应度函数值 |
群体 | 选定的一组解(其中解的个数为群体规模) |
复制 | 根据适应函数值选取的一组解 |
交配 | 根据交配原则产生一组新解的过程 |
变异 | 编码的某一分量发生变化的过程 |