发明名称 一种辅助定位信标节点的移动路径规划方法
摘要 一种辅助定位信标节点的移动路径规划方法,包括如下步骤:1)程序初始化;2)计算全覆盖监控区域的六边形网格列个数和行个数,对所有六边形网格的中心和顶点进行编码,获得相关矩阵向量;3)建立优化模型;4)计算每一个网格中心和网格顶点的可选下一个停留位置集合;5)初始化蚂蚁的初始位置和已选路径;6)蚂蚁建立新的下一个停留位置集合;7)判断已选路径是否全覆盖监控区域内所有网格,如果是则记录当前选择路径和其长度;判断是否所有蚂蚁寻找到路径,如果是则跳到步骤8);8)计算所有蚂蚁寻找的路径长度,更新所有位置的信息素。本发明提供了一种可降低信标节点的移动路径长度和停留位置个数的辅助定位信标节点的移动路径规划方法。
申请公布号 CN106376010A 申请公布日期 2017.02.01
申请号 CN201610725137.2 申请日期 2016.08.24
申请人 浙江树人大学 发明人 陈友荣;陆思一;万锦昊;苏子漪;任条娟;王章权
分类号 H04W16/22(2009.01)I;H04W40/02(2009.01)I;H04W64/00(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W16/22(2009.01)I
代理机构 杭州斯可睿专利事务所有限公司 33241 代理人 王利强
主权项 一种辅助定位信标节点的移动路径规划方法,其特征在于:所述移动路径规划方法包括如下步骤:1)程序初始化:初始化算法中当前蚂蚁k、迭代次数初值m<sub>1</sub>、信息素挥发因子ρ、信息素释放总量Q、大迭代次数M<sub>1</sub>和蚂蚁个数K,根据无线传感网应用项目,初始化监控区域边长、节点通信半径和六边形网格高度;2)根据监控区域边长和六边形网格高度,计算全覆盖监控区域的六边形网格列个数和行个数;对所有六边形网格的中心和顶点分别采用从左到右,从下到上的原则进行编码,并计算六边形网格中心和顶点的位置坐标,获得相关矩阵向量;3)根据信标节点的移动路径约束和节点定位约束,建立优化模型(1),让信标节点的移动距离最短且保证所有传感节点都能获知自身的位置坐标;min(N<sub>l</sub>)    (1)<maths num="0001"><math><![CDATA[<mrow><mi>s</mi><mo>.</mo><mi>t</mi><mo>.</mo><mi>L</mi><mo>=</mo><mo>{</mo><msub><mi>l</mi><mn>1</mn></msub><mo>,</mo><msub><mi>l</mi><mn>2</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>l</mi><msub><mi>N</mi><mi>t</mi></msub></msub><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>.</mo><mi>a</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001089635310000015.GIF" wi="1214" he="71" /></maths>l<sub>g+1</sub>∈N<sub>g</sub>,g=1,2,...,N<sub>l</sub>‑1    (1.b)<img file="FDA0001089635310000011.GIF" wi="1237" he="79" /><maths num="0002"><math><![CDATA[<mrow><msub><mi>&lambda;</mi><mrow><msub><mi>l</mi><mi>g</mi></msub><mo>,</mo><msub><mi>l</mi><mrow><mi>g</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>,</mo><msub><mi>l</mi><mrow><mi>g</mi><mo>+</mo><mn>2</mn></mrow></msub></mrow></msub><mo>=</mo><mn>0</mn><mo>,</mo><mi>g</mi><mo>=</mo><mn>1</mn><mo>,</mo><mn>2</mn><mo>,</mo><mo>...</mo><mo>,</mo><msub><mi>N</mi><mi>l</mi></msub><mo>-</mo><mn>2</mn><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1.</mn><mi>d</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001089635310000012.GIF" wi="1279" he="79" /></maths><maths num="0003"><math><![CDATA[<mrow><msub><mi>s</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>&GreaterEqual;</mo><mn>3</mn><mo>,</mo><mo>&ForAll;</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1.</mn><mi>e</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001089635310000013.GIF" wi="1164" he="71" /></maths>其中,N<sub>l</sub>表示信标节点经过的停留位置个数;<img file="FDA0001089635310000014.GIF" wi="333" he="69" />表示信标节点的移动路径,即经过的停留位置集合,集合L中每一个元素表示信标节点的停留位置,是一个1×3的向量[k<sub>1</sub> k<sub>2</sub> k<sub>3</sub>],向量的第一个元素k<sub>1</sub>表示停留位置的列数,第二个元素k<sub>2</sub>表示停留位置的行数,第三个元素k<sub>3</sub>表示停留位置的类型,取值0,1,如果k<sub>3</sub>=0,则表示该元素是六边形网格中心,否则表示该元素是六边形网格的顶点;N<sub>g</sub>表示停留位置l<sub>g</sub>的可选下一个停留位置集合;<img file="FDA0001089635310000021.GIF" wi="170" he="71" />表示三个停留位置l<sub>g</sub>,l<sub>g+1</sub>,l<sub>g+2</sub>是否共线的标识符,取值为1表示共线,为0表示不共线;s<sub>ij</sub>表示网格Grid(i,j)被不同位置上的信标节点覆盖的次数;优化模型(1)中,有移动路径约束(式(1.a‑1.d))和节点定位约束(式(1.e)),其中,式(1.a)表示信标节点移动经过的最优路径,由六边形网格的顶点和中心组成;式(1.b)表示当信标节点在位置l<sub>g</sub>停留时,只从位置集合N<sub>g</sub>中选择下一个停留位置,当停留位置为网格中心时,可选下一个停留位置集合N<sub>g</sub>为<img file="FDA0001089635310000022.GIF" wi="1734" he="711" />其中,l(i,j)表示六边形网格Grid(i,j)的中心,Ding(i,j)表示从左开始计数的第i列中从下到上开始计数的第j个顶点,m表示监控区域内第一列网格的个数,n表示监控区域内网格的列数且是奇数,当停留位置为顶点时,可选下一个停留位置集合为<img file="FDA0001089635310000023.GIF" wi="1701" he="567" />式(1.c)表示信标节点不在同一个位置停留二次以上,则路径L中不存在相同的停留位置;由于传感节点需要3个以上且不能共线的信标节点位置信息,因此,式(1.d)表示路径L中任意3个相邻停留位置不在同一条直线上;式(1.e)表示每一个网格至少被3个以上不同停留位置覆盖;当停留位置为网格中心时,该网格和周围邻居网格的s<sub>ij</sub>加1,当停留位置为网格顶点时,具有该顶点的网格s<sub>ij</sub>加1;4)根据式(2)和式(3),计算每一个网格中心和网格顶点的可选下一个停留位置集合;5)初始化蚂蚁k的初始位置和已选路径L<sub>y</sub>;6)蚂蚁k分析下一个停留位置集合中所有位置元素,如果当前路径L<sub>y</sub>添加了位置元素后,不符合约束条件(1.a)‑(1.d),则删除该位置元素,最终建立新的下一个停留位置集合;如果该新的下一个停留位置集合为空集,则进入“死胡同”,跳到步骤5),在初始位置重新寻找路径,否则计算选择下一个停留位置,将该停留位置添加到已选路径L<sub>y</sub>中;7)判断已选路径L<sub>y</sub>是否全覆盖监控区域内所有网格;如果L<sub>y</sub>未全覆盖监控区域内所有网格,跳到步骤6),继续寻找,否则记录当前选择路径和其长度;如果k<K,则还有蚂蚁未寻找到路径,k=k+1,下一个蚂蚁开始寻找路径,跳到步骤5),否则跳到步骤8);8)计算所有蚂蚁寻找的路径长度,选择长度最短路径作为第m<sub>1</sub>轮的最优路径,并记录该最优路径和长度Len(m<sub>1</sub>);如果Len(m<sub>1</sub>)≥LenBest,挥发所有位置的信息素,否则LenBest=Len(m<sub>1</sub>),其中LenBest表示迭代过程中,出现的最优移动路径长度,增加该路径上的停留位置信息素且挥发所有位置的信息素,通过计算更新所有位置的信息素;如果m<sub>1</sub><M<sub>1</sub>,则k=1,m<sub>1</sub>=m<sub>1</sub>+1,跳到步骤5),否则结束算法,输出最优移动路径。
地址 310015 浙江省杭州市拱墅区树人路8号信息科技学院