一种基于邻接矩阵构造的跳数矩阵恢复方法

文档序号:25539254发布日期:2021-06-18 20:34阅读:230来源:国知局
一种基于邻接矩阵构造的跳数矩阵恢复方法

本发明涉及无线传感器网络技术领域,更具体地,涉及一种基于邻接矩阵构造的跳数矩阵恢复方法。



背景技术:

在现代物联网系统中,数据完整性成为影响系统整体性能的最重要方面。然而,丢失数据的问题在物联网中非常普遍,这可能导致从数据中得出错误的结论。感知节点部署后的一个基本任务是获取它们自己的位置,因为大多数情况下,感知节点是自动部署的。感知节点通过多跳链路与位于其最大传输范围之外的节点进行通信。在这种情况下,网络的跳数矩阵中包含了感知节点之间的跳数值。然而,在某些情况下,跳数矩阵中的一些项可能不会被观测到,或者它们可能会被污染。我们以物联网中的非测距定位为例进行了说明,在大多数非距离定位方案中,通常通过泛洪过程来获取跳数信息。在这个过程中,感知节点并行地将“hello”消息传送给邻居节点,并将邻居节点传送过来的“hello”消息转发给邻居节点。

在泛洪过程中,感知节点收到消息后,记录自己与其他节点之间的跳数值,最终在泛洪过程完成后,构建跳数矩阵。然而,在此过程中数据的连续传输和接收会导致传感节点大量的能量消耗。此外,由于体积的限制,传感节点的电池容量通常较小,有些节点甚至为了维持监控任务而配备了能量收集装置。

因此,泛洪过程中相对较高的能量消耗是非测距方案中众所周知的缺点。在某些情况下,由于传感节点的能量限制,必须在跳数矩阵收敛前终止泛洪过程。因此,跳数矩阵中只有小部分的值可以被利用。在这种情况下,定位精度必然会随着不完整的跳数矩阵而降低。此外,考虑到监控区域内的网络存在恶意攻击者。攻击者在网络被部署后渗透到网络中,将自己伪装成普通节点,并在泛滥过程中伪造所转发的消息,以危害网络的定位。

目前,研究人员已经提出了许多有效的方案来检测网络中的错误信息。可是,这些方案即使可以排除被污染的跳数值,也不能重建原始的跳数矩阵进行定位。在这种情况下,感知节点的定位精度肯定会下降。现有技术如基于朴素贝叶斯的跳数矩阵恢复方法[zhao,y.,liu,x.,han,f.,&han,g.(2020).recoveryofhopcountmatricesforthesensingnodesininternetofthings.ieeeinternetofthingsjournal,7,5128-5139.doi],基于朴素贝叶斯的跳数矩阵恢复方法对网络中节点之间的跳数进行学习,利用单个特征来对缺失的跳数进行预测。使用朴素贝叶斯分类器来学习矩阵中的跳数和邻居节点跳数的关系。又如现有技术:基于矩阵补全的跳数矩阵恢复方法[floyd,r.w.(1962).algorithm97:shortestpath.communicationsoftheacm,5,345.doi],基于矩阵补全的跳数矩阵恢复方法通过证明跳数矩阵的近似低秩性质,将不完全跳数矩阵的恢复问题表述为低秩矩阵补全问题,进而对跳数矩阵进行恢复。

以上现有技术依然存在以下不足:

1、跳数矩阵中所包含的节点之间的信息虽然部分缺失了,但是不同节点之间存在的关系仍然被观测到,现有方案没有很好的利用被观测到的部分信息。

2、上述跳数矩阵恢复方法的性能在非测距定位中没有得到验证,只是简单地比较了恢复后的跳数矩阵与原始跳数矩阵之间的恢复误差,不能证明跳数矩阵恢复对于物联网应用的意义。



技术实现要素:

本发明为了解决以上现有技术对跳数矩阵中缺失值的恢复效果不好的问题,提供了一种基于邻接矩阵构造的跳数矩阵恢复方法,其对缺失跳数的预测结果更为准确,对跳数矩阵的恢复能力大大提高。

为解决上述技术问题,本发明的技术方案如下:一种基于邻接矩阵构造的跳数矩阵恢复方法,所述的方法包括步骤如下:

s1:由于不完整的泛洪过程或者恶意节点的攻击,获取跳数矩阵含有缺失项;

