发明名称 基于粒子群的无线传感器网络移动节点覆盖优化方法
摘要 本发明针对基本粒子群算法在求解无线传感网络覆盖优化问题的不足,结合最大覆盖算法,提出了一种基于粒子群的无线传感器网络移动节点覆盖优化方法。该算法以移动节点位置向量为输入参数,网络覆盖率为目标函数,同时利用最大覆盖算法中所提到的远离和靠近模块,对节点间的位置进行调整,如果节点间分布过密,则让节点远离;如果节点分布松散,则让节点靠近。结合位置调节和粒子群算法,在粒子群算法速度更新公式中考虑了节点与其最近节点的位置调整,指导粒子进化,这样做有助于扩大节点的覆盖范围,增强粒子群算法搜索全局最优解的能力,即提高了网络覆盖率。最后应用基于位置调节的粒子群算法求解无线传感网络覆盖优化问题。
申请公布号 CN102752761A 申请公布日期 2012.10.24
申请号 CN201210203426.8 申请日期 2012.06.19
申请人 江苏科技大学 发明人 朱志宇;伍雪冬;李阳;王建华;张冰;冯友兵;王敏;杨官校;戴晓强
分类号 H04W16/18(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W16/18(2009.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 楼高潮
主权项 1.一种基于粒子群的无线传感器网络移动节点覆盖优化方法,其特征在于包括如下步骤:步骤1:搜索空间为j维,种群规模为M,初始化粒子位置,随机产生每个粒子的位置和速度,同时设定节点的距离阈值,当节点与最近邻居节点之间的距离小于所设距离阈值,则远离;当这个距离大于距离阈值时,则靠近;远离模块:节点A在n时刻的坐标为(x<sub>n</sub>,y<sub>n</sub>),而离节点A最近的邻节点b在n时刻的坐标为(x<sub>bn</sub>,y<sub>bn</sub>),节点A在n+1时刻的目标位置为(x<sub>n+1</sub>,y<sub>n+1</sub>),设节点间距离阈值为L<sub>th</sub>,单位时间的步长为d,传感半径R<sub>s</sub>,通信半径R<sub>c</sub>,其中L<sub>th</sub>≤R<sub>c</sub>-d,可知<maths num="0001"><![CDATA[<math><mrow><mfrac><mrow><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>n</mi></msub></mrow><mrow><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mi>bn</mi></msub></mrow></mfrac><mo>=</mo><mfrac><mrow><msub><mi>y</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>n</mi></msub></mrow><mrow><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mi>bn</mi></msub></mrow></mfrac><mo>=</mo><mfrac><mi>d</mi><msub><mi>L</mi><mi>n</mi></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,<maths num="0002"><![CDATA[<math><mrow><msub><mi>L</mi><mi>n</mi></msub><mo>=</mo><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mrow></math>]]></maths>根据式(1)计算出节点A远离节点b的情况下,节点A的目标位置:<maths num="0003"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>d</mi><mo>&CenterDot;</mo><mfrac><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mi>bn</mi></msub><mo>)</mo></mrow><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mfrac><mo>+</mo><msub><mi>x</mi><mi>n</mi></msub></mtd></mtr><mtr><mtd><mi>d</mi><mo>&CenterDot;</mo><mfrac><mrow><mo>(</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mi>bn</mi></msub><mo>)</mo></mrow><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mfrac><mo>+</mo><msub><mi>y</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>靠近模块:节点A和节点b之间大于距离阈值,在下一个时刻,节点A应向节点B的方向移动,同远离模块一样,建立类似的数学模型,节点A的目标位置:<maths num="0004"><![CDATA[<math><mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>n</mi><mo>+</mo><mn>1</mn></mrow></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mo>-</mo><mi>d</mi><mo>&CenterDot;</mo><mfrac><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mi>bn</mi></msub><mo>)</mo></mrow><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mfrac><mo>+</mo><msub><mi>x</mi><mi>n</mi></msub></mtd></mtr><mtr><mtd><mo>-</mo><mi>d</mi><mo>&CenterDot;</mo><mfrac><mrow><mo>(</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mi>bn</mi></msub><mo>)</mo></mrow><msqrt><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>n</mi></msub><mo>-</mo><msub><mi>x</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>n</mi></msub><mo>-</mo><msub><mi>y</mi><mi>bn</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></msqrt></mfrac><mo>+</mo><msub><mi>y</mi><mi>n</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤2:计算整个区域的初始有效覆盖率,并初始化每个粒子的局部最优位置pbest,以及对应覆盖率最大时粒子的全局最优位置gbest;步骤3:计算粒子i中各节点之间的距离,和设定的距离阈值比较,并根据公式(2)和(3)对节点间的位置进行调整,计算粒子i中节点<img file="FDA00001785206100015.GIF" wi="106" he="53" />与其最近节点的距离改变值<img file="FDA00001785206100016.GIF" wi="73" he="62" />步骤4:根据公式(4)和(5)更新粒子位置和速度,并重新根据式(6)~(9)计算每个粒子更新位置后的网络覆盖率;速度和位置更新公式如式(4):<maths num="0005"><![CDATA[<math><mrow><msubsup><mi>v</mi><mi>ij</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mi>w</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&times;</mo><msub><mi>v</mi><mi>ij</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>r</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><msubsup><mi>pbest</mi><mi>ij</mi><mi>k</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>ij</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><msub><mi>r</mi><mrow><mn>2</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><msubsup><mi>gbest</mi><mi>gj</mi><mi>k</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>ij</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>3</mn></msub><msub><mi>r</mi><mn>3</mn></msub><msubsup><mi>&Delta;</mi><mi>ij</mi><mi>k</mi></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><msubsup><mi>x</mi><mi>ij</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msubsup><mi>x</mi><mi>ij</mi><mi>k</mi></msubsup><mo>+</mo><msubsup><mi>v</mi><mi>ij</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,c<sub>1</sub>为微粒自身加速度权重系数,c<sub>2</sub>为全局加速度权重系数,c<sub>3</sub>为位置调节的加速权重系数,r<sub>1j</sub>和r<sub>2j</sub>为0~1内的随机数,<img file="FDA00001785206100022.GIF" wi="43" he="63" />和<img file="FDA00001785206100023.GIF" wi="39" he="63" />分别为粒子i在第k次迭代中第j维的位置和速度,二者均被限制在一定范围内;<img file="FDA00001785206100024.GIF" wi="143" he="67" />是粒子i在第j维的个体极值的位置;<img file="FDA00001785206100025.GIF" wi="145" he="67" />是群体在第j维的个体极值的位置;w为惯性权重系数;<img file="FDA00001785206100026.GIF" wi="50" he="62" />是粒子i中节点<img file="FDA00001785206100027.GIF" wi="106" he="53" />与其最近节点的距离改变值;设无线传感器网络中的节点s<sub>i</sub>的坐标为(x<sub>i</sub>,y<sub>i</sub>),一个二维平面监测区域中任意点p的坐标为(x<sub>p</sub>,y<sub>p</sub>),则节点s<sub>i</sub>对目标点p的检测概率为:<img file="FDA00001785206100028.GIF" wi="1445" he="277" />其中,d(s<sub>i</sub>,p)为传感器节点s<sub>i</sub>与目标点p的欧式距离;R<sub>e</sub>(0&lt;R<sub>e</sub>&lt;R<sub>s</sub>)是传感节点测量可靠性参数;α<sub>1</sub>=R<sub>e</sub>-R<sub>s</sub>+d(s<sub>i</sub>,p),α<sub>2</sub>=R<sub>e</sub>+R<sub>s</sub>-d(s<sub>i</sub>,p);λ<sub>1</sub>、λ<sub>2</sub>、β<sub>1</sub>、β<sub>2</sub>是与传感节点特性有关的测量参数;因此,整个二维平面监测区域内的n个传感器节点对目标点p的联合检测概率为:<maths num="0007"><![CDATA[<math><mrow><msub><mi>C</mi><mi>p</mi></msub><mrow><mo>(</mo><msub><mi>s</mi><mi>all</mi></msub><mo>,</mo><mi>p</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn><mo>-</mo><munder><mi>&Pi;</mi><mrow><mi>i</mi><mo>=</mo><mi>n</mi></mrow></munder><mrow><mo>(</mo><mn>1</mn><mo>-</mo><msub><mi>C</mi><mi>p</mi></msub><mrow><mo>(</mo><msub><mi>s</mi><mi>i</mi></msub><mo>,</mo><mi>p</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,s<sub>all</sub>为测量目标点的传感器节点集合;为了满足覆盖要求,通常要求联合检测概率不低于根据网络需求所设定的阈值c<sub>th</sub>,则目标点能被有效检测到的条件为:<maths num="0008"><![CDATA[<math><mrow><munder><mi>min</mi><mrow><msub><mi>x</mi><mi>p</mi></msub><mo>,</mo><msub><mi>y</mi><mi>p</mi></msub></mrow></munder><mo>{</mo><msub><mi>C</mi><mi>p</mi></msub><mrow><mo>(</mo><msub><mi>s</mi><mi>all</mi></msub><mo>,</mo><mi>p</mi><mo>)</mo></mrow><mo>}</mo><mo>&GreaterEqual;</mo><msub><mi>C</mi><mi>th</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow></math>]]></maths>将待测区域划分成m×n个网格,再将单元格简化为像素点,网络覆盖率定义为满足式(7)要求的单元格数量占总的单元格数量的比例,即:<maths num="0009"><![CDATA[<math><mrow><msub><mi>C</mi><mi>r</mi></msub><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><msub><mi>x</mi><mi>p</mi></msub><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><munderover><mi>&Sigma;</mi><mrow><msub><mi>y</mi><mi>p</mi></msub><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>C</mi><mi>p</mi></msub><mrow><mo>(</mo><msub><mi>s</mi><mi>all</mi></msub><mo>,</mo><mi>p</mi><mo>)</mo></mrow></mrow><mrow><mi>m</mi><mo>&times;</mo><mi>n</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤5:将每个粒子更新位置后的覆盖率与每个粒子的局部最优位置pbest对应的覆盖率比较,如果较大,则更新pbest;步骤6:将群体中的每个粒子的个体最优pbest对应的覆盖率与gbest对应的覆盖率比较,如果较大,则更新gbest;步骤7:如果达到预设的最大迭代数,则结束,并返回群体最优分布,否则返回步骤2。
地址 212003 江苏省镇江市梦溪路2号