笔者最近在学习遗传算法,希望可以通过笔记对遗传算法做一个简要的介绍与记录。也欢迎小伙伴们一起学习交流。
遗传算法的主要目的是 提高遗传算法的运行速度
遗传算法的第一种并行性,即个体适应度评价的并行性,它依赖于所处理的问题。
遗传算法的第二种、第三种并行性,实对群体中各个个体进行遗传操作的并行性。在实现的时候,在一个全局调度,协调机构的作用下,各台处理机分别对各个个体进行适应度评价,并在同步信号的作用下,多个处理机共同参与全部个体在全局存储器中进行的选择、交叉和变异等遗传运算。
推荐这种算法。
但是还有如下的几个问题:
并行遗传算法可以形式化地定义一个6元组:
P
G
A
=
(
D
M
M
,
X
,
Z
,
Δ
,
Θ
,
S
G
A
)
PGA=(DMM,X,Z,\Delta,\Theta,SGA)
PGA=(DMM,X,Z,Δ,Θ,SGA)
其中,DMM是实现并行遗传算法的并行机或者局域网中各个处理器
p
i
p_i
pi所组成的集合。X是各处理器信息交换对象所组成的集合
Z是信息交换的内容
Δ
\Delta
Δ是进行信息交换的时间间隔或者频率
Θ
\Theta
Θ 信息交换时的个体替换操作算子
SGA是各处理机上运行的基本遗传算法
在简单遗传算法中利用并行遗传算法的思想,将群体划分为一些子群体,个子群体按一定的模式分别进行独立进化,在适当的时候某一些子群体之间交换一些信息。这样就可以维持群体的多样性,从而达到抑制早熟现象的效果。