第三章

基于地理信息的路由算法

背景:为了提高消息成功投递的可能性,一种普遍受认可的方式是采用基于洪泛的多副本策略,通过引入更多的消息副本,增大消息与目的节点相遇的机会。为了实现消息的受控洪泛,减少消息冗余的程度,许多研究学者都在尝试捕获全局网络拓扑知识或者额外的辅助信息。但是在间断性连接的容迟网络中,很难实时更新和维护整个网络的拓扑知识,即使在个别应用场景中,能够获得这些信息,也要付出很高的代价。与捕获全局拓扑知识相比,只获取局部信息的地理路由则可以有效避免这些不足。
地理路由只需要保存自己及周围邻居节点的位置信息,几乎不需要其他的额外信息,因此算法开销较少。从信息的可获得性和可靠性考虑,节点的地理位置信息可以很容易地通过GPS定位系统或者相关的定位算法获得。
研究原因:在实际的挑战性环境中,地理路由不可避免地受到一定程度的限制。由于网络节点部署不均匀或者是部分节点由于故障或者能量耗尽而失效,还有一些环境如沼泽、 水塘等会形成天然的“空洞”。在依据地理路由转发消息的过程中,数据包可能会到达没有任何邻居节点比自身更接近目的节点的区域,导致消息无法继续传输,影响了消息的成功投递。

相关研究

地理路由算法分类

  1. 基于平面化拓扑结构的地理路由
    此类地理路由是基于网络平面的转发路由,即通过将网络平面化,形成由节点组成的不存在交叉的面,进而借助此平面化图的支持进行消息转发。
    GPSR(greedy perimeter stateless routing)协议是一种典型的基于平面化的地理路由。在路由初始阶段,消息转发采用贪婪转发,当遇到路由空洞时,从当前节点开始进入边缘转发。GPSR按照右手法则进行边缘转发,选择顺时针或者逆时针方向沿着面转发消息。若转发时遇到一个较大的面,一旦选错了转发方向,就可能比选择正确方向的路径多出较多的跳数。
    所以GLNFR (greedy and local neighbor face routing)是一种新型的用于发现移动节点间通信路径的路由协议,它利用局部构造法进行Delaunay三角剖分,保证节点间消息的顺利传输,对网络变化具有更好的可扩展性和适应性。

  2. 基于特征节点的地理路由
    在某些应用环境中,当节点无法精确地获得自身地理位置信息或者GPS定位系统不能正常工作时,地理路由往往需要一些特征节点进行辅助。
    GLIDER (gradient landmark-based distributed routing)协议是一种典型的基于特征节点的地理路由。它通过信标节点辅助完成路由。信标节点是一些经过选择的特殊节点,它们知道自己的地理位置信息,而且均匀地分布在整个网络中。GLIDER通过这些分散性较好的信标节点构造网络的全局拓扑,并且以信标节点为中心将网络划分为不同的小区域,进而构成网络的局部拓扑。
    路由选择的时候,首先寻找本地信标节点到目的信标节点的路径,当消息到达目的信标节点后,通过局部贪婪或者洪泛将消息传递给目的节点。

  3. 基于拓扑特性的地理路由
    地理路由除了使用特征节点外,还可以利用节点的拓扑特性获得自身地理位置信息。
    一般通过构造生成树、亏格嵌入、定位边界等方法,建立具有拓扑特征的结构来辅助地理路由。GEM (graph embedding)是一种适用于数据中心存储方式的基于拓扑特征的地理路 由。其基本思想是建立一个虚拟极坐标系统,网络中的每个节点形成一个以汇聚节点为根的带环树,每个节点用到树根的跳数和角度范围来表示,节点间的消息路由通过这个带环树来实现。在消息转发过程中,如果目的节点的角度不在自己的角度范围内,就将消息传递给父节点,父节点按同样的方法处理,直到消息到达源节点或者目的节点。

  4. 地理位置信息辅助的多策略路由
    此类路由策略在利用节点位置信息辅助转发消息的同时,还采取其他路由措施如效用信息、能量感知、限制副本等,进一步优化路由性能。

