一种基于粒子群优化的车联网分簇车‑车多跳路由方法与流程

文档序号:12501560阅读:来源:国知局

技术特征:

1.一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,包括如下步骤:

(1)网络初始化;

(2)进行簇首选举:计算节点与相同方向邻居节点的速度标准差Vi,与相同方向邻居节点的距离平均值Si,和当选判据值T(i):

<mrow> <msub> <mi>V</mi> <mi>i</mi> </msub> <mo>=</mo> <msqrt> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>i</mi> </msub> </munderover> <msup> <mrow> <mo>(</mo> <mo>|</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>|</mo> <mo>-</mo> <mo>|</mo> <msub> <mi>v</mi> <mrow> <mi>i</mi> <mi>m</mi> </mrow> </msub> <mo>|</mo> <msub> <mi>cos&theta;</mi> <mrow> <mi>i</mi> <mi>i</mi> <mi>m</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> <mrow> <msub> <mi>N</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> </msqrt> </mrow>

<mrow> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>=</mo> <mfrac> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <msub> <mi>N</mi> <mi>i</mi> </msub> </munderover> <msqrt> <mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>x</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>y</mi> <mi>m</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> </mrow> <mrow> <msub> <mi>N</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> </mrow>

<mrow> <mi>T</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <msub> <mi>V</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>0.1</mn> </mrow> </mfrac> <mo>&times;</mo> <mfrac> <mn>1</mn> <mrow> <msub> <mi>S</mi> <mi>i</mi> </msub> <mo>+</mo> <mn>0.1</mn> </mrow> </mfrac> <mo>&times;</mo> <mfrac> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mn>100</mn> <mo>&times;</mo> <mi>N</mi> </mrow> </mfrac> </mrow>

式中,Ni为第i个节点的相同方向邻居节点个数,|vim|为第i个节点的第m个方向相同的邻居节点速度的绝对值,cosθiim为速度vi和vim之间的夹角余弦值;

每个节点随机生成t(i)∈(0,1),若t(i)<T(i),则该车辆节点即为簇首;

(3)簇的形成:步骤(2)中选举出的簇首广播当选消息,普通节点转发并选择加入簇首或自己当选为簇首;

(4)源节点所在簇首寻找目的节点所在位置;

(5)源节点所在簇首计算从源节点到目的节点的路径;

(6)源节点发送信息至目的节点,源节点沿步骤(5)中计算的路径发送数据至目的节点。

2.根据权利要求1所述的一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,步骤(3)中所述簇的形成具体为:当选簇首广播自己的当选消息ELECTED message,所有收到ELECTED message的普通节点在Max_hop+1跳范围内转发,若节点k收到不同邻居节点的转发的来自相同运动方向同一个簇首CHj并满足与簇首距离的信息,则加入该簇首,若节点k收到多个相同运动方向簇首的声明信息,则首先查找的所有路径,计算比较自己与不同簇首之间不同路径的f值,并选择f值最大的路径对应的簇首选择加入:

<mrow> <mi>f</mi> <mo>=</mo> <mi>&eta;</mi> <mfrac> <mn>1</mn> <msup> <mi>V</mi> <mrow> <mo>&prime;</mo> <mo>&prime;</mo> </mrow> </msup> </mfrac> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&eta;</mi> <mo>)</mo> </mrow> <mfrac> <mn>1</mn> <mrow> <msub> <mi>Hop</mi> <mi>r</mi> </msub> </mrow> </mfrac> </mrow>

式中,V″是从节点k与其到簇首CHj的某条路径中其它所有节点速度标准差;Hopr是该路径中的总跳数;

若节点k距离所有簇首的距离都大于Max_hop,则自己当选为簇首,并广播当选消息;在一定时间tc内,若节点k没有收到任何簇首当选信息,则自己当选为簇首,并广播当选消息。

3.根据权利要求1所述的一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,步骤(4)所述源节点所在簇首寻找目的节点所在位置包括:若目的节点不在本簇内,则确定边界中继节点,并通过边界中继节点将目的节点ID发送至邻居簇簇首,若邻居簇首确认目的节点在其簇内,则沿原路径将其本簇节点信息发送回源节点簇首,若不在簇内,则继续向自己邻居簇首发送ID,并在沿原路径转发邻簇节点信息时融合本簇节点信息,直到找到为止。

4.根据权利要求3所述的一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,步骤(4)中所述确定边界中继节点包括如下步骤:

(4.1)确定边界中继节点,若一个节点k距离自己簇首的最小跳数Hopk=Max_hop,则其为边界节点;若Hopk<Max_hop,且其邻居节点距离簇首的最小跳数均小于等于Hopk,则其为边界节点;

(4.2)确定边界中继候选节点,若某个边界节点同时收到两个及以上簇首的当选消息,则该节点即为簇间路由的边界中继候选节点;

