Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

一种基于聚类算法的机会网络路由算法

何志立, 潘达儒, 宋晖

何志立, 潘达儒, 宋晖. 一种基于聚类算法的机会网络路由算法[J]. 华南师范大学学报(自然科学版), 2019, 51(4): 120-128. DOI: 10.6054/j.jscnun.2019076
引用本文: 何志立, 潘达儒, 宋晖. 一种基于聚类算法的机会网络路由算法[J]. 华南师范大学学报(自然科学版), 2019, 51(4): 120-128. DOI: 10.6054/j.jscnun.2019076
HE Zhili, PAN Daru, SONG Hui. An Opportunistic Network Routing Algorithm Based on Clustering Algorithm[J]. Journal of South China Normal University (Natural Science Edition), 2019, 51(4): 120-128. DOI: 10.6054/j.jscnun.2019076
Citation: HE Zhili, PAN Daru, SONG Hui. An Opportunistic Network Routing Algorithm Based on Clustering Algorithm[J]. Journal of South China Normal University (Natural Science Edition), 2019, 51(4): 120-128. DOI: 10.6054/j.jscnun.2019076

一种基于聚类算法的机会网络路由算法

基金项目: 

国家自然科学基金项目 61471175

国家自然科学基金项目 61771206

详细信息
    通讯作者:

    宋晖,讲师,Email:songhui@m.scnu.edu.cn

  • 中图分类号: TP393

