发明名称 一种基于布谷鸟搜索算法的水下潜器三维路径规划方法
摘要 本发明提出一种基于布谷鸟搜索算法的水下潜器三维路径规划方法,属于水下潜器三维路径规划技术领域,具体包括:对水下潜器三维空间路径规划问题进行建模、初始化布谷鸟搜索算法、更新鸟窝位置、选出全局最优位置并判断终止条件、输出最优路径五个基本步骤。本发明基于布谷鸟搜索算法,提出一种基于布谷鸟搜索算法的水下潜器三维路径规划方法,很好地利用了布谷鸟搜索算法的简单高效性及全局搜索能力。相对于传统的水下潜器路径规划方法来说具有更好的智能性和适应性,相对于其他智能优化算法而言具有更好的灵活性、更易实现;路径规划过程在三维环境中进行,比二维环境下规划出的路径更具实用性,能够更好地满足水下潜器航行的需要。
申请公布号 CN103760907B 申请公布日期 2016.05.04
申请号 CN201310744400.9 申请日期 2013.12.30
申请人 哈尔滨工程大学 发明人 刘厂;郭兆新;赵玉新;李刚;高峰;李宁
分类号 G05D1/10(2006.01)I;G05B13/04(2006.01)I 主分类号 G05D1/10(2006.01)I
代理机构 代理人
主权项 一种基于布谷鸟搜索算法的水下潜器三维空间路径规划方法,其特征在于,包括以下步骤:步骤一:对水下潜器三维空间路径规划问题进行建模,对水下潜器三维空间路径规划的环境建模,确定评价路径的适应度函数;在水下潜器三维路径规划范围内建立全局坐标系Oxyz,其中O(x<sub>O</sub>,y<sub>O</sub>,z<sub>O</sub>)表示水下潜器的起始点,P(x<sub>P</sub>,y<sub>P</sub>,z<sub>P</sub>)为目标点,障碍物用包括其自身的最小外接球体代替,表示为{(Q<sub>j</sub>(x'<sub>j</sub>,y'<sub>j</sub>,z'<sub>j</sub>),r<sub>j</sub>)|j=1,2,…,k},其中Q<sub>j</sub>表示第j个障碍物的球心位置,r<sub>j</sub>表示第j个障碍物的半径,在Ox轴方向取长度|AD|,其中|AD|的长度为目标点P到y轴的垂直距离,在Oy轴方向取长度|AB|,|AB|的长度为目标点P到x轴的垂直距离,在Oz轴方向取长度|AE|,|AE|的长度为目标点P到z轴的垂直距离,构造一个立方体区域ABCD‑EF‑GH,该立方体区域即为水下潜器路径规划空间;做过障碍物的球心Q<sub>i</sub>且垂直于x轴的平面Ψ,并在其左右两侧按步长λ做平行于平面Ψ的平面,寻找一条从起始点O到目标点P的无碰撞路径,即寻找一个路径点的集合P={O,P<sub>1</sub>,P<sub>2</sub>,…,P<sub>i</sub>,…,P},i=1,2,…,m,其中m为路径点的个数,相邻点连接的路径与障碍物无碰撞,同时使从起始点到目标点的路径长度为最短;水下潜器从起始点O(x<sub>O</sub>,y<sub>O</sub>,z<sub>O</sub>)到目标点P(x<sub>P</sub>,y<sub>P</sub>,z<sub>P</sub>)之间的路径就由其间的各个分层上的路径点连接组成,水下潜器从点O出发,到达平面Π<sub>1</sub>,找到第一个路径点P<sub>1</sub>(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>),依次找到平面Π<sub>i</sub>上的点P<sub>i</sub>(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>),将这些点连接形成一条从起始点O(x<sub>O</sub>,y<sub>O</sub>,z<sub>O</sub>)到目标点P(x<sub>P</sub>,y<sub>P</sub>,z<sub>P</sub>)的路径,采用路径长度作为评价路径的适应度函数,路径长度为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>D</mi><mo>=</mo><msub><mi>D</mi><mrow><msub><mi>OP</mi><mn>1</mn></msub></mrow></msub><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>D</mi><mrow><msub><mi>P</mi><mi>i</mi></msub><msub><mi>P</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></msub><mo>+</mo><msub><mi>D</mi><mrow><msub><mi>P</mi><mi>m</mi></msub><mi>P</mi></mrow></msub></mrow>]]></math><img file="FDA0000906528130000011.GIF" wi="532" he="135" /></maths>其中,<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>D</mi><mrow><msub><mi>P</mi><mi>i</mi></msub><msub><mi>P</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></msub><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>,</mo></mrow>]]></math><img file="FDA0000906528130000012.GIF" wi="934" he="95" /></maths>表示点P<sub>i</sub>和点P<sub>i+1</sub>之间的距离,将点O作为点P<sub>0</sub>,点P作为点P<sub>m+1</sub>,则适应度函数为:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>D</mi><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mi>m</mi></munderover><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>;</mo></mrow>]]></math><img file="FDA0000906528130000013.GIF" wi="926" he="134" /></maths>步骤二:初始化布谷鸟搜索算法;(1)初始化布谷鸟搜索算法的参数,具体包括种群大小n、布谷鸟的鸟蛋被巢主鸟发现的概率R<sub>a</sub>,其中R<sub>a</sub>=0.25;(2)初始化鸟窝的位置,在搜索空间内产生n个鸟窝位置<img file="FDA0000906528130000021.GIF" wi="476" he="71" />每个鸟窝位置代表一条备选路径,对每个鸟窝进行检验,查看是否遇障:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mfrac><mrow><mo>|</mo><mi>&xi;</mi><mo>|</mo></mrow><mrow><mo>|</mo><msub><mi>&theta;</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>|</mo></mrow></mfrac><mo>&lt;</mo><msub><mi>r</mi><mi>j</mi></msub><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>k</mi></mrow>]]></math><img file="FDA0000906528130000022.GIF" wi="476" he="157" /></maths>其中:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>&xi;</mi><mo>=</mo><mrow><mo>(</mo><mrow><mo>|</mo><mtable><mtr><mtd><mrow><msubsup><mi>y</mi><mi>j</mi><mo>&prime;</mo></msubsup><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></mtd><mtd><mrow><msubsup><mi>z</mi><mi>j</mi><mo>&prime;</mo></msubsup><mo>-</mo><msub><mi>z</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub></mrow></mtd><mtd><mrow><msub><mi>z</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>i</mi></msub></mrow></mtd></mtr></mtable><mo>|</mo><mo>|</mo><mtable><mtr><mtd><mrow><msubsup><mi>z</mi><mi>j</mi><mo>&prime;</mo></msubsup><mo>-</mo><msub><mi>z</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></mtd><mtd><mrow><msubsup><mi>x</mi><mi>j</mi><mo>&prime;</mo></msubsup><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>z</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>i</mi></msub></mrow></mtd><mtd><mrow><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub></mrow></mtd></mtr></mtable><mo>|</mo><mo>|</mo><mtable><mtr><mtd><mrow><msubsup><mi>x</mi><mi>j</mi><mo>&prime;</mo></msubsup><mo>-</mo><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></mtd><mtd><mrow><msubsup><mi>y</mi><mi>j</mi><mo>&prime;</mo></msubsup><mo>-</mo><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>x</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub></mrow></mtd><mtd><mrow><msub><mi>y</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub></mrow></mtd></mtr></mtable><mo>|</mo></mrow><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000906528130000023.GIF" wi="1334" he="167" /></maths>θ<sub>i</sub>=[x<sub>i</sub>‑x<sub>i‑1</sub> y<sub>i</sub>‑y<sub>i‑1</sub> z<sub>i</sub>‑z<sub>i‑1</sub>]为第i段路径的向量,(x'<sub>j</sub>,y'<sub>j</sub>,z'<sub>j</sub>)为障碍物的中心坐标,r<sub>j</sub>表示第j个障碍物的半径,k表示障碍物的个数,若鸟窝位置不满足上述条件,该鸟窝代表的路径含有经过障碍物的路径段,则舍弃该鸟窝,并补充新的鸟窝到鸟窝种群中,直到所有鸟窝均不经过障碍物区域,找出初始全局最优位置<img file="FDA0000906528130000024.GIF" wi="99" he="76" />并保留到下一代;步骤三:更新鸟窝位置:步骤3.1利用Levy飞行过程更新鸟窝位置:保留上代鸟窝的最优位置<img file="FDA0000906528130000025.GIF" wi="119" he="58" />其中t为正整数,并利用下式对其他的鸟窝位置进行更新,得到一组新的鸟窝位置:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>s</mi><mi>i</mi><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>s</mi><mi>i</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>+</mo><mi>&alpha;</mi><mo>&CirclePlus;</mo><mi>L</mi><mi>e</mi><mi>v</mi><mi>y</mi><mrow><mo>(</mo><mi>&lambda;</mi><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><mi>n</mi></mrow>]]></math><img file="FDA0000906528130000026.GIF" wi="798" he="79" /></maths>其中,<img file="FDA0000906528130000027.GIF" wi="74" he="61" />表示第i个鸟窝在第t代的鸟窝位置;<img file="FDA0000906528130000028.GIF" wi="57" he="54" />为点对点乘法;α表示步长控制量,取α=ο(1);Levy(λ)为Levy随机搜索路径,且有Levy~u=t<sup>‑λ</sup>,(1<λ≤3);对这组新的鸟窝位置进行适应度函数测试,与上代产生的一组鸟窝位置<img file="FDA0000906528130000029.GIF" wi="546" he="79" />进行对比,用测试值好的鸟窝位置代替测试值差的鸟窝位置,通过Levy飞行过程建立一组全新的鸟窝,得到鸟窝位置<img file="FDA00009065281300000210.GIF" wi="471" he="78" />步骤3.2根据被发现概率更新鸟窝位置:产生服从均匀分布的随机数u∈(0,1),与布谷鸟的鸟蛋被巢主鸟发现的概率R<sub>a</sub>=0.25对比,保留K<sub>t</sub>中被发现概率小于ε的鸟窝位置,而对被发现概率大于λ的鸟窝位置进行改变,得到一组新的鸟窝位置,再对这组新的鸟窝位置进行测试,与上一步中得到的K<sub>t</sub>中的每个鸟窝位置的测试值进行比较,用测试值大的鸟窝位置代替测试值小的鸟窝位置,得到一组鸟窝位置<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>S</mi><mi>t</mi></msub><mo>=</mo><msup><mrow><mo>(</mo><msubsup><mi>s</mi><mn>1</mn><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>,</mo><msubsup><mi>s</mi><mn>2</mn><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>s</mi><mi>n</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mi>T</mi></msup><mo>;</mo></mrow>]]></math><img file="FDA00009065281300000211.GIF" wi="447" he="79" /></maths>步骤四:选出全局最优鸟窝位置,判断是否满足终止条件:利用适应度函数测试步骤三中最后得到的一组鸟窝位置S<sub>t</sub>,选出最后得到的S<sub>t</sub>中最优的鸟窝位置<img file="FDA00009065281300000212.GIF" wi="87" he="57" />并判断是否满足最大迭代次数,若满足,则终止循环,否则返回步骤三继续进行迭代更新,直到搜索满足终止条件为止,最终得到的最优鸟窝位置<img file="FDA0000906528130000031.GIF" wi="67" he="57" />即为需要寻找的最优路径;步骤五:输出步骤四中得到的全局最优路径,水下潜器三维空间路径规划结束。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室