基于邻居节点位置信息的受控传染路由算法

  1. 动机及网络模型假设
    背景:由于拓扑变化的频繁以及高时延链路,维护和更新一张路由表是极其困难的,其原因是频繁的拓扑变化以及高时延会使得拓扑更新信息难以分发,从而降低该类路由算法的实用性。从消息的时效性以及易得性方面来考虑,一跳邻居信息较为可靠。首先,节点可以依靠周期性发送广播包以探测其邻居节点,并可在其中包含自身信息以通知其邻居节点。邻居节点可用携带信息的数据包予以响应。
    网络模型做出如下假设:
    (1)每个节点装有局部定位系统,节点能够获取自身的位置信息。
    (2)当节点互相进入通信范围时,通过交换位置信息,能够获取对方的位置信息。
    (3)位置信息只经过一跳即可到达邻居节点,因此忽略消息传递的时延。
    (4)位置信息只在一跳邻居内传染,不会扩散到整个网络。并且相比于普通消息数据,位置信息具有更高的优先级。
    (5)只有一跳邻居的信息可以被实时获得并利用,不假设任何已知的关于目的节点的信息,包括目的节点的坐标。
    LCE两条准则:
    (1)节点应该有目标的选择下一跳
    (2)节点也需要做出有一定风险的选择, 即在一定程度上放宽对副本数量的限制。
    中继节点的选择
    当可用邻居节点数目小于2个,可以推测网络节点的分布可能较稀疏。此时遵循准则中的第二条,向两个邻居节点都传递消息的副本,
    当可用的邻居节点数目大于2个时,遵循第一条准则,对周围所有可用的邻居节点进行选择。尽可能选择与当前节点形成张角最大的两个节点,以实现副本的扩散投递。并用余弦值作为衡量标准,当其差值在£之内时,我们则转而优先考虑距离因素。

  2. LC-Epidemic路由协议描述
    LCE算法釆用的受控传染策略是,当可用节点的数目小于2个时,采用传统的传染病算法,以增大消息的并行性。若可用节点的数目大于两个,为了节省网络中的缓存资源,降低能耗,采用上述介绍的下一跳选择算法,对可用节点列表AvailableHostsList进行过滤,筛选出两个节点传染消息。当传递操作结束后,向路由进程返回MSG_SENT信号。

1When节点i从节点j收到hello_msg {
2 neighborsTable.update (j, time_now)//更新其一跳邻居表neighborTable
3 messageSend (j,hello_response)// 通知邻居节点j更新操作已结束,
4}
5When节点i从节点j收到hello_response{//收到hello response消息,进行更新
6 neighborsTable.update (j, time_now)
7}
8When新消息data_msg从节点j到达节点i {
9 neighborsTable.update (j, time_now)
10    if ( messageQueue.exist (data_msg) ){  //检查数据消息data_msg是否已在其队列当中
11        丢弃 data_msg
12        return MSG_DROPPED
13    }
14    messageQueue.add (data_msg)
15    messageQueue.sort (increase, TTL)   //根据消息剩余生存时间的增序对消息队列进行排序
16    AvailableHostsList=getHostsFrom (neighborsTable)  //从邻居表中读取所有可用邻居节点的信息
17    if ( AvailableHostsList.length()<= 2 ) (
18        messageSend (AvailableHostsList, messageQueue)
19    }
20    else{
21        BestHostsList=filterHostsList (AvailableHostsList)    //对列表进行过滤,筛选出两个节点传染消息
22        messageSend (BestHostsList, messageQueue)
23    }
24    return MSG_SENT
25}

将 LC-Epidemic 与 Epidemic、Binary Spray & Wait、First Contact (FC)三个算法进行比较,分析相关算法的性能。主要的路由评估指标有消息投递率、平均时延、网络负载和平均跳数。

