发明名称 具水平营养结构的种群竞争动力学优化方法
摘要 一种具水平营养结构的种群竞争动力学优化方法—PCDO-HNS算法,将优化问题的解空间看成是一个生态系统,该生态系统有多个不同的子系统,每个子系统具有一个特定的水平营养结构类型,该特定的水平营养结构类型是正态分布型、离散分布型、最邻近型子、均匀型和单调递减型五种之一,在每个子系统中生活的种群相互间展开竞争,但也伴随有相互学、相互影响、发生突变和保持封闭的行为存在;利用具水平营养结构的种群竞争动力学模型构造正态分布型、离散分布型、最邻近型、均匀型和单调递减型五种种群演化算子,这些算子用于构造种群的进化策略;该算法具有搜索能力强和全局收敛性的特点,为复杂函数优化问题的求解提供了解决方案。
申请公布号 CN103218658A 申请公布日期 2013.07.24
申请号 CN201310122329.0 申请日期 2013.04.09
申请人 西安建筑科技大学 发明人 黄光球;陆秋琴
分类号 G06N3/00(2006.01)I 主分类号 G06N3/00(2006.01)I
代理机构 西安智大知识产权代理事务所 61215 代理人 何会侠
主权项 1.一种具水平营养结构的种群竞争动力学优化方法—PCDO-HNS算法,其特征在于:设要解决的函数优化问题为:minf(X)<maths num="0001"><![CDATA[<math><mrow><mi>s</mi><mo>.</mo><mi>t</mi><mo>.</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>g</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow><mo>&GreaterEqual;</mo><mn>0</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>I</mi></mtd></mtr><mtr><mtd><msub><mi>h</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>X</mi><mo>)</mo></mrow><mn>0</mn><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>E</mi></mtd></mtr><mtr><mtd><mi>X</mi><mo>&Element;</mo><mi>S</mi><mo>&Subset;</mo><msup><mi>R</mi><mi>n</mi></msup><mo>,</mo><mi>X</mi><mo>&GreaterEqual;</mo><mn>0</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>式中:R<sup>n</sup>是n维欧氏空间;X=(x<sub>1</sub>,x<sub>2</sub>,…,x<sub>n</sub>)是一个n维决策向量,变量x<sub>i</sub>(i=1,2,…,n)为非负实数;S为非负搜索空间,又称解空间;f(X)为目标函数;g<sub>i</sub>(X)≥0为第i个约束条件,i=1,2,…,I,I为不等式约束条件个数;h<sub>i</sub>(X)=0为第i个等式约束条件,i=1,2,…,E,E为等式约束条件个数。目标函数f(X)和约束条件g<sub>i</sub>(X)、h<sub>i</sub>(X)不需要特殊的限制条件;将优化问题(1)的解空间看成是一个生态系统,该生态系统共有多个不同的子系统,每个子系统具有一个特定的水平营养结构类型,该特定的水平营养结构类型是正态分布型、离散分布型、最邻近型子、均匀型和单调递减型五种之一,但不同的子系统能够具有相同的水平营养结构类型;对于每个子系统来说,有若干种群在其中生活,一个种群能够在多个子系统出现,没有多余的种群不属于任何子系统;种群不能在各子系统之间转移,在一个子系统中生活的种群相互间展开竞争,但也伴随有相互学习、相互影响、发生突变和保持封闭的行为存在,强壮的种群继续生长,虚弱的种群则停止生长;所述的学习行为是指:种群i在子系统Y<sub>k</sub>内活动期间,种群i为了提升自身的竞争力,主动向子系统Y<sub>k</sub>内的其它比种群i强壮的若干种群进行学习,即种群i将子系统Y<sub>k</sub>内的若干随机选择的其PSI指数高于种群i的种群的一些随机选择的特征吸收过来,以达到使自己强壮的目的;所述的相互影响行为是指:种群i在子系统Y<sub>k</sub>内活动期间,子系统Y<sub>k</sub>内的其它种群的活动行为对种群i造成了影响,即子系统Y<sub>k</sub>内的若干随机选择的种群的一些随机选择的特征及其状态值的平均值传给了种群i的对应特征,使其受到影响;所述的突变行为是指:种群i在子系统Y<sub>k</sub>内活动期间,子系统Y<sub>k</sub>内的一些随机选择的其PSI指数高于种群i的特别优良种群的行为对种群i造成极大影响,即子系统Y<sub>k</sub>内的若干随机选择的但其PSI指数远高于种群i的特别优良种群的一些随机选择的特征及其加权状态值的差值传给了种群i的对应特征,使其产生极大变化;所述的自封闭行为是指:种群i在子系统Y<sub>k</sub>内活动期间,种群i的一些随机选择的特征不受子系统Y<sub>k</sub>内其它种群的任何影响;优化问题的搜索空间与生态系统相对应,该生态系统中的一个种群对应于一个优化问题的试探解,种群中的一个特征对应于优化问题试探解中的一个变量;所以种群的特征数与试探解的变量数相同;种群的适应度指数即PSI指数对应于优化问题的目标函数值,好的试探解对应具有较高PSI指数的种群,即强壮的种群;差的试探解对应具有较低PSI指数的种群,即虚弱的种群;PCDO-HNS算法是利用具水平营养结构的种群竞争动力学模型来构造种群演化算子,这些算子包括正态分布型竞争算子、离散分布型竞争算子、最邻近型竞争算子、均匀型竞争算子和单调递减型竞争算子,这些算子用于产生新一代种群之后,采用一对一选择算子将新一代种群与相应的父代种群进行比较,较优者保存到下一代群体中;一旦新的种群形成之后,PCDO-HNS算法继续通过上述算子对种群不断进行演化直到找到最优解;所述PCDO-HNS算法包括如下步骤:(1)初始化:令时期t=0,按表1初始化本算法涉及到的所有参数;表1参数的取值方法<img file="FDA00003027776500031.GIF" wi="2014" he="2570" /><img file="FDA00003027776500041.GIF" wi="2015" he="1294" />(2)给M个子系统随机地分配种群,使子系统Y<sub>1</sub>,Y<sub>2</sub>,…,Y<sub>M</sub>上的种群数均为K个种群;一个种群被分配到多个子系统中,种群总数N=MK;(3)给M个子系统随机地指定一种水平营养结构类型,指定的水平营养结构类型为正态分布型,离散分布型,最邻近型,均匀型和单调递减型五种之一;(4)对每个子系统上的种群按照正交拉丁方生成算法进行初始化,生成初始解<img file="FDA00003027776500042.GIF" wi="169" he="82" />i=1,2,…,K,k=1,2,…,M;所述正交拉丁方生成算法INIT为:步骤1:计算每个变量的离散点y<sub>ij</sub>:y<sub>ij</sub>=l<sub>i</sub>+(j-1)(u<sub>i</sub>-l<sub>i</sub>)/(K-1),i=1,2,…,n;j=1,2,…,K。步骤2:根据正交拉丁方的生成方法计算初始解x<sub>ij</sub>:x<sub>ij</sub>=y<sub>jk</sub>,i=1,2,…,K,j=1,2,…,n式中:k=(i+j-1)mod K;若k=0,则k=K;上述算法所确定的K个初始解为<img file="FDA00003027776500051.GIF" wi="654" he="84" />i=1,2,…,K;(5)执行下列操作:(6)令时期t从1到G循环执行下述步骤(7)~步骤(24);其中G为演化时期数;(7)令子系统编号k从1到M循环执行下述步骤(8)~步骤(23);(8)令演化次数w从1到L循环执行下述步骤(9)~步骤(22);其中L为每个子系统内种群的每周期演化次数;(9)令种群i从1到K循环执行下述步骤(10)~步骤(21);(10)令种群的特征l从1到n循环执行下述步骤(11)~步骤(16);(11)若子系统Y<sub>k</sub>是正态分布型水平营养结构类型,则按式(11)执行演化算子,但式(11)中的模型参数<img file="FDA00003027776500052.GIF" wi="57" he="60" />由式(6)确定,得到<img file="FDA00003027776500053.GIF" wi="149" he="86" />所述式(6)为:<maths num="0002"><![CDATA[<math><mrow><msubsup><mi>&alpha;</mi><mi>ij</mi><mi>s</mi></msubsup><mo>=</mo><msup><mi>a</mi><msup><mrow><mo>(</mo><mi>i</mi><mo>-</mo><mi>j</mi><mo>)</mo></mrow><mn>2</mn></msup></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>式中:s为水平营养结构类型,此处s=1;<img file="FDA00003027776500055.GIF" wi="56" he="60" />为水平营养结构类型为s时种群i与种群j之间的竞争系数;a为两个相邻生态位镶嵌的度量,0&lt;a&lt;1;计算时取<img file="FDA00003027776500056.GIF" wi="439" he="73" /><img file="FDA00003027776500057.GIF" wi="55" he="66" />和<img file="FDA00003027776500058.GIF" wi="54" he="61" />表示a的取值下限和上限,<img file="FDA00003027776500059.GIF" wi="307" he="76" />Rand(a,b)表示在[a,b]区间产生一个均匀分布随机数;所述式(11)为:<img file="FDA00003027776500061.GIF" wi="1590" he="667" />式中:<img file="FDA00003027776500062.GIF" wi="123" he="83" />和<img file="FDA00003027776500063.GIF" wi="198" he="82" />分别为时期t和时期t-1种群i的第l个特征的状态值,且都为非负实数;E<sub>0</sub>,E<sub>1</sub>,E<sub>2</sub>,E<sub>3</sub>,E<sub>4</sub>分别表示在特征编号集合{1,2,…,n}中随机选择一个特征编号作为种群i竞争、相互学习、相互影响、发生突变和保持封闭的概率上限,0&lt;E<sub>0</sub>,E<sub>1</sub>,E<sub>2</sub>,E<sub>3</sub>,E<sub>4</sub>≤1;<img file="FDA00003027776500064.GIF" wi="43" he="58" />和<img file="FDA00003027776500065.GIF" wi="44" he="62" />的含义同r<sub>i</sub>和s<sub>i</sub>,只是对于不同的水平营养结构类型,<img file="FDA000030277765000615.GIF" wi="42" he="55" />和<img file="FDA000030277765000616.GIF" wi="46" he="59" />的取值不同;计算时,取<img file="FDA00003027776500066.GIF" wi="392" he="73" /><img file="FDA00003027776500067.GIF" wi="433" he="73" /><img file="FDA00003027776500068.GIF" wi="44" he="61" />和<img file="FDA00003027776500069.GIF" wi="45" he="56" />表示种群的内禀增长率取值下限和上限,<img file="FDA000030277765000610.GIF" wi="276" he="71" /><img file="FDA000030277765000611.GIF" wi="47" he="58" />和<img file="FDA000030277765000612.GIF" wi="51" he="60" />表示种群的生态位容量的取值下限和上限,<img file="FDA000030277765000613.GIF" wi="252" he="73" />G<sub>S</sub>表示从子系统Y<sub>k</sub>内其PSI指数高于种群i的若干种群中随机挑选出来的L<sub>S</sub>个种群所形成的种群编号的集合;G<sub>C</sub>表示从子系统Y<sub>k</sub>内随机挑选出来的L<sub>C</sub>个种群所形成的种群编号;<img file="FDA000030277765000617.GIF" wi="566" he="72" />G<sub>M</sub>表示从子系统Y<sub>k</sub>内其PSI指数远高于种群i的优良种群中随机挑选出来的L<sub>M</sub>个种群数,<img file="FDA000030277765000614.GIF" wi="103" he="47" />v∈GM,u≠v≠i;α<sub>u</sub>,β<sub>u</sub>为常数,0&lt;α<sub>u</sub>,β<sub>u</sub>&lt;1,计算时取α<sub>k</sub>=Rand(0,1),β<sub>k</sub>=Rand(0,1);L<sub>M</sub>=m<sub>I</sub>+m<sub>E</sub>,m<sub>I</sub>≥2,m<sub>E</sub>≥1,m<sub>I</sub>&gt;m<sub>E</sub>;式(11)中的第1式描述的是子系统Y<sub>k</sub>内K个种群间的竞争行为;第2式描述的是子系统Y<sub>k</sub>内种群i的学习行为;第3式描述的是子系统Y<sub>k</sub>内种群i的影响行为;第4式描述的是子系统Y<sub>k</sub>内种群i的突变行为;第5式描述的是子系统Y<sub>k</sub>内种群i的保持封闭的行为;所述式(11)中的第1式来自式(4):<maths num="0003"><![CDATA[<math><mrow><mfrac><mrow><msub><mi>dx</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mi>dt</mi></mfrac><mo>=</mo><msub><mi>r</mi><mi>i</mi></msub><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>-</mo><mfrac><msub><mi>r</mi><mi>i</mi></msub><msub><mi>k</mi><mi>i</mi></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>K</mi></munderover><msubsup><mi>&alpha;</mi><mi>ij</mi><mi>s</mi></msubsup><msub><mi>x</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><msub><mi>x</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><mi>K</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths>式中:t表示时期;x<sub>i</sub>(t)为时期t种群i的规模,x<sub>i</sub>(t)≥0;r<sub>i</sub>为种群i的内禀增长率,0&lt;r<sub>i</sub>&lt;1;k<sub>i</sub>为种群i的生态位容量,k<sub>i</sub>&gt;1;<img file="FDA000030277765000723.GIF" wi="51" he="59" />为水平营养结构类型为s时种群i与种群j之间的竞争系数;(12)若子系统Y<sub>k</sub>是离散分布型水平营养结构类型,则按上述式(11)执行演化算子,但式(11)中的模型参数<img file="FDA00003027776500072.GIF" wi="59" he="60" />由式(7)确定,得到<img file="FDA00003027776500073.GIF" wi="151" he="86" /><img file="FDA00003027776500074.GIF" wi="1334" he="266" />式中:s为水平营养结构类型,此处s=2,<img file="FDA00003027776500075.GIF" wi="57" he="63" />为竞争矩阵A<sub>s</sub>中的元素,<img file="FDA00003027776500076.GIF" wi="344" he="103" />b<sub>i</sub>为两个相邻生态位镶嵌的度量,0&lt;b<sub>i</sub>&lt;1;计算时取<img file="FDA00003027776500077.GIF" wi="307" he="74" /><img file="FDA00003027776500078.GIF" wi="106" he="72" /><img file="FDA00003027776500079.GIF" wi="51" he="62" />和<img file="FDA000030277765000710.GIF" wi="54" he="61" />表示b<sub>i</sub>的取值下限和上限,<img file="FDA000030277765000711.GIF" wi="306" he="69" />(13)若子系统Y<sub>k</sub>是最邻近型水平营养结构类型,则按式(11)执行演化算子,但模型参数由式(8)确定,得到<img file="FDA000030277765000712.GIF" wi="147" he="86" /><img file="FDA000030277765000713.GIF" wi="1244" he="241" />式中:s为水平营养结构类型,此处s=3;<img file="FDA000030277765000714.GIF" wi="60" he="63" />为竞争矩阵A<sub>s</sub>中的元素,<img file="FDA000030277765000715.GIF" wi="346" he="110" />c为两个相邻生态位镶嵌的度量,0&lt;c&lt;1;计算时取<img file="FDA000030277765000716.GIF" wi="288" he="72" /><img file="FDA000030277765000717.GIF" wi="199" he="71" />和<img file="FDA000030277765000718.GIF" wi="54" he="68" />表示c的取值下限和上限,<img file="FDA000030277765000719.GIF" wi="307" he="73" />(14)若子系统Y<sub>k</sub>是均匀型水平营养结构类型,则按式(11)执行演化算子,但式(11)中的模型参数<img file="FDA000030277765000720.GIF" wi="54" he="62" />由式(9)确定,得到<img file="FDA000030277765000721.GIF" wi="150" he="87" /><img file="FDA000030277765000722.GIF" wi="1096" he="148" />式中:s为水平营养结构类型,此处s=4;<img file="FDA00003027776500081.GIF" wi="56" he="63" />为竞争矩阵A<sub>s</sub>中的元素,<img file="FDA00003027776500082.GIF" wi="347" he="110" />d表示每个种群均以相同的程度与其它种群竞争,0&lt;d&lt;1;计算时取<img file="FDA00003027776500083.GIF" wi="434" he="73" /><img file="FDA00003027776500084.GIF" wi="53" he="62" />和<img file="FDA00003027776500085.GIF" wi="59" he="63" />表示d的取值下限和上限,<img file="FDA00003027776500086.GIF" wi="307" he="71" />(15)若子系统Y<sub>k</sub>是分单调递减型水平营养结构类型,则按式(11)执行演化算子,但式(11)中的模型参数<img file="FDA00003027776500087.GIF" wi="54" he="61" />由式(10)确定,得到<img file="FDA00003027776500088.GIF" wi="147" he="87" /><maths num="0004"><![CDATA[<math><mrow><msubsup><mi>&alpha;</mi><mi>ij</mi><mi>s</mi></msubsup><mo>=</mo><msup><mi>e</mi><mrow><mo>|</mo><mi>i</mi><mo>-</mo><mi>j</mi><mo>|</mo></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow></math>]]></maths>式中:s为水平营养结构类型,此处s=5;<img file="FDA000030277765000810.GIF" wi="58" he="62" />为竞争矩阵A<sub>s</sub>中的元素,<img file="FDA000030277765000811.GIF" wi="346" he="103" />e为每个种群均以单调递减的程度与其它种群竞争,0&lt;e&lt;1;计算时取<img file="FDA000030277765000812.GIF" wi="430" he="71" /><img file="FDA000030277765000813.GIF" wi="57" he="66" />和<img file="FDA000030277765000814.GIF" wi="57" he="65" />表示e的取值下限和上限,<img file="FDA000030277765000815.GIF" wi="303" he="71" />(16)令l=l+1,若l≤n,则转上述步骤(11),否则转步骤(17);(17)将超出可行域的解分量压回到可行域;(18)按种群选择算子式(12)对所有新获得的试探解<img file="FDA000030277765000816.GIF" wi="141" he="87" />和原试探解<img file="FDA000030277765000817.GIF" wi="221" he="86" />进行选择操作,得到下一代试探解<img file="FDA000030277765000818.GIF" wi="170" he="86" /><img file="FDA000030277765000819.GIF" wi="1551" he="158" />式中:<maths num="0005"><![CDATA[<math><mrow><msubsup><mi>V</mi><mi>i</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mn>1</mn></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo><msubsup><mi>v</mi><mrow><mi>i</mi><mn>2</mn></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mi>v</mi><mi>in</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><msubsup><mi>X</mi><mi>i</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mi>il</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><msubsup><mi>x</mi><mrow><mi>i</mi><mn>2</mn></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mi>x</mi><mi>in</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>函数<img file="FDA000030277765000822.GIF" wi="336" he="80" />和<img file="FDA000030277765000823.GIF" wi="274" he="81" />按式(3)计算<maths num="0007"><![CDATA[<math><mrow><mi>PSI</mi><mrow><mo>(</mo><msub><mi>X</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>F</mi><mi>max</mi></msub><mo>-</mo><mi>F</mi><mrow><mo>(</mo><msub><mi>X</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>式中:F<sub>max</sub>为非常大的正实数,用于对不满足约束条件的试探解进行惩罚;而F(X<sub>i</sub>)按式(2)计算:<img file="FDA000030277765000825.GIF" wi="1760" he="142" />式(2)中的符号已在式(1)中描述;(19)若新得到的全局最优解与最近一次已保存的当前全局最优解之间的误差满足最低要求ε,则转下述步骤(25);(20)保存新得到的全局最优解;(21)令i=i+1,若i≤K,则转上述步骤(10),否则转步骤(22)(22)令w=w+1,若w≤L,则转上述步骤(9),否则转步骤(23);(23)令k=k+1,若k≤M,则转上述步骤(8),否则转步骤(24);(24)令t=t+1,若t≤G,则转上述步骤(7),否则转步骤(25);(25)结束。
地址 710055 陕西省西安市雁塔路13号