An Opportunistic Network Routing Algorithm Based on Clustering Algorithm

  • 摘要: 在传统的历史路径算法的基础上,提出一种基于聚类算法的历史路径机会网络路由算法(RACA算法).该算法使用无监督学习中的k-means++算法对节点进行编码,并使用编码的方式更新历史路径算法,具有缓存空间占用低、节点搜索速度快和在拓扑结构多变的环境的适应性强等特点.实验结果表明:RACA算法在多个方面有着较好的表现,特别是在传输成功率和开销比率方面有较好的表现; 出色的网络性能表现使得RACA算法能够在资源有限的场景和网络环境变化较大的场景使用,例如车载网络环境.
    Abstract: A historical path routing algorithm of opportunistic network is proposed on the basis of clustering algorithm in order to optimize the traditional historical path algorithm. The algorithm uses the k-means++ algorithm in unsupervised learning to encode the nodes and uses the coding method to update the historical path algorithm. It is characterized by low cache space occupation, high node search speed and strong adaptability in the environment with varied topology. The experimental results show that the RACA algorithm has better performance in many aspects, especially in terms of delivery ratio and overhead ratio. The good network performance enables RACA algorithm to be used in scenarios of limited resources and changeable network environment, for example, the in-vehicle network environments.
  • 机会网络[1]是不需要通过基站干预而进行传输的网络形式,主要通过节点间的随机相遇来传递信息,在大多数情况下节点之间不存在完整的传输路径.该网络利用节点移动形成的通信机会逐跳传输信息,以“存储-携带-转发”的模型实现节点间通信[2].由于机会网络的特殊性及优秀的灵活性,该网络在很多极端环境下或者网络资源稀缺的环境下尤为适用.虽然机会网络有着上述的优势,但也正是此网络的传输形式导致了传输准确性的下降.为了确保信息能准确地到达目的节点,路由算法会发出多份相同的信息的副本来探索潜在的传输路径,从而导致网络中资源的浪费.在极端的情况下,还可能导致节点缓存的耗尽,从而更进一步降低网络的性能.

    在此之前,机会网络的路由算法被分为两大分支:一是基于转发策略的路由算法,二是基于复制策略的路由算法.基于转发策略的路由算法有Direct Delivery[3]、CAR[4]和Spray and Wait[5]等,这类路由协议规定网络中仅存在一个数据分组副本,优点在于极大地节省了网络资源.但是,有限的副本数也限制了网络其他性能的提高.基于复制策略的路由算法有Epidemic[6]、PRoPHET[7]和MaxProp[8]等,这类算法允许网络中存在多个副本,使得有用的消息到达目的节点的可能性更大,有效地提高机会网络的成功传输率和降低传输延时.但是,伴随着成功传输率的提高,网络资源的消耗也会进一步提高,严重的情况下有可能造成网络的崩溃.

    为了解决上述2类传统算法的局限性,学者们提出了多种优化方法.如:LI等[9]提出了基于多人合作博弈的机会网络算法,对多人合作博弈的纳什均衡进行求解,从而得到较优的转发策略; MAI等[10]提出了一种基于定向预测和虚拟交易的机会网络转发策略,在机会网络中实现了流量的卸载; YOON等[11]提出了使用inter-contact time策略寻找一个好的转发分组来转发消息,以尽可能地进行准确的消息传输,但是该算法只考虑了节点间的连接关系,并没有使用节点的其他特征; LIU等[12]提出了基于兴趣社区的机会网络路由算法,按照消息的社会属性来对消息进行转发,提高了信息的传输成功率,但需要事先定义社区的属性和信息的属性; ZHAO等[13]提出了基于SVM的路由算法,使用监督学习中的SVM算法来学习节点的转发行为,考虑到节点更多的属性,改进了文献[11]、[12]的算法; SHARMA等[14]提出基于决策树和深度神经网络的机会网络路由算法,该算法具有更强的拟合能力,当考虑到的节点属性维度很大时,该算法的拟合能力优于文献[13]的算法.

    以上所提算法大多是基于监督学习的方法.在对机会网络的转发行为进行学习前,基于监督学习的算法需要采集大量的先验知识,例如,已标定好的数据集.但采集这些数据既费时又低效.而无监督学习与监督学习的不同点在于:无监督学习不需要准备大量的先验知识就能进行学习,可免去采集先验知识的过程,而且基于k-means++算法的无监督学习模型学习的时间复杂度要低于监督学习模型.

    本文首次把无监督学习和历史路径算法结合,提出一种基于聚类算法的机会网络路由算法,该算法使用k-means++算法对节点进行编码,并使用Davies-Bouldin Index(DBI)[15]指数来衡量聚类算法的聚类效果,从而根据DBI指标来确定合适的聚类点个数.最后,使用k-means++算法对历史路径进行编码,从而增强历史路径算法对拓扑结构多变的网络环境的适应性.

    k-means算法[16]的思想很简单:对于给定的样本集,按照样本之间的距离大小,将样本集划分为k个簇.让簇内的点尽量紧密地聚合在一起,而让簇间的距离尽量大.假设簇划分为{C1, C2, …, Ck},则目标是最小化平方误差E

    E=ki=1x?Cixμi22, (1)

    其中,μi是簇Ci的均值向量,也称为质心,其表达式如下:

    μi=1|Ci|xCix. (2)

    直观来看,式(1)在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高.但是,最小化式(1)并不容易,找到它的最优解需考察样本集D所有可能的簇划分,这是一个NP难问题[17].因此,k-means算法采用了启发式的策略,通过迭代优化来近似求解式(1).

    k-means算法首先随机选择k个样本作为初始化的质心,然后通过迭代不断调整k个质心的位置,其具体流程见算法1.

    算法1  k-means算法

    Step 1.输入样本集D={x1, x2, …, xm},聚类的簇数k,最大迭代次数N; 簇划分C={C1, C2, …, Ck}.

    Step 2.从数据集D中随机选择k个样本作为初始的k个质心向量:{μ1, μ2, …, μk}.

    Step 3.对于n=1, 2, …, N

    a) 将簇划分C初始化为Ct=Ø(t=1, 2,…,k);

    b) 对于i=1, 2, …, m

    计算样本xi和各个质心向量μj(j=1, 2, …, k)的距离:dij=‖xi-μj22,并记下最小的距离dij;

    c) 将样本xi标记为最小距离dij所属的类型,得到xi对应的类别λi.此时,更新Cλi=Cλixi;

    d) 对于j=1, 2, …, k

    Cj中所有的样本点重新计算新的质心μi=1|Ci|xCix;

    e) 如果所有的k个质心向量都没有发生变化,则转到Step 4.

    Step 4.输出簇划分C={C1, C2, …, Ck}.

    k-means++算法[18]是对k-means算法的一种优化,是一种高效的无监督学习算法. k-means算法在开始阶段随机选取数据集中k个点作为聚类点,而k-means++算法改进了k-means算法启动时随机选点的策略.改进的原理如下:

    (1) 假设已经选取了n(0<nk)个初始聚类中心,则在选择第n+1个聚类中心时,距离当前n个聚类中心越远的点会有更高的概率被选中为第n+1个聚类中心.

    (2) 在选取第1个聚类中心(n=1)时同样通过随机的方法.

    k-means++算法的具体流程见算法2.

    算法2  k-means++算法

    Step 1.从输入的数据点集合中随机选择1个点作为第1个聚类中心μ1.

    Step 2.对于数据集中的每一个点xi,计算它与已选择的聚类中心中最近聚类中心的距离D(xi)=argmin‖xi-μr22r=1, 2, …, kselected.

    Step 3.选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点.

    Step 4.重复Step 2和Step 3,直到选择出k个聚类质心.

    Step 5.得到质心后,从算法1的Step 3开始执行.

    本节首先提出一种基于DBI指数的最佳聚类点个数确定算法,该算法将有助于找到合适的聚类点个数,从而提高k-means++算法的分类准确性; 然后提出一种基于k-means++聚类的历史路径算法,以提高机会网络路由算法的效率及传输准确度.

    在使用k-means++算法前,需要确定算法聚类点的个数,聚类点的个数对聚类的效果有着直接的影响.如果设置分类个数与节点数目相等,则该分类的结果与节点ID的意义是一样的.因为每个类别中只有特定的一个节点,所以,可以认为聚类的效果等同于节点ID的作用.如果把分类个数设置为1,那么分类的效果就是把所有的节点都分为一类,这样就失去了分类的意义.使用聚类算法的目的是根据节点的各项属性将节点分为有限多个类,从而用这些类别对每个节点进行编码,通过这些编码来代替节点ID的作用.这样做的好处在于可以使用有限的维度来表示无穷多的节点,当一个新的节点加入到机会网络中时,聚类算法可以立即给它分配一个编码(分到一类中).从而立即知道新加入的这个节点与哪些节点是类似的,为接下来的转发策略提供决策依据.

    所以,编码的维度(类别的个数)是决定这聚类效果的很关键的因素.下面使用一个具体的例子来说明这个问题.为了仿真日常的环境,把仿真环境划分为3个区域,并且假定每个节点都在自己所属区域内随机移动.

    由仿真地图(图 1)可以看出:节点主要分布在图中的3个椭圆形区域,并在这3个区域内随机移动.下面使用k-means++算法来学习仿真地图(图 1)的节点移动规律:选用节点的坐标属性作为k-means++算法的分类维度,从仿真开始记录每个节点每时每刻的坐标信息直到仿真结束,将得到的数据制作成k-means++算法的数据集.

    图  1  节点的分布区域示意图
    注:红黄绿三区分别代表节点不同的区域分类.
    Figure  1.  The node distribution in a simulation environment

    对比仿真地图(图 1)和k-means++算法分类结果图(图 2),可以发现:使用k-means++分类后的节点所呈现的区域属性跟实际区域划分是十分相近的; 如果只考虑节点的坐标属性,k-means++能够较好地对节点进行分类,而且分类效果十分显著.

    图  2  进行节点分类后的结果
    注:每种颜色表示同一类的节点.
    Figure  2.  The results from k-means++ classification

    为了充分刻画节点间的区别,使节点的分类更加精细,还可以加入更多的节点属性维度,例如,坐标属性、缓存大小和能量大小等.考虑到坐标属性能够被直观展示,所以,k-means++算法的分类只考虑了节点的坐标属性.如果把k-means++算法的分类个数设置为5,那么k-means++算法的分类效果有所下降.可见,分类的个数问题的设置也是一个至关重要的问题.

    在分类个数的评估上,本文使用DBI来衡量分类个数是否合适. DBI由两部分组成的:第一部分是簇内距离Si; 第二部分是簇间距离Mi.簇内距离Si的定义如下:

    Si=(1TiTij=1|xjAi|p)1p, (3)

    其中,AiCi类的中心点; Ti是属于第i类的样本点的个数; xj为第j个样本; p为常数,可根据p值选择数据点之间距离的衡量方式.而当p=2时,式(3)使用欧氏距离来衡量簇间差距,因此,本文选择p=2.

    簇间距离Mi的定义为:

    Mi,j=AiAjp=(nk=1|ak,iak,j|p)1p, (4)

    其中,ak, iAi的第k个元素.

    Ri, j衡量了第i类和第j类的分类效果:

    Ri,j=Si+SjMi,j. (5)

    由式(5)可知Ri, j受到簇内距离S和簇间距离M的共同影响. DBI的表达式如下:

    Di=max (6)
    {\rm{DBI}} = \frac{1}{N}\sum\limits_{i = 1}^N {{D_i}} . (7)

    最小的DBI值对应的分类个数即为最佳的分类个数.由不同分类个数的DBI值(图 3)可知:当分类个数为4时,分类的结果较为合理.

    图  3  不同分类个数下的DBI值
    Figure  3.  The DBI values for different classification numbers

    根据不同的分类个数进行聚类实验,分类效果如图 4所示.由图 2图 4可知:将分类个数设定为4的确是比较合理的.

    图  4  不同分类个数的分类效果
    注:每种颜色表示同一类的节点.
    Figure  4.  The results from different classification numbers

    为了确保分类个数的准确性,需要每隔一段时间运行DBI评估算法以确定最佳的分类个数.

    对网络中的节点进行聚类需要大量的节点状态信息,由于网络的拓扑状况是时刻变化的,得到的聚类中心是有时效性的,聚类算法需要进行定期更新以增强它对整个网络的适应性.在这种情况下,运行聚类算法的载体需要较大的缓存空间,或者需要较强的运算能力和稳定的网络状态,又或者需要较大的覆盖范围和有稳定的能源供应才能保证算法的正常更新.因此,通常会优先考虑基站作为运行该算法的节点.如果该区域内没有基站,那么可以指派一个能量稳定且运算能力强的节点负责运行k-means++算法.相比于深度神经网路,k-means++算法的训练需要消耗的资源较少,算法的时间复杂度也相应较低.

    选择合适的运行节点并且训练完成后,运行节点需要将训练好的新的分类中心点以广播的方式分发到各个节点.接收到新的中心点后,各个节点就可以根据该中心点来对历史路径中的节点进行编码.这时候,k-means++算法的另一个优点将会展现:相比于决策树或者深度神经网络,节点需要接收的新参数极少,而不会像深度神经网络动辄几千万甚至数亿的参数量.聚类算法的参数更新后便于在网络中传播,也就是说,参数在传播时占用极少的网络资源.

    本文提出的路由算法是一种基于历史转发记录的路由算法,该算法的原理是记录每一条成功转发的路径,成功转发路径是由成功转发的消息所经过的节点组成.算法通过判断下一跳节点是否在已有的成功转发路径记录中来做出转发决策,如果在,则转发.每个节点需要维护这样的一张表格:表格中的每个单元记录一个目的节点的所有成功传输路径.当进行消息的转发判断时,源节点首先提取被转发消息的目的节点,再得到与它建立连接的潜在转发节点集.节点在表格中检索目的节点单元,提取到目的节点单元后,遍历潜在转发节点集,检索每一个潜在转发节点是否在成功转发路径中.如果在,则把这个潜在转发节点视为可以转发的节点,把被转发消息转发到这个转发节点中.

    在提出的历史路径算法中,算法记录的是节点的编号.如果使用节点的ID来作为节点的编号,那么算法只能根据历史的成功转发路径来进行消息的转发.使用k-means++算法对节点进行分类编码后,每个类别代表的是一类的节点,而不是某一个特定的节点,算法的适应性将变得更强.当有新的节点加入到网络系统时,算法也能够根据编码后的历史成功转发记录来判断是否应该把消息转发到这一个转发节点中.另一方面,使用聚类算法对节点进行编码后,历史的成功转发记录集合将会变得更加小,占用节点的空间大小降低,检索速度也会相应提升.

    由成功转发记录的更新示意图(图 5)可知:每个节点需要维护这样的一个表格:表格中含有单元J和单元K,分别记录着目的节点为J和目的节点为K的成功转发记录.

    图  5  成功转发记录的更新示意图
    注:Ni为更新前编号为i的节点,Ci为更新后编号为i的节点.
    Figure  5.  The update process of successful transmission records

    下面介绍历史路径的更新过程,基于聚类的历史路径算法流程如算法3所示.

    算法3  基于聚类的历史路径算法

    if聚类中心需要更新且节点是算法2的运行节点then

    使用算法2更新聚类中心点,更新完成后广播聚类中心点参数

    end if

    if运行节点收到一个新的成功转发记录rd then

    使用聚类算法重新编码新的成功转发记录rd; 检索单元中是否有相同的记录,如果无,则把编码后的记录存放到相应的单元中; 如果有,则跳过

    end if

    if存在建立连接的邻节点then

    for邻节点nj, j=1, 2, …, n//邻节点nj为与源节点建立的连接的节点,n为邻接点个数

    for消息mi, i=1, 2, …, k//消息mi为源节点中的消息,k为源节点消息的条数

    查询源节点的表格,检索单元为mi的目的节点中是否有邻节点nj的成功转发记录,如果有,则把消息转发到邻节点nj; 如果无,则跳过

    end if

    k-means++算法的运行节点每隔一段时间更新聚类中心点,再把新的聚类中心点广播到整个网络.每个节点使用这个聚类中心点来对成功转发记录进行编码.当一条消息被成功地转发到目的节点时,目的节点会向整个网络广播这一条转发路径.当其他节点接收到广播的新的成功转发路径时,使用聚类中心来对这条路径进行编码,并且更新到自身的表格.当节点存在建立连接的邻节点时,节点把自身视为源节点,遍历自身所携带的消息,并且根据本地的历史记录表格判断消息能否被转发到该邻节点上.

    k-means++算法、最佳聚类点确定算法和基于聚类的历史路径算法共同构成了RACA算法.

    由RCAC算法的系统结构示意图(图 6)可知:机会网络的系统结构由移动模型、连接模型和节点模型组成,RACA算法作用于连接模型,负责收集连接模型和节点模型的状态或信息,通过无监督学习来拟合移动模型和连接模型之间的关系,从而给出作用在连接模型上的转发策略.该算法采用传统的历史路径算法的思路, 通过记录成功的转发路径来指导接下来的转发.为了适应拓扑多变的环境,RACA算法使用k-means++算法对传统的历史路径算法进行优化,思路是使用k-means++算法对节点进行聚类,然后使用类别来对节点进行编码,从而提高历史路径算法在拓扑多变的网络环境的适应性.为了使得k-means++算法的聚类点个数更加合理,本文使用基于DBI指数的聚类点确认算法来确定合适的聚类点个数; 再结合本文提出的历史路径算法提高机会网络路由算法的环境适应性,从而提高机会网络的性能.

    图  6  系统结构示意图
    Figure  6.  The structure of the system models

    本节将对比基于聚类的历史路径算法及基于转发策略、基于复制策略、基于有监督学习的路由算法的仿真实验结果,根据消息的成功传输率、平均延时和开销比率等多个性能指标分析各算法的优缺点.

    本文采用机会网络the One仿真器[19-20]对机会网络进行仿真,选用HelsinkiMedium为实验仿真地图,地图的大小为10 000 m*8 000 m.为了尽可能地模拟真实环境中节点的移动,将实验地图分为相交的3个区域,节点分别在这3个区域内随机移动,每个区域布置60个实验节点; 设置线路连通这3个区域,线路上布置12个实验节点.在仿真参数设置上,每条消息的生存时间(TTL)为300 min,数据包的传输速度为250 kBps, 消息的大小为0.5~1 MB,消息产生的时间间隔为100 s,节点的缓存大小为1~10 MB,实验的仿真时间设为12 h.

    在评价指标上,采用能够明显反映机会网络性能的指标:消息的成功传输率、平均传输延时、开销比率、平均缓存时间及路由算法的平均跳数、网络率.这些指标的定义如下:

    (1) 成功传输率=Nd/Nc,其中,Nd为到达目的节点的消息总数,Nc为环境中产生的消息总数.

    (2) 平均传输延时=\left( {\sum\limits_{i = 1}^{{N_d}} {\left( {{T_{i, d}} - {T_{i, c}}} \right)} } \right)/{N_d}, 其中,Ti, d为消息i到达的时间,Ti, c为消息i被创建的时间.

    (3) 开销比率=(Nr-Nd)/Nd, 其中,Nr为所有消息被转发的次数.

    (4) 平均缓存时间=\left( {\sum\limits_{i = 1}^{{N_m}} {{T_i}} } \right)/{N_m}, 其中,Nm为所有在缓存中出现过的消息总数,Ti为对应的第i个消息在缓存中的停留时间.

    (5) 路由算法的平均跳数指的是消息从源节点到达目的节点的平均路径长度.

    (6) 路由算法的网络率=\frac{{平均延时}}{{成功传输率 \times 100}}.

    在对比实验中,本文选择Epidemic、MaxProp、Spray and Wait、PRoPHET和MLProph算法作为对比算法,其中,MaxProp算法是一种基于缓存管理的路由算法; PRoPHET算法是一种根据节点相遇概率来转发消息的路由策略; MLProph算法是一种基于深度神经网络的有监督学习路由算法,该算法使用深度神经网络来预测消息转发的概率,从而提高消息转发的精确性; 基于聚类的机会网路路由算法(RACA算法)是一种高效的基于无监督学习的机会网络路由算法.

    由各算法的传输成功率(图 7)可知:(1)随着节点的缓存增大,各算法的传输成功率都有相应的提高. (2)Epidemic算法是一种基于泛洪的算法,但是在实验中的表现却不理想.理论上,在缓存充裕的情况下,Epidemic算法的传输成功率应是最高的,但由于本实验环境中节点的缓存较小,从而造成节点为了接纳新的消息而删除了存储在节点缓存中时间较长的消息,而被删除的消息有可能是未来可以到达目的节点的消息.这样的消息误删导致了Epidemic算法在缓存大小为3~6 MB时的传输成功率低于Spray and Wait算法; 缓存大小为1~10 MB时,该算法的成功传输率明显低于RACA算法和MaxProp算法. (3)缓存大小为2~10 MB时,RACA算法的成功传输率最高,其中,当缓存大小为10 MB时,该算法的成功传输率高达40.79%;而缓存大小为1 MB时,MaxProp算法的成功传输率最高.

    图  7  缓存大小对成功传输率的影响
    Figure  7.  The impact of cache size on delivery ratio

    图 8可知:MaxProp算法的传输延时最短,其次是RACA算法.究其原因为:MaxProp算法是一种基于缓存管理的算法,该算法会删掉一些传输时间较长的消息,从而得到较低的传输延时,但是,这样的策略有可能导致一些原本有可能到达的消息被误删,从而降低了消息的成功传输率.

    图  8  缓存大小对传输延时的影响
    Figure  8.  The impact of cache size on delivery latency

    机会网络的开销比率是机会网络的一个重要的性能指标,反映了机会网络路由算法的效率.由各算法的开销比率(图 9)可知:(1)Epidemic算法的开销比率最高.原因在于:Epidemic算法是一种基于泛洪的路由算法,消息的转发是不加限制的,消息的转发次数越多,开销比率也就越大. (2)Spray and Wait算法的开销比率最低.原因在于:Spray and Wait算法是一种基于转发的机会网络路由算法,由于该算法严格限制了消息的复制次数,所以开销比率能够一直保持在一个很低的水平. (3)RACA算法的开销比率仅次于Spray and Wait算法.这得益于RACA算法的有效的转发机制,在保证高的成功转发率的同时保证了较低的开销比率.

    图  9  缓存大小对开销比率的影响
    Figure  9.  The impact of cache size on overhead ratio

    平均缓存时间反映了消息逗留在节点缓存中的时间长短,也从侧面反映了算法对消息操作的频繁程度.由各算法的平均缓存时间(图 10)可知:(1)Spray and Wait算法的缓存时间较长.原因在于:该算法在消息的整个生命周期只对消息执行有限次数的复制,使得消息停留在节点缓存中等待转发,导致缓存时间较长. (2)Epidemic算法的缓存时间较短.原因在于:消息不断地被复制,但是,节点的缓存是有限的,消息占满了节点的缓存,多余的消息会被不断地删除,从而导致消息在缓存中不断地更新,每个消息在缓存中持续时间短.

    图  10  缓存大小对缓存时间的影响
    Figure  10.  The impact of cache size on buffer time

    平均跳数反映的是消息从源节点转发到目的节点的路径的平均长度,也是反映算法性能的指标.由各算法的平均跳数(图 11)可知:Spray and Wait算法的平均跳数最小,这是因为该算法是一种限制消息复制次数的算法,使得消息的传输路径长度被限制为一个固定的长度; Epidemic算法在缓存较大时的平均跳数最大,这是因为该算法是一种泛洪的转发策略,消息被随意地复制、转发,这就使得一些转发路径中的某几段路径重复出现,导致该算法转发相同的消息需要更长的时间; RACA算法的平均跳数较大,主要原因为:该算法是根据消息的历史路径来转发消息的,在算法运行的初期,消息的转发路径没有达到最优,导致消息的转发路径较长.

    图  11  缓存大小对平均跳数的影响
    Figure  11.  The impact of cache size on average hop count

    网络率是考虑成功传输率和传输延时的综合性能指标.在机会网络的考虑指标中,成功传输率和传输延时是2项非常重要的指标,好的算法应当有较高的传输成功率及较低的传输延时.由各算法的网络率(图 12)可知:RACA算法与MaxProp算法的网络率几乎相同,均较低,表明了2个算法均有最优的机会网络综合表现.而RACA算法的网络率较低的原因在于:(1)该算法能够依靠无监督学习对历史路径进行编码,从而精确地指导消息的转发. (2)该算法能够在缓存资源有限的情况下,提高网络的成功传输率和降低传输延时.

    图  12  缓存大小对网络率的影响
    Figure  12.  The impact of cache size on network ratio

    本文提出了一种基于聚类的机会网络路由算法(RACA算法),该算法使用无监督学习中的聚类算法来对节点的编码进行优化,减少了节点的表示状态的数量,也增强了算法对环境的适应能力; 该算法是一种基于历史路径的算法,可以与基于内存管理的路由算法结合使用.实验结果表明:RACA算法在传输成功率及传输延时方面都存在优势.在接下来的研究中,将进一步优化节点的聚类算法,以加强聚类算法对环境的适应性.另外,还可以把RACA算法嵌入到其他路由算法中,以结合各算法的优势,从而进一步提升机会网络路由算法的性能.

  • 图  1   节点的分布区域示意图

    注:红黄绿三区分别代表节点不同的区域分类.

    Figure  1.   The node distribution in a simulation environment

    图  2   进行节点分类后的结果

    注:每种颜色表示同一类的节点.

    Figure  2.   The results from k-means++ classification

    图  3   不同分类个数下的DBI值

    Figure  3.   The DBI values for different classification numbers

    图  4   不同分类个数的分类效果

    注:每种颜色表示同一类的节点.

    Figure  4.   The results from different classification numbers

    图  5   成功转发记录的更新示意图

    注:Ni为更新前编号为i的节点,Ci为更新后编号为i的节点.

    Figure  5.   The update process of successful transmission records

    图  6   系统结构示意图

    Figure  6.   The structure of the system models

    图  7   缓存大小对成功传输率的影响

    Figure  7.   The impact of cache size on delivery ratio

    图  8   缓存大小对传输延时的影响

    Figure  8.   The impact of cache size on delivery latency

    图  9   缓存大小对开销比率的影响

    Figure  9.   The impact of cache size on overhead ratio

    图  10   缓存大小对缓存时间的影响

    Figure  10.   The impact of cache size on buffer time

    图  11   缓存大小对平均跳数的影响

    Figure  11.   The impact of cache size on average hop count

    图  12   缓存大小对网络率的影响

    Figure  12.   The impact of cache size on network ratio

  • [1] 胡四泉, 红兵, 俊峰.机会型网络研究综述[J].计算机科学, 2009, 36(10):32-37. doi: 10.3969/j.issn.1002-137X.2009.10.008

    HU S Q, HONG B, JUN F. Survey on opportunistic networks[J]. Computer Science, 2009, 36(10):32-37. doi: 10.3969/j.issn.1002-137X.2009.10.008

    [2] 熊永平, 孙利民, 牛建伟, 等.机会网络[J].软件学报, 2009, 20(1):124-137. http://d.old.wanfangdata.com.cn/Periodical/rjxb200901010

    XIONG Y P, SUN L M, NIU J W, et al. Opportunistic networks[J]. Journal of Software, 2009, 20(1):124-137. http://d.old.wanfangdata.com.cn/Periodical/rjxb200901010

    [3]

    MUSOLESI M, HAILES S, MASCOLO C. Adaptive routing for intermittently connected mobile ad hoc networks[C]//Proceedings of the Sixth IEEE International Symposium on World of Wireless Mobile and Multimedia Networks. Washington: IEEE, 2005: 183-189.

    [4]

    NAUMOV V, GROSS T R. Connectivity-aware routing (CAR) in vehicular ad-hoc networks[C]//Proceedings of the 2007-26th IEEE International Conference on Compu- ter Communications. Washington: IEEE, 2007: 1919-1927.

    [5]

    SPYROPOULOS T, PSOUNIS K, RAGHAVENDRA C S. Spray and wait: an efficient routing scheme for intermittently connected mobile networks[C]//Proceedings of the 2005 ACM SIGCOMM Workshop on Delay-Tolerant Networking. New York: ACM, 2005: 252-259.

    [6]

    VAHDAT A, BECKER D. Epidemic routing for partially connected ad hoc networks: Technical Report CS-200006[R]. Durham: Duke University, 2000.

    [7]

    LINDGREN A, DORIA A, SCHELÉN O. Probabilistic routing in intermittently connected networks[C]//ACM SIGMOBILE Mobile Computing and Communications Review. New York: ACM, 2003, 7(3): 19-20.

    [8]

    BURGESS J, GALLAGHER B, JENSEN D D, et al. MaxProp: routing for vehicle-based disruption-tolerant networks[C]//Proceedings of the 25th IEEE International Conference on Computer Communications. Barcelona: IEEE, 2006: 1-11.

    [9]

    LI L, QIN Y, ZHONG X. A novel routing scheme for resource-constraint opportunistic networks:a cooperative multiplayer bargaining game approach[J]. IEEE Transactions on Vehicular Technology, 2016, 65(8):6547-6561. doi: 10.1109/TVT.2015.2476703

    [10]

    MAI L, PAN D, SONG H, et al. A T2T-based offloading method:virtual bank with movement prediction[J]. IEEE Access, 2018, 6:16408-16422. doi: 10.1109/ACCESS.2018.2801022

    [11]

    YOON J, KIM S K, LEE J Y, et al. An enhanced friendship-based routing scheme exploiting regularity in an opportunistic network[C]//Proceedings of the 2016 IEEE International Conference on Internet of Things(iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber, Physical and Social Computing (CPSCom) and IEEE Smart Data(SmartData). Chengdu: IEEE, 2016: 51-57.

    [12]

    LIU Q, HU C, LI Y, et al. An interest community routing scheme for opportunistic networks[C]//Proceedings of the 2013 IEEE Global Communications Conference. Atlanta: IEEE, 2013: 4366-4371.

    [13]

    ZHAO L, LI Y, MENG C, et al. A SVM based routing scheme in VANETs[C]//Proceedings of the 2016 16th International Symposium on Communications and Information Technologies. Qingdao: IEEE, 2016: 380-383.

    [14]

    SHARMA D K, DHURANDHER S K, WOUNGANG I, et al. A machine learning-based protocol for efficient routing in opportunistic networks[J]. IEEE Systems Journal, 2018, 12(3):2207-2213. doi: 10.1109/JSYST.2016.2630923

    [15]

    DAVIES D L, BOULDIN D W. A cluster separation mea-sure[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1979(2):224-227.

    [16]

    AGARWAL P K, MUSTAFA N H. k-means projective clustering[C]//Proceedings of the Twenty-third ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems. New York: ACM, 2004: 155-165.

    [17]

    ALOISE D, DESHPANDE A, HANSEN P, et al. NP-hardness of euclidean sum-of-squares clustering[J]. Machine Learning, 2009, 75(2):245-248. doi: 10.1007/s10994-009-5103-0

    [18]

    ARTHUR D, VASSILVITSKⅡ S. k-means++: the advantages of careful seeding[C]//Proceedings of the Eighteenth Annual ACM-SIAM Symposium on Discrete Algorithms. New York: ACM, 2007: 1027-1035.

    [19]

    KERÄNEN A, OTT J, KÄRKKÄINEN T. The ONE simulator for DTN protocol evaluation[C]//Proceedings of the 2nd International Conference on Simulation Tools and Techniques. Brussels, Belgium: ICST, 2009: 55.

    [20]

    KERANEN A. Opportunistic network environment simulator[R]. Finland: Helsinki University of Technology, Department of Communications and Networking, 2008.

  • 期刊类型引用(4)

    1. 郝兵,曹海英. 低延迟高效率的机会网络编码扩展算法. 计算机工程与设计. 2022(03): 654-660 . 百度学术
    2. 张瑶. 车联网环境下基于机会网络的可信路由模型. 计算机系统应用. 2021(03): 214-220 . 百度学术
    3. 齐琪琪,崔学荣,及美琪,徐彤. 基于到达时间优先的分块传输路由协议. 信息技术. 2021(08): 1-5+11 . 百度学术
    4. 马健. 基于改进的K-means算法初始化方法研究. 云南民族大学学报(自然科学版). 2020(03): 274-278 . 百度学术

    其他类型引用(3)

图(12)
计量
  • 文章访问数:  2040
  • HTML全文浏览量:  692
  • PDF下载量:  49
  • 被引次数: 7
出版历程
  • 收稿日期:  2019-03-04
  • 网络出版日期:  2021-03-21
  • 刊出日期:  2019-08-24

目录

/

返回文章
返回