发明名称 一种基于DFP算法和差分进化的分层全局优化方法
摘要 一种基于DFP算法和差分进化的分层全局优化方法,DE算法的全局探测能力强,但后期收敛速度很慢,而DFP算法具有较高的局部搜索效率,鉴于此,将DFP算法与DE算法相结合,当种群适应度不再下降时,利用当前种群的梯度信息,可加速种群向全局最优点的收敛,从而解决算法在全局探测能力与快速收敛能力之间的平衡问题。本发明的方法前期采用DE算法用以全局探测;算法进行到后期,对当前种群所有个体进行一次上层为DE算法而下层为DFP算法的两层优化,加快算法局部收敛速度,达到提高算法搜索效率这一目的。
申请公布号 CN105760929A 申请公布日期 2016.07.13
申请号 CN201610139473.9 申请日期 2016.03.11
申请人 浙江工业大学 发明人 张贵军;王柳静;周晓根;郝小虎;俞旭锋;徐东伟;李章维
分类号 G06N3/00(2006.01)I 主分类号 G06N3/00(2006.01)I
代理机构 杭州斯可睿专利事务所有限公司 33241 代理人 王利强
主权项 一种基于DFP算法和差分进化的分层全局优化方法,所述优化方法包括以下步骤:1)初始化:设置种群规模N<sub>P</sub>,交叉概率C<sub>R</sub>,缩放因子F;2)随机生成初始种群P={x<sup>1,g</sup>,x<sup>2,g</sup>,...,x<sup>Np,g</sup>},并计算出各个体的目标函数值,其中,g为进化代数,x<sup>i,g</sup>,i=1,2,…,N<sub>p</sub>表示第g代种群中的第i个个体,若g=0,则表示初始种群;3)算法初期,采用经典DE算法进行迭代,对种群中的每一个个体进行变异、交叉、选择这三个操作,过程如下:3.1)变异操作:DE通过差分运算完成个体变异,随机选定种群内的个体作为基向量,与经缩放的其他互异个体差分向量进行向量合成,采用Storn和Price提出的经典DE算法,即变异策略采用DE/rand/1策略:<maths num="0001"><math><![CDATA[<mrow><msubsup><mi>v</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msubsup><mo>=</mo><msubsup><mi>v</mi><mi>j</mi><mrow><msub><mi>r</mi><mn>1</mn></msub><mo>,</mo><mi>g</mi></mrow></msubsup><mo>+</mo><mi>F</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mi>v</mi><mi>j</mi><mrow><msub><mi>r</mi><mn>2</mn></msub><mo>,</mo><mi>g</mi></mrow></msubsup><mo>-</mo><msubsup><mi>v</mi><mi>j</mi><mrow><msub><mi>r</mi><mn>3</mn></msub><mo>,</mo><mi>g</mi></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000939431930000011.GIF" wi="1067" he="86" /></maths>其中j=1,2,…,N,N为问题维数,g为进化代数,r<sub>1</sub>,r<sub>2</sub>,r<sub>3</sub>∈{1,2,...,N<sub>p</sub>},r<sub>1</sub>≠r<sub>2</sub>≠r<sub>3</sub>≠i,i为当前目标个体的索引,<img file="FDA0000939431930000012.GIF" wi="66" he="71" />为第g代种群中第i个目标个体的变异个体的第j维元素,<img file="FDA0000939431930000013.GIF" wi="318" he="71" />分别为第g代种群中第r<sub>1</sub>、r<sub>2</sub>、r<sub>3</sub>个个体的第j维元素,F是缩放因子;3.2)交叉操作:采用二项式交叉以实现交叉组合,生成试验个体,操作如下:<maths num="0002"><math><![CDATA[<mrow><msubsup><mi>trial</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msubsup><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><msubsup><mi>v</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msubsup></mtd><mtd><mrow><mi>i</mi><mi>f</mi><mrow><mo>(</mo><mi>r</mi><mi>a</mi><mi>n</mi><mi>d</mi><mi>b</mi><mo>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo>)</mo></mrow><mo>&le;</mo><msub><mi>C</mi><mi>R</mi></msub><mi>o</mi><mi>r</mi><mi> </mi><mi>j</mi><mo>=</mo><mi>r</mi><mi>n</mi><mi>b</mi><mi>r</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><msubsup><mi>x</mi><mi>j</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msubsup></mtd><mtd><mrow><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi><mi>w</mi><mi>i</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000939431930000014.GIF" wi="1365" he="151" /></maths>其中,j=1,2,…,N,<img file="FDA0000939431930000015.GIF" wi="134" he="70" />表示第g代种群中第i个目标个体对应的试验个体<img file="FDA0000939431930000016.GIF" wi="135" he="69" />的第j维元素,randb(0,1)表示随机产生0到1之间的小数,rnbr(j)表示随机产生1到N之间的整数,C<sub>R</sub>表示交叉概率;3.3)选择操作:采用贪婪法则完成选择操作,使下一代种群中的所有个体至少不会更差于当前种群的对应个体,根据公式(3)完成种群更新:<maths num="0003"><math><![CDATA[<mrow><msup><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msup><mi>trial</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msup><mo>,</mo></mrow></mtd><mtd><mrow><mi>i</mi><mi>f</mi><mi> </mi><mi>f</mi><mrow><mo>(</mo><msup><mi>trial</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msup><mo>)</mo></mrow><mo>&le;</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msup><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msup><mo>,</mo></mrow></mtd><mtd><mrow><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi><mi>w</mi><mi>i</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000939431930000017.GIF" wi="1182" he="142" /></maths>其中,<maths num="0004"><math><![CDATA[<mrow><msup><mi>trial</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msup><mo>=</mo><mrow><mo>(</mo><msubsup><mi>trial</mi><mn>1</mn><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msubsup><mo>,</mo><msubsup><mi>trial</mi><mn>2</mn><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msubsup><mo>,</mo><mo>...</mo><mo>,</mo><msubsup><mi>trial</mi><mi>N</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi></mrow></msubsup><mo>)</mo></mrow><mo>,</mo><msup><mi>x</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi><mo>+</mo><mn>1</mn></mrow></msup><mo>=</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mn>1</mn><mrow><mi>i</mi><mo>,</mo><mi>g</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>,</mo><msubsup><mi>x</mi><mn>2</mn><mrow><mi>i</mi><mo>,</mo><mi>g</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>,</mo><mo>...</mo><mo>,</mo><msubsup><mi>x</mi><mi>N</mi><mrow><mi>i</mi><mo>,</mo><mi>g</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000939431930000018.GIF" wi="1373" he="69" /></maths><img file="FDA0000939431930000019.GIF" wi="494" he="71" />公式(3)表明,如果试验个体优于目标个体,则试验个体替换目标个体,否则保持目标个体不变;4)算法迭代m代后,基于DFP算法,采用分层优化,即上层为DE算法,而下层为DFP算法的两层优化,过程如下:4.1)首先进入上层算法:按照步骤3),执行DE算法;4.2)然后进入下层算法,过程如下:a)经上层DE算法优化过的种群为<img file="FDA0000939431930000021.GIF" wi="579" he="63" />现给定初始点x<sup>(1)</sup>,置x<sup>(1)</sup>=x<sup>i,m+1</sup>,i=1,…,N<sub>P</sub>,计算此点的梯度<img file="FDA0000939431930000022.GIF" wi="259" he="86" />置H<sub>1</sub>=I<sub>n</sub>,其中H<sub>1</sub>是满足拟牛顿条件的矩阵,I<sub>n</sub>是单位矩阵,则x<sup>(1)</sup>处的搜索方向为d<sup>(1)</sup>=‑H<sub>1</sub>g<sub>1</sub>;b)在点x<sup>(1)</sup>处,沿着方向d<sup>(1)</sup>作一维搜索,其步长λ<sub>1</sub>满足公式(4)<maths num="0005"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>+</mo><msub><mi>&lambda;</mi><mn>1</mn></msub><msup><mi>d</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi>m</mi><mi>i</mi><mi>n</mi></mrow><mrow><mi>&lambda;</mi><mo>&GreaterEqual;</mo><mn>0</mn></mrow></munder><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>+</mo><msup><mi>&lambda;d</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000939431930000023.GIF" wi="1061" he="87" /></maths>则x<sup>(2)</sup>=x<sup>(1)</sup>+λ<sub>1</sub>d<sup>(1)</sup>c)在点x<sup>(2)</sup>处,计算梯度<maths num="0006"><math><![CDATA[<mrow><msub><mi>g</mi><mn>2</mn></msub><mo>=</mo><mo>&dtri;</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000939431930000024.GIF" wi="267" he="86" /></maths>置p=x<sup>(2)</sup>‑x<sup>(1)</sup>,<maths num="0007"><math><![CDATA[<mrow><mi>q</mi><mo>=</mo><mo>&dtri;</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>-</mo><mo>&dtri;</mo><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000939431930000025.GIF" wi="439" he="86" /></maths>其中<img file="FDA0000939431930000026.GIF" wi="366" he="87" />分别是点x<sup>(2)</sup>、x<sup>(1)</sup>处的梯度,通过公式(5)修正H<sub>1</sub>求出x<sup>(2)</sup>点处满足拟牛顿条件的矩阵H<sub>2</sub>:<maths num="0008"><math><![CDATA[<mrow><msub><mi>H</mi><mn>2</mn></msub><mo>=</mo><msub><mi>H</mi><mn>1</mn></msub><mo>+</mo><mfrac><mrow><msup><mi>pp</mi><mi>T</mi></msup></mrow><mrow><msup><mi>p</mi><mi>T</mi></msup><mi>q</mi></mrow></mfrac><mo>-</mo><mfrac><mrow><msub><mi>H</mi><mn>1</mn></msub><msup><mi>qq</mi><mi>T</mi></msup><msub><mi>H</mi><mn>1</mn></msub></mrow><mrow><msup><mi>q</mi><mi>T</mi></msup><msub><mi>H</mi><mn>1</mn></msub><mi>q</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000939431930000027.GIF" wi="1038" he="122" /></maths>则点x<sup>(2)</sup>处的搜索方向为d<sup>(2)</sup>=‑H<sub>2</sub>g<sub>2</sub>;d)在点x<sup>(2)</sup>处,沿着方向d<sup>(2)</sup>作一维搜索,其步长λ<sub>2</sub>满足公式(6)<maths num="0009"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup><mo>+</mo><msub><mi>&lambda;</mi><mn>2</mn></msub><msup><mi>d</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>=</mo><munder><mrow><mi>m</mi><mi>i</mi><mi>n</mi></mrow><mrow><mi>&lambda;</mi><mo>&GreaterEqual;</mo><mn>0</mn></mrow></munder><mi>f</mi><mrow><mo>(</mo><msup><mi>x</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup><mo>+</mo><msup><mi>&lambda;d</mi><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000939431930000028.GIF" wi="1093" he="87" /></maths>则x<sup>(3)</sup>=x<sup>(2)</sup>+λ<sub>2</sub>d<sup>(2)</sup>,此时已对种群完成了上层为DE算法而下层为DFP算法的两层优化;5)判断是否满足终止条件,如果满足则终止,并输出全局最优解。
地址 310014 浙江省杭州市下城区朝晖六区潮王路18号浙江工业大学