(1)消息产生时间间隔下
消息投递率:,LC-Epidemic是基于洪泛算法,其目的是最大化副本数量以增加投递率,故能够达到与Epidemic相当的较高的消息投递。First Contact算法取得较低的投递率;Binary Spray & Wait算法的投递率最低。
端到端平均时延:Epidemic无疑具有最低的端到端平均时延,因为其最大化利用了所有网络可用资源。LC-Epidemic的平均时延比Epidemic约高4倍,但仍然大大低于其他两种算法。在消息产生间隔小于20s时,由于缓存资源受限,Binary Spray & Wait和First Contact的表现要好于基于洪泛的Epidemic以及LC-Epidemic算法。随着消息产生间隔的持续增大, 固定时间内的副本数量不断减少,Epidemic和LC-Epidemic的消息端到端平均时延迅速下降,当消息产生间隔时间大于30s时,节点的缓存已不再是限制路由性能表现的瓶颈因素。Epidemic和LC-Epidemic与其他两种算法一样,端到端平均时延趋于稳定。

结果:在消息产生间隔小于30s时,缓存资源是路由性能表现的瓶颈因素,此时LC-Epidemic能够保证和Epidemic投递率几乎持平的情况下,降低一半的网络负载,代价是具有比Epidemic高的平均时延。相比传统的Epidemic对消息副本的盲目复制,LC-Epidemic基于节点分布及相对位置选择下一跳,故其路由策略更具有针对性。
Binary Spray & Wait和First Contact算法在消息投递率和端到端平均时延两项指标上,表现都差于基于洪泛的Epidemic和LC-Epidemic。

平均跳数:,First Contact具有最高的平均跳数,原因是其相比Epidemic和LC-Epidemic,只在网络中维护消息的一份副本。LC-Epidemic的平均跳数只比Epidemic略高,其原因是LC-Epidemic是受控洪泛,在一定程度上控制消息副本数目,进而控制网络资源的利用,以换来更低的负载率。

结果:,LC-Epidemic在投递率和平均跳数两项指标上都接近于最优的Epidemic,其负载率比传统的Epidemic算法低一半。不刻意强调端到端时延,可以用LC-Epidemic算法代替Epidemic。在节点移动速度较低的网络场景下,Binary Spray & Wait以及First Contact的表现不甚理想,First Contact在投递率、投递时延以及负载率三方面都要优于Binary Spray & Wait。

(2)节点缓存空间大小下
当节点缓存容量较小时,四种算法都具有较低的端到端平均时延。随着节点缓存的增加,这种严重丢包的情况渐渐缓解,当缓存容量达到5M时四种算法的平均时延都已攀升到最高点。在节点缓存容量从0.5MB增加到5MB的这个过程中,所有算法的消息投递率都是在增长的,且当缓存容量为5MB时,Binary Spray & Wait以及First Contact的投递率也达到最大。随着缓存容量的继续增大,基于洪泛策略的Epidemic和受控传染策略的LC-Epidemic,具平均时延随着目点缓存的继续增大而逐渐降低,至缓存容量增大到30MB时趋于稳定。

结果:在缓存资源稀缺时,宜釆用单副本算法,如First Contact。因为此时洪泛策略往往会让网络资源迅速耗尽,从而降低路由性能表现。如果要将跳数控制在一定范围内,则宜采用受控传染策略的路由算法LC-Epidemic, 以降低网络负载率。
LC-Epidemic基于节点位置的下一 跳选择算法能够有效地控制网络中消息副本数量,从而降低负载,并且能够获得与Epidemic几乎持平的投递率,在一定程度上可以代替盲目的洪泛策略。

(3)消息生存周期
当TTL小于50min时,Epidemic和LC-Epidemic的投递率远高于Binary Spray & Wait以及First Contact,因为当消息存活时间受限时,Epidemic和LC-Epidemic能够有效利用快速增加消息并行性的洪泛策略,及时完成消息的投递。而随着TTL的增大,前两者的投递率不断下降,而后两者的投递率却保持攀升,因为过大的TTL,会导致当使用洪泛策略时节点缓存中消息副本积压,从而造成丢包,降低消息投递率。

