1)]+b (10)
其中
0≤λ≤1
式
(10)即为 GM(1,1)模型的一般差分格式,该模型是 GM(1,1)的另一种表现形式。该
模型的实质是在
GM(1,1)模型的基础上,将背景值 z(1)(k)做了相应修改,从而提高了计算
精度。
该模型对应的背景值为
z(1)(k)=λ×x(1)(k)+(1 一 λ)×x(1)(k+1)(11)
显然当
λ 为 0.5 时,该模型即为标准的 GM(1,1)模型。 由式(10)可知,只要给出一个
λ0,便有
(
12)
Yn 与式(4)中原理相同。
由最小二乘原理(
13)
将
a0、b0 值代入式(6)即可得预测值。
2.用遗传算法求解最优 λ 值
从上面可以看出,只要给定
λ,便可求出预测值。
显然当原始序列
x(0)={x(0)(1),x(0)(2),…,x(0)(n)}确定时,影响预测精度的惟一因
素便是
λ,而且从式(5)、(12)、(13)可以看出,λ 与误差之间呈现出高度的非线性关系,
很难用解析式显性表示,因此如何确定合理的
λ 值,就成为提高预测精度的关键。基于这种
思想,这里采用遗传算法,以误差绝对值和最小作为目标函数来求解最为合理的
λ 值,即:
(
14)
具体求解步骤如下:
(1)编码。将 λ
∈[0,1]表示为一个 n 位二进制串,其中 n 的大小可根据入的精度来确定。
(2)初始化群体。选择一个整数 M 作为群体的规模参数,然后从[0,1]上随机地选取 M
个点,即
λ(i,0)(i=1,2,…M),这些点组成初始群体,即 P(0)={λ(1,0),λ(1,0),
…,λ(K,0)}。
(3)适应度计算。计算群体 P(k)中每个个体 λ(i,k)的适应度 F(λ(i,k)),其中 k 表示迭代
次数,适应度函数可取为
F(λ(i,k))= (15)
其中
g(λ(i,k))=±|x(0)(i)(λ(i,k))-x(0)(i)|,x(0)(i)(λ(i,k))表示由 λ(i,k)得到的预测值;Cmax
表示该迭代中误差绝对值和的最大值。
(4)选择、交叉和变异运算。根据每个个体的适应度 F(λ(i,k),计算其选择概率=,然
后以
Pi(k)按某种规则或模型遗传到下一代群体中。一般要求选择概率较高的个体将有更多
的机会遗传到下一代群体中。
交叉运算是遗传算法中产生新个体的主要操作过程。它以交叉概率
pc 相互交换某两个
个体之间的部分染色体。
变异运算是对个体的某一个或某一些基因座上的基因值按变异概率
pm 进行改变。这也
是产生新个体的一种操作方法。
对群体
P(i)进行一轮选择、交叉、变异运算之后可得到新一代的群体 P(i+1)。群体经过一
代进化之后其适应度的最大值、平均值都得到了明显的改进。
(5)停止准则。遗传算法循环执行适应度计算、选择运算、交叉运算、变异运算这几个步骤,
直到算法已找到满足精度的解,或已经达到预定的迭代代数。
3.基于遗传算法的蓄电池故障灰色预测模型的 MATLAB 实现
采用
MATLAB 来实现基于遗传算法的蓄电池故障灰色预测模型。用 MATLAB 实现的优
势在于它具有强大的处理矩阵运算的功能。遗传算法的许多算子如选择、杂交、变异等,都是