s2:如果跳数矩阵中,缺失的跳数的对称位置被观测到,使用对称位置跳数将其补全;

s3:通过缺失的跳数矩阵推断出不同节点对之间的连通性,从而得到邻接矩阵a=[aij]n×n,i=1,…,n;j=1,…,n;

s4:采用最短路径算法对步骤s3得到的邻接矩阵进行处理,得到初步的跳数矩阵;

s5:对初步得到的跳数矩阵进行遍历,对于没有跳数值的位置,使用邻居补全的跳数值代替,从而恢复得到完整的跳数矩阵。

优选地,步骤s1,构造的缺失跳数矩阵表示如下:

其中,⊙表示hadamard乘积;ω=[ωij]n*n表示一个随机观测矩阵,ωij表示跳数矩阵对应位置是否缺失,表示为:

其中,i=1,….,n;j=1,….,n。

进一步地,步骤s3,具体的,

s301:对于被观测到的跳数位置,若节点i到节点j的跳数值为1,则这两个节点可以直接通信,邻接矩阵对应的位置为1;反之,两个节点在邻接矩阵中对应的位置为0;

s302:对于跳数缺失的位置,若节点i和节点j相对于网络中其它任意节点k,存在节点i到节点k的跳数值与节点k到节点j的跳数值之差大于1,则邻接矩阵对应的位置为0;否则进入下一步;

s303:采用初步补全方法补全跳数矩阵若节点i和节点j相对于网络中其它任意节点k,若存在节点i到节点k的跳数值和节点k到节点j的跳数值之差大于3,且对应的两个跳数值都为补全的跳数,则邻接矩阵对应的位置为0;否则进入下一步;

s304:判断网络中是否存在任意节点k,使得节点i到节点k的跳数值和节点k到节点j的跳数值之差大于2,且对应的两个跳数值中有一个为补全的跳数,则邻接矩阵对应的位置为0;否则邻接矩阵对应的位置为1;

s305:若邻接矩阵补充完整,则进行下一步,否则回到步骤s302。

再进一步地,所述的初步补全的方法:如果节点i和节点j之间的跳数值hij缺失,则使用节点i的邻居到节点j的跳数和节点j的邻居到节点i的跳数的平均值,来补全缺失的跳数值hij。

再进一步地,所述的初步补全方法,具体如下:对于一个跳数缺失的值初始化两个邻居列表li和lj,根据跳数向量选择节点i的邻居,根据跳数向量选择节点j的邻居;节点i的邻居节点的索引存储在邻居列表li中,节点j的邻居节点的索引存储在邻居列表li中;变量ni表示节点i的可用邻居节点,变量nj表示节点j的可用邻居节点数;如果观察到邻居节点li(k)与节点j之间的跳数则可用邻居节点ni加1。

再进一步地,初步补全的跳数值由下式得到:

其中,表示矩阵初始完成后,节点i到节点j之间的跳数值。

再进一步地,所述的最短路径算法为floyd算法。

再进一步地,所述的floyd算法具体如下:假设节点k为中继节点,k=1,2,…,n,k≠i,k≠j,节点i为起始节点,i=1,2,…,n,节点j为到达节点,j=1,2,…,n;通过三次循环,在循环中比较aij与aik+akj的最小值,保存在aij中,来得到任意两个节点间的最短跳数。

一种计算机系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时,实现上述的方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述的计算机程序被处理器执行时,实现上述的方法的步骤。

与现有技术相比,本发明技术方案的有益效果是:

本发明所提出的方法中,将缺失跳数矩阵的恢复问题转化为邻接矩阵的构造问题,利用邻接矩阵作为恢复跳数矩阵的媒介,由于邻接矩阵只需找出不同的节点是否可以直接通信,这比获取不同节点之间建立通信所需的跳数来恢复跳数矩阵更加容易。同事本发明对不同的网络拓扑具有很强的适应性,恢复出的跳数矩阵可以达到与没有缺失值的跳数矩阵相同的定位效果。

附图说明

图1为实施例1的步骤流程图。

图2为实施例1不同的矩阵观测比率下,算法的重构误差曲线。

图3为实施例1不同的矩阵维数下,算法的重构误差曲线。

图4为实施例1中s型网络下,算法在不同的矩阵观测率下的重构误差曲线。

