发明名称 一种基于混沌反向学的粒子群改进算法
摘要 本发明公开了一种基于混沌反向学的粒子群改进算法,主要包括反向学策略和混沌粒子群优化。反向学策略基本原理:反向学策略为每个初始候选解生成相对应的反向解,并从这两类解(候选解和相对应的反向解)中选择距离较近(即适应度较优)的解作为初始种群中的成员,将有助于提高优化过程中的收敛速率。即为保持种群的多样性和使初始种群的个体尽可能均匀分布,利用反向学策略生成初始种群。
申请公布号 CN106447024A 申请公布日期 2017.02.22
申请号 CN201610786346.8 申请日期 2016.08.31
申请人 上海电机学院 发明人 黄麒元;朱俊;王致杰;王东伟;杜彬;王浩清;周泽坤;吕金都;王鸿
分类号 G06N3/00(2006.01)I 主分类号 G06N3/00(2006.01)I
代理机构 上海伯瑞杰知识产权代理有限公司 31227 代理人 吴泽群
主权项 一种基于混沌反向学习的粒子群改进算法,其特征在于:包括反向学习策略和混沌粒子群优化;所述反向学习策略的具体步骤如下:首先产生初始解X<sub>i</sub>,然后求出每个初始解所对应的反向解X<sub>i</sub><sup>1</sup>,X<sub>i</sub><sup>1</sup>=rand(0,1)(X<sub>max</sub>+X<sub>min</sub>)‑X<sub>i</sub>并计算所有初始解的适应度值,最后对产生的所有解按适应度值排序,将适应度值较优的前N个解作为初始种群的解Z<sub>i</sub><sup>d</sup>(t)(d=1,2,…D),其用于提高解的质量和求解效率;接着结合反向学习策略并将混沌引入到惯性因子、学习因子、粒子速度和位置的更新中去,具体流程如下:步骤1:初始化参数,例如粒子群体规模M、最大迭代次数T,惯性因子的范围[W<sub>min</sub>,W<sub>max</sub>],一般取[0.4,0.9]、学习因子的范围[C<sub>min,</sub>C<sub>max</sub>],一般取[1.4,2.0]、粒子群飞行速度范围[V<sub>min,</sub>V<sub>max</sub>]、维数为D、各优化问题变量取值范围为[P<sup>d</sup><sub>min</sub>,P<sup>d</sup><sub>max</sub>](d=1,…,D),根据下式产生W、C<sub>1</sub>、C<sub>2</sub>、R<sub>1</sub>和R<sub>2</sub>的混沌时间序列;W(t)=4.0W(t‑1)(1‑W(t‑1))W(t)=W<sub>min</sub>+(W<sub>max</sub>‑W<sub>min</sub>)W(t)R<sub>i</sub>(t)=4.0R<sub>i</sub>(t‑1)(1‑R<sub>i</sub>(t‑1)),R<sub>i</sub>∈(0,1)C<sub>i</sub>(t)=4.0C<sub>i</sub>(t‑1)(1‑C<sub>i</sub>(t‑1))C<sub>i</sub>(t)=C<sub>min</sub>+(C<sub>max</sub>‑C<sub>min</sub>)C<sub>i</sub>(t)步骤2:选择种群和混沌初始化粒子的位置和速度;步骤2.1随机产生D维每个分量数值在(0,1)上的向量Z<sub>0</sub><sup>d</sup>(t)(d=1,2,…,D),D为变量个数,利用典型的Logistic映射产生N个不同轨迹的混沌序列Z<sub>i</sub><sup>d</sup>(t)(d=1,2,…D),通过反向学习策略选择最优种群,即作为初始种群;步骤2.2根据Z<sub>i</sub><sup>d</sup>(t)=P<sub>min</sub><sup>d</sup>+(P<sub>max</sub><sup>d</sup>‑P<sub>min</sub><sup>d</sup>)Z<sub>i</sub><sup>d</sup>(t)将初始种群进行取值范围的标准化;步骤2.3计算粒子群的适应度值,并从N个初始群体中选择性能较好的M个解作为粒子的初始位置,随机产生M个初始速度;步骤2.4将每个粒子个体极值P<sup>d</sup><sub>best</sub>作为当前位置,计算其适应度值,取适应值最好的粒子对应的个体极值作为初始全局极值G<sup>d</sup><sub>best;</sub>步骤3:判断收敛准则是否满足,如果满足,则输出全局最优位置和其适应度值,算法结束;若不满足,则进入步骤4;步骤4:根据粒子群速度和位置更新公式进行迭代计算,更新粒子的速度和位置;步骤5:根据选取的适应度函数比较适应度F(P<sup>d</sup><sub>i</sub>)和F(P<sup>d</sup><sub>best</sub>),如果F(P<sup>d</sup><sub>i</sub>)&lt;F(P<sup>d</sup><sub>best</sub>),则更新P<sup>d</sup><sub>best</sub>;步骤6:如果F(P<sup>d</sup><sub>best</sub>)&lt;F(G<sup>d</sup><sub>best</sub>)进行更新G<sup>d</sup><sub>best;</sub>步骤7:判断收敛准则是否满足;如果满足,则输出全局最优位置和其适应度值,算法结束;若不满足,则进入步骤8;步骤8:根据下式计算平均粒距Dis和群体适应度方差,并判断Dis&lt;α且δ<sup>2</sup>&lt;H是否成立,即判断算法是否陷入局部最优,若不成立,转步骤4;<maths num="0001"><math><![CDATA[<mrow><mi>D</mi><mi>i</mi><mi>s</mi><mo>=</mo><mfrac><mn>1</mn><mrow><mi>N</mi><mo>&times;</mo><mi>L</mi></mrow></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msqrt><mrow><munderover><mo>&Sigma;</mo><mrow><mi>d</mi><mo>=</mo><mn>1</mn></mrow><mi>D</mi></munderover><msup><mrow><mo>(</mo><msub><mi>P</mi><mrow><mi>i</mi><mi>d</mi></mrow></msub><mo>-</mo><msub><mover><mi>P</mi><mo>&OverBar;</mo></mover><mi>d</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt></mrow>]]></math><img file="FDA0001105287540000021.GIF" wi="618" he="141" /></maths><maths num="0002"><math><![CDATA[<mrow><msup><mi>&delta;</mi><mn>2</mn></msup><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><mfrac><mrow><msub><mi>F</mi><mi>i</mi></msub><mo>-</mo><msub><mi>F</mi><mrow><mi>a</mi><mi>v</mi><mi>g</mi></mrow></msub></mrow><mi>F</mi></mfrac></mrow>]]></math><img file="FDA0001105287540000022.GIF" wi="334" he="119" /></maths>其中,L为搜索空间对角最大长度;P<sub>id</sub>表示第i个粒子的第d维坐标值;<img file="FDA0001105287540000023.GIF" wi="42" he="63" />表示所有粒子第d维坐标值的均值;m为粒子群的粒子数目,F为粒子i的适应度,F<sub>avg</sub>为粒子群目前的平均适应度,F为归一化因子,用于限制δ<sup>2</sup>的大小;步骤9:根据下式更新粒子的速度和位置,使粒子跳出局部最优;V<sup>d</sup><sub>i</sub>(t+1)=W(t)V<sup>d</sup><sub>i</sub>(t)+C<sub>1</sub>(t)×R<sub>1</sub>(t)×(P<sup>d</sup><sub>best</sub>(t)‑P<sup>d</sup><sub>i</sub>(t))+C<sub>2</sub>(t)×R<sub>2</sub>(t)×(G<sup>d</sup><sub>best</sub>(t)‑P<sup>d</sup><sub>i</sub>(t))P<sup>d</sup><sub>i</sub>(t+1)=P<sup>d</sup><sub>i</sub>(t))+V<sup>d</sup><sub>i</sub>(t+1))步骤10:对最优位置G<sup>d</sup><sub>best</sub>进行混沌优化;步骤10.1根据G<sup>d</sup><sub>best</sub>(t)=(G<sup>d</sup><sub>best</sub>‑P<sup>d</sup><sub>min</sub>)/(P<sub>max</sub><sup>d</sup>‑P<sub>min</sub><sup>d</sup>)将G<sup>d</sup><sub>best</sub>映射到(0,1);步骤10.2将G<sup>d</sup><sub>best</sub>代入到式Logistic映射中,迭代产生混沌变量序列;步骤10.3将产生的混沌变量通过逆映射G<sup>d</sup><sub>best</sub>(t)=P<sub>min</sub><sup>d</sup>+(P<sub>max</sub><sup>d</sup>‑P<sub>min</sub><sup>d</sup>)Z<sub>i</sub><sup>d</sup>(t)到原解空间;步骤10.4在原解空间对混沌变量的每一个可行解计算其适应度值,得到性能最优的可行解G<sup>d</sup><sub>best</sub>;步骤11:用G<sup>d</sup><sub>best</sub>替代当前群体中任意一个粒子的位置;步骤12:判断算法是否达到最大迭代次数或满足求解精度要求,若满足则输出全局最优位置和其适应度值,算法结束;否则返回步骤3。
地址 200240 上海市闵行区江川路690号