遗传算法简介1
美国Michigan大学的Holland教授及其学生收到生物模拟技术的启发,创造出了一种基于生物遗传和进化机制的适合与复杂系统优化的自适应概率优化技术–遗传算法。1967年,Holland的学生Bagley在其博士论文中首次提出了“遗传算法”一词。
遗传算法的优点
(1)对可行域表示的广泛性。遗传算法处理的对象不是参数本身,而是针对那些通过参数集进行编码得到的基因个体。编码操作使得遗传算法可以直接对结构对象进行操作。
(2)群体搜索特性。这一特点使遗传算法具有较好的全局搜索性能,也是的遗传算法本身易于并行化。
(3)不需要辅助信息。遗传算法仅用适应度函数值来评估基因个体,适应度函数不仅不受连续可微的约束,而且其定义域可以任意设定。
(4)内在启发式随机搜索特性。遗传算法不是采用确定性规则,而是采用概率的变迁规则来指导它的搜索方向。虽然它看起来是一种盲目搜索方法,但实际上它有明确的搜索方向,具有内在的并行搜索机制。
(5)遗传算法在搜索过程中不容易陷入局部最优,即使在所定义的适应度函数不是连续的、非规则的或有噪声的情况下,也能以很大的概率找到全局最优解。
(6)遗传算法采用自然进化机制来表现复杂的现象,能够快速可靠地解决求解非常困难的问题。
(7)遗传算法具有固定的并行性和并行计算的能力。
(8)遗传算法具有可拓展性,易于同别的技术混合使用。
遗传算法的不足之处
(1)编码不规范及编码存在表示的不准确性。
(2)单翼的遗传算法编码不能全面地桨优化问题的约束表示出来。考虑约束的一个可行方法是对不可行域采用阀值,这样,计算的时间必然增加。
(3)遗传算法通常的效率比其他传统的优化方法低。
(4)遗传算法容易出现过早收敛。
(5)遗传算法在算法的精度、可信度、计算复杂性等方面,还有没有有效的的定量分析方法。
遗传算法与传统算法的比较
遗传算法与传统优化方法在本质上有不同之处,主要有四点不同:
(1)遗传算法搜索种群中的点是并行的,而不是单点。
(2)遗传算法并需要辅助信息或辅助知识,只需要影响搜索方向的目标函数和相对应的适应度。
(3)遗传算法使用概率变化规则,而不是确定的变换规则。
(4)遗传算法工作使用编码参数集,而不是自身的参数集(除了在实值个体中使用)。
遗传算法的基本用语
表1 遗传算法的基本术语
自然遗传学 | 人工遗传算法 |
---|---|
染色体(Chromosome) | 解的编码(数据、数组、位串) |
基因(Gene) | 解中每一分量的特征(特性、个性、探测器、位) |
等位基因(Allele) | 特性值 |
基因座(Locus) | 串中位置 |
基因型(Genptype) | 结构 |
表现型(Phenotype) | 参数集、解码结构、候选解 |
遗传隐匿 | 非线性 |
个体(Individual) | 解 |
适者生存 | 在算法停止时,最优目标值的解有最大的可能被留住 |
适应性(Fitness) | 适应度函数值 |
群体(Population) | 选定的一组解(其中解的个数为群体的规模) |
复制(Reproduction) | 根据适应度函数值选取的一组解 |
交配(Crossover) | 通过交配原则产生一组新解的过程 |
变异(Mutation) | 编码的某一个分量发生变化的过程 |
遗传算法的研究方向
(1)基础理论
(2)分布并行遗传算法
(3)分类系统
(4)遗传神经网络
(5)进化算法
(6)人工生命与遗传算法
基于遗传算法的应用
(1)函数优化
(2)组合优化
(3)生产调度问题
(4)自动控制
(5)机器人学
(6)图像处理
(7)遗传编程
(8)机器学习
(9)数据挖掘
(10)信息战
表2 遗传算法的主要应用领域
应用领域 | 例子 |
---|---|
控制 | 瓦斯管道控制,防避导弹控制,机器人控制 |
规划 | 生产规划,并行机任务分配 |
设计 | VLSI布局,通信网络设计,喷气发动机设计 |
组合优化 | TSP问题,背包问题,图划分问题 |
图像处理 | 模式识别,特征提取,图像恢复 |
信号处理 | 滤波器设计,目标识别,运动目标分割 |
机器人 | 路径规划 |
人工生命 | 生命的遗传进化 |
参考文献
雷英杰. MATLAB遗传算法工具箱及应用[M]. 西安电子科技大学出版社, 2014. ↩︎