结果:试验中,当消息存活时间大于250min时,所有四种算法的投递率都趋于稳定,此时Binary Spray & Wait和First Contact要明显优于其他两个洪泛算法。所以当消息TTL较长时,宜采用严格控制副本数量的路由算法,摒弃洪泛。然而当TTL较短时,Binary Spray & Wait以及First Contact 的表现相比Epidemic 和 LC-Epidemic差很多。

基于移动方向的受控传染路由算法

  1. 动机及模型假设
    背景:当前多数利用节点局部信息和地理位置的路由算法,例如位置感知的社会路由(location-aware social routing)等,在进行下一跳节点选择时,都依赖于节点的位置信息。然而在一些容迟网络中(例如野生动物追踪网络),节点的移动性会导致节点的实际位置在时刻改变,因而位置信息的稳定性较差。
    可利用更加可靠的节点移动方向信息来进行下一跳节点选择。因为相比于节点位置的时刻改变,节点的移动方向就要相对稳定很多。相比于节点地理位置的时刻变化,节点移动方向的变化频率要明显低很多,具有更好的稳定性,更加可靠。
    另外节点的位置信息只能决定当前时刻消息副本的分布,新的中继节点可能将消息副本携带到任何位置。而利用节点的移动方向,可以很好地定向引导和控制消息副本传向我们选定的方位,因为在中继节点选择后的一定时间段或者一段距离之内,中继节点仍会按照选定的方向移动。
    缓存空间的管理策略在DTN路由中同样发挥着重要作用。一些典型路由算法在基于优先级的缓存管理中引入了消息经过的跳数,为跳数更少的消息赋予更高的优先级,让其获得优先转发的机会,一定程度上提高了路由性能。但是以跳数作为度量优先级的标准,存在一定的偶然性,很容易造成始终是跳数少的消息得到转发机会。
    因此提出同时利用消息的跳数和已经存活的时间作为度量标准,为那些跳数和已经存活时间更少的消息赋予更高的优先级。
    移动方向的容迟网络受控传染路由算法(moving direction based controlled epidemic routing, MDCE)网络模型假设
    (1)节点能够借助于GPS或者相关定位算法获得自己的位置信息,进而计算并广播其当前移动方向。
    (2)相比于节点位置的时刻变化,其移动方向则要稳定很多,通常节点在沿着某 一方向移动一段距离之后才会改变方向。
    (3)广播包的大小相对于网络中的数据消息来说可以忽略,并且其传输距离很短,只在节点自身的通信范围内,邻居节点在收到广播包后不会再转发,避免了在整个网络中的扩散。
    (4)为了降低路由的复杂性,减少缓存资源和能量的消耗,获得更好的路由通用性,算法不去捕获网络拓扑知识或者其他辅助信息。

  2. 下一跳中继节点选择
    利用节点的移动性将消息副本携带到Ni周围的各个方向上。这样即使无法获取最终目的节点的具体方位信息,也能确保各个方向上都存在与最终目的节点相遇的可能性,从而提高消息投递率。

输入:Ni,的移动方向:MDi
Ni邻居的移动方向:neighborsTable
角度范围:angleScope
输出:relayList初始化relayList为空for neighborsTable中每一个邻居节点的移动方向MDi,计算MD和MDi,的夹角if夹角在angleScope的范围内确定节点具体的移动方向if relayList中已经存在一个该方向上的中继节点选择一个具有更小值的节点else将该节点添加到relayListend if
end if
end for
根据式(3.6)计算的值,将relayList按升序排序
return relayList

