第7章 智能最优化算法
(6) (7) (8) (9) (10) (11)
(12) (13) (14) (15)
选择次数 选择结果 配对情况 交叉点 交叉结果 变异点 变异结果 子代群体 P(1) 变量 x1,x2 适应度 f(x1,x2)
(16)
fi / fi
1 011101
3,5 34
0.24
2 101011
5,3 34
模仿这一过程,遗传算法采用变异运算,将个
体编码串中的某些基因座上的基因值用它的不同等 位基因来替换,从而产生新的个体。
有很多变异运算方法,最简单的是基本位变异。
基本位变异操作是在个体编码串中依变异概率Ps随 机指定某一位或某几位基因座上的基因值作变异运 算,如下所示:
变异运算
1100010001
1100011001
目前常用比例选择运算。其基本的操作是:个体 被选中并遗传到下一代的概率与它的适应度的大小成 正比。
设群体的大小为M,个体 i 的适应度为fi,则个体 i 被选中的概率Pis为:
M
Pis fi fi (i 1, 2 M ) i 1
每个概率值组成一个区间,全部概率值之和为1。
产生一个0到1之间的随机数,依据概率值所出现 的区间来决定对应的个体被选中的次数,此法亦称轮 盘法。
可见,同源染色体之间的复制、交叉或变异会使基因或 染色体发生各种各样的变化,从而,使生物呈现新的性状, 产生新的物种。
7.1.2 基本遗传算法
在遗传算法中,将设计变量 X x1, x2 Lx。
把其中每一个 X i 看作一个遗传基因,它的所有可能
除符号函数之外,常用的激活函数还有如图7-4所示的 线性函数和 S 型函数等。
-1 -ua
yj 0 ua
1 uj
(a)线性函数
1 ,
uj ua
y j f (uj ) uj , ua uj ua
1
,
uj ua
yj
1
0
uj
-1
yj
f
(uj )
1
1 e
s.t. xi ∈{1,2,…,7} ( i=1,2 )
解,由于变量的取值上限为7下限为0,故对x1 和 x2
均采用3位二进制编码。
由此开始的遗传算法求解过程如表所示。
(1) 个体编号 i (2) 初始群体 P(0) (3) 变量 x1,x2 (4) 适应度 f(x1,x2)
(5)
fi / fi
目前常用的 BP 网络和 RBF 网络属前馈型神经网络, Hopfield 网络属反馈型网络。
7.2.2 BP网络
BP网络是一种输入信号前向传播、误差信号反向传播的 多层前馈型网络。
细胞在分裂时,遗传物质DNA通过复制转移到新的细 胞中,新细胞就继承了旧细胞的基因。
有性生殖生物在繁殖下一代时,两个同源染色体之间 通过交叉而重组,即在两个染色体的某一相同位置处DNA 被切断,然后分别交叉组合形成两个新的染色体。
另外,在进行细胞复制时,也可能产生某些差错,从而 使DNA发生某种变异,产生新的染色体。
遗传算法的运算流程图如下 :
给定T、置t=0
编码,构成初始群体P(t)
计算P(t)中各个体的适应度
Y
t T
取最大适应度的个体
N
选择运算
交叉运算
解码输出 终止
变异运算
t = t+1 得到新的群体 p(t+1)
图7-1 遗传算法的运算流程图
例 用遗传算法求如下函数的全局最大值
max f ( X ) x12 x22
单点交叉又称简单交叉,它是在个体编码串中
随机地设置一个交叉点,并在该交叉点上相互交换 两个配对个体的基因,如下所示:
父个体1 父个体2
交叉点
110000 0001 000101 0011
交叉运算
交叉点
110001 0001 000100 0011
子个体1 子个体2
3)变异运算
生物的遗传和进化过程中,在细胞的分裂和复制 环节上可能产生一些差错,从而导致生物的某些基因 发生某种变异,产生出新的染色体,表现出新的生物 性状。
于是一个神经元在某时刻的状态或输出可用下面的数学 表达式加以描述
n
uj w ji xi j i 1
yj f (uj )
(7-7)
其中 f () 称激活函数。
当激活函数取如图7-3所示的符号函数
yj
sgn(uj )
1 0
, ,
uj 0 uj 0
( 7-8 )
以目标函数为例,常用的转换关系如下:
对于极大化问题: max f (X )
F
(
X
)
f( 0,
X
)
Cmin
,
if if
f ( X ) Cmin 0 f ( X ) Cmin 0
式中 Cmin 为一适当小的正数。
对于极小化问题:min f (X )
F ( X ) C0m,ax
f ( X ),
if if
f ( X ) Cmax f ( X ) Cmax
式中,Cmax 为一较大的正数。
(7-4) (7-5)
(3)遗传运算
生物的进化是以集团为主体进行的。与此对应, 遗传算法的运算对象也是由M个个体所组成的集合, 称群体。第t 代群体记作 P(t),遗传算法的运算就 是群体的反复演变过程。
实际运算中一般需求经过多次进化才能得到这样 的最优结果。
7.2 神经网络算法
7.2.1 人工神经元与神经网络
人的大脑中有100多亿个神经细胞。一个神经细胞主要由 细胞体、树突、轴突和突触组成。
树突伸向四方,其作用是收集四周神经细胞的信息。
突触是两个神经细胞之间起连接作用的部分。树突将收集 到的信息经过轴突输出,传给其他细胞。
而是对表示可行解的个体编码进行选择、交叉和变异 等遗传运算。
在遗传算法中把原问题的可行解转化为个体符 号串的方法称编码。
现有的编码方法可以分为三类,它们是二进制 编码、浮点数编码和符号编码。
这里介绍常用的二进制编码方法。
二进制编码所用的符号集是由 0 和 1 组成的二值符号 集, 它所构成的个体基因型是一个二进制符号串。
2)交叉运算
交配重组是生物遗传进化过程中的一个重要环 节。模仿这一过程,遗传算法使用交叉运算,即在 两个相互配对的个体间按某种方式交换其部分基因, 从而形成两个新生的个体。
运算前需对群体中的个体进行随机配对,然后 以不同的方式确定配对个体交叉点的位置,并在这 些位置上进行部分基因的交换,形成不同的交叉运 算方法。目前最常用的是单点交叉运算。
111010 7,2 53 0.23
从表中可以看出,群体经过一代进化后,其适应 度的最大值和平均值都得到了明显的改进。实际上已 经找到了最佳的个体 “111111” 以及对应的最优解:
X=[ 7, 7 ]T, f ( X )=98
需要说明的是,表中第②、8、⑨ 、11 栏的数 据是应该随机产生的,这里特意选择了一些较好的数 据以便尽快得到较好的结果。
时,神经元的状态是总输入 u j 的双值函数。
当 u j 小于零时 y j 0 ,表示神经元未被触发,
保持原来的状态不变。
当 u j 大于零时 y j 1 ,表示神经元被触发产生
一个新的脉冲。
这与生物神经细胞对信息的反应和传递是一致的,因此 它也成为人工神经元及其所构成的神经网络最基本的数学描 述。
(2)个体适应度
在研究生物的遗传和进化现象时,生物学家使用 适应度这个术语来度量物种对生存环境的适应程度。
在遗传算法中使用适应度这个概念来度量群体中 个体的优劣程度。适应度较高的个体遗传到下一代的 概率较大,反之则较小。
度量个体适应度的函数称适应度函数F(X ),一般 由目标函数 f (X )或惩罚函数 ( X ,rk ) 转换而来。
7.1 遗传算法
遗传算法是模拟生物在自然环境中的遗传和进化过程而 形成的一种自适应全局最优化概率搜索算法。
7.1.1 生物的遗传与进化
生物从其亲代继承特性或形状的现象称为遗传; 生物在其延续生存的过程中,逐渐适应生存环境,使其品 质不断得到改良,这种生命现象称进化。
• 构成生物的基本结构和功能单元是细胞 • 细胞中含有一种微小的丝状化合物称染色体 • 染色体主要由一种叫做核糖核酸(简称DNA)的物质构成 • DNA按一定规则排列的长连称基因 • 基因是遗传的基本单位
0.24
1
1
011101
111001
1-2
4
011001
111101
4
5
011101 3,5 34 0.14
111111 7,7 98 0.42
3 011100
3,4 25
0.17
4 111001
7,1 50
0.35
0
2
101011
111001
3-4
5
101001
111011
2
6
111001 7,1 50 0.21
其中
i w ji 表示第
个神经元对第 个
j
神经元的作用权值,
其符号的正负表示产生的作用是兴 奋性的或抑止性的,其数值的大小 表达作用的强弱;
x1
wj1
x2 wj2
wjn xn
uj
yj
f ()
θj
图7-2 MP神经元模型
j 表示神经元 j 的阈值(触发值)
j uj 代表神经元 的总输入, j y j 表示神经元 的状态或输出。