发明名称 一种绿色路由单步选择方法
摘要 本发明涉及一种绿色路由单步选择方法,属于计算机网络领域。其操作步骤为:①获取节点vi的协作节点集合H(vi);②获取协作节点集合H(vi)中所有节点的当前寿命;③从协作节点集合H(vi)中依次选取1个或2个寿命最大的节点作为中继节点vj,进行数据传输;④计算协作节点集合H(vi)中各节点的剩余能量;⑤在步骤④操作的基础上,将步骤③指定的下一跳节点作为源节点,回到步骤一,开始下一轮的路由选择及数据传输,直到数据传输到目的节点。本发明提供的方法,与已有的路由选择算法相比,具有以下优点:①避免了网络中单一节点因频繁参与协作路由而耗尽能量;②提升了网络整体的生存时间。
申请公布号 CN102970724A 申请公布日期 2013.03.13
申请号 CN201210479393.X 申请日期 2012.11.22
申请人 北京理工大学 发明人 李杨;樊秀梅;王超;廖乐健
分类号 H04W40/10(2009.01)I 主分类号 H04W40/10(2009.01)I
代理机构 代理人
主权项 1.一种绿色路由单步选择方法,用于从无线网络中的源节点v<sub>i</sub>向其下一跳节点v<sub>j</sub>发送数据时的路由单步选择,其特征在于:其操作过程为:步骤一、获取节点v<sub>i</sub>的协作节点集合H(v<sub>i</sub>);其操作步骤包括第1.1步至第1.7步;具体为:第1.1步:令协作节点集合H(v<sub>i</sub>)初始状态为空集;用N(v<sub>i</sub>)表示节点v<sub>i</sub>的所有一跳邻居(v<sub>i</sub>,v<sub>i+1</sub>)节点集合,用v<sub>k</sub>表示集合N(v<sub>i</sub>)中的元素,即v<sub>k</sub>∈N(v<sub>i</sub>);集合N(v<sub>i</sub>)由第1.2步计算得到;第1.2步:获取集合N(v<sub>i</sub>):令N(v<sub>i</sub>)初始状态下包含除节点v<sub>i</sub>外的所有节点;依次考察N(v<sub>i</sub>)中的每一个节点v<sub>k</sub>,如果节点v<sub>i</sub>与节点v<sub>k</sub>之间的距离d(v<sub>i</sub>,v<sub>k</sub>)>D(v<sub>i</sub>)或d(v<sub>k</sub>,v<sub>j</sub>)>D(v<sub>k</sub>),则将节点v<sub>k</sub>从集合N(v<sub>i</sub>)删除;否则,将节点v<sub>k</sub>保留;其中,<img file="FDA00002446409600011.GIF" wi="413" he="81" />为节点间最大直接通信距离,P<sub>max</sub>(v<sub>i</sub>)为每个节点的最大发射功率,α为传输路径损耗指数,一般取2~4;τ为v<sub>i</sub>与v<sub>k</sub>之间成功通信时所需的最低信噪比<img file="FDA00002446409600012.GIF" wi="136" he="100" />S表示信号功率,N表示噪声功率;第1.3步:对经过第1.2步的操作后剩余的节点按照与节点v<sub>i</sub>的距离d(v<sub>i</sub>,v<sub>k</sub>)从小到大对节点v<sub>k</sub>重新排序,并从前至后依次编码为V<sub>1</sub>,V<sub>2</sub>,...V<sub>m</sub>,即距离v<sub>i</sub>最远的点为V<sub>m</sub>,m为经过第1.2步的操作后集合N(v<sub>i</sub>)的大小;第1.4步:按照公式(1)依次计算从节点v<sub>i</sub>到节点V<sub>p</sub>传输数据所需要的能量,用符号P(v<sub>i</sub>,V<sub>p</sub>)表示,并找到其最大值<img file="FDA00002446409600013.GIF" wi="686" he="75" />1≤p≤m;P(v<sub>i</sub>,V<sub>p</sub>)=(d(v<sub>i</sub>,V<sub>p</sub>))<sup>α</sup>·τ                                      (1)其中,参数α、τ意义同第1.2步;第1.5步:按照公式(2)更新各节点能量;<maths num="0001"><![CDATA[<math><mrow><mfenced open='{' close='' separators=' '><mtable><mtr><mtd><msub><mi>E</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>E</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>P</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>,</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>E</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>E</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,E<sub>t</sub>(v<sub>i</sub>)表示节点v<sub>i</sub>的当前能量,其初始值由人为给定;E<sub>t+1</sub>(v<sub>i</sub>)表示节点v<sub>i</sub>的剩余能量,E<sub>t</sub>(V<sub>p</sub>)表示节点V<sub>p</sub>的当前能量,E<sub>t+1</sub>(V<sub>p</sub>)表示节点V<sub>p</sub>的剩余能量;第1.6步:按照剩余能量大小降序排列集合N(v<sub>i</sub>)中的各节点,并从前至后依次编码为V<sub>1</sub>′,V<sub>2</sub>′,...V<sub>m</sub>′;从节点集合{V<sub>1</sub>′,V<sub>2</sub>′,...V<sub>m</sub>′}中依次选择k=1,2,3,...个节点进行协作通信,直至k个节点的能量满足公式(3);<maths num="0002"><![CDATA[<math><mrow><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>E</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msubsup><mi>V</mi><mi>q</mi><mo>&prime;</mo></msubsup><mo>)</mo></mrow><mo>&CenterDot;</mo><msup><mrow><mo>(</mo><mi>d</mi><mrow><mo>(</mo><msubsup><mi>V</mi><mi>q</mi><mo>&prime;</mo></msubsup><mo>,</mo><msub><mi>v</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mrow><mo>-</mo><mi>&alpha;</mi></mrow></msup><mo>&GreaterEqual;</mo><mi>&tau;</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow></math>]]></maths>第1.7步:令E<sub>s</sub>为各协作节点能量之和,如公式(4)所示:<maths num="0003"><![CDATA[<math><mrow><msub><mi>E</mi><mi>s</mi></msub><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>E</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msubsup><mi>v</mi><mi>q</mi><mo>&prime;</mo></msubsup><mo>)</mo></mrow><mo>&CenterDot;</mo><msup><mrow><mo>(</mo><mi>d</mi><mrow><mo>(</mo><msubsup><mi>v</mi><mi>q</mi><mo>&prime;</mo></msubsup><mo>,</mo><msub><mi>v</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mrow><mo>-</mo><mi>&alpha;</mi></mrow></msup><mo>-</mo><mi>&tau;</mi></mrow><mrow><munderover><mi>&Sigma;</mi><mrow><mi>q</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msup><mrow><mo>(</mo><mi>d</mi><mrow><mo>(</mo><msubsup><mi>v</mi><mi>q</mi><mo>&prime;</mo></msubsup><mo>,</mo><msub><mi>v</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mrow><mo>-</mo><mi>&alpha;</mi></mrow></msup></mrow></mfrac><mo>,</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow></math>]]></maths>若E<sub>t+1</sub>-E<sub>s</sub>+P<sub>max</sub>(v<sub>i</sub>)<(d(v<sub>i</sub>,v<sub>p</sub>))<sup>α</sup>·τ,则{V′<sub>1</sub>,V′<sub>2</sub>,...V′<sub>k</sub>}为协作通信节点集合H(v<sub>i</sub>);否则,采用直接传输方式通信,协作通信节点集合为{v<sub>i</sub>};步骤二、获取协作节点集合H(v<sub>i</sub>)中所有节点的当前寿命;在步骤一操作的基础上,获取协作节点集合H(v<sub>i</sub>)中所有节点的当前寿命,其操作步骤包括第2.1步至第2.4步;具体为:第2.1步:协作节点集合H(v<sub>i</sub>)中各节点V<sub>p</sub>在初始时刻的能量为步骤O中给定的初始能量值,用符号E<sub>0</sub>(V<sub>p</sub>)表示;第2.2步:在n个节点构成的网络中,可形成n(n-1)条不同的通信路径;经过节点v<sub>i</sub>及其协作节点之间链路传输数据的总路径数用φ<sub>i</sub>表示,φ<sub>i</sub>通过公式(5)计算得到;<maths num="0004"><![CDATA[<math><mrow><msub><mi>&phi;</mi><mi>i</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>p</mi><mo>=</mo><mn>1</mn></mrow><mrow><mo>|</mo><mi>H</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>|</mo></mrow></munderover><msub><mi>&beta;</mi><mi>ip</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中,β<sub>ip</sub>表示包含节点v<sub>i</sub>和其协作节点集合H(v<sub>i</sub>)中第p个节点的路径数;第2.3步:通过公式(6)计算协作节点集合H(v<sub>i</sub>)中各节点的一次传输数据所需的平均能量,用符号E<sub>p</sub>(V<sub>p</sub>)表示;<maths num="0005"><![CDATA[<math><mrow><msub><mi>E</mi><mi>p</mi></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>=</mo><munder><mi>&Sigma;</mi><msub><mi>&phi;</mi><mi>ik</mi></msub></munder><mi>P</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>,</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>&beta;</mi><mi>ik</mi></msub><mo>/</mo><mi>n</mi><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>第2.4步:计算协作节点集合H(v<sub>i</sub>)中各节点的当前寿命L<sub>t</sub>(V<sub>p</sub>),如公式(7)所示;<maths num="0006"><![CDATA[<math><mrow><msub><mi>L</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>E</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow></mrow><mrow><msub><mi>E</mi><mi>p</mi></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow></math>]]></maths>步骤三、在步骤二操作的基础上,从协作节点集合H(v<sub>i</sub>)中依次选取1个或2个寿命最大的节点作为中继节点,用v<sub>j</sub>表示,进行数据传输;步骤四、在步骤三操作的基础上,计算协作节点集合H(v<sub>i</sub>)中各节点的剩余能量,其操作步骤包括第4.1步至第4.4步;具体为:第4.1步:通过公式(8)计算协作节点集合H(v<sub>i</sub>)中各节点V<sub>p</sub>的剩余能量,用符号E<sub>t+1</sub>(V<sub>p</sub>)表示;<maths num="0007"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>E</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>E</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>P</mi><mi>max</mi></msub><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>,</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>,</mo></mtd><mtd><msub><mi>V</mi><mi>p</mi></msub><mo>&Element;</mo><mi>H</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>E</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>E</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>V</mi><mi>p</mi></msub><mo>)</mo></mrow><mo>,</mo></mtd><mtd><mi>otherwise</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow></math>]]></maths>第4.2步:对节点V<sub>p</sub>进行以下处理:如果E<sub>t+1</sub>(V<sub>p</sub>)≤0,将该节点V<sub>p</sub>从协作节点集合H(v<sub>i</sub>)中删除;否则,保留该节点;步骤五、在步骤四操作的基础上,将步骤三指定的下一跳节点作为源节点,回到步骤一,开始下一轮的路由选择及数据传输,直到数据传输到目的节点。
地址 100081 北京市海淀区中关村南大街5号