即:利用下面三个式子分别计算邻居节点移动方向相对于左前或右前标准方向(即与Ni移动方向夹角恰为1/4兀的方向)的夹角偏移值,还有正左和正右(即与Ni移动方向夹角恰为1/2兀的方向)的角度偏移值,相对于左后和右后标准方向(即与Ni移动方向夹角恰为3/4兀的方向)的角度偏移值。选择偏移值最小的邻居作为中继节点。按偏移值由小到大对Ni的中继节点队列relayList进行排序,让移动方向更加偏向正左或正右方向的中继节点获得优先机会。


  1. 基于优先级的缓存管理策略
    釆用消息经过的跳数和已经存活的时间作为度量优先级的综合标准,让跳数和己经存活时间更少的消息具有更高的优先级,避免了只用跳数作为度量标准的偶然性。

    HOP是门限值,C(M)表示消息M的跳数。M经过的跳数越多,则优先级影响因子H(M)的值就越大,而经过的跳数越少,则优先级影响因子H(M)的值就越小。当M经过的跳数超过门限值时,H(M)的值等于1。
    用L(M)表示消息M已经存活的时间,TTL表示消息能够存活的时间(即消息的生存周期)。用NC表示网络中的节点数量。当消息M已经存活的时间少于其生存周期的90%时,M生存时间越长,则其优先级影响因子T(M)的值也就越大。而当M的生存时间超过其生存周期的90%时,表明M即将消亡,此时若以尚未成功交付,应该尽将其快转发出去,因而此时让T(M)取最小值0。

    UP(M)综合利用了消息经过的跳数和已经生存的时间,并且各自赋予它们50%的权重。将消息队列按优先级UP(M)的值由大到小的顺序排序,从而在转发消息时先转发优先级高的消息,而当缓存溢出时先删除优先级最低的消息。

  2. 路由协议描述

    (3.11)

 //节点的周期性更新操作
1.When处于更新周期内{
2.    更新当前位置信息情况
3.    计算当前移动方向
4.    广播其移动方向信息
5.    更新 neighborsTable//删除长时间未更新的邻居
6.    更新 messagesQueue //删除生存周期耗尽的消息
7.}
8.When从节点j收到方向消息束{
9.    在neighborsTable中更新节点j的移动方向信息
10.   将其移动方向信息通知节点j
11.}
12.When从节点j收到数据消息束M {
13.   if该节点是M的目的节点
14.       广播确认消息束
15.   else if  messagesQueue中不存在M
16.       将M添加到messagesQueue
17.   else
18.       丢弃M
19.   在neighborsTable中更新节点j的时间信息
20.}
//是节点收到确认包后清理缓存的操作
21.When收到message的确认消息{
22.   if message 存在于 messagesQueue
23.       将其从messagesQueue中删除
24.}
25.When neighborsTable.size()!=0 并且 messagesQueue.size() !=0 {
26.   将所有可投递的消息传输给相应的目的节点
27.   从 neighborsTable 中选择 relayList
28.   for relayList中的每一个节点{
29.       管理 messagesQueue//让跳数和己经存活时间更少的消息具有更高的优先级
30.       将消息复制给节点
31.   }
32.}

其中邻居表neighborsTable中保存了所有邻居的移动方向及其更新时间等信息,第5行对邻居表的更新操作是删除长时间未更新的邻居,因为这表明该邻居已经不在节点的通信范围内。第6行对消息队列的更新操作是删除生存周期耗尽的消息,更新应用进程新生成的消息以及按照缓存管理策略管理消息队列。第21〜24行是节点收到确认包后清理缓存的操作。第25- 32行是整个路由的核心,利用算法3.3选择下一跳中继节点,并用式(3.8)〜(3.10) 计算出所有消息的优先级,进行高效的缓存管理。
5. 仿真实验

(1)节点缓存空间
结果:在节点随机移动的网络中,当资源很稀缺并且负载能力有限时,First Contact具有一定的实用价值;而当缓存资源不是无限时,MDCE可以代 替Epidemic和Prophet。此时,MDCE在保持较高的投递率的同时,能够取得更低的负载率,更少的平均跳数和消息丢包数,因而可以发挥更加高效的路由性能。

