基于改进差分进化算法的烧结矿配料优化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于改进差分进化算法的烧结矿配料优化
李凯斌, 卢建刚, 吴燕玲, 孙优贤
浙江大学工业控制技术国家重点实验室,杭州(310027)
E-mail :kbli@
摘 要:本文针对差分进化算法(differential evolution algorithm)存在的早熟问题和停滞现象作了改进并把改进的算法应用于烧结矿配料优化,用matlab 编程,仿真结果表明符合实际生产工艺要求,证明了改进的差分进化算法对烧结矿配料优化的有效性,从而指出了改进的差分进化算法在配料优化中的应用价值。
关键词:差分进化,停滞,烧结矿,配料优化 中图分类号:TF541
1.前言
钢铁企业中炼铁系统能耗占整个钢铁生产能耗的60% ~70% ,生产成本也占54% ~58%,所占比重都较大[1]。而烧结又是生产高炉炼铁精料的关键工序,烧结生产中,可以将不同原料,熔剂进行精确配料,以调整烧结矿化学成分,满足高炉对炉料成分的要求。烧结矿的优化配料是一项极其重要的工作,配料的目的在于:根据不同种类的铁矿石的化学成分,将原料矿进行合理的搭配,使混匀矿的化学成分符合烧结生产的要求。烧结矿配料优化从上个世纪80年代就开始研究,最初运用的是线性规划方法,优化对象也仅限于烧结矿的化学成分[2]。近几十年来,进化算法发展十分迅速,其应用也越来越广泛。其中由Rainer Storn 和Kenneth Price 提出的差分进化算法[3] (differential evolution ,简称DE)作为一种较新的全局优化算法,以其收敛性好,模型简单,容易实现,控制参数比较少得到广泛应用。在日本召开的第一届国际禁化优化计算竞赛(ICEO)中[6],DE 表现突出,已经成为进化算法(EA)的一个重要分支。近几年来,DE 在约束优化计算,模糊控制器优化设计,神经网络优化,滤波器设计等方面得到了广泛应用。本文运用改进的差分进化算法对烧结矿配料进行优化。
2.差分进化算法
DE 作为一种较新的全局搜索算法与遗传算法,进化规划,进化策略不同,它是由父代个体差分矢量构成变异算子,然后按一定交叉概率,父代个体与变异个体进行交叉,生成试验体,最后在父代与试验体之间根据适应度选择个体。
2.1 差分进化原理
(1)选定种群规模N ,加权因子F ∈[0,2]最大进化代数MAX G ,杂交率CR ∈[0,1] (2)生成初始种群0W :{w 0
i (i=1,2,…N)},令进化代数G=0 (3)对G
i w 执行(4)~(6)步,生成G+1代
(4)变异:1G i w +ٛ=G i w +F(G j w -G k
w )其中1≤j ,k ≤N ,且i ,j ,k 互异 (5)杂交:1G ij w +=1()()
G
ij G ij w random CR w random CR +⎧>⎪⎨≤⎪⎩ٛ 其中G
ij w 为第G 代第i 个个体的第j 个基因,CR 为
杂交率,random ∈[0,1]
(6)选择:
1G i
w
+= 111(()())
(()())
G G G i i i G G G
i i i w A w A w w A w A w +++⎧≤⎪⎨>⎪⎩ ()G i A w 为第G 代第 i 个个体的适应值
(7)G=G+1,若G 超过了MAX G 或者精度达到要求则停止,否则转到第(3)步。
2.2 差分进化算法的早熟问题
DE 是根据父代个体间的差分矢量进行变异,交叉和选择,与遗传算法很类似所以也存在着易陷于局部最优过早收敛的现象[7
,8]
。本文采用自适应变异算子,能根据算法的搜索进
展情况,自适应地确定变异率,使算法在初期有较大的变异率保持个体的多样性,避免早熟;在后期随着进化代数的增加逐步降低变异率,保留优良信息,避免最优解遭到破坏,增加了搜索到全局最优解的概率。算法设计如下:
F=F0*(1)2
MAX
G
G −
其中F0是变异参数, MAX G 是最大进化代数,G 是当前进化代数。自适应变异算子在算法开始变异率为F=2F0,具有较大的变异率,从而保持个体的多样性,随着算法进展变异率逐步降低,到了算法后期变异率接近1,从而避免最优解遭到破坏。
2.3 差分进化算法的停滞现象
差分进化算法存在停滞现象[4]。看一个简单的例子:有两个参数x1,x2的优化问题,种群大小为4,当前种群有4个个体A ,B ,C ,D 经过变异式(4)下一代最多可能得到24个试验解,其中只有6个可能代替A(同样代替B ,C ,D 的也是6个),如果这6个试验解的适应值都低于A ,那根据选择式(6),A 将会进入下一代,若同样的情形也发生在B ,C ,D ,那下一代种群不会有新个体产生,则算法陷于停滞。这种停滞现象不会收敛但种群仍然是多样性的,因此不同于早熟现象。
DE 的停滞现象和产生的试验解个数n 有关,若n 越大产生停滞的危险就越小,对于常规差分进化算法来说 :
32323232(1)(32)(0)
(32)2()D N N N CR n N N N D N CR N N N N otherwise ⎧−⋅+⋅=⎪
=−⋅+⋅⋅⋅=⎨⎪−⋅+⋅⋅⋅⎩
其中D 为变量个数,种群大小N ,交叉率CR 对n 都有影响,种群越大,n 个数越多,停滞越不会发生,CR 不宜取1,因为这样会大大减少n 个数。此外变异率F 的取值对n 也有很大影响。如果F=1那么F(B-C)+D=F(D-C)+B 因此也会减少n 的个数。综上所述,差分进化算法的停滞现象与种群大小,F 和CR 的取值有关,小种群容易产生停滞,F ,CR 的取值不当也可能产生停滞。
本文针对差分进化算法的停滞现象提出算法终结的另一个条件:如果连续N 代产生新个体的数量比较少则算法结束,重新产生初始个体,并对N ,F ,CR 其中的作调整。在计算过程中可以根据具体情况来设定N 的值,本文在实验中的N 值等于8。产生初始个体的方法为:首先计算出当前种群个体的上下限h 和l ,在这个范围内随机生成新个体,这样可以有效的缩小搜索范围,个体数量大约占种群大小的80%,然后在当前停滞的种群中选择最优个体a ,重新在最优个体周围按正态分布生成新个体,如下式: