遗传算法及其应用实例
时间:2025-07-12
时间:2025-07-12
遗传算法及其应用实例
遗传算法搜索最优解的方法是模仿生物的进化过程,即通过选择 与染色体之间的交叉和变异来完成的。遗传算法主要使用选择算子、
交叉算子与变异算子来模拟生物进化,从而产生一代又一代的种群
X (t )。
1.遗传算法的简单原理
遗传算法(Genetic Algorithm, GA)是一种基于自然群体遗传演化机制的高效探索算法,它摒弃了传统的搜索方式,模拟自然界生物进化过程,采用人工进化的方式对目标空间进行随机化搜索。它将问题域中的可能解看作是群体的一个个体或染色体,并将每一个体编码成符号串形式,模拟达尔文的遗传选择和自然淘汰的生物进化过程,对群体反复进行基于遗传学的操作(遗传,交叉和变异),根据预定的目标适应度函数对每个个体进行评价,依据适者生存,优胜劣汰的进化规则,不断得到更优的群体,同时以全局并行搜索方式来搜索优化群体中的最优个体,求得满足要求的最优解。
遗传算法主要是用来寻优,它具有很多优点:它能有效地避免局部最优现象,有及其顽强的鲁棒性,并且在寻优过程中,基本不需要任何搜索空间的知识和其他辅助信息等等。利用遗传算法,可以解决很多标准优化算法解决不了的优化问题,其中包括目标函数不连续、不可微、高度非线性或随机的优化问题。
(1)选择算子:是模拟自然选择的操作,反映“优胜劣汰”原
理。它根据每一个个体的适应度,按照一定规则或方法,从 t 代种群
X (t )中选择出一些优良的个体(或作为母体,或让其遗传到下一代种
群 X (t 1) )。
(2)交叉算子:是模拟有性繁殖的基因重组操作,它将从种群
X (t )所选择的每一对母体,以一定的交叉概率交换它们之间的部分基
因。
(3)变异算子:是模拟基因突变的遗传操作,它对种群 X (t ) 中
的每一个个体,以一定的变异概率改变某一个或某一些基因座上的基
因值为其他的等位基因。
交叉算子与变异算子的作用都在于重组染色体基因,以生成新的
个体。
遗传算法的运算过程如下:
步 1(初始化)
确定种群规模 N ,交叉概率 Pc ,变异概率 Pm 和终止进化准则;随
机生成 N 个个体作为初始种群 X (0);置 t 0。
步 2(个体评价)
计算评估 X (t )中各个体的适应度。
步 3(种群进化)
3.1. 选择(母体) 从 X (t ) 中运用选择算子选择出 M / 2 对母体
( M N )。
3.2. 交叉 对所选择的 M / 2 对母体,以概率 Pc 执行交叉,形成 M
个中间个体。
3.3. 变异 对 M 个中间个体分别独立以概率 Pm 执行变异,形成 M
个候选个体。
3.4. 选择(子代) 从上述所形成的 M 个候选个体中依据适应度
选择出 N 个个体组成新一代种群 X (t 1) 。
步 4(终止检验)
如已满足终止准则,则输出 X (t 1) 中具有最大适应度的个体作为
最优解,终止计算,否则置 t t 1并转步 2。
以上运算过程只是遗传算法的多种实现方式中的一种,根据实际
问题的不同,遗传算法的实现也是多种多样的。
遗传算法具有通用、并行、稳健、简单与全局优化能力强等突出 优点,适用于解决复杂、困难的全局优化问题。
一个优化问题被称为是复杂的,通常指它具有下述特征之一:
(1)目标函数没有明确解析表达(如非数值优化问题)。
(2)目标函数虽有明确表达,但不可能恰好估值(如大部分最
优控制问题、金融优化问题)。
(3)目标函数有极多的峰值(如 DNA计算、组合优化问题)。
(4)多目标优化,即目标函数是向量值。
一个优化问题被称为是困难的,则通常是指:或者目标函数 f 不
连续、不可微、高度非线性,或者优化问题是困难的组合问题。
对于这些复杂、困难的优化问题,已知的优化方法或者根本不可
用,或者可用但不有效。相比之下,遗传算法不但保证可用,而且常
常显得更为有效。
但是,我们必须注意到,一个通用而又较少依赖于目标函数值与
其他辅助信息的算法不可能比专用且充分利用目标函数值与相关辅
助信息的算法更为有效,而当一个问题有某些辅助信息可供使用时,
舍弃应用本来可供应用的信息而去应用于这些信息无关的算法也不
是一个聪明的选择。所以,遗传算法一般来说并不适宜应用于通常的
数值优化问题(例如连续可微的数学规划问题),或者说,当应用于
这样的问题时,遗传算法并不总能显示其优越性。
接下来,我们通过一个求解简单函数的最小值点的问题来初步展 示遗传算法的具体实现方法:
问题 1:
求函数 f (x) 11sin(6x) 7cos(5x) 在 x [0, 2 ]区间上的最小值点。
20 15 10 5 0 -5 -10 -15 -20
1
2
3
< …… 此处隐藏:658字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:现代翻译的过程和步骤