遗传算法借鉴了达尔文的进化论和孟德尔的遗传学说。其本质是一种并行、高效、全局搜索的方法。
- 遗传算法作为一种高效、实用、鲁棒性强的优化技术,发展极为迅速,在机器学习、模式识别、神经网络、控制系统优化及社会科学等不同领域得到广泛应用
- 遗传算法因能有效地求解NP问题以及非线性、多峰函数优化和多目标优化问题,得到了众多学科学者的高度重视。
1. 遗传算法理论基础
模式定义:
模式是描述种群中在位串的某些确定位置上具有相似性的位串子集的相似性模板。
- 基于三值字符集 { 0 , 1 , ∗ } \{0,1,*\} {0,1,∗} 所产生的能描述具有某些结构相似性的0、1字符串集的字符串,称作模式。
- 模式的概念可以简明地描述具有相似结构特点的个体编码字符串。
模式阶定义:
模式H中确定位置的个数,称作该模式的模式阶。记作 O ( H ) O(H) O(H)
- 比如,模式 011 ∗ 1 ∗ 011*1* 011∗1∗ 的阶数为4,而模式$ 0*****$ 的阶数为1。显然,一个模式的阶数越高,其样本数就越少,因而确定性就越高。
定义距定义:
在模式 H H H中第一个确定位置和最后一个确定位置之间的距离称作该模式的定义距,记作 D ( H ) D(H) D(H)。
模式定理:
在遗传算法选择、交叉和变异算子的作用下,具有低阶、短定义距,并且其平均适应度高于群体平均适应度的模式在子代中将呈指数级增长。
积木块假设
积木块定义:具有低阶、短定义距,以及高平均适应度的模式称作积木块。
2. 遗传算法基本概念
遗传算法使用群体搜索技术,将种群代表一组问题解,通过对当前种群施加选择、交叉和变异等一系列遗传操作来产生新一代的种群,并逐步使种群进化到包含近似最优解的状态。
相关操作
- 遗传编码:将优化变量转化为基因的组合表示形式,优化变量的编码机制有二进制编码、十进制编码(实数编码)等。
- 选择算子:根据个体的适应度,按照一定的规则或方法,从第
t
t
t 代群体
P
(
t
)
P(t)
P(t) 中选择一些优良的个体遗传到下一代群体
P
(
t
+
1
)
P(t+1)
P(t+1) 中
- 常用的选择法:“轮盘赌”选择算法,若某个个体 i i i的适应度为 f i f_i fi,种群大小为 N P NP NP,则它被选取的概率表示为
-
交叉算子:将群体 P ( t ) P(t) P(t) 中选中的各个个体随机搭配,对每一对个体,以某一概率 ( 交 叉 概 率 P c ) (交叉概率P_c) (交叉概率Pc)交换它们之间的部分染色体。步骤:
- 首先,从交配池中随机取出要交配的一对个体;
- 然后,根据位串长度 L L L ,对要交配的一对个体,随机选取 [ 1 , L − 1 ] [1, L-1] [1,L−1]中的一个或多个整数 k k k 作为交叉位置;
- 最后,根据 ( 交 叉 概 率 P c ) (交叉概率P_c) (交叉概率Pc)交叉操作,配对个体在交叉位置处,相互交换各自的部分基因,从而形成新的一对个体。
-
变异算子:对群体中的每个个体,以某一概率(变异概率 P m P_m Pm)将某一个或某一些基因座上的基因值改变为其他的等位基因值。步骤:
- 首先,对种群中所有个体按事先设定的变异概率判断是否进行变异;
- 然后,对进行变异的个体随机选择变异位进行变异。
遗传算法的特点
- 遗传算法以决策变量的编码作为运算对象。
- 遗传算法直接以目标函数值作为搜索信息。
- 遗传算法同时使用多个搜索点的搜索信息。
- 遗传算法是一种基于概率的搜索技术。
- 遗传算法具有自组织、自适应和自学习等特性。
- 同时,遗传算法具有可扩展性,易于同别的算法相结合,生成综合双方优势的混合算法。
缺点
- 大量的实践和研究表明,标准遗传算法存在局部搜索能力差和“早熟”等缺陷,不能保证算法收敛。
- 遗传算法与差分进化算法、免疫算法、蚁群算法、模拟退火算法、等结合起来所构成的各种混合遗传算法,可以综合遗传算法和其他算法的优点,提高运行效率和求解质量。
笔记来源
智能优化算法及其Matlab实例第二版