一种面向车联网的自适应可靠路由方法与流程

文档序号:12067986阅读:192来源:国知局
一种面向车联网的自适应可靠路由方法与流程
本发明属于计算机应用与物联网结合的
技术领域

背景技术
:随着通信技术的不断发展,作为传统MANETs网络的扩充,VANETs是实现智能化城市,构建智能交通系统(ITS)中最重要的部分。在VANETs中,无线通信可以分为两种,一种是车辆与固定基础设施的(V2I)通信,另一种为车辆与车辆之间(V2V)通信。由于V2V不需要基础设施且部署灵活的特性使得其受到许多研究者的青睐。作为实现智能交通系统的一项重要支撑技术,高效的路由协议设计成为实现VANETs应用重要的一步。有一些可靠的路由算法被提出,比如:SLBF和EG-RAODV,这些算法通过加入对节点间链路的可靠性以及包错误率参数来设计路由算法,能够在一定程度上提高数据包的递交率,但延时时间得不到保证。在VANETs中,速度的快速变化是造成拓扑变化以及链路不可靠的主要原因,只有充分的理解了车辆的运动特点才能有效的评估链路的可靠性,才能够设计出有效的路由算法。考虑到车辆都运动都是按照固定的路线行驶,两个车辆的行驶方向,车间距离,速度以及加速度等这些因素,均能造成两个节点间链路的断裂。为了能够有效的评估节点间链路的可靠性,要充分考虑这些因素所带来的影响,尤其是在低密度,高速度的高速场景中。车间距离在保证行车安全以及链路稳定性评估中扮演着重要的角色。许多关于车间距离的模型已经被提出,比如:服从于指数分布,正态分布,对数正态分布等模型。在文献[1]中作者通过实验证明了,当车间距离服从于对数正态分布时能够更加符合真实的交通流和安全距离。在充分理解交通流模型以及车辆的运动特征,能够有效的评估出节点间链路的可靠性。随着近几年来对路由算法的不断研究,一些智能的算法被应用在VANETs网络中,相比传统的路由算法,取得了很好的效果。Q-Learning算法作为一种自学习的算法通过不断与外界交互信息,其能够在动态的环境中找出一条从源节点到目的节点的最短路径。路由协议分类:在VANETs中被广泛研究的路由算法主要被分为2大类:一种是基于拓扑的路由算法,另一种是基于地理位置的路由算法。基于拓扑的路由算法又能被分为反应式(按需)路由和主动式(表驱动)路由算法。在反应式路由协议中,节点间根据需要来建立路由,并去维持一条端到端的路径,比较有代表性的路由算法有AODV、DSR。在此基础上的一些衍生出的算法像EG-RAODV,QLAODV使其更加适应于VANETs网络。主动式路由算法,像DSDV,OLSR,节点通过交换路由表去维持整个网络的拓扑结构。在高速变化的VANETs网络中,拓扑的快速变化成了影响主动式路由算法的唯一因素。在基于地理位置的路由协议中,通过为每一个车辆配备全球定位系统GPS使其能够准确的定位自己的以及目的节点的坐标,速度和方向信息。其本身并不需要维持从源节点到目的节点的路径,每一个节点仅仅维持一张邻居表来记录一跳邻居节点的位置以及速度信息。链路评估算法:在VANETs网络中,保证链路的可靠性是至关重要的,因为其将保证整条路径是否有效。在文献[3]中,根据信号强度来预测链路的可靠性以及路由路径。在文献[4]中,建立了移动模型来估计n-node路径的维持时间,其中只考虑了速度,而没有考虑加速度问题。一种基于运动预测算法MORP被提出,MORP预测车辆将来的位置并且去计算链路的稳定性。MORP通过使用每一个车辆的位置,方向以及速度信息去预测链路的状态,选择最稳定的端到端的路由路径。基于预测的路由算法被提出在VANETs中,预测的路由算法通过预测链路的生命周期来对路由路径做出调整。链路的生命周期被预测通信范围,车辆的位置以及相应的速度。考虑到路由路径由许多链路组成,最小的链路决定着整条链路的最大生存时间,因此能够有效的预测出路径的最大的链路维持时间。Q-Learning算法:是一种增强型学习的算法,Q-Learning算法被提出在机器学习中。学习的过程是学习主体Agent在不同的状态,通过周期性的更新状态-活动对(Q-Value值),找出一条到达目的节点具有最大回报值的路径。Q-Learning是一种无监督性的主动学习算法,该方法并不需要特定的系统模型,通过与周围环境交互,使得其能够快速适应不同的环境。在Q-Learning算法中,Q-Value值Q(s,a)(s∈S,a∈A),表示一个学习Agent从一个状态s经过一个活动a转换到另一个状态所得到的奖励值,其中s表示状态,a表示活动。因为距离目的地最近的状态进行一次活动将获得最高的奖励值,所以根据奖励值能够有效的判断此状态与目的地的距离。随着主体Agent在不同的状态不断的进行活动转换去寻找到达目的节点的路径,最终能够找到一条从源节点到目的节点的最短路径。在QLAODV[2]算法中,作者将Q-Learning算法与AODV相结合,去解决拓扑变化对AODV算法带来的影响。文献[5]提出了一种基于Q-Learning的QGrid算法,通过将整个区域划分成不同的网格,从宏观和微观的方面来通过计算Q-Value值来选择下一跳转发节点。技术实现要素:在发明模型中,通过研究车辆的运动特点,研究了造成链路不可靠的因素,证明了链路的维持时间服从于对数正态分布。然后在其基础上建立了节点间链路可靠性计算模型。将评估节点间链路的可靠值作为一个参数应用在Q-Learning算法中,提出了RSAR路由算法。本发明的目的是解决拓扑动态性所带来变化频繁的问题,提出了一种面向车联网的自适应可靠路由方法。本发明提供的面向车联网的自适应可靠路由方法,主要包括如下关键步骤:第1、路由建立过程:第1.1、源节点以广播的形式向整个网络发送一个R_req数据包,并启动路径请求定时器,R_req记录所经过的节点ID,当目的节点收到第一个来自源节点的R_req数据包时保存,并丢弃随后收到的重复数据包;第1.2、从R_req数据包中,将R_req数据包所记录的ID信息抽取出来,翻转同时生成一个R_rep数据包,等待一个时隙后,以单跳广播的形式将R_rep数据包发送给翻转路径中记录的节点;第1.3、当记录的节点收到此数据包时,修改数据包的下一跳地址,更新其Q_Table表,并仍然以单跳广播的形式发送出去,其他目的节点收到修改后的数据包时只修改Q_Table表,然后丢弃该数据包,以此类推,直到R_rep被发送到目的节点,也就是R_req的源节点,源节点取消请求定时器,同时更新其Q_Table表;第2、路由维护过程:第2.1、每一个节点周期性的去广播信标数据包来更新邻居节点的Q_Table,设定信标数据包的发送时延为[0.5,1]之间的随机数,Q_Table表规定了目的节点的有效时间,如果某一个目的节点时间由于没有得到更新而超过规定的时间,则认为此目的节点失效,并删除此目的节点对应的一列数据;第2.2、当由于车辆的移动导致出现网络分割时,RSAR在分割节点处采用carry-and-forward策略,启动路径请求定时器去广播R_req数据包,如果定时时间到时没有收到目的节点发来的R_rep数据包时,则认为目的节点不可达,同时通知源节点取消数据包的传输,否则从断裂处重新建立路由路径。VANET中Q-Learning算法思想:标准的Q-Learning是一种基于学习主体Agent进行的启发式学习方式。一般来说,在标准Q-Learning算法中,Agent的学习过程主要由一个3元组组成{S,A,R}。其中,S={s1,s2…,sn}表示Agent的状态空间,A={a1,a2…,an}表示Agent的活动空间,从一个状态转移到另一个状态被视为一次有效的活动,R代表Agent进行一次活动时所获得的即时奖励值。越接近于目的地,则其进行一次活动获得的奖励越高。这里先给出几个相关定义,然后再给出详细的学习过程。相关定义:定义1基本组件:学习环境G:将整个VANETs环境作为Agent的学习环境。主体Agent:学习主体为每一个车辆节点。状态空间S:Agent的状态空间。活动空间A:将信标数据包从一个车辆转发到另一个车辆则定义为一次活动。即时奖励R:Agent进行一次活动获得的即时奖励。定义2奖励值:根据定义1,主体Agent进行一次活动所获得所得到的值称之为奖励值,其范围从[0,1]。因为目的节点的一跳邻居节点能够直接到达目的节点,所以其奖励值为1。由公式(1)定义整个网络中的初始奖励值R为:其中,Nd表示目的节点d的一跳邻居节点集合。目的节点所有邻居节点进行一次活动获得的奖励值为1。在学习过程中,从一种状态转移到另一种状态的状态可能得到的奖励值用Q-Value值Q(s,a)(s∈S,a∈A)来表示,其取值范围为[0,1]。定义3Q-Table表:每一个学习主体维护着一张二维表,用来记录其所能够到达的目的节点地址以及与其一跳邻居节点的Q-Value值,称这张二维表为Q-Table表(如表1所示)。表1Q-Table表D1D2...N1Q(D1,N1)Q(D2,N1)...N2Q(D1,N2)Q(D2,N2)...............其中第一行代表所有可能到达的目的节点表示ID,在这里用Di表示。第一列表示与其相邻的一跳邻居节点表示ID,在这里用Ni表示。Q(D1,N1)表示本节点到达目的节点D1时与邻居节点N1之间的Q-Value值。如表1所示,Q-Table表是一个二维表的形式,其大小由邻居节点数目以及目的节点个数来决定。容易看出,其有着很好的可扩展性。节点间通过周期性的交换信标数据包来更新Q-Table的值。将学习的任务分布到每一个节点中,使得算法能够快速的收敛到最优路径,而且对网络拓扑的变化能够做出及时的调整。学习过程:由上面的定义中,我们能够知道,每一个车辆节点被定义为一个学习主体Agent。与传统的学习方式不同的是,每一个车辆节点中存储有一张Q-Table表,节点间通过交换信标信息来更新各自的Q-Table表来完成学习的任务。当一个节点发出一个信标数据包时,在信标数据包中不仅包含自身的速度,位置等信息,而且还包含了到达某一目的地址其与邻居节点的最大Q-Value值。也就是说某一列中的最大值(如表2所示)。表2最大Q-Value值表参数值拓扑大小(m)1500x1500MAC标准IEEE802.11MAC(2Mbps)传输范围(m)250传播模型two-rayground仿真时间(s)300CBR数据包大小(byte)512数据率(packet/s)10假设有如图2所示的VANETs网络拓扑环境G={V,E}。其中,V={A,B,C...H}表示车辆节点集,对节点A来说,其状态空间SA为不包含A的所有节点组成的集合。边集E表示所有能够在一跳范围内直接通信的节点连线组成的集合。假设在图2中,A为源节点,G为目的节点。现在要通过自学习的方式找出一条从发送节点A到目的节点G的最佳路径。因为学习任务被分配到了每一个车辆节点Agent中,而学习的过程主要是去更新Agent中的Q-Table表,也就是去更新Q-Value的状态活动对Q(s,a)(s∈S,a∈A)。标准的Q-Learning学习函数为公式(2)所示,其中,Qs(d,x)为要更新的Q-Value值,s为本节点,x为其邻居节点,Nx为x的邻居节点,d为目的节点,R为奖励值,为到达目的节点d,本节点x与其邻居节点y的最大Q-Value值。其中,打折因子γ是一个重要的参数,根据以上公式我们知道其影响本节点进行一次活动获得的奖励值。考虑到链路稳定性是一个重要的参数,根据如下公式(3):计算节点间链路的可靠性r(l),公式(3)中,f(T)为时间间隔T的概率密度函数,时间T的对数服从正态分布T∈logN(μt,σt)。其中期望为μt,方差为σt,时间段为Tp等。我们将链路的可靠性做为一个打折因子,即γ=r(l)。在VANETs网络中,可利用的带宽值作为一个重要参数,其决定着数据包传输的速率。带宽BW计算公式如下,其中,n表示节点发出和接收到的数据包的数目。SB是数据包的大小,用字节表示。T为时间间隔。假设节点的最大可利用带宽值为一固定值,这里定义为maxBW,那么可以计算出带宽因子为:将带宽因子作为影响学习快慢的因子,随着有效带宽的变化,其决定每一个车辆节点的学习进度。我们修改公式(2)得到新的启发式函数如下:根据公式(6),考虑到跳数越多得到的奖励值将越低。所以最终的奖励值是根据跳数以及链路可靠性和带宽这3个因子来决定。通过加入带宽以及链路状态这两个参数,使得最终能够在这种动态的网络中得到从源节点到目的节点的最优路径。在图3中,节点E和F为目的节点G的一跳邻居节点,根据公式(6),得到节点E和F到目的地G的奖励值分别用QE(G,G)与QF(G,G)表示。考虑到受链路质量以及带宽的影响,我们假设其最终得到的Q-Value值分别为0.7和0.8。考虑,D的邻居节点有A,B,C,E,F,H。当D收到其任何一个邻居节点发来的信标数据包时,解析数据包,从中抽取出到达目的节点G的最大Q-Value值,以F为例,根据公式(6)计算对应的Q-Value值,即QD(G,F),并更新Q-Table表。很明显,QF(G,G)的值最大,其值为1,将被记录在信标数据包中。依此类推,收到其他节点发来的数据包时也做如上处理,最后将Q-Table表中的某一列进行了更新。考虑到受带宽以及链路可靠性的影响,我们假设根据公式(6)得到QD(G,F)=0.5,与其他邻居节点更新的Q-Table值如图4所示。随着不断收到邻居数据包,节点D通过不断修改其Q-Table表中保存的其与邻居节点的最大Q-Value值。同理,当节点D要发送信标数据包时,其遍历保存的Q-Table表中的某一列,找出其与邻居节点最大的Q-Value值记录到信标数据包中发送出去。同以上过程类似,当节点A收到其邻居节点D发来的信标数据包时,抽取出最大的Q-Value值,并进行计算来更新QA(G,D),收到其他节点发来的信标数据包也做同样的处理。通过不断的进行数据包的交换,最终我们将得到如图3所示的结果。根据图3的运行结果,我们将很容易找到一条从A到G的最优路径,我们只需要找出具有最大Q-Value值的节点组成的路径即为最优路径。从图3中可以看出,A→B→E→G为具有最大Q-Value值的路径。因此其为我们选出的最优路径。动态更新保存的Q-Table表,使得算法对拓扑的动态变化能够做出即时的响应,使得算法保证可靠性的同时,具有很好的鲁棒性。RSAR路由算法描述:这里先给出RSAR路由算法转发数据包的基本过程,然后对每一个部分给出详细的描述。路由建立过程:整个准备阶段及路由建立流程如图4所示,在开始阶段,当源节点要发送一个数据包给目的节点时,去查找Q-Table表,查看是否有到达目的节点的下一跳节点。如果有,则从Q-Table表中找出一个到达目的节点最大的Q-Value值的邻居节点,并将数据包转发给它。如果不存在,则启动路由发现过程。源节点以广播的形式发向整个网络发送一个R_req数据包,并启动路径请求定时器。其中R_req在路由过程中记录着所经过的节点ID。当目的节点收到第一个来自源节点的R_req数据包时,将其保存,并丢弃随后收到的重复数据包。从R_req数据包中,目的将其所记录的ID信息抽取出来,进行翻转,同时生成一个R_rep数据包,将翻转后的路径信息写进去,等待一个时隙后,以单跳广播的形式将R_rep数据包发送给翻转路径中记录的节点。当记录中的节点收到此数据包时,修改数据包的下一跳地址,更新其Q-Table表,并仍然以单跳广播的形式发送出去。其他非目的节点收到时只修改Q-Table表,然后丢弃。依此类推,直到R_rep被发送到目的节点,也就是R_req的源节点。源节点取消请求定时器,同时更新其Q-Table表。这时,便建立了一条从源节点到目的节点的路径,同时也第一次更新了源节点到目的节点第一条路径上的节点中的Q-Table表,初始的Q-Table表中的值为0。路由维护过程:当建立了第一条路由路径后,与此同时也更新了与这条路径相邻的部分节点的Q-Table表中的值。为了能够使得在动态变化的网络中保证路径的有效性,启动路由维护过程是至关重要的。路由维护过程主要目的是去动态的维护Q-Table表以及解决网络分割问题。每一个节点周期性的去广播信标数据包来更新邻居节点的Q-Table表。其中,信标数据包主要由节点的位置信息,速度信息以及max(Q-Value)。max(Q-Value)在学习过程中已经说明。为了能够保证更新的实效性,在实验中设定信标数据包的发送时延为[0.5,1]之间的随机数。其中,为Q-Table表规定了目的节点的有效时间。如果某一个目的节点的时间由于没有得到更新而超过规定的时间,则认为此目的节点失效,并删除其对应的一列数据。当由于车辆的移动导致出现网络分割时,RSAR在分割节点处采用carry-and-forward策略,同时启动路径请求定时器去广播R_req数据包,如果定时时间到时没有收到目的节点发来的R_rep数据包时,则认为目的节点不可达,同时通知源节点取消数据包的传输,否则从断裂处重新建立路由路径。本发明的优点和积极效果本发明主要设计了一种基于节点链路的可靠值作为一个参数应用Q-Learning算法的面向车联网的自适应可靠路由新方法,在本方法中,通过研究车辆的运动特点,研究了造成链路不可靠的因素,证明了链路的维持时间服从于对数正态分布。然后在其基础上建立了节点间链路可靠性计算模型。将评估节点间链路的可靠值作为一个参数应用在Q-Learning算法中,提出了RSAR路由算法。本方法对比其他三种方法在各种条件下均有着较高的包的递交率,而且有着很低的传输延时。【附图说明】图1是两种导致链路断裂的情况,a是两个车辆节点同向而行,b是两个车辆按照相反的方向行驶。图2是学习过程模型。图3是每一个节点中保存的到达目的节点G的Q-Table值。图4是路由建立流程图。【具体实施方式】本发明设计方法中,整个准备阶段与路由建立流程如图4所示。在发明设计方法中,通过研究车辆的运动特点,研究了造成链路不可靠的因素,证明了链路的维持时间服从于对数正态分布。然后在其基础上建立了节点间链路可靠性计算模型。将评估节点间链路的可靠值作为一个参数应用在Q-Learning算法中,提出了RSAR路由算法。本发明具体实施过程:第1、路由建立过程:第1.1、源节点以广播的形式向整个网络发送一个R_req数据包,并启动路径请求定时器,R_req在路由过程中记录着所经过的节点ID,当目的节点收到第一个来自源节点的R_req数据包时保存,并丢弃随后收到的重复数据包;第1.2、从R_req数据包中,将R_req数据包中所记录的ID信息抽取出来,翻转同时生成一个R_rep数据包,等待一个时隙后,以单跳广播的形式将R_rep数据包发送给翻转路径中记录的节点;第1.3、当记录的节点收到此数据包时,修改数据包的下一跳地址,更新其Q_Table表,并仍然以单跳广播的形式发送出去,其他目的节点收到修改后的数据包时只修改Q_Table表,然后丢弃该数据包,以此类推,直到R_rep被发送到目的节点,也就是R_req的源节点,源节点取消请求定时器,同时更新其Q_Table表,建立路由;第2、路由维护过程:第2.1、每一个节点周期性的去广播信标数据包来更新邻居节点的Q_Table,设定信标数据包的发送时延为[0.5,1]之间的随机数,Q_Table表规定了目的节点的有效时间,如果某一个目的节点时间由于没有得到跟新而超过规定的时间,则认为此目的节点失效,并删除此目的节点对应的一列数据;第2.2、当由于车辆的移动导致出现网络分割时,RSAR在分割节点处采用carry-and-forward策略,启动路径请求定时器去广播R_req数据包,如果定时时间到时没有收到目的节点发来的R_rep数据包时,则认为目的节点不可达,同时通知源节点取消数据包的传输,否则从断裂处重新建立路由路径。在本实施例上述技术方案中,车载网中的Q-learning算法思想:Q-Table表,每一个学习主题维护一张二维表,用来记录其所能够达到的目的节点地址以及一跳邻居节点的Q-Value的值,称这张二维表为Q-Table表,如表1所示。第一行代表所有可能到达目的节点表示ID,在这里用Di表示。第一列表示邻居节点N1之间的Q-Value值,Q-Table表是一个二维表的形式,其大小由邻居节点数目以及目的节点个数来决定。每一个车辆节点中存储有一张Q-Table表,节点间通过交换信标信息来更新各自的Q-Table表来完成学习任务。假设有如图1所示的车联网网络拓扑环境G={V,E}。其中V={A,B,C...H}表示车辆节点集,对于节点A来说,其状态空间SA为不包含A的所有节点组成的集合。学习任务被分配到了每一个车辆节点Agent中,而学习的过程主要是去更新Agent中的Q-Table表,也就是去更新Q-Value的状态活动对Q(s,a)(s∈S,a∈A)。标准的Q-Learning学习函数为公式所示,其中,Qs(d,x)为要更新的Q-Value值,s为本节点,x为其邻居节点,Nx为x的邻居节点,d为目的节点,R为奖励值,为到达目的节点d,本节点x与其邻居节点y的最大Q-Value值。其中,打折因子γ是一个重要的参数,根据以上公式我们知道其影响本节点进行一次活动获得的奖励值。随着不断收到邻居数据包,节点D通过不断修改其Q-Table表中保存的其与邻居节点的最大Q-Value值。当节点D要发送信标数据包时,其遍历保存的Q-Table表中的某一列,找出其与邻居节点最大的Q-Value值记录到信标数据包中发送出去。同以上过程类似,当节点A收到其邻居节点D发来的信标数据包时,抽取出最大的Q-Value值,并进行计算来更新QA(G,D),收到其他节点发来的信标数据包也做同样的处理。在本实例中,通过不断的进行数据包的交换,最终我们将得到如图3所示的结果。根据图3的运行结果,我们将很容易找到一条从A到G的最优路径,我们只需要找出具有最大Q-Value值的节点组成的路径即为最优路径。从图3中可以看出,A→B→E→G为具有最大Q-Value值的路径。因此其为我们选出的最优路径。当记录的节点收到此数据包时,修改数据包的下一跳地址,更新其Q_Table表,并仍然以单跳广播的形式发送出去,其他目的节点收到修改后的数据包时只修改Q_Table表,然后丢弃该数据包,以此类推,直到R_rep被发送到目的节点,也就是R_req的源节点,源节点取消请求定时器,同时更新其Q_Table表,建立路由。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1