图5为实施例1中s型网络下,算法在不同的矩阵维数下的重构误差曲线。

图6为实施例1中o型网络下,算法在不同的矩阵观测率下的重构误差曲线。

图7为实施例1中o型网络下,算法在不同的矩阵维数下的重构误差曲线。

图8为实施例1中不同观测率下恢复出的跳数矩阵用于定位的误差(维数为100×100)。

图9为实施例1中不同矩阵维数下恢复的跳数矩阵用于定位的定位误差(观测率为30%)。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,仅用于示例性说明,不能理解为对本专利的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

如图1所示,一种基于邻接矩阵构造的跳数矩阵恢复方法,所述的方法包括步骤如下:

s1:由于不完整的泛洪过程或者恶意节点的攻击,获取的跳数矩阵中含有缺失项;

s2:如果跳数矩阵中,缺失的跳数的对称位置被观测到,使用对称位置跳数将其补全;

s3:通过缺失的跳数矩阵推断出不同节点对之间的连通性,从而得到邻接矩阵a=[aij]n×n,i=1,…,n;j=1,…,n;

s4:采用最短路径算法对步骤s3得到的邻接矩阵进行处理,得到初步的跳数矩阵;

s5:对初步得到的跳数矩阵进行遍历,对于没有跳数值的位置,使用邻居补全的跳数值代替,从而恢复得到完整的跳数矩阵。

在一个具体的实施例中,考虑到网络中有n个感知节点,经过泛洪处理后,网络中的每个节点都知道自己到其他节点的跳数。构造建立任意节点i的跳数向量hi={hi1,hi2,…,hin},其中,hij表示节点i和节点j之间的跳数值,i=1,…,n;j=1,…,n。当i=j时,hij=0。感知节点向基站发送自己的跳数信息,然后根据这些跳数信息构造跳数矩阵h:

但由于洪泛过程中感知节点失效,或恶意节点造成的虫洞攻击,只能观察到部分的跳数向量,因此构造的缺失跳数矩阵记为可以表示如下:

其中,⊙表示hadamard乘积;ω=[ωij]n*n表示一个随机观测矩阵,ωij表示跳数矩阵对应位置是否缺失,表示为:

其中,i=1,….,n;j=1,….,n。

因此,本实施例的目的是基于部分观测到的跳数矩阵通过邻接矩阵重构完整的跳数矩阵h,以最大限度地降低相关应用程序的性能退化。

所述的邻接矩阵用来表示网络中不同节点对之间的连通性。邻接矩阵记为:a=[aij]n×n,i,j=1,…,n,邻接矩阵中的二进制符号0和1用来表示节点对的连通性。当两个节点可以直接通信时,邻接矩阵对应的位置为1。反之,当两个节点不能直接通信时,则两个节点在邻接矩阵中的对应位置为0,如:

如果可以通过缺失的跳数矩阵推断出不同节点对之间的连通性,来得到邻接矩阵,那么可以使用最短路径算法将邻接矩阵转换成一个完整的跳数矩阵。因此,本实施例是将缺失跳数矩阵的恢复问题转化为邻接矩阵的构造问题。

在一个具体的实施例中,由于网络中节点的通信半径r是相同的,所以在网络中从节点i到节点j的跳数,和从节点j到节点i的跳数是一样的。为了减少缺失项的数量,如果观察到节点i到节点j的跳数值和节点j到节点i的跳数值中的一个,则用其对称位置的跳数值来补全另一个位置的跳数值,实现对缺失跳数矩阵进行初步补全。

在一个具体的实施例中,根据等式(4),可以得到邻接矩阵中的一些项。如果含有缺失项的跳数矩阵中两个节点之间的跳数值大于1,说明这两个节点不能直接通信,邻接矩阵对应的位置为0。因此,如果含有缺失项的跳数矩阵中节点之间的跳数的值是1,邻接矩阵对应的位置也是1;含有缺失项的跳数矩阵中节点之间的跳数的值大于1,邻接矩阵对应的位置为0,即:

根据跳数矩阵的性质,可以推断:如果两个节点相对于整个网络中的任意节点的跳数差值大于1,则两个节点一定不能直接通信,所以邻接矩阵的对应位置为0。可以理解为两个传感器节点之间的跳数值表示它们之间的最短跳数。如果这两个节点直接通信,则它们之间的跳数值为1。因此,如果一个传感器节点想要与网络中其通信半径之外的任何其他节点通信,该节点必须由一个邻居节点作为路由(邻居节点表示可以直接一跳与该节点通信的传感器节点)。在这种情况下,该节点与其邻居节点相对于网络中任何节点的跳数之差为1。所以如果两个节点相对于整个网络中的任意节点的跳数差值大于1的话,这两个节点一定不能直接通信,邻接矩阵对应位置为0。

总的来说,如果节点i和节点j相对于网络中其他任意节点k,其中k=1,2,…,n,k≠i,k≠j,有:hki+hij≥hkj,所以hij≥hkj-hki,进而说明,如果hkj-hki>1,hij≠1。如果hij=1时,有:hkj-hki≤1。

因此,第二个判决条件是:

其中,f(x)是一个逻辑函数,如果x为真,f(x)=1;否则,f(x)=0。

根据以上分析,步骤s3的具体步骤如下:

s301:对于被观测到的跳数位置,若节点i到节点j的跳数值为1,则这两个节点直接连通,邻接矩阵对应的位置为1;反之,两个节点在邻接矩阵中对应的位置为0;

s302:对于跳数缺失的位置,若节点i和节点j相对于网络中其它任意节点k,存在节点i到节点k的跳数值与节点k到节点j的跳数值之差大于1,则邻接矩阵对应的位置为0;否则进入下一步;其具体判断条件如式(6)所示。

s303:采用初步补全方法补全跳数矩阵若节点i和节点j相对于网络中其它任意节点k,若存在节点i到节点k的跳数值和节点k到节点j的跳数值之差大于3,且对应的两个跳数值都为补全的跳数,则邻接矩阵对应的位置为0;否则进入下一步;

s304:判断网络中是否存在任意节点k,使得节点i到节点k的跳数值和节点k到节点j的跳数值之差大于2,且对应的两个跳数值中有一个为补全的跳数,则邻接矩阵对应的位置为0;否则邻接矩阵对应的位置为1;

s305:若邻接矩阵补充完整,则进行下一步,否则回到步骤s302。

对于一个包含大量的传感器节点的网络,如果两个节点相对于网络中其他节点的跳数差异都小于1,这两个节点间的逻辑距离很短,那么他们的地理距离也很近,这两个节点间的跳数值可以被认为是1。但是,由于跳数矩阵是不完整的,所以无法获得网络中完整的跳数差值。所以本实施例对缺失跳数矩阵进行初步补全处理。所述的初步补全方法,具体如下:

对于一个跳数缺失的值初始化两个邻居列表li和lj,根据跳数向量选择节点i的邻居,根据跳数向量选择节点j的邻居;节点i的邻居节点的索引存储在邻居列表li中,节点j的邻居节点的索引存储在邻居列表li中;变量ni表示节点i的可用邻居节点,变量nj表示节点j的可用邻居节点数;如果观察到邻居节点li(k)与节点j之间的跳数则可用邻居节点ni加1。初步补全的跳数值由下式得到:

其中,表示矩阵初始完成后,节点i到节点j之间的跳数值。

假设节点i到节点j之间的跳数为hij,则节点i的邻居到节点j的跳数只能为hij-1,hij和hij+1。从节点i的邻居到节点j的跳数平均值的范围为[hij-1,hij+1]。同理,节点j的邻居到节点i的平均值的范围也是:[hji-1,hji+1]。

因此,初步补全的跳数值与正确的跳数值之差的绝对值不大于1,如下式所示:

如果节点i和节点j可以直接通信,相对于网络中其他任意节点k,k=1,2,…,n,k≠i,k≠j,有根据等式(8),有因此当其中一个跳数值缺失,有:这两个跳数值都缺失,如果节点i和节点j可以直接通信,有:

对于初步补全的跳数矩阵,如果两个节点的跳数值相对于整个网络中任何一个节点的差值大于3,则这两个节点一定不能直接通信。实际上,对于节点i和节点j,相对于其他节点k,k=1,2,…,n,k≠i,k≠j,如果满足这并不意味着两个节点可以直接通信,可能网络中有少数节点逃过了检测。

