发明名称 一种基于粒子群算法的自适应三维空间路径规划方法
摘要 本发明提出一种基于粒子群算法的自适应三维空间路径规划方法,针对海底地形高程图。首先初始化粒子的空间位置和位移,在初始化空间位置时进行了维度重构,初始化第一代粒子所经过的最佳位置及群体当代所发现的最佳位置,然后更新粒子的下一代位移以及空间位置,在更新中引入吸引算子和排除算子,通过计算粒子的适应度,更新粒子下一代所经过的最佳位置以及种群所发现的最佳位置,反复更新粒子的位移以及空间位置,直到完成所要求的迭代次数。本发明方法对寻路环境没有特殊要求,在路径规划过程中的收敛速度、收敛精度及自适应性都得到了提高,并使粒子节点在空间中自由移动成为可能,增大了寻路的成功率,减少了路径规划的计算量。
申请公布号 CN102722749B 申请公布日期 2014.10.22
申请号 CN201210178003.5 申请日期 2012.06.01
申请人 哈尔滨工程大学 发明人 刘利强;范志超;戴运桃
分类号 G06N3/00(2006.01)I;G06T17/05(2011.01)I 主分类号 G06N3/00(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 周长琪
主权项 一种基于粒子群算法的自适应三维空间路径规划方法,环境数据为海底地形高程图,其特征在于,该方法包括以下步骤:步骤1,初始化参数,过程为:首先,在海底地形高程图的范围内随机初始化粒子<img file="FDA0000531175440000011.GIF" wi="250" he="90" />初始种群迭代次数k=1,<img file="FDA0000531175440000012.GIF" wi="84" he="86" />为组成粒子的节点;i=1,2,...,n,表示第i个粒子,n≥1为种群数量;j=1,2,...,m,表示某粒子的第j个节点,m≥3为节点个数;令<img file="FDA0000531175440000013.GIF" wi="406" he="93" />其中S,D分别为寻路的起始点和目标点;然后,对各粒子的节点的次序,按照重构指标进行重构,第i个粒子<img file="FDA0000531175440000014.GIF" wi="75" he="81" />的第j个节点<img file="FDA0000531175440000015.GIF" wi="83" he="86" />的重构指标λ<sub>j</sub>为:<img file="FDA0000531175440000016.GIF" wi="522" he="132" />初始化第i个粒子<img file="FDA0000531175440000017.GIF" wi="74" he="82" />的第j个节点位移<img file="FDA0000531175440000018.GIF" wi="925" he="96" />设置最大移动步长step<sub>max</sub>和最小步长step<sub>min</sub>,0≤step<sub>min</sub>≤step<sub>max</sub>;设置惯性权重的最大值ω<sub>max</sub>和最小值ω<sub>min</sub>,0<ω<sub>max</sub>≤1,0≤ω<sub>min</sub>≤ω<sub>max</sub>;设置自身学习因子的最大和最小值分别为<img file="FDA0000531175440000019.GIF" wi="244" he="81" />设置全局学习因子的最大值和最小值分别为<img file="FDA00005311754400000110.GIF" wi="256" he="79" />设置最大种群迭代次数为k<sub>max</sub>;步骤2,记录第k=1代时,第i个粒子<img file="FDA00005311754400000111.GIF" wi="66" he="86" />所经过的最佳位置<img file="FDA00005311754400000112.GIF" wi="341" he="98" />然后确定各粒子的适应度值,<img file="FDA00005311754400000113.GIF" wi="76" he="77" />的适应度<img file="FDA00005311754400000114.GIF" wi="146" he="77" />为:<img file="FDA00005311754400000115.GIF" wi="584" he="144" />其中,<img file="FDA00005311754400000116.GIF" wi="275" he="147" />为粒子<img file="FDA00005311754400000117.GIF" wi="76" he="77" />所表示的路径的长度;<img file="FDA00005311754400000118.GIF" wi="100" he="77" />为惩罚因子,常量M>0,<img file="FDA00005311754400000119.GIF" wi="61" he="77" />为粒子<img file="FDA00005311754400000120.GIF" wi="60" he="76" />的节点在障碍物内的个数;最后,取集合<img file="FDA00005311754400000121.GIF" wi="112" he="92" />中适应度值最小的粒子,设为X<sub>i′</sub>,令群体当前所发现的最佳位置<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msup><mi>P</mi><mi>g</mi></msup><mo>=</mo><mo>{</mo><msubsup><mi>P</mi><mi>j</mi><mi>g</mi></msubsup><mo>}</mo><mo>=</mo><msub><mi>X</mi><msup><mi>i</mi><mo>&prime;</mo></msup></msub><mo>;</mo></mrow>]]></math><img file="FDA00005311754400000123.GIF" wi="362" he="98" /></maths>步骤3,确定粒子各节点<img file="FDA00005311754400000124.GIF" wi="778" he="91" />的位移<img file="FDA00005311754400000125.GIF" wi="132" he="95" />包括两种方法:(1)吸引算子与粒子群算法采用紧耦合策略,则位移<img file="FDA00005311754400000126.GIF" wi="100" he="95" />为:<img file="FDA00005311754400000127.GIF" wi="1042" he="96" />(2)吸引算子与粒子群算法采用松耦合策略,则位移<img file="FDA00005311754400000128.GIF" wi="98" he="88" />为:<img file="FDA00005311754400000129.GIF" wi="880" he="210" />(1)和(2)中,惯性权重<img file="FDA00005311754400000130.GIF" wi="687" he="142" />惯性权重单调控制量u<sub>ω</sub>≥0;自身学习因子<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>c</mi><mn>1</mn></msub><mo>=</mo><msubsup><mi>c</mi><mn>1</mn><mi>max</mi></msubsup><mo>-</mo><msup><mrow><mo>(</mo><mfrac><mi>k</mi><msub><mi>k</mi><mi>max</mi></msub></mfrac><mo>)</mo></mrow><msub><mi>u</mi><mi>c</mi></msub></msup><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mi>c</mi><mn>1</mn><mi>max</mi></msubsup><mo>-</mo><msubsup><mi>c</mi><mn>1</mn><mi>min</mi></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000531175440000021.GIF" wi="658" he="146" /></maths>全局学习因子<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>c</mi><mn>2</mn></msub><mo>=</mo><msubsup><mi>c</mi><mn>2</mn><mi>min</mi></msubsup><mo>+</mo><msup><mrow><mo>(</mo><mfrac><mi>k</mi><msub><mi>k</mi><mi>max</mi></msub></mfrac><mo>)</mo></mrow><msub><mi>u</mi><mi>c</mi></msub></msup><mo>&CenterDot;</mo><mrow><mo>(</mo><msubsup><mi>c</mi><mn>2</mn><mi>max</mi></msubsup><mo>-</mo><msubsup><mi>c</mi><mn>2</mn><mi>min</mi></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000531175440000022.GIF" wi="660" he="145" /></maths>学习因子单调控制量u<sub>c</sub>>0;<img file="FDA0000531175440000023.GIF" wi="116" he="78" />为[0,1]区间的随机数;吸引算子<img file="FDA0000531175440000024.GIF" wi="613" he="95" />阻力系数<img file="FDA0000531175440000025.GIF" wi="549" he="88" /><img file="FDA0000531175440000026.GIF" wi="96" he="98" />为排除算子;(2)中的<img file="FDA0000531175440000027.GIF" wi="116" he="97" />表示原粒子群粒子位移;步骤4:确定当代最大位移模量step<sub>k</sub>:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>step</mi><mi>k</mi></msub><mo>=</mo><msub><mi>step</mi><mi>max</mi></msub><mo>-</mo><msup><mrow><mo>(</mo><mfrac><mi>k</mi><msub><mi>k</mi><mi>max</mi></msub></mfrac><mo>)</mo></mrow><msub><mi>u</mi><mi>s</mi></msub></msup><mo>&CenterDot;</mo><mrow><mo>(</mo><msub><mi>step</mi><mi>max</mi></msub><mo>-</mo><msub><mi>step</mi><mi>min</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000531175440000028.GIF" wi="877" he="143" /></maths>最大位移模量单调控制量u<sub>s</sub>>0;判断步骤3得到的<img file="FDA0000531175440000029.GIF" wi="135" he="115" />是否大于step<sub>k</sub>,若是,则令<img file="FDA00005311754400000210.GIF" wi="413" he="201" />否则令<img file="FDA00005311754400000211.GIF" wi="256" he="95" />确定节点<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msubsup><mi>A</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>,</mo><mi>j</mi><mo>=</mo><mn>2,3</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00005311754400000212.GIF" wi="761" he="89" /></maths>下一代的位置<img file="FDA00005311754400000213.GIF" wi="115" he="79" /><img file="FDA00005311754400000214.GIF" wi="364" he="92" />于是第k+1代粒子<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mo>{</mo><msubsup><mi>A</mi><mrow><mi>i</mi><mo>,</mo><mi>j</mi></mrow><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>}</mo><mrow><mo>(</mo><mi>i</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>m</mi><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA00005311754400000215.GIF" wi="926" he="98" /></maths>步骤5:确定第k+1代粒子<img file="FDA00005311754400000216.GIF" wi="436" he="78" />的适应度值,适应度<img file="FDA00005311754400000217.GIF" wi="185" he="78" />为:<img file="FDA00005311754400000218.GIF" wi="694" he="143" />若<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>F</mi><mrow><mo>(</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>&lt;</mo><mi>F</mi><mrow><mo>(</mo><msubsup><mi>P</mi><mi>i</mi><mi>b</mi></msubsup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA00005311754400000219.GIF" wi="378" he="84" /></maths>则令<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msubsup><mi>P</mi><mi>i</mi><mi>b</mi></msubsup><mo>=</mo><msubsup><mi>X</mi><mi>i</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>;</mo></mrow>]]></math><img file="FDA00005311754400000220.GIF" wi="231" he="84" /></maths>步骤6:设<img file="FDA00005311754400000221.GIF" wi="54" he="78" />为<img file="FDA00005311754400000222.GIF" wi="106" he="98" />中适应度值最小的位置,若<img file="FDA00005311754400000223.GIF" wi="344" he="78" />则令<img file="FDA00005311754400000224.GIF" wi="177" he="78" />步骤7:更新当前迭代次数k=k+1,并判断当前迭代次数k是否大于最大迭代次数k<sub>max</sub>,若是则结束本方法,否则转步骤3执行。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号1号楼