(二)遗传算法(Genetic Algorithm, GA)流程
1. 遗传算法流程2. 关键参数说明
1. 遗传算法流程
一点说明: 在遗传算法中,将
n
n
n维决策向量
X
\bf{X}
X
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
T
=[x_1,x_2,...,x_n]^T
=[x1,x2,...,xn]T用
n
n
n个记号
X
i
(
i
=
1
,
2
,
.
.
.
,
n
)
X_i(i=1,2,...,n)
Xi(i=1,2,...,n)所组成的符号串
X
X
X来表示:
X
=
X
1
X
2
.
.
.
X
n
⇒
X
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
T
\boldsymbol{X}=X_1X_2...X_n\Rightarrow\boldsymbol{X}=[x_1,x_2,...,x_n]^T
X=X1X2...Xn⇒X=[x1,x2,...,xn]T 把每一个
X
i
X_i
Xi看作一个遗传基因,它的所有可能取值就称为等位基因,这样
X
\boldsymbol{X}
X就可看作由
n
n
n个遗传基因所组成的一个染色体。 遗传算法流程图如下所示: 具体步骤如下: (1)初始化。设置进化迭代计数器
g
=
0
g=0
g=0,设置最大进化代数
G
G
G,随机生成
N
p
N_p
Np个个体作为初始群体
P
(
0
)
P(0)
P(0)。 (2)个体评价。计算群体
P
(
t
)
P(t)
P(t)中各个个体的适应度。 (3)选择运算。将选择算子作用于群体,根据个体的适应度,按照一定的规则或方法,选择一些优良个体遗传到下一代群体。 (4)交叉运算。将交叉算子作用于群体,对选中的成对个体,以某一概率交换它们之间的部分染色体,产生新的染色体。 (5)变异运算。将变异算子作用于群体,对选中的个体,以某一概率改变某一个或一些基因值为其他的等位基因。 (6)循环操作。群体
P
(
t
)
P(t)
P(t)经过选择、交叉和变异运算之后得到下一代群体
P
(
t
+
1
)
P(t+1)
P(t+1).计算其适应度值,并根据适应度值进行排序,准备进行下一次遗传操作。 (7)终止条件判断:若
g
≤
G
g\leq G
g≤G,则
g
=
g
+
1
g=g+1
g=g+1,转到步骤(2);若
g
>
G
g>G
g>G,则此进化过程中所得到的具有最大适应度的个体作为最优解输出,终止计算。
2. 关键参数说明
群体规模
N
p
N_p
Np; 群体规模将影响遗传优化的最终结果以及遗传算法的执行效率。当群体规模
N
p
N_p
Np太小时,遗传优化性能一般不会太好。采用较大的群体规模可以减小遗传算法陷入局部最优解的机会,但较大的群体意味着计算复杂度较高。一般
N
p
N_p
Np取
10
−
200.
10-200.
10−200.交叉概率
P
c
P_c
Pc; 交叉概率
P
c
P_c
Pc控制着交叉操作被使用的频度。较大的交叉概率可以增强遗传算法开辟新的搜索区域的能力,但高性能的模式遭到破坏的可能性增大;若交叉概率太低,遗传算法搜索可能陷入迟钝状态。一般
P
c
P_c
Pc取
0.25
−
1.00.
0.25-1.00.
0.25−1.00.变异概率
P
m
P_m
Pm; 变异在遗传算法中属于辅助性的搜索操作,它的主要目的是保持群体的多样性。一般低频度的变异可防止群体中重要基因的可能丢失,高频度的变异将使遗传算法趋于纯粹的随机搜索。通常
P
m
P_m
Pm取
0.001
−
0.1.
0.001-0.1.
0.001−0.1.遗传运算的终止进化代数
G
G
G; 终止进化代数
G
G
G是表示遗传算法运行结束条件的一个参数,它表示遗传算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出。一般视具体问题而定,
G
G
G的取值可在
100
−
1000
100-1000
100−1000之间。
|