车联网自组织网络的多角色分类社区聚类方法与流程

文档序号:16776866发布日期:2019-02-01 18:47阅读:243来源:国知局
本发明涉及车联网领域。
背景技术
::区别于传统的社区聚类,车联网中车辆节点移动速度快,节点之间拓扑关系变化迅速。传统的社区聚类方法运用在车联网中会出现社区生命周期短,稳定性低的不足。在针对车联网设计的社区聚类方法中,有研究者提出在社区聚类时综合考虑节点当前位置,当前速度和各节点的终点位置预估车辆未来一段时间的拓扑关系,以此作为聚类依据以延长社区的存活时间。针对建立大型社区的场景,在两个社区的头节点进入连通区域后,延迟一段时间直至社区头节点保持相对稳定的连通状态后再进行社区合并,以此减少社区的频繁合并与拆分,提升社区稳定性。有文献将车辆移动方向加入到聚类依据中,综合邻居节点数与不信任因子,共同作为社区聚类的依据。以上讨论的方法只是简单地选取了几个最明显的车辆位置影响因素,而舍弃了大量可能影响未来车辆位置的路况信息。导致在利用这些影响因素做社区聚类时,社区的稳定性提升不足,聚类后的社区依旧呈现出生命周期短,节点归属变化快的特点。技术实现要素:本发明研究方法,基于现有针对车联网的社区聚类方法多采用当前速度与行驶方向等预估车辆未来时刻位置来判断未来节点间保持连接的时长,并以此作为聚类依据之一以提高社区稳定性,但由于车辆未来时刻位置受多重因素影响,预估通信连接时间的准确度较低,导致车联网中的社区多呈现生命周期短,节点社区归属变化迅速的特点。基于车辆位置预测模型(程久军等发明人于2017年8月16日申请的《车联网复杂网络中基于深度学习的车辆行驶影响因素的位置预测模型构造方法》(申请人:同济大学,专利申请号2017107029220,公开号107609633a,公开日2018年01月19日),综合考虑车体属性、道路信息与行车环境等影响车辆行驶的因素,结合深度学习技术,挖掘车辆行驶影响因素与车辆位置的关系,提出车辆位置的预测模型),在社区聚类过程中考虑车辆未来时刻位置,并在社区中细化角色分配,从而提升社区稳定性,均衡关键节点负载,减少数据传输失真。本发明给出以下技术方案:一种车联网自组织网络的多角色分类社区聚类方法,其特征在于,包括两部分,一、社区属性以及社区节点角色定义步骤1.社区属性;步骤2.社区节点角色。二、社区聚类与角色分配方法步骤1.社区形成;步骤2.社区维护。一种车联网自组织网络场景下的多角色分类社区聚类方法,其特征在于,包括两部分,一、社区属性以及社区节点角色定义步骤1.1、所述社区属性,定义如下:将vanet抽象成带权无向图的结构。车辆节点作为无向图中的点,车辆之间的无线连接作为点与点之间的边。带权无向图记为g=(vg,eg)。其中vg={ve1,ve2,…vek}代表顶点集,vek表示顶点k。eg={e1,e2,…ej}代表边集,ej表示边j。社区以顶点集和边集来表示,社区则抽象为g的子图的形式,记为如果两辆车彼此在对方的传输范围内,则认为这两辆车所抽象的节点之间存在一条边。(1)定义1车辆直接连通因子trf(trasmissionfactor):表示两个车辆节点之间连接的可靠程度,满足公式(2)。其中,tr(transmissionrange)表示车辆通信的最大传输范围。distt(vei,vej)表示t时刻车辆i与车辆j之间的距离。当车辆之间的距离大于最大传输范围时,trf为0,表明两个车辆节点不存在连接。反映在拓扑图上即是两个节点之间不存在边。当车辆之间的距离小于或等于最大传输范围时,trf与车辆之间的距离成负相关。距离越近,trf越大,两个车辆节点之间连接的可靠程度越高,联系越紧密,反映到拓扑图上边的权重就越大。(2)定义2邻居节点:如果车辆a与车辆b满足trf(vea,ven)>0,则称a与b互为邻居节点。反映在拓扑图中,即是vea与veb之间存在一条边。这里定义节点邻居连接中心性来表示车辆当前邻居节点的个数以及车辆与邻居节点之间联系的紧密程度。(3)定义3邻居连接中心度(ncc):表示节点与邻居节点的直接连通因子之和。将vei节点在t时刻的ncc值记为ci,t,则有:其中nsi表示i节点的邻居节点集。ncc越大,表示该节点与其周围节点连接的可靠程度越高,联系越紧密。(4)定义4预期邻居连接中心度(encc):表示从当前时刻开始,未来一段时间节点ncc值的加权平均。将t时刻节点vei的encc值记为则有:其中dts表示时间间隔集合{dt|dt=0,δt,2δt,3δt,…},ws表示权重集合{w|w=w1,w2,…},wk代表t+(i-1)δt时刻ncc值对应的权值。encc值越大,表明车辆在dts表示的未来一段时间内与周围节点的连接可靠度越高,联系越紧密。(5)定义5社区邻居连接中心度(cncc):表示节点在当前时刻对指定社区内节点的直接连通因子之和。将t时刻vei节点对社区comk的cncc值记为则有其中表示vei节点在社区comk中的邻居节点集。cncc表示车辆节点与某社区总体的直接连接质量。cncc值越大,表示该节点当前与社区comk总体的直接连接质量越高,联系越紧密。(6)定义6预期社区邻居连接中心度(enc):表示节点在当前时刻以后的一段时间对指定社区的cncc值的加权平均。将t时刻vei节点对社区comk的enc值记作有其中,enc值越大,则表示该节点在未来一段时间与社区comk总体的直接连接质量越高,联系越紧密。可以通过调节每个时间点cncc的权值,来侧重于考虑某一时刻的cncc值,扩大该时刻cncc值的影响力。(7)定义7节点剩余负载能力(awl):表示节点在当前时刻剩余的用于转发数据的缓冲空间。将vei节点在t时刻的awl值记为awli,t。在t时刻向vei节点发送大于awli,t的数据包将导致该数据包丢失。步骤1.2所述社区节点角色定义为了区别社区中不同节点在社区中的位置,表征节点在社区中的地位与其在车联网路由中的贡献程度。车联网社区聚类模型会给社区中的节点给予不同的角色定义。通常来说,一个社区至少存在一个头节(ch)和若干成员节点(cm)。社区中的头节点管理社区的各项信息,如社区节点集合,社区中各个节点的位置以及路由表等。在社区演化的过程中,头节点往往可以决定一个非该社区节点是否可以加入本社区。由于头节点直接连通度高,连通质量好,同时存有社区内的各项重要信息,在车联网社区路由协议中,头节点往往被当作重要的转发节点。本发明为平衡头节点和网关节点的负载,定义头节点守候节点和网关节点守候节点,将社区中的节点角色划分为头节点、网关节点、头节点守候节点、网关节点守候节点与普通成员节点五类。将未归入社区的节点角色定义为游离节点。(1)定义8头节点(ch):为社区中enc值最高的节点。有则节点vei被认为在未来一段时间内处于社区中连接质量最好。该节点被选作comk的ch节点。如果enc值最高的节点有多个,则选择编号最低的节点作为ch节点。(2)定义9头节点守候节点(bch):为社区中预期社区邻接中心度相对较高的节点。假设对于社区comk来说,ch节点为veh,则该社区的bch节点需满足:h表示ch节点的编号。这里δ是bch节点选取数量的控制因子。在社区形成之初,ch节点和bch节点传输数据的负载较低,δ可以设置为一个较大的值,降低bch节点的数量,使得选取的bch节点在社区中的连接质量更接近于ch节点,从而使bch节点的转发特性更接近于ch节点。随着社区中数据包转发任务的加重,ch节点与已选取的bch节点都达到了很高的数据负载时,可以适当降低δ,选取更多的bch节点,协助数据转发。(3)定义10社区comk对社区coml的网关节点集(gws):定义为集合gwsk,l,满足:即社区comk对社区coml的网关节点集的所有节点均属于社区comk,并与社区coml中的部分或者全部节点直接相连。(4)定义11社区comk对社区coml的网关节点gwk,l:定义为集合gwsk,l中对社区coml的enc值最大的节点。即如果vei∈gwsk,l,则需满足:如果gwsk,l在社区coml的enc最大值的节点有多个,则选取编号最低的节点作为社区comk对社区coml的网关节点(gw)。(5)定义12社区comk对社区coml的网关节点守候节点集bgwsk,l:定义为gwsk,l中除去网关节点gwk,l之外的其他所有节点,即bgwsk,l={vei|vei≠gwk,l,vei∈gwsk,l}(11)bgwsk,l中的节点定义为社区comk对社区coml的网关节点守候节点bgwk,l。普通成员节点(cm)指社区中ch节点、bch节点、gw节点以及bgw节点之外的其他所有社区节点。cm节点符合以下两条特性:●cm节点与是社区ch节点的单跳邻居节点。即对于社区comk,ch节点为chk,则cm节点与chk之间必存在一条边ej,●对于节点cmi,其所属社区为comk,则满足公式(12)。不属于任何社区的节点定义为游离节点(sn)。二、社区聚类与角色分配方法车联网社区聚类是将车联网中的节点划分到不同社区中的过程。本发明将社区聚类的过程分为社区形成与社区维护两个阶段。在车联网自组织网络初始化阶段,每个车辆节点均初始化为sn节点。之后无论是在社区形成阶段还是社区维护阶段,节点总是周期性地向邻居节点广播心跳控制(hb)数据包。hb数据包携带节点的状态信息,包括节点当前位置,节点通过基于车辆位置预测模型预测得到的未来1s、2s、3s的位置,节点所属社区,节点encc值,节点enc值和节点awl值等。所有节点维护一个邻居信息表neighbortable,用以计算和对比邻居节点的encc和enc等指标数据。信息表的单项内容如表1所示。表中beat_length表示相邻两次hb数据包发送的时间间隔。较长时间的hb数据包缺失则被认为该邻居节点与vei节点连接断开,将其信息从邻居信息表中移除。步骤2.1社区形成社区形成由选举社区ch节点开始。当节点更新了自身的encc值后,便将自身的encc值与邻居节点的encc值做对比,从而找到encc值最大的节点。encc值最大的节点即适合被选作ch节点。当encc值最大的节点有多个时,选取id值最小的节点作为ch节点。ch节点选定后,将新社区id标记为ch节点id,邻居节点通过ch节点广播的hb数据包得知一个新社区的建立。如果邻居节点为sn节点,则直接加入该社区,并以加入社区请求(jc)数据包的形式通知ch节点。如果邻居节点归属于其他节点,则需判断是否适合加入新社区,判断依据将在社区维护阶段进行详述。ch节点根据接收到的jc数据包更新社区成员表。如果jc数据包代表请求加入本社区,则将jc数据包发送节点加入社区成员表中。jc数据包请求加入其他社区,则将发送该数据包的节点移出社区成员表。经过若干轮迭代之后,社区逐渐趋于相对稳定的状态。此时便完成了社区形成的过程。步骤2.2社区维护在社区维护阶段,需要处理节点动态地加入或者离开社区,社区的合并、拆分、消亡的情况。同时,bch、gw以及bgw节点的角色分配也在社区维护阶段中进行。(a)节点社区归属更新,社区消亡,合并与拆分在此阶段,需要处理节点社区归属变化的问题。节点在收到邻居节点广播的hb数据包时,根据该节点与邻居节点的速度,当前位置以及预测所得未来1s,2s和3s时刻的位置来预估该节点与邻居节点保持连接的时长,并更新邻居节点信息表。在更新过邻居节点信息表后,节点如果发现邻居节点出现了新的ch节点,则判断该ch节点是否比当前所属社区ch节点更适合做ch节点。假设节点vei收到veh发送的hb数据包,其中veh为邻居节点中新出现的ch节点。这里针对mdmac方法(经典算法,常用来做对比实验)中testclusterheadchange算法(经典算法,常用来做对比实验)做改进。节点veh需满足以下五个标准,才被视作更适合做vei的头节点:6)veh节点是其所处社区的ch节点;7)encc值满足8)veh和vei的预期连接时间足够长;9)vei与veh之间的速度夹角足够小;10)假设vei所处社区为comm,veh所处社区为comn,则enc值需满足满足这些标准即保证了veh节点有更好的直接连通度,又保证了vei节点与veh节点所在社区有更紧密的联系。同时保证了veh与vei之间有一段较长时间的连接,可以避免vei频繁地加入和离开社区。如果veh更适合作为ch节点,则vei选择加入veh所在社区。vei根据自身角色做如下操作:3)当vei非ch节点时,vei通过广播jc数据包,通知veh加入该社区。并通知原社区ch节点vei离开原社区,完成节点社区归属变化;4)当vei为ch节点时,vei通过广播jc数据包,通知veh加入该社区。并通知社区内其他节点,原社区消亡。社区内其他节点变为sn节点。再根据接收到的其他ch节点的hb数据包,选择加入其他社区,完成社区的合并。或者自我选举为新社区ch节点,吸引周围节点加入,完成社区的拆分。至此,节点可以根据以上给出的规则,完成节点社区归属的动态变更,社区的消亡,拆分与合并。(b)bch,gw和bgw节点角色分配社区维护阶段同样需要解决bch,gw以及bgw节点角色分配的问题。ch与bch节点维护相同的社区成员列表。ch与bch节点根据其邻居节点中的gw以及bgw节点更新的信息,各自维护一个网关信息表。ch节点维护社区成员列表,了解社区内各节点的社区地位。而社区普通节点不存有社区成员列表,无从得知各节点在社区内的地位。因此,为选取与ch节点具有相似社区地位的节点作为bch节点,bch节点由ch节点指定。而由于社区内其他节点可以得知自己邻接的社区,并可计算与邻接社区的enc值。故gw,bgw节点由社区内各节点自我选举,并将结果通告给ch节点与邻接的bch节点。bch节点选择按照enc值的大小,越接近ch节点enc值的节点,越适合做bch节点。gw与bgw节点的选取按照对邻接社区的enc值选取。假设comi社区中有5个节点与comj社区中的节点直接连接。这5个节点表示为<ve1,ve2,ve3,ve4,ve5>。其对社区comj的enc值如表2所示。对comj社区enc最大的ve3节点被选为社区comi对社区comj的gw节点,其余4个节点被选为社区comi对社区comj的bgw节点。因为只有在ch和bch节点处会维护社区的网关节点表,所以gw与bgw节点只在ch和bch节点处区分。在网关节点的自我选举过程中,节点均认为自己是bgw节点。ch节点和bch节点需要维护社区成员列表,其中包括ch节点列表(表内只有一个ch节点),bch列表,gw/bgw列表以及cm列表。ch节点列表,bch列表,gw/bgw列表统称为关键节点成员列表。在bch与gw/bgw选举的过程中,ch节点与相应的bch节点根据选举结果更新关键节点成员列表。当cm节点加入社区后,ch节点与相应的bch节点会更新cm列表。当社区内的成员节点离开社区后,ch节点与bch节点移除相应成员,并根据移除成员的角色,作出相应的新角色选取。成员节点离开社区可以分为如下两种情况:1)该成员节点加入其他社区,主动通知ch节点和相应的bch节点。此时,ch节点与bch节点将离开社区的成员节点从相应列表中移除即可。2)该成员节点与ch节点失去连接。ch节点经过一段时间未收到该成员节点广播的hb数据包,完成社区成员表的更新。除了接收到邻居节点的hb或其他通知数据包时更新节点自身维护的表项外,社区内每个节点还会周期性地更新其节点状态,以发现邻居节点失去连接的情况。同时ch节点需要选取或者更新bch与gw/bgw列表。两次节点主动更新的时间间隔为beat_length。处于社区comk的节点vei在t时刻的更新内容如下:5)节点对当前社区的enc值6)将邻居节点的预期剩余连接时间减1。如果该值降为0,则认为邻居节点与当前节点不再连接。7)如果vei为社区ch节点,则同时选取或者更新bch节点,并将选取或者更新的结果通知社区内的所有节点。8)更新节点与其他社区的enc值。如果该值发生变化,则通知ch节点和bch节点,更新社区gw节点信息。其中,步骤2)是为保证邻居节点信息有效性的处理步骤。由于节点可能在任意时刻与邻居节点断开连接,节点只能通过邻居节点周期性广播的hb数据包来获取邻居节点信息。因此,在接收到hb数据包时,节点预估与该邻居节点的连接时间ect。每次节点主动更新状态时,即将ect减1。当ect降为0时,说明一段时间未收到来自该邻居节点的hb数据包。此时则认为当前节点与该邻居节点不再连接。附表说明表1有基础设施车联网仿真实验参数表2节点enc值示例表3实验参数设置附图说明图1车联网自组织网络拓扑图图2车联网自组织网络社区网关节点集示例图3社区节点角色转换图4τi,t值曲线图5tapascologne数据集道路拓扑图6社区数量百分比随社区生存时间的分布图7节点数量随节点社区变更次数分布图8节点数量百分比随节点数据包转发量的分布图9为本发明方法流程图具体实施方式本发明的具体实施过程图9所示,包括如下5个方面:①社区属性定义②社区节点角色定义③社区聚类与角色分配方法④实验⑤社区稳定性结果分析①社区属性定义本发明将vanet抽象成带权无向图的结构。车辆节点作为无向图中的点,车辆之间的无线连接作为点与点之间的边。带权无向图记为g=(vg,eg)。其中vg={ve1,ve2,…}代表顶点集,vek表示顶点k。eg={e1,e2,…}代表边集,ej表示边j。vanet拓扑如图1所示。社区则抽象为g的子图的形式,记为如果两辆车彼此在对方的传输范围内,则认为这两辆车所抽象的节点之间存在一条边。边的权重we为车辆直接连通因子(见定义1)。节点的权重wve为预期邻居连接中心度(见定义4)。(1)定义1车辆直接连通因子trf(trasmissionfactor):表示两个车辆节点之间连接的可靠程度,满足公式(2)。其中,tr(transmissionrange)表示车辆通信的最大传输范围。distt(vei,vej)表示t时刻车辆i与车辆j之间的距离。当车辆之间的距离大于最大传输范围时,trf为0,表明两个车辆节点不存在连接。反映在拓扑图上即是两个节点之间不存在边。当车辆之间的距离小于或等于最大传输范围时,trf与车辆之间的距离成负相关。距离越近,trf越大,两个车辆节点之间连接的可靠程度越高,联系越紧密,反映到拓扑图上边的权重就越大。(2)定义2邻居节点:如果车辆a与车辆b满足trf(vea,veb)>0,则称a与b互为邻居节点。反映在拓扑图中,即是vea与veb之间存在一条边。在车联网中,有的车辆邻居节点多,能够直接通信的节点多。有的车辆邻居节点少,可以直接通信的节点少。这里定义节点邻居连接中心性来表示车辆当前邻居节点的个数以及车辆与邻居节点之间联系的紧密程度。(3)定义3邻居连接中心度(ncc):表示节点与邻居节点的直接连通因子之和。将vei节点在t时刻的ncc值记为ci,t,则有:其中nsi表示i节点的邻居节点集。ncc越大,表示该节点与其周围节点连接的可靠程度越高,联系越紧密。(4)定义4预期邻居连接中心度(encc):表示从当前时刻开始,未来一段时间节点ncc值的加权平均。将t时刻节点vei的encc值记为则有:其中dts表示时间间隔集合{dt|dt=0,δt,2δt,3δt,…},ws表示权重集合{w|w=w1,w2,…},wi代表t+(i-1)δt时刻ncc值对应的权值。encc值越大,表明车辆在dts表示的未来一段时间内与周围节点的连接可靠度越高,联系越紧密。(5)定义5社区邻居连接中心度(cncc):表示节点在当前时刻对指定社区内节点的直接连通因子之和。将t时刻vei节点对社区comk的cncc值记为则有其中表示vei节点在社区comk中的邻居节点集。cncc表示车辆节点与某社区总体的直接连接质量。cncc值越大,表示该节点当前与社区comk总体的直接连接质量越高,联系越紧密。(6)定义6预期社区邻居连接中心度(enc):表示节点在当前时刻以后的一段时间对指定社区的cncc值的加权平均。将t时刻vei节点对社区comk的enc值记作有其中ws和dts的含义如定义4。enc值越大,则表示该节点在未来一段时间与社区comk总体的直接连接质量越高,联系越紧密。可以通过调节每个时间点cncc的权值,来侧重于考虑某一时刻的cncc值,扩大该时刻cncc值的影响力。(7)定义7节点剩余负载能力(awl):表示节点在当前时刻剩余的用于转发数据的缓冲空间。将vei节点在t时刻的awl值记为awli,t。在t时刻向vei节点发送大于awli,t的数据包将导致该数据包丢失。②社区节点角色定义为了区别社区中不同节点在社区中的位置,表征节点在社区中的地位与其在车联网路由中的贡献程度。车联网社区聚类模型会给社区中的节点给予不同的角色定义。通常来说,一个社区至少存在一个头节(ch)和若干成员节点(cm)。社区中的头节点管理社区的各项信息,如社区节点集合,社区中各个节点的位置以及路由表等。在社区演化的过程中,头节点往往可以决定一个非该社区节点是否可以加入本社区。由于头节点直接连通度高,连通质量好,同时存有社区内的各项重要信息,在车联网社区路由协议中,头节点往往被当作重要的转发节点。除了头节点和成员节点之外,为了研究当前社区与其他社区之间的联系,部分社区聚类方法加入了网关节点(gw)的概念。网关节点属于一个社区,同时与其他社区的节点直接相连。通常社区中网关节点的个数与网关节点和其他社区的连接质量可以表征该社区与其他社区联系的紧密程度。在基于社区聚类的路由协议中,网关节点往往被作为社区间通信的中继节点,负责将数据包转发给其他社区。在基于社区聚类的路由协议中,正是因为头节点和网关节点的特殊地位,导致其数据转发的高负载。本发明为平衡头节点和网关节点的负载,定义头节点守候节点和网关节点守候节点,将社区中的节点角色划分为头节点、网关节点、头节点守候节点、网关节点守候节点与普通成员节点五类。将未归入社区的节点角色定义为游离节点。(1)定义8头节点(ch):为社区中enc值最高的节点。有则节点vei被认为在未来一段时间内处于社区中连接质量最好。该节点被选作comk的ch节点。如果enc值最高的节点有多个,则选择编号最低的节点作为ch节点。(2)定义9头节点守候节点(bch):为社区中预期社区邻接中心度相对较高的节点。假设对于社区comk来说,ch节点为veh,则该社区的bch节点需满足:这里δ是bch节点选取数量的控制因子。在社区形成之初,ch节点和bch节点传输数据的负载较低,δ可以设置为一个较大的值,降低bch节点的数量,使得选取的bch节点在社区中的连接质量更接近于ch节点,从而使bch节点的转发特性更接近于ch节点。随着社区中数据包转发任务的加重,ch节点与已选取的bch节点都达到了很高的数据负载时,可以适当降低δ,选取更多的bch节点,协助数据转发。(3)定义10社区comk对社区coml的网关节点集(gws):定义为集合gwsk,l,满足:即社区comk对社区coml的网关节点集的所有节点均属于社区comk,并与社区coml中的部分或者全部节点直接相连,如图2所示。(4)定义11社区comk对社区coml的网关节点gwk,l:定义为集合gwsk,l中对社区coml的enc值最大的节点。即如果vei∈gwsk,l,则需满足:如果gwsk,l在社区coml的enc最大值的节点有多个,则选取编号最低的节点作为社区comk对社区coml的网关节点(gw)。(5)定义12社区comk对社区coml的网关节点守候节点集bgwsk,l:定义为gwsk,l中除去网关节点gwk,l之外的其他所有节点,即bgwsk,l={vei|vei≠gwk,l,vei∈gwsk,l}(11)bgwsk,l中的节点定义为社区comk对社区coml的网关节点守候节点bgwk,l。普通成员节点(cm)指社区中ch节点、bch节点、gw节点以及bgw节点之外的其他所有社区节点。cm节点符合以下两条特性:●cm节点与是社区ch节点的单跳邻居节点。即对于社区comk,ch节点为chk,则cm节点与chk之间必存在一条边●对于节点cmi,其所属社区为comk,则满足公式(12)。不属于任何社区的节点定义为游离节点(sn)。节点的角色转换如图3所示。在一个社区中,ch节点与bch节点可以兼具gw节点或者bgw节点的身份。图中箭头方向表示社区节点角色转换,(b)ch表示ch或bch节点,(b)gw表示gw或bgw节点,(b)ch(b)gw节点表示兼具(b)ch角色和(b)gw角色的节点。③社区聚类与角色分配方法车联网社区聚类是将车联网中的节点划分到不同社区中的过程。划分节点的依据因社区聚类算法的不同而有所差异。本发明将社区聚类的过程分为社区形成与社区维护两个阶段。在车联网自组织网络初始化阶段,每个车辆节点均初始化为sn节点。之后无论是在社区形成阶段还是社区维护阶段,节点总是周期性地向邻居节点广播心跳控制(hb)数据包。hb数据包携带节点的状态信息,包括节点当前位置,节点通过基于车辆位置预测模型预测得到的未来1s、2s、3s的位置,节点所属社区,节点encc值,节点enc值和节点awl值等。所有节点维护一个邻居信息表neighbortable,用以计算和对比邻居节点的encc和enc等指标数据。信息表的单项内容如表1所示。表中beat_length表示相邻两次hb数据包发送的时间间隔。较长时间的hb数据包缺失则被认为该邻居节点与vei节点连接断开,将其信息从邻居信息表中移除。(1)社区形成社区形成由选举社区ch节点开始。当节点更新了自身的encc值后,便将自身的encc值与邻居节点的encc值做对比,从而找到encc值最大的节点。encc值最大的节点即适合被选作ch节点。当encc值最大的节点有多个时,选取id值最小的节点作为ch节点。ch节点选定后,将新社区id标记为ch节点id,邻居节点通过ch节点广播的hb数据包得知一个新社区的建立。如果邻居节点为sn节点,则直接加入该社区,并以加入社区请求(jc)数据包的形式通知ch节点。如果邻居节点归属于其他节点,则需判断是否适合加入新社区,判断依据将在社区维护阶段进行详述。ch节点根据接收到的jc数据包更新社区成员表。如果jc数据包代表请求加入本社区,则将jc数据包发送节点加入社区成员表中。jc数据包请求加入其他社区,则将发送该数据包的节点移出社区成员表。经过若干轮迭代之后,社区逐渐趋于相对稳定的状态。此时便完成了社区形成的过程。(2)社区维护在社区维护阶段,需要处理节点动态地加入或者离开社区,社区的合并、拆分、消亡的情况。同时,bch、gw以及bgw节点的角色分配也在社区维护阶段中进行。(a)节点社区归属更新,社区消亡,合并与拆分在此阶段,需要处理节点社区归属变化的问题。节点在收到邻居节点广播的hb数据包时,根据该节点与邻居节点的速度,当前位置以及预测所得未来1s,2s和3s时刻的位置来预估该节点与邻居节点保持连接的时长,并更新邻居节点信息表。在更新过邻居节点信息表后,节点如果发现邻居节点出现了新的ch节点,则判断该ch节点是否比当前所属社区ch节点更适合做ch节点。假设节点vei收到veh发送的hb数据包,其中veh为邻居节点中新出现的ch节点。这里针对mdmac方法中testclusterheadchange算法做改进。节点veh需满足以下五个标准,才被视作更适合做vei的头节点:11)veh节点是其所处社区的ch节点;12)encc值满足13)veh和vei的预期连接时间足够长;14)vei与veh之间的速度夹角足够小;15)假设vei所处社区为comm,veh所处社区为comn,则enc值需满足满足这些标准即保证了veh节点有更好的直接连通度,又保证了vei节点与veh节点所在社区有更紧密的联系。同时保证了veh与vei之间有一段较长时间的连接,可以避免vei频繁地加入和离开社区。如果veh更适合作为ch节点,则vei选择加入veh所在社区。vei根据自身角色做如下操作:5)当vei非ch节点时,vei通过广播jc数据包,通知veh加入该社区。并通知原社区ch节点vei离开原社区,完成节点社区归属变化;6)当vei为ch节点时,vei通过广播jc数据包,通知veh加入该社区。并通知社区内其他节点,原社区消亡。社区内其他节点变为sn节点。再根据接收到的其他ch节点的hb数据包,选择加入其他社区,完成社区的合并。或者自我选举为新社区ch节点,吸引周围节点加入,完成社区的拆分。至此,节点可以根据以上给出的规则,完成节点社区归属的动态变更,社区的消亡,拆分与合并。(b)bch,gw和bgw节点角色分配社区维护阶段同样需要解决bch,gw以及bgw节点角色分配的问题。ch与bch节点维护相同的社区成员列表。ch与bch节点根据其邻居节点中的gw以及bgw节点更新的信息,各自维护一个网关信息表。ch节点维护社区成员列表,了解社区内各节点的社区地位。而社区普通节点不存有社区成员列表,无从得知各节点在社区内的地位。因此,为选取与ch节点具有相似社区地位的节点作为bch节点,bch节点由ch节点指定。而由于社区内其他节点可以得知自己邻接的社区,并可计算与邻接社区的enc值。故gw,bgw节点由社区内各节点自我选举,并将结果通告给ch节点与邻接的bch节点。bch节点选择按照enc值的大小,越接近ch节点enc值的节点,越适合做bch节点。gw与bgw节点的选取按照对邻接社区的enc值选取。假设comi社区中有5个节点与comj社区中的节点直接连接。这5个节点表示为<ve1,ve2,ve3,ve4,ve5>。其对社区comj的enc值如表2所示。对comj社区enc最大的ve3节点被选为社区comi对社区comj的gw节点,其余4个节点被选为社区comi对社区comj的bgw节点。因为只有在ch和bch节点处会维护社区的网关节点表,所以gw与bgw节点只在ch和bch节点处区分。在网关节点的自我选举过程中,节点均认为自己是bgw节点。ch节点和bch节点需要维护社区成员列表,其中包括ch节点列表(表内只有一个ch节点),bch列表,gw/bgw列表以及cm列表。ch节点列表,bch列表,gw/bgw列表统称为关键节点成员列表。在bch与gw/bgw选举的过程中,ch节点与相应的bch节点根据选举结果更新关键节点成员列表。当cm节点加入社区后,ch节点与相应的bch节点会更新cm列表。当社区内的成员节点离开社区后,ch节点与bch节点移除相应成员,并根据移除成员的角色,作出相应的新角色选取。成员节点离开社区可以分为如下两种情况:1)该成员节点加入其他社区,主动通知ch节点和相应的bch节点。此时,ch节点与bch节点将离开社区的成员节点从相应列表中移除即可。2)该成员节点与ch节点失去连接。ch节点经过一段时间未收到该成员节点广播的hb数据包,完成社区成员表的更新。除了接收到邻居节点的hb或其他通知数据包时更新节点自身维护的表项外,社区内每个节点还会周期性地更新其节点状态,以发现邻居节点失去连接的情况。同时ch节点需要选取或者更新bch与gw/bgw列表。两次节点主动更新的时间间隔为beat_length。处于社区comk的节点vei在t时刻的更新内容如下:9)节点对当前社区的enc值10)将邻居节点的预期剩余连接时间减1。如果该值降为0,则认为邻居节点与当前节点不再连接。11)如果vei为社区ch节点,则同时选取或者更新bch节点,并将选取或者更新的结果通知社区内的所有节点。12)更新节点与其他社区的enc值。如果该值发生变化,则通知ch节点和bch节点,更新社区gw节点信息。其中,步骤2)是为保证邻居节点信息有效性的处理步骤。由于节点可能在任意时刻与邻居节点断开连接,节点只能通过邻居节点周期性广播的hb数据包来获取邻居节点信息。因此,在接收到hb数据包时,节点预估与该邻居节点的连接时间ect。每次节点主动更新状态时,即将ect减1。当ect降为0时,说明一段时间未收到来自该邻居节点的hb数据包。此时则认为当前节点与该邻居节点不再连接。实验(1)实验数据集本发明仿真实验采用veins车联网仿真框架,数据集为tapascologne。tapascologne数据集来源于theinstituteoftransportationsystemsatthegermanaerospacecenter(its-dlr),包含真实的德国科隆城市的道路拓扑网络。可通过sumo交通仿真软件模拟城市道路中微观车辆节点的移动轨迹以描述德国科隆城市400平方公里区域内24小时的交通流。数据集道路拓扑结构如图5所示。本发明实验采用6:00~8:00(am)时间段的车辆轨迹数据为车联网仿真提供车辆节点运动依据。该时间段中,最多有超过8000个车辆节点同时在道路上行驶,可以满足本发明实验对车辆轨迹仿真的需求。(2)实验方法分别使用mdmac方法和本发明的pmrc方法对tapascologne数据集6:00~8:00(am)时间段的车辆进行社区聚类并动态更新其社区形态。统计两种方法下形成的vanet社区的存活时间和社区中节点社区变更次数。对比统计结果以比较pmrc与mdmac方法形成社区的稳定性。社区形成后,按照相同的随机方式选取数据包发送的源节点和目的节点,周期性地发送数据包,记录社区内每个节点转发数据包的数量,数据包的投递率和平均端到端延迟。对比统计结果以比较两种方法所得vanet社区在车联网社区路由中的性能。其中数据包投递率表示成功到达目的节点的数据包数量占总发送数据包数量的比例。平均端到端延迟表示数据包由源节点发送到目的节点需要的平均时长。数据转发节点的选取规则如下:1)如果目的节点是当前数据包持有节点的直接邻居节点,则直接转发数据包给目的节点;2)如果当前数据包持有节点为cm节点,则从头节点池中选取节点作为数据包转发的下一跳;3)如果当前数据包持有节点为ch节点或bch节点,则首先判断目的节点是否为本社区节点。如果是,直接发送数据包给目的节点。否则,在邻居社区中选取合适的社区转发数据包,从网关节点池中选取节点作为数据包转发的下一跳;4)如果当前数据包持有节点为gw节点或bgw节点,则按照数据包标记的下一转发社区信息,选取邻居节点表中的下一转发社区节点作为数据包转发的下一跳;5)如果不满足上述4种情况,节点继续持有数据包,等待上述四种发送情况的满足。公式(15)中ρ取1,μ取20kb。其余实验参数设置如表3所示。社区稳定性结果分析图6表示本发明给出的pmrc方法与mdmac方法所得的不同社区生存时间段内社区比例。图中从左向右,分别表示社区生存时间在区间(0,20s],(20s,40s],…,(480s,500s]的社区比例。从图中可以看出,由于车俩节点移动速度快,随着社区生存时间的增长,社区所占比例迅速减小。mdmac社区聚类中,社区生存时间小于20s的占所有社区的66.76%。pmrc方法聚类所得的社区生存时间小于20s的占所有社区的51.77%。mdmac方法中,社区的平均生存时长为42.91秒。pmrc方法聚类所得社区平均生存时长为75.95秒。因此,pmrc方法聚类较mdmac方法聚类所得的社区具有更长的生存时间。节点社区变更次数指的是该节点经历的加入新社区的次数。图7表示节点数量随节点社区变更次数的分布。从图中可以看出,随着节点社区变更次数的增加,mdmac与pmrc方法所得统计结果对应的节点数均先快速增大,后逐渐减小。mdmac方法中,经历7次社区变更的节点数最多。pmrc方法中经历6次社区变更的节点数最多。pmrc方法经历8次以下社区变更的节点数均大于mdmac方法。经历8次以上社区变更的节点数中,mdmac方法多于pmrc方法。mdmac方法中节点平均经历的社区变更次数为9.04次,pmrc方法节点平均经历的社区变更次数为8.45次。因此,pmrc方法中节点经历的社区变更次数普遍小于mdmac方法。综上所述,通过pmrc方法形成的车联网社区稳定性优于mdmac方法。创新点:基于车辆位置预测模型(程久军等发明人于2017年8月16日申请的《车联网复杂网络中基于深度学习的车辆行驶影响因素的位置预测模型构造方法》(申请人:同济大学,专利申请号2017107029220),提出了一种车联网自组织网络场景下多角色分类社区聚类方法,从而提升了社区稳定性,减少数据传输失真。说明书附表表1表2节点ve1ve2ve3ve4ve5enc3.5162.8716.2201.1555.031表3当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1