(2)消息生存周期
结果:在节点随机移动的网络中,当消息的生存周期很长时,First Contact负载率更低,具有一定的实用价值。而当消息的生存周期较短时,MDCE可以用来代替Epidemic和Prophet,因为其可以提供更好的路由性能,并且更加稳定。

(3)消息时间间隔
结果:在节点随机移动的网络中,Epidemic适用于消息生成频率较低的网络,而MDCE和Prophet能更好地应对消息生成频率的变化,具有更好的伸缩性,但总体上MDCE的路由性能要略优于Prophet。
**

基于局部位置信息与历史效用的路由算法

**

  1. 动机及模型假设
    背景:由于节点移动的不可预测性及网络节点密度稀疏等原因,单纯地只依靠节点位置信息做出路由决策往往较难取得令人满意的消息投递率。而在利用位置信息对消息路由进行辅助的同时,综合利用多种效用信息可以取得更高的消息投递率,进而提高路由性能。在真实的应用场景中,进行通信的源节点对目的节点往往具有一定的认知度,相比于 中继节点,源节点可以捕获更多的关于目的节点的信息,从而针对目的节点做出更高效的路由选择。
    利用位置信息和历史效用进行消息路由的同时,进一步地在消息的源节点和中继节点上釆取不同的路由策略,从而更好地控制消息冗余,降低网络负载,提高路由性能。
    LPHU算法主要基于如下假设:
    (1)通过GPS系统和相关的定位算法,节点可以获取自身的位置信息,并且在节点相遇时以广播的方式在其一跳邻居内扩散位置信息。
    (2)节点利用每次的通信机会,主动收集节点间相遇的历史信息。
    (3)节点移动缓慢并且只在局部范围内活动,即相对于整个应用场景,其位置相对稳定。
    (4)当消息被成功投递时,目的节点向整个网络广播确认信息包,收到确认信息的节点主动丢弃该消息副本。
  2. 下一跳中继节点选择
    假设节点N3距离源节点N4的距离为d1,节点N2距离源节点Ni的距离为d2。如果d1>d2,则N3是当前节点N2的外层邻居,N2可以选择N3作为下一跳的中继节点。
    源节点携带的消息可以一直保持其传染能力,中继节点携带的消息副本主要经历三个阶段:传染期、携带期和转发期。传染期,该消息副本只有一次扩散消息副本的 机会。此后,消息副本处于携带期。此时,消息副本不再具备传染能力,即不再复制任何新的消息副本,而是利用节点的移动性寻找目的节点。最后,消息副本进入转发期。在转发期内,中继节点需要接该消息副本转发给一个新的中继节点,转发成功后需要删除该消息副本。
    (1)消息源节点上的路由选择
    源节点尽可能选取可以形成最大张角的两个一跳邻居节点来复制消息副本,以此来增加消息副本的覆盖面积,获得更广的方向分布。节点在复制消息副本之前,需要实时地将其当前的位置信息封装在每个消息内,进而将其位置信息存储在每一个消息副本内。中继节点利用存储在消息副本内的位 置信息,选择外层的邻居作为下一跳中继节点。

    容迟网络中的路由算法笔记(三)相关推荐

    1. 容迟网络中的路由算法学习笔记

      第一章 容迟网络概述 容迟网络 泛指部署在极端环境下由于节点的移动或者能量调度等原因而导致节点间只能间歇性进行通信甚至长时间处于中断状态的一类网络.它是一种新型的端到端存储转发体系结构. 注:端到端通 ...

    2. 【WSN通信】基于最佳簇半径的无线传感器网络分簇路由算法附matlab代码

      1 内容介绍 无线传感器网络(WirelessSensorNetwork,WSN)是由若干个分布在被监控范围内的传感器节点构成的网络,这些节点以随机或者确定位置分布的形式布置在被监测范围内,可以收集温 ...

    3. 编程实现路由算法 实验报告_lt;中国通信专刊gt; EARS:用于软件定义网络中自动路由的智能驱动体验网络架构...

      题目:EARS:用于软件定义网络中自动路由的智能驱动体验网络架构 摘要:软件定义网络(SDN)通过将控制平面与数据平面解耦来适应逻辑集中的控制,并提供对网络资源的有效利用.但是,由于传统路由策略依赖于 ...

    4. 【论文导读】浅谈胶囊网络与动态路由算法

      前言 "Dynamic Routing Between Capsules"是由Hinton等联合发表在NIPS会议上.提出了一个新的神经网络---胶囊网络与囊间的动态路由算法. 上 ...

    5. 计算机网络重装死锁,网络中的路由和死锁.ppt

      网络中的路由和死锁 * * * * * * * * * HPM&S HPM&S 活动10 The Orange Game--网络中的路由和死锁 西安交通大学 高效能建模与仿真研究小组 ...

    6. 基于最佳簇半径的无线传感器网络分簇路由算法

      文章目录 一.理论基础 1.能耗模型 2.基于最佳簇半径的分簇路由算法 (1)分簇优化 (2)簇间通信 二.仿真实验 三.参考文献 一.理论基础 1.能耗模型 本文采用一阶无线电模型作为能量消耗模型. ...

    7. IEEE 802.15.4的信道接入机制二信标网络中的CSMA-CA算法

      七. 信标网络中的CSMA-CA算法 相较于非信标网络的CSMA-CA算法,在信标网络中,CSMA-CA算法中有如下几点需要注意: 1.对齐要求 在时槽CSMA-CA中,PAN中每个设备的退避周期边界 ...

    8. 运营商网络中的在线加密(三)

       运营商网络中的"在线"加密(三) 5.4. OTN加密:运营商的应用实例 5.4.1.加密的高带宽数据中心互连 (DCI) 业务 数据中心之间的通信流的特点包括:高带宽.分组 ...

    9. 【LEACH协议】基于matlab最佳簇半径的无线传感器网络分簇路由算法【含Matlab源码 2087期】

      ⛄一. 数据融合的LEACH协议简介 1 基于自适应数据融合的LEACH协议 1.1 基本定义和概念 无线传感器网络中的一个簇可以用一个无向加权全连通图G=(V,E)来表示,V是簇中所有传感器节点的集 ...

    最新文章

    1. Leetcode刷题 155题: 最小栈(基于python3和c++两种语言)
    2. 别再盲目学 Python 了!
    3. BCH代币化方案讨论大爆发,你的观点是什么?
    4. Firefox XUL
    5. 2504(多项式求和)
    6. 大学计算机基础python第二次作业_python第二次作业-titanic数据集练习
    7. php mysql 截取字符串长度,mysql字符串截取
    8. 技术实践丨列存表并发更新时的锁等待问题原理
    9. python逐行打印_如何用Python逐行打印字典?
    10. PostgreSQL 10.1 手册_部分 III. 服务器管理_第 24 章 日常数据库维护工作_24.3. 日志文件维护...
    11. 【分治】动态点分治 ([ZJOI2007]捉迷藏)
    12. python保存h264格式视频(linux和windows)
    13. ams1117 lm317 对比_LM317和AMS-1117-3.3
    14. [电影]《指环王》新老三部曲完全赏析(王者归来)
    15. Redux Reducer
    16. c++ json::value
    17. Markdown 插入目录索引、更改目录名称方法
    18. 索引额外问题之最左匹配原则的成因
    19. 项目管理之项目成本管理
    20. 很厉害的 SQL函数Group_concat用法,

    热门文章

    1. Python学习手札01——二分法求值问题
    2. 项目经理如何做好任务分解,制定项目计划
    3. java 取两个时间间隔_Java:获取时间间隔
    4. 2021-06-21解决列表查询很慢的优化SQL定位查询慢原因优化
    5. 计算机信息科学蔺泽浩,马波_北京理工大学计算机学院
    6. 谈谈本科生和研究生的差距
    7. remix os 捷德
    8. 6713亿!华为正式官宣
    9. MNN支持NPU啦!!!
    10. 解决“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”