(4.3)确定边界中继节点,若簇Cluster1任意边界中继候选节点和Cluster2的任意边界中继候选节点是邻居节点,则Cluster1和Cluster2为相邻簇,若Cluster1与其相邻簇Cluster2存在多个边界中继候选节点可以中继信息,则CH1选择其到所有边界中继候选节点不同路径中具有最大f的一个所对应的边界中继候选节点作为边界中继节点。

5.根据权利要求1所述的一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,步骤(5)中所述计算从源节点到目的节点的路径具体为:源节点所在簇首根据粒子群优化算法计算寻找从源节点到目的节点的最佳路径及备份路径,包括如下步骤:

(5.1)确定粒子群粒子数量Np

(5.2)簇首依据所有节点的邻居节点信息,生成Np个从源节点到目的节点的路径,并对路径进行粒子编码,粒子位置即为粒子本身;

(5.3)对粒子速度进行编码,初始化所有粒子初始速度为0;

(5.4)计算粒子适应度函数值,寻找群体最佳极值P′gd和粒子l在前一个位置时的第d维个体位置极值P′ld

(5.5)利用粒子群优化迭代规则,对粒子进行优化;

(5.6)更新P′gd与P′ld

(5.7)不断迭代,直到迭代次数达到上限,确定最大f值路径为最佳路径和次优f值路径为备份路径;

所述步骤(6)具体为:簇首根据步骤(5.7)计算的最佳路径发送数据至目的节点,目的节点原路返回RECEIVED CONFIRM message,若源节点在一定时间内没有收到RECEIVED CONFIRM message,则沿备份路径重新发送。

6.根据权利要求5所述的一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,步骤(5.2)中所述对路径进行粒子编码具体为:使用N个整数表示一个粒子,代表从源节点到目的节点的一个路由方案,在粒子中,第i(i∈[1,N])位代表ID为i的节点的上一跳邻居节点的ID,若第i位为0,表示该节点不在路由方案中,若第i位为自己,则表示该节点为源节点。

7.根据权利要求5所述的一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,步骤(5.3)中所述对粒子速度进行编码具体为:使用N个整数表示一个粒子,任意第i位的整数取值为0或者一个节点ID号;0表示空操作,即第i个节点不需要改变上一跳邻居节点;若第i位的整数取值为另一个节点ID号,则表示该节点的上一跳节点变更为新的节点。

8.根据权利要求5所述的一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,步骤(5.4)中所述计算粒子适应度函数值具体为:

<mrow> <mi>f</mi> <mo>=</mo> <mi>&eta;</mi> <mfrac> <mn>1</mn> <msup> <mi>V</mi> <mrow> <mo>&prime;</mo> <mo>&prime;</mo> </mrow> </msup> </mfrac> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&eta;</mi> <mo>)</mo> </mrow> <mfrac> <mn>1</mn> <mrow> <msub> <mi>Hop</mi> <mi>r</mi> </msub> </mrow> </mfrac> </mrow>

式中,V″是某条路径从首节点到路径中其它所有节点速度标准差;Hopr是该路径中的总跳数。

9.根据权利要求5所述的一种基于粒子群优化的车联网分簇车-车多跳路由方法,其特征在于,步骤(5.5)中所述的粒子群优化迭代规则包括以下步骤:

(5.5.1)若P′l中存在一个节点不在X′l中,并且其在X′l中的首个邻居节点为节点i,则计算速度:

式中,表示取新的速度从第r1+1维到第N维取值与P′ld⊙X′ld相同,其它维取值均为0,X′ld为X′l的第d维位置;否则,V′ld=V′ld

(5.5.2)若P′g中存在一个节点不在X′l中,并且其在X′l中的首个邻居节点为节点n,则计算速度:

式中,表示取新的速度从第r2+1维到第N维取值与V′ld相同,其它维取值均为0;否则,V′ld=V′ld

(5.5.3)计算粒子新位置:

<mrow> <msub> <msubsup> <mi>X</mi> <mrow> <mi>l</mi> <mi>d</mi> </mrow> <mo>&prime;</mo> </msubsup> <mi>d</mi> </msub> <mo>=</mo> <msubsup> <mi>X</mi> <mrow> <mi>l</mi> <mi>d</mi> </mrow> <mo>&prime;</mo> </msubsup> <mo>&CirclePlus;</mo> <msubsup> <mi>V</mi> <mrow> <mi>l</mi> <mi>d</mi> </mrow> <mo>&prime;</mo> </msubsup> </mrow>

式中,为第l个粒子的第d维新的位置,若粒子第d维速度值为0,则粒子第d维不变;若粒子第d维速度值为非0,则将粒子位置第d维值修改为速度第d维值。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1