但是通过以上判决,若仍然不能得出两个节点不能直接通信的结论,这表明节点i和节点j之间的距离非常短,仅略大于通信距离。在这种情况下,可以认为这两个节点可以直接通信,即aij=1。此外,通过跳数矩阵可以来获取节点的位置信息。对于两个略大于通信距离的节点,其实际跳数设置为2。但是在非测距定位中,设置为1的跳数值比设置为2的跳数值更接近实际距离。因此,邻接矩阵中的跳数值可以进一步确定,从而得到第三个判决条件:

步骤s304:若邻接矩阵补充完整,则进行下一步,否则回到步骤s302。

在一个具体的实施例中,使用构造的邻接矩阵得到完整的跳数矩阵,使用floyd算法得到最短路径,floyd算法是最短路径的经典求解方法。所述的floyd算法具体求解如下:假设节点k,k=1,2,…,n,k≠i,k≠j为中继节点,节点i,i=1,2,…,n为起始节点,节点j,j=1,2,…,n为到达节点。通过三次循环,在循环中比较aij与aik+akj的最小值,保存在aij中,来得到任意两个节点间的最短跳数。

为了进一步证实本实施例所述的方法的技术效果,本实施例进行如下实验:

本实施例所述的方法与两种矩阵恢复方法做对比:分别是基于朴素贝叶斯的跳数矩阵恢复方法(hopcountvaluerecoverybasednaivebayesclassifiermethod,hcmr-nbc)和奇异阈值方法(singularvaluethresholdingmethod,svt),为了方便书写,对比方法和本实施例的基于决策树的跳数矩阵恢复方法(hopcountvaluerecoverybaseddecisiontree,hcmr-dt)在结果图中均使用英文缩写表示,将恢复后的跳数矩阵和原跳数矩阵h的归一化均方根误差(normalizedrootmeansquareerror,nrmse)作为衡量算法性能的指标之一,归一化均方根误差公式为:

我们考虑一个传感器节点随机分布在100×100个单位正方形区域内,包含20个锚节点的网络,节点传输半径设为20m。在实验中,根据监控区域、节点密度和拓扑结构来生成网络。其中,节点总数(即矩阵维数)由节点密度决定。实验执行在三种网络拓扑上,分别为节点均匀分布的网络,带有s型覆盖空洞的网络和带有o型网络覆盖漏洞的网络。为了减小随机误差,每次实验执行100次得到平均值作为最终的结果。

首先,对比观测率对矩阵的重构性能的影响,如图2展现的是不同的矩阵观测比率下算法的重构误差曲线,其中,矩阵维数设置的是100×100。

从图2中可以看出,与svt算法相比,本实施例所述的方法无论在何种观测率和矩阵维数下,都保持了很大的优势。与hcmr-nbc算法相比,仅在观测率很低(约10%)的情况下,本实施例所述的方法的重构误差略高于hcmr-nbc算法。事实上,通过下面的实验可以看到,在非常低的观测率下,矩阵的重构性能相对较低,这将导致较高的定位误差。hcmr-nbc在观测率为10%时的优势对跳数矩阵重构的意义不大。对于任何其他的观测率,本实施例所述的方法hcmr-nbc保持最优的重建性能。这是因为在本实施例提出的方案中,邻接矩阵被用作恢复跳数矩阵的媒介。邻接矩阵只需要找出不同的节点是否可以直接通信,这比获取不同节点之间建立通信所需的跳数来恢复跳数矩阵要容易。

接下来,我们比较矩阵维数对于各种方案的重构性能的影响,图3展示的是不同矩阵维数下,算法的重构误差曲线,其中观测率设置的是50%。我们可以从图3中可以看出,本实施例所述的方法相对于其他的方法来说,比较稳定,不同的矩阵维数对于其性能的影响不大。

另外,还对比了本实施例所述的方法对于不同网络的适应能力。图2和图3的性能曲线是在节点均匀分布的网络中得到的,我们考虑复杂的网络场景,即网络中含有不同程度的覆盖空洞,图4和图6展示的分别是s型和o型网络下,三种方案相对于不同的观测率的重构误差曲线,其中矩阵维数设置的是100×100;图5和图7展示的分别是s型和o型网络下,三种方案相对于不同矩阵维度的重构误差曲线,其中观测率设为50%。

可以看出,本实施例所述的方法在复杂网络拓扑(s形网络和o形网络)下具有更好的重构性能。说明本发明对不同的网络拓扑具有很强的适应性,这与该算法完备的拓扑推理方法有关。

跳数矩阵在物联网领域有着广泛的应用。跳数矩阵中包含任意两个节点的跳数,根据其跳数可以估计出任意两个节点之间的真实距离,然后可以用于定位、资源分配、通信协议设计和评估等领域。为了验证跳数矩阵恢复对物联网应用的意义,以定位作为实际场景来验证跳数矩阵恢复的有效性。经典的dv-hop算法作为定位方法。将三种方法得到的跳数矩阵与没有缺失值的跳数矩阵都用于定位,并比较得到的定位性能。利用定位的归一化均方根误差(normalizedrootmeansquareerror,nrmse)来对未知节点的平均定位误差进行评估,其计算方法如下:

其中,表示未知节点k的估计位置,(xk,yk)表示未知节点k的真实位置,nu为未知节点个数,r为通信半径,方案执行在均匀网络下。

图8展示的是不同观测率下,恢复的跳数矩阵用于定位的定位性能,矩阵维数设为100×100。可以看到,我们提出的方法始终保持着最好的定位性能,在矩阵观测率高于30%的情况下,恢复出的跳数矩阵可以达到与没有缺失值的跳数矩阵相同的定位效果。结合图2,可以看出虽然在观测率仅为10%的时候,hcmr-nbc方案的重建性能优于本实施例所述的方法,但本实施例所述的方法重建的跳数矩阵用于定位的定位误差比hcmr-nbc低很多。结果表明,本实施例所述的方法恢复出的跳数矩阵更有利于定位。这是因为本实施例所述的方法具有跳数矫正的功能,有一部分通信半径边缘的跳数值被修正。因此,虽然在很低的观测比下,恢复的跳数矩阵与原始跳数矩阵的差异略大于hcmr-nbc,但本本实施例所述的方法恢复的跳数矩阵更适合定位。

此外还对比了30%的观测率下对比,不同矩阵维数下恢复的跳数矩阵用于定位的定位误差,对比结果如图7所示。

当矩阵维数小于100×100,使用svt方案恢复出的跳数矩阵用于定位的定位误差非常大,当矩阵维数是80×80时,定位的归一化均方根误差为13.1445,矩阵维数是60×60时,无法获取位置信息。为了更直观地反映其他方案的性能差异,图9仅展示了算法svt在矩阵维数大于100×100时的定位性能。

从图9可以看出,矩阵维数的变化并不会降低本文算法的优势。从图8和图9可以看出,在30%的观测比下,本实施例所述的方法的定位性能曲线与没有缺失值的跳数矩阵的定位性能曲线几乎重合,这是其他方案无法达到的性能优势。

实施例2

一种计算机系统,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时,实现的方法步骤如下:

s1:通过泛洪过程,获取缺失的跳数矩阵

s2:如果跳数矩阵中,缺失的跳数的对称位置被观测到,使用对称位置跳数将其补全;

s3:通过缺失的跳数矩阵推断出不同节点对之间的连通性,从而得到邻接矩阵a=[aij]n×n,i=1,…,n;j=1,…,n;

s4:采用最短路径算法对步骤s3得到的邻接矩阵进行处理,得到初步的跳数矩阵;

s5:对初步得到的跳数矩阵进行遍历,对于没有跳数值的位置,使用邻居补全的跳数值代替,从而恢复得到完整的跳数矩阵。

实施例3

一种计算机可读存储介质,其上存储有计算机程序,所述的计算机程序被处理器执行时,实现的方法步骤如下:

s1:通过泛洪过程,获取缺失的跳数矩阵

s2:如果跳数矩阵中,缺失的跳数的对称位置被观测到,使用对称位置跳数将其补全;

s3:通过缺失的跳数矩阵推断出不同节点对之间的连通性,从而得到邻接矩阵a=[aij]n×n,i=1,…,n;j=1,…,n;

s4:采用最短路径算法对步骤s3得到的邻接矩阵进行处理,得到初步的跳数矩阵;

s5:对初步得到的跳数矩阵进行遍历,对于没有跳数值的位置,使用邻居补全的跳数值代替,从而恢复得到完整的跳数矩阵。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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