background image

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 实现的优

势在于它具有强大的处理矩阵运算的功能。遗传算法的许多算子如选择、杂交、变异等,都是