CN108600026B - 邻居关系存储方法及装置 - Google Patents
邻居关系存储方法及装置 Download PDFInfo
- Publication number
- CN108600026B CN108600026B CN201810427119.5A CN201810427119A CN108600026B CN 108600026 B CN108600026 B CN 108600026B CN 201810427119 A CN201810427119 A CN 201810427119A CN 108600026 B CN108600026 B CN 108600026B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- initial
- sequence set
- neighbor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 239000011159 matrix material Substances 0.000 claims abstract description 112
- 238000012545 processing Methods 0.000 description 13
- 101150081243 STA1 gene Proteins 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 101100395869 Escherichia coli sta3 gene Proteins 0.000 description 8
- 101100369915 Drosophila melanogaster stas gene Proteins 0.000 description 6
- 101100366889 Caenorhabditis elegans sta-2 gene Proteins 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- -1 ap1 Proteins 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/04—Arrangements for maintaining operational condition
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例提供一种邻居关系存储方法及装置。所述方法包括:根据得到的网络拓扑图得到无向带权图;根据无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点,并添加至初始节点序列集合中;基于初始节点序列集合采用Prim算法将无向带权图中待加入节点依次添加至初始节点序列集合以得到目标节点序列集合,其中,待加入节点为无向带权图中未加入初始节点序列集合的节点,目标节点序列集合中非孤立的节点顺序与节点添加顺序对应,且孤立节点不位于非孤立的节点之间;根据目标节点序列集合中节点的顺序对初始邻居关系矩阵进行调整得到目标节点邻居矩阵。由此,可以获得邻居关系集中的目标节点邻居矩阵。
Description
技术领域
本发明涉及信息处理技术领域,具体而言,涉及一种邻居关系存储方法及装置。
背景技术
近年来,WLAN(Wireless Local Area Network,无线局域网)已经成为网络连接的主流方式之一,越来越多的用户通过WLAN接入网络。日益增长的用户需求对WLAN各方面性能的要求也越来越高,如更高的系统吞吐量、更短的时延。
在网络中,邻居关系表是存储邻居网络节点的列表。目前邻居关系表没有考虑到节点的相关性,具有邻居关系的节点在邻居关系列表中的位置比较任意。
发明内容
为了克服现有技术中的上述不足,本发明实施例的目的在于提供一种邻居关系存储方法及装置,其能够获得邻居关系集中的目标节点邻居矩阵,在网络中节点数量庞大时,可以极大地减小数据处理量和数据处理时间。
本发明实施提供一种邻居关系存储方法,所述方法包括:
获得网络拓扑图,并根据所述网络拓扑图得到无向带权图;
根据所述无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点;
将所述孤立节点及所述起始节点添加至初始节点序列集合中;
基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到将所述无向带权图中所有节点均添加至所述初始节点序列集合中得到目标节点序列集合,其中,所述待加入节点为所述无向带权图中未加入所述初始节点序列集合的节点,所述目标节点序列集合中非孤立的节点顺序与节点添加顺序对应,且所述孤立节点不位于非孤立的节点之间;
根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵。
本发明实施例还提供一种邻居关系存储装置,所述装置包括:
第一获得模块,用于获得网络拓扑图,并根据所述网络拓扑图得到无向带权图;
第二获得模块,用于根据所述无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点;
第一添加模块,用于将所述孤立节点及所述起始节点添加至初始节点序列集合中;
第二添加模块,用于基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到将所述无向带权图中所有节点均添加至所述初始节点序列集合中得到目标节点序列集合,其中,所述待加入节点为所述无向带权图中未加入所述初始节点序列集合的节点,所述目标节点序列集合中非孤立的节点顺序与节点添加顺序对应,且所述孤立节点不位于非孤立的节点之间;
调整模块,用于根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵。
相对于现有技术而言,本发明具有以下有益效果:
本发明实施例提供一种邻居关系存储方法及装置。首先获得网络拓扑图,并根据所述网络拓扑图得到无向带权图。然后根据所述无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点。接着将所述孤立节点及所述起始节点添加至初始节点序列集合中。进而基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到将所述无向带权图中所有节点均添加至所述初始节点序列集合中得到目标节点序列集合。其中,所述待加入节点为所述无向带权图中未加入所述初始节点序列集合的节点,所述目标节点序列集合中非孤立的节点的顺序与节点添加顺序对应,且孤立节点不位于非孤立的节点的之间。最后根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵。目标节点邻居矩阵中邻居关系集中,当网络中节点数量庞大时,可以极大地减小数据处理量和数据处理时间。
为使发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例提供的存储设备的方框示意图。
图2是本发明实施例提供的邻居关系存储方法的流程示意图。
图3是网络拓扑图。
图4是无向带权图。
图5是图2中步骤S120包括的子步骤的流程示意图之一。
图6是图2中步骤S120包括的子步骤的流程示意图之二。
图7是图2中步骤S140包括的子步骤的流程示意图。
图8是图2中步骤S150包括的子步骤的流程示意图。
图9是本发明实施例提供的节点传输或接收数据的存储示意图。
图10是实验对比图。
图11是本发明实施例提供的邻居关系存储装置的结构示意图。
图标:100-存储设备;110-存储器;120-存储控制器;130-处理器;200-邻居关系存储装置;210-第一获得模块;220-第二获得模块;230-第一添加模块;240-第二添加模块;250-调整模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本发明实施例提供的存储设备100的方框示意图。所述存储设备100可以是,电脑、服务器等。如图1所示,所述存储设备100包括:存储器110、存储控制器120、处理器130以及邻居关系存储装置200。
所述存储器110、存储控制器120及处理器130各元件之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有邻居关系存储装置200,所述邻居关系存储装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器130通过运行存储在存储器110内的软件程序以及模块,如本发明实施例中的邻居关系存储装置200,从而执行各种功能应用以及数据处理,即实现本发明实施例中的邻居关系存储方法。
其中,所述存储器110可以是,但不限于,随机存取存储器(Random AccessMemory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(ProgrammableRead-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器110用于存储程序,所述处理器130在接收到执行指令后,执行所述程序。所述处理器130以及其他可能的组件对存储器110的访问可在所述存储控制器120的控制下进行。
所述处理器130可能是一种集成电路芯片,具有信号的处理能力。上述的处理器130可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解,图1所示的结构仅为示意,存储设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请参照图2,图2是本发明实施例提供的邻居关系存储方法的流程示意图。下面对邻居关系存储方法的具体流程进行详细阐述。
步骤S110,获得网络拓扑图,并根据所述网络拓扑图得到无向带权图。
在一定范围内均匀部署无线访问接入点(Wireless Access Point,AP),其中,AP的数量与范围相关;并在相同范围内随机部署站点(Station,STA)。在本实施例中,首先获取网络拓扑图。网络拓扑图中包括多个节点,其中,节点可以是ap(即AP),也可以是sta(即STA)。在得到网络拓扑图后,根据网络拓扑图计算所有节点中任意两节点之间的距离,进而根据网络拓扑图及计算得到的任意两节点之间的距离生成无向带权图。
下面进行举例说明。请参照图3及图4,图3是网络拓扑图,图4是无向带权图。图3中包括3个ap,即ap1、ap2及ap3;还包括10个sta,即stai(i=1,2,…,10)。图3中节点(包括ap及sta)之间的连线表示该两节点为邻居节点。然后基于图3中的网络拓扑图建模得到无向带权图,即将图3中的所有节点抽象为无向带权图的顶点,将具有邻居关系的节点之间添加带权边,带权边中的权重表示两节点之间的距离。比如,权重dis(sta1,ap1)表示sta1与ap1之间的距离。
步骤S120,根据所述无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点。
请参照图5,图5是图2中步骤S120包括的子步骤的流程示意图之一。所述无向带权图中包括任意两节点之间的距离,步骤S120可以包括子步骤S121、子步骤S122、子步骤S123及子步骤S124。
子步骤S121,根据所述无向带权图将任意两节点之间的距离存储为初始矩阵。
子步骤S122,判断任意两节点之间的距离是否大于对应节点的覆盖半径。
在任意两节点之间的距离大于对应节点的覆盖半径时,执行子步骤S123。
子步骤S123,在所述初始矩阵中将该距离更新为第一数值,得到初始邻居关系矩阵。
在任意两节点之间的距离不大于对应节点的覆盖半径时,执行子步骤S124。
子步骤S124,不在所述初始矩阵中对该距离进行更新,得到初始邻居关系矩阵。
在本实施例中,可以将所有节点按照预设顺序存储在一集合List中,然后根据节点在集合List中的顺序将任意两节点之间的距离存储为初始矩阵。接着根据节点之间是否存在邻居关系对所述初始矩阵进行更新得到初始邻居关系矩阵。
可选地,可以根据节点之间的距离判断节点之间是否存在邻居关系。将节点之间的距离与节点的覆盖半径进行比较,若节点之间的距离大于节点的覆盖半径,则表示该两节点之间不存在邻居关系;若节点之间的距离不大于节点的覆盖半径,则表示该两节点之间存在邻居关系。
进一步地,若每个节点的覆盖半径相同,均为R,则可以直接将两节点之间的距离与覆盖半径R进行比较。若两个节点的覆盖半径不同,比如,sta1的覆盖半径为R1,ap1的覆盖半径为R2,那么可以将dis(sta1,ap1)与sta1的覆盖半径为R1进行比较。
为了便于简化后续计算过程,可以在所述初始矩阵中将不存在邻居关系的节点之间的距离更新为第一数值,以表示对应的两节点之间不存在邻居关系,得到初始邻居关系矩阵。对应地,若所述初始邻居关系矩阵中节点之间的距离不为第一数值,则表示对应的两节点之间存在邻居关系。
请参照图6,图6是图2中步骤S120包括的子步骤的流程示意图之二。步骤S120还可以包括子步骤S126、子步骤S127、子步骤S128及子步骤S129。
子步骤S126,根据所述无向带权图计算每个节点的邻居节点数量,得到每个节点的度数,并按照预设顺序存储在节点度数数组中。
在本实施例中,所述无向带权中顶点之间有边直接连接,表示对应地该两节点之间有邻居关系,因此可以直接根据所述无向带权图计算并保存每个节点的邻居节点数量。为了可以快速准确得到每个节点的邻居节点数量,在本实施例的实施方式中,按照节点在所述集合List中的存储顺序将每个节点的邻居节点数量进行存储,得到所述节点度数数组。其中,所述节点度数数组中度数的总数量与节点的总数量一致,每个度数表示对应节点的邻居节点数量。比如,所述集合List依次包括ap1、ap2,那么对应的节点度数数组中第一位度数对应的是ap1的邻居节点数量,第二位度数对应的是ap2的邻居节点数量。
子步骤S127,判断所述节点度数数组中是否存在0元素。
子步骤S128,若所述节点度数数组中存在0元素,则判定与0元素对应的节点为孤立节点。
子步骤S129,查询所述节点度数数组中非0的最小值,并将与所述最小值对应的节点作为邻居节点最少的起始节点。
在本实施例中,由于每个度数表示对应节点的邻居节点数量,因此可以直接查找所述节点度数数组中是否存在0元素,以判断所有节点中是否有孤立节点。孤立节点就是与其他节点之间都不存在邻居关系的节点。若所述节点度数数组中存在0元素,则与该0元素对应的节点即为孤立节点。
在本实施例中,可以将所述节点度数数组中非0元素的度数进行比较,查找到所述节点度数数组中非0的最小值,进而将与所述最小值对应的节点作为非孤立节点且邻居节点最少的起始节点。
步骤S130,将所述孤立节点及所述起始节点添加至初始节点序列集合中。
在本实施例中,可以将得到的孤立节点及起始节点添加至初始节点序列集合中进行保存。其中,初始节点序列集合在没有添加孤立节点及起始节点时为空集合。
步骤S140,基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到将所述无向带权图中所有节点均添加至所述初始节点序列集合中得到目标节点序列集合。
Prim算法是从任意一个节点开始,每次选择一个与当前节点集最近的一个节点,并将两节点之间的边加入到树中。Prim算法在找当前最近节点时使用到了贪婪算法。在一个加权连通图中,任意选出一个节点作为起始节点,标记为visit,然后计算所有未被标记为visit的节点与已标记为visit的节点连接时的距离,将距离最短的未被标记为visit的节点标记visit;重复以下操作:在剩下的点中,通过计算选择出与已标记为visit的节点距离最小的节点,并标记为visit,直到所有节点都被标记为visit。其中,被标记为visit表示加入了最小生成树。
请参照图7,图7是图2中步骤S140包括的子步骤的流程示意图。步骤S140可以包括子步骤S141、子步骤S142及个子步骤S143。
子步骤S141,根据所述初始邻居关系矩阵得到每个待加入节点与所述初始节点序列集合中节点的距离,并将所有待加入节点中与所述初始节点序列集合中节点的距离最小且该距离不为第一数值的待加入节点作为目标待加入节点。
子步骤S142,将所述目标待加入节点添加至所述初始节点序列中。
子步骤S143,重复选择目标待加入节点及将所述目标待加入节点添加至所述初始节点序列中,直到所述无向带权图中的节点均被添加至所述初始节点序列集合中得到目标节点序列集合。
在本实施例中,根据集合List及初始邻居关系矩阵可得到任意两节点之间的距离,进而得到每个待加入节点与所述初始节点序列集合中每个节点的距离。其中,所述待加入节点为所述无向带权图中未加入所述初始节点序列集合的节点。由于所述初始邻居关系矩阵中不具有邻居关系的节点之间的距离采用所述第一数值进行表示,因此,每个待加入节点与所述初始节点序列集合中每个节点的距离不为第一数值,则表示该待加入节点与所述初始节点序列集合中某个或某些节点为邻居节点。由此,可从所有待加入节点中选择出与所述初始节点序列集合中节点的距离最小,且与所述初始节点序列集合中某个节点或某些节点为邻居节点的待加入节点为目标待加入节点,并将该目标待加入节点添加至所述初始节点序列中。其中,在添加目标待加入节点后,在所述初始节点序列中,该目标待加入节点位于所述起始节点后。同理,后加入的目标待加入节点在上一次加入的目标待加入节点后。
由于先将孤立节点已添加至所述初始节点序列中,因此,在根据所述初始邻居关系矩阵选择目标待加入节点时,不会受到距离用第一数值表示的孤立节点的影响。
在将目标待加入节点添加至所述初始节点序列后,将所述初始节点序列中节点的数量与所述无向带权图中节点总数量进行比对。若所述初始节点序列中节点的数量与所述节点总数量不一致,则表示所述初始节点序列中未包括所有的节点,需要重复上述步骤以选出目标待加入节点,并将目标待加入节点依次添加至初始节点序列中。若所述初始节点序列中节点的数量与所述节点总数量一致,表示所述初始节点序列中包括所有的节点,已得到所述目标节点序列,不需要再重复上述步骤。其中,在所述目标节点序列中,非孤立的节点的顺序与节点添加顺序对应,且所述孤立节点不位于非孤立的节点之间,也就是说,在添加孤立节点及初始节点后,初始节点与后续添加的节点依次相邻。比如,目标节点序列为{sta1,ap1,ap2,sta3,sta2},其中,sta1为首先添加的孤立节点,ap1为接着添加的初始节点,ap2、sta3及sta2则为后续依次添加的节点。
进一步地,为了后续便于核对所述目标节点邻居矩阵中是否包括所有的节点,在向所述初始节点序列集合中添加节点时,可以将添加的节点从集合List中删除。可选地,在将孤立节点添加至所述初始节点序列集合中后,则将该孤立节点从集合List中删除,并对集合List及初始节点序列集合进行更新;在将初始节点添加至所述初始节点序列集合中后,则将初始节点从集合List中删除,并对集合List及初始节点序列集合进行更新;在将目标待加入节点添加至所述初始节点序列集合中后,则将该目标待加入节点从集合List中删除,并对集合List及初始节点序列集合进行更新。由此,在集合List中没有节点时,表示已得到所述目标节点序列集合。
步骤S150,根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵。
请参照图8,图8是图2中步骤S150包括的子步骤的流程示意图。步骤S150可以包括子步骤S151及子步骤S152。
子步骤S151,根据所述目标节点序列中节点的顺序对所述初始邻居关系矩阵中每个元素的位置进行调整。
子步骤S152,以第二数值对所有非第一数值的元素进行更新,得到所述目标节点邻居矩阵。在本实施例中,通过调整使所述初始邻居关系矩阵中每个元素的位置与所述目标节点序列中节点的顺序对应,可以使得在最后得到的目标节点邻居矩阵中,具有邻居关系的节点在矩阵的位置集中。进一步地,经过位置调整后的矩阵中包括第一数值及具体的距离,为了便于后续使用,可以将这些具体的距离更新为第二数据值。可选地,所述第一数值为0,表示对应的两节点之间没有邻居关系;所述第二数值为1,表示对应的两节点之间有邻居关系。可以理解的是,所述第一数值及第二数值的具体数值可以根据实际情况进行设置。
在本实施例中,若无向带权图中存在孤立节点,则首先将孤立节点加入初始节点序列集合中。接着在无向带权图中非孤立节点的节点中,选择度数最小的节点(即非孤立且邻居数量最少的节点)作为生成树的起始点,将该起始点添加至已添加有孤立节点的初始节点序列集合中。再按照Prim算法求得连通图的最小生成树,从而得到最终的初始节点序列集合,即目标节点序列集合。根据目标节点序列集合中节点的顺序生成目标节点邻居矩阵。由于目标节点邻居矩阵中邻居关系集中,在想要获取某个节点的邻居关系时,只需提取少量有效的邻居关系信息即可。因此,尤其是在网络中节点数量庞大时,将极大地减小数据处理量和数据处理时间。
下面通过举例对上述邻居关系存储方法进行说明。
假设一个WLAN中有Lap=20个ap及Lsta=600个sta,ap及sta的覆盖半径R均为100m,上述20个ap均匀分布在600*800m2的范围内,上述600个sta随机分布在相同的范围内。首先用一集合List存储节点的初始顺序,List={ap1,ap2,...,ap20,sta1,...,sta600}。然后将网络拓扑图中的ap及sta抽象为无向带权图中的节点,将图中任意两节点之间的距离d与覆盖半径R进行比较。若这两个节点之间的距离d不大于覆盖半径R,那么在无向带权图中,这两个节点之间有边且距离为d;反之,这两个节点之间没有边且距离为0。
根据任意两节点之间的距离建立初始邻居关系矩阵distance[L][L],其中,L=20+600,即L为ap的数量与sta的数量的和。其中,初始邻居关系矩阵如下:
其中,所述初始邻居关系矩阵中的前Lap列和前Lap行对应的是api(i=1,2,...,Lap),后Lsta列和后Lsta行对应的是staj(j=1,2,...,Lsta)。
根据每个节点的邻居节点数量建立一个一维数组dev[L],一维数组dev[L]如下:
dev[L]={dev(ap1),dev(ap2),...,dev(ap20),dev(sta1),...,dev(sta600)}dev[i]表示对应的是集合List中第i个位置的节点的度数。若dev[i]=0,则表示集合List中第i个位置的节点为孤立节点,将其添加至初始节点序列集合S中,并将度数为0的节点(即List[i])从集合List中删除;假如dev[j]=0,其中,j表示ap2在集合List中的下标,则将ap2加入初始节点序列集合S,并将其从集合List中删除。
查找一维数组dev[L]中非0的最小值,若该值为num(其中,num在数组中对应的下标为i),则根据下标i获取节点List[i],并将该节点加入初始节点序列集合S,同时将该节点从集合List中删除。
接着执行Prim算法将剩余节点依次添加至初始节点序列集合S中。先从经上述更新后的集合List中选择一个节点u,该节点u是集合List中所有节点到初始节点序列集合S中的某个节点的距离最短且不为0的节点。将该节点u添加到初始节点序列集合S中,并从集合List中删除该节点,更新初始节点序列集合S。然后重复上述步骤,直到将所有的节点都添加至初始节点序列集合S中,集合List为空。
根据最后得到的初始节点序列集合S(即目标节点序列集合)中节点的顺序,更新初始邻居关系矩阵distance[L][L],同时将矩阵中非0数更新为1,由此获得的最终邻居关系矩阵A(即目标邻居关系矩阵)中的值dis(m,n)只能为0或为1。其中,最终邻居关系矩阵A如下:
从最终邻居关系矩阵A可以看出,每行中的1在集合中的位置比较集中。为了证明每行中数值1的集中度,可以采用平均每行中起始1与结束1之间0的个数来衡量。通过上述处理得到的最终邻居关系矩阵A,对于后续的数据处理工作有着极大的帮助。
由于上述举例中节点数量过多,下面可以用一节点数量较少的例子进行补充说明。
假如网络中有ap1、ap2、ap3,sta1、sta2、sta3、sta5、sta6,初始邻居关系矩阵distance[9][9]如下:
通过上述方法得到的目标节点序列集合为:
S'={sta1,ap1,sta3,ap2,sta2,sta4,ap3,sta6,sta5}
根据目标节点序列集合S'中的节点顺序,更新初始邻居关系矩阵distance[L][L]得到目标节点邻居矩阵A[L][L],目标节点邻居矩阵A[L][L]如下:
下面对目标节点邻居矩阵在网络中的应用进行说明。
比如,在集中式无线网络系统中,由无线控制起由无线控制器(Wireless AccessPoint Controller,AC)或软件定义网络控制器(SDN controller)来集中控制,控制器使用一个数组T按照目标节点序列集合S’的序列(即按照节点在S’中的顺序)存储节点是否正在传输数据信息;使用一个数组R按照目标节点序列集合S’的序列存储节点是否正在接收数据信息。可选地,若节点正在传输数据,可在其对应位置存储1,反之存储0。若目标节点序列集合S’={sta1,ap1,sta3,ap2,sta2,sta4,ap3,sta6,sta5}。
请参照图9,图9是本发明实施例提供的节点传输或接收数据的存储示意图。T[i]对应节点S[i]的发送数据状态,若T[i]=1,说明S[i]正在传输数据,反之说明该站点没有传输数据。R[i]对应节点S[i]的接收数据状态,若R[i]=1,说明S[i]正在接收数据,反之说明该节点没有接收数据。由图9可知,sta1、ap2正在传输数据,ap1、sta4正在接收数据。
在集中式WLAN下,假设网络中有L个节点,为了提高网络性能,ap在发送数据之前,首先询问集中控制器,集中控制器根据存储的正在传输和正在发送的站点信息、以及邻居关系矩阵来判断ap是否能够发送数据。
若apj(j-1为apj在集合List中对应的下标)在发送数据之前检测到信道为忙,则将该信息存储在数据发送请求帧中传输给控制器。其中,该信息可以包括要发送的数据及信道为忙的状态信息等。控制器收到apj发送的帧后,判断apj要发送数据的目的站点stai是否和正在发送数据的站点存在邻居关系。此时就需要用一个值value1按位存储数组T中的值,若按照图9,则value1=100100000;同理用值value2按位存储数组R中的值,若按照图9,则value2=010001000;将value1和value2做与运算,若结果为0,则apj可以发送数据,反之apj不能发送数据。
同理,若apj在发送数据之前检测到信道为闲,则将该信息存储在数据发送请求帧中传输给控制器。控制器收到apj发送的帧后,判断apj的邻居站点是否和正在接收数据的站点存在邻居关系。此时用value1按位存储数组R中的值,有value1=100100000;用值value2按位存储数组R中的值,有value2=010001000;将value1和value2做与运算,若结果为0,此时采用上述相同的与运算方法再次判断目的站点的邻居节点是否正在发送数据,若无,则apj可以发送数据;若结果为1,则apj不能发送数据。
当高密度网络状态下即网络中的站点数量很大时,将value1和value2做与运算,所需的计算量较大,因而使得控制器做出决策所需的时间较大。而在本实施例中,目标节点邻居矩阵A中节点的邻居关系集中,控制器在做决策时,只需截取该节点对应的邻居关系中起始1到结束1之间的数值与数组T或数组R相应位置的数值做与运算即可。
请参照图10,图10是实验对比图。图10带有SPrim的表示通过本方案得到的矩阵中每行中起始1到结束1之间0的个数中的最小值,带有random的表示运行1000次随机对节点排序得到的矩阵中平均每行中起始1到结束1之间0的个数中的最小值(即纵坐标value的值)。该图中具体包含了ap数目相应为12、15、20、30时,同时sta数目为600、500、400、300、200时采用本方案和随机方法(运行1000次)的最高、最低、平均值的实验结果。通过上述对比可以明显看出,通过本方案可以显著减小邻居矩阵中平均每行起始1和终止1之间0的个数(value),也就意味着在该邻居关系矩阵中每行中具有邻居关系的节点在数组中存储的位置靠近,即整个邻居矩阵中节点的邻居关系分布更加集中。若将其运用在集中控制网络中,将极大减小决策时间,提高网络性能。
请参照图11,图11是本发明实施例提供的邻居关系存储装置200的结构示意图。所述邻居关系存储装置200可以包括第一获得模块210、第二获得模块220、第一添加模块230、第二添加模块240及调整模块250。
第一获得模块210,用于获得网络拓扑图,并根据所述网络拓扑图得到无向带权图。
在本实施例中,所述第一获得模块210用于执行图2中的步骤S110,关于所述第一获得模块210的具体描述可以参照图2中步骤S110的描述。
第二获得模块220,用于根据所述无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点。
进一步地,所述无向带权图中包括任意两节点之间的距离,所述第二获得模块220根据所述无向带权图生成初始邻居关系矩阵的方式包括:
根据所述无向带权图将任意两节点之间的距离存储为初始矩阵;
判断任意两节点之间的距离是否大于对应节点的覆盖半径;
在任意两节点之间的距离大于对应节点的覆盖半径时,在所述初始矩阵中将该距离更新为第一数值,得到初始邻居关系矩阵;
在任意两节点之间的距离不大于对应节点的覆盖半径时,不在所述初始矩阵中对该距离进行更新,得到初始邻居关系矩阵。
所述第二获得模块220得到孤立节点及邻居节点最少的起始节点的方式包括:
根据所述无向带权图计算每个节点的邻居节点数量,得到每个节点的度数,并按照预设顺序存储在节点度数数组中;
判断所述节点度数数组中是否存在0元素;
若所述节点度数数组中存在0元素,则判定与0元素对应的节点为孤立节点;
查询所述节点度数数组中非0的最小值,并将与所述最小值对应的节点作为邻居节点最少的起始节点。
在本实施例中,所述第二获得模块220用于执行图2中的步骤S120,关于所述第二获得模块220的具体描述可以参照图2中步骤S120的描述。
第一添加模块230,用于将所述孤立节点及所述起始节点添加至初始节点序列集合中。
在本实施例中,所述第一添加模块230用于执行图2中的步骤S130,关于所述第一添加模块230的具体描述可以参照图2中步骤S130的描述。
第二添加模块240,用于基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到将所述无向带权图中所有节点均添加至所述初始节点序列集合中得到目标节点序列集合。
其中,所述待加入节点为所述无向带权图中未加入所述初始节点序列集合的节点,所述目标节点序列集合中非孤立的节点顺序与节点添加顺序对应,且所述孤立节点不位于非孤立的节点之间。
所述第二添加模块240基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到所有节点均添加至所述初始节点序列集合中得到目标节点序列集合的方式包括:
根据所述初始邻居关系矩阵得到每个待加入节点与所述初始节点序列集合中节点的距离,并将所有待加入节点中与所述初始节点序列集合中节点的距离最小且该距离不为第一数值的待加入节点作为目标待加入节点;
将所述目标待加入节点添加至所述初始节点序列中;
重复选择目标待加入节点及将所述目标待加入节点添加至所述初始节点序列中,直到所述无向带权图中的节点均被添加至所述初始节点序列集合中得到目标节点序列集合。
在本实施例中,所述第二添加模块240用于执行图2中的步骤S140,关于所述第二添加模块240的具体描述可以参照图2中步骤S140的描述。
调整模块250,用于根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵。
所述调整模块250根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵的方式包括:
根据所述目标节点序列中节点的顺序对所述初始邻居关系矩阵中每个元素的位置进行调整;
以第二数值对所有非第一数值的元素进行更新,得到所述目标节点邻居矩阵
在本实施例中,所述调整模块250用于执行图2中的步骤S150,关于所述调整模块250的具体描述可以参照图2中步骤S150的描述。
综上所述,本发明实施例提供一种邻居关系存储方法及装置。首先获得网络拓扑图,并根据所述网络拓扑图得到无向带权图。然后根据所述无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点。接着将所述孤立节点及所述起始节点添加至初始节点序列集合中。进而基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到将所述无向带权图中所有节点均添加至所述初始节点序列集合中得到目标节点序列集合。其中,所述待加入节点为所述无向带权图中未加入所述初始节点序列集合的节点,所述目标节点序列集合中非孤立的节点的顺序与节点添加顺序对应,且孤立节点不位于非孤立的节点的之间。最后根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵。目标节点邻居矩阵中邻居关系集中,当网络中节点数量庞大时,可以极大地减小数据处理量和数据处理时间。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种邻居关系存储方法,其特征在于,所述方法包括:
获得网络拓扑图,并根据所述网络拓扑图得到无向带权图;
根据所述无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点,其中,所述孤立节点为邻居节点数量为0的节点,非孤立且邻居节点最少的起始节点为邻居节点数量为非0的节点中邻居节点数量最少的节点;
将所述孤立节点及所述起始节点添加至初始节点序列集合中;
基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到将所述无向带权图中所有节点均添加至所述初始节点序列集合中得到目标节点序列集合,其中,所述待加入节点为所述无向带权图中未加入所述初始节点序列集合的节点,所述目标节点序列集合中非孤立的节点顺序与节点添加顺序对应,且所述孤立节点不位于非孤立的节点之间,所述孤立节点不位于非孤立的节点之间表示所述孤立节点在所述目标节点序列集合中的位置不位于所述目标节点序列集合中非孤立的节点的位置之间;
根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵,其中,所述调整包括对所述初始邻居关系矩阵中每个元素的位置进行调整。
2.根据权利要求1所述的方法,其特征在于,所述无向带权图中包括任意两节点之间的距离,所述根据所述无向带权图生成初始邻居关系矩阵,包括:
根据所述无向带权图将任意两节点之间的距离存储为初始矩阵;
判断任意两节点之间的距离是否大于对应节点的覆盖半径;
在任意两节点之间的距离大于对应节点的覆盖半径时,在所述初始矩阵中将该距离更新为第一数值,得到初始邻居关系矩阵;
在任意两节点之间的距离不大于对应节点的覆盖半径时,不在所述初始矩阵中对该距离进行更新,得到初始邻居关系矩阵。
3.根据权利要求2所述的方法,其特征在于,所述得到孤立节点及非孤立且邻居节点最少的起始节点,包括:
根据所述无向带权图计算每个节点的邻居节点数量,得到每个节点的度数,并按照预设顺序存储在节点度数数组中;
判断所述节点度数数组中是否存在0元素;
若所述节点度数数组中存在0元素,则判定与0元素对应的节点为孤立节点;
查询所述节点度数数组中非0的最小值,并将与所述最小值对应的节点作为邻居节点最少的起始节点。
4.根据权利要求2所述的方法,其特征在于,所述基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到所有节点均添加至所述初始节点序列集合中得到目标节点序列集合,包括:
根据所述初始邻居关系矩阵得到每个待加入节点与所述初始节点序列集合中各个节点的距离,并将所有待加入节点中与所述初始节点序列集合中某个节点的距离最小且该距离不为第一数值的待加入节点作为目标待加入节点;
将所述目标待加入节点添加至所述初始节点序列中;
重复选择目标待加入节点及将所述目标待加入节点添加至所述初始节点序列中,直到所述无向带权图中的节点均被添加至所述初始节点序列集合中得到目标节点序列集合。
5.根据权利要求2所述的方法,其特征在于,所述根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵,包括:
根据所述目标节点序列中节点的顺序对所述初始邻居关系矩阵中每个元素的位置进行调整;
以第二数值对所有非第一数值的元素进行更新,得到所述目标节点邻居矩阵。
6.一种邻居关系存储装置,其特征在于,所述装置包括:
第一获得模块,用于获得网络拓扑图,并根据所述网络拓扑图得到无向带权图;
第二获得模块,用于根据所述无向带权图生成初始邻居关系矩阵,并得到孤立节点及非孤立且邻居节点最少的起始节点,其中,所述孤立节点为邻居节点数量为0的节点,非孤立且邻居节点最少的起始节点为邻居节点数量为非0的节点中邻居节点数量最少的节点;
第一添加模块,用于将所述孤立节点及所述起始节点添加至初始节点序列集合中;
第二添加模块,用于基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到将所述无向带权图中所有节点均添加至所述初始节点序列集合中得到目标节点序列集合,其中,所述待加入节点为所述无向带权图中未加入所述初始节点序列集合的节点,所述目标节点序列集合中非孤立的节点顺序与节点添加顺序对应,且所述孤立节点不位于非孤立的节点之间,所述孤立节点不位于非孤立的节点之间表示所述孤立节点在所述目标节点序列集合中的位置不位于所述目标节点序列集合中非孤立的节点的位置之间;
调整模块,用于根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵,其中,所述调整包括对所述初始邻居关系矩阵中每个元素的位置进行调整。
7.根据权利要求6所述的装置,其特征在于,所述无向带权图中包括任意两节点之间的距离,所述第二获得模块根据所述无向带权图生成初始邻居关系矩阵的方式包括:
根据所述无向带权图将任意两节点之间的距离存储为初始矩阵;
判断任意两节点之间的距离是否大于对应节点的覆盖半径;
在任意两节点之间的距离大于对应节点的覆盖半径时,在所述初始矩阵中将该距离更新为第一数值,得到初始邻居关系矩阵;
在任意两节点之间的距离不大于对应节点的覆盖半径时,不在所述初始矩阵中对该距离进行更新,得到初始邻居关系矩阵。
8.根据权利要求7所述的装置,其特征在于,所述第二获得模块得到孤立节点及非孤立且邻居节点最少的起始节点的方式包括:
根据所述无向带权图计算每个节点的邻居节点数量,得到每个节点的度数,并按照预设顺序存储在节点度数数组中;
判断所述节点度数数组中是否存在0元素;
若所述节点度数数组中存在0元素,则判定与0元素对应的节点为孤立节点;
查询所述节点度数数组中非0的最小值,并将与所述最小值对应的节点作为邻居节点最少的起始节点。
9.根据权利要求7所述的装置,其特征在于,所述第二添加模块基于所述初始节点序列集合采用Prim算法将所述无向带权图中待加入节点依次添加至所述初始节点序列集合,直到所有节点均添加至所述初始节点序列集合中得到目标节点序列集合的方式包括:
根据所述初始邻居关系矩阵得到每个待加入节点与所述初始节点序列集合中各个节点的距离,并将所有待加入节点中与所述初始节点序列集合中某个节点的距离最小且该距离不为第一数值的待加入节点作为目标待加入节点;
将所述目标待加入节点添加至所述初始节点序列中;
重复选择目标待加入节点及将所述目标待加入节点添加至所述初始节点序列中,直到所述无向带权图中的节点均被添加至所述初始节点序列集合中得到目标节点序列集合。
10.根据权利要求7所述的装置,其特征在于,所述调整模块根据所述目标节点序列集合中节点的顺序对所述初始邻居关系矩阵进行调整得到目标节点邻居矩阵,包括:
根据所述目标节点序列中节点的顺序对所述初始邻居关系矩阵中每个元素的位置进行调整;
以第二数值对所有非第一数值的元素进行更新,得到所述目标节点邻居矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810427119.5A CN108600026B (zh) | 2018-05-07 | 2018-05-07 | 邻居关系存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810427119.5A CN108600026B (zh) | 2018-05-07 | 2018-05-07 | 邻居关系存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108600026A CN108600026A (zh) | 2018-09-28 |
CN108600026B true CN108600026B (zh) | 2021-08-27 |
Family
ID=63620993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810427119.5A Active CN108600026B (zh) | 2018-05-07 | 2018-05-07 | 邻居关系存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108600026B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231911B (zh) * | 2011-06-28 | 2014-02-26 | 南京工业大学 | 一种距离感知的无线传感器网络多维定标定位方法 |
EP3032914B1 (en) * | 2013-08-28 | 2017-10-18 | Huawei Technologies Co., Ltd. | Method and apparatus for selecting preferred parent node in wireless sensor network |
CN105282038B (zh) * | 2015-11-04 | 2018-10-09 | 哈尔滨工业大学 | 用于移动卫星网络中基于稳定性分析的分布式星群组网优化方法 |
CN107560593B (zh) * | 2017-08-28 | 2019-12-17 | 荆门程远电子科技有限公司 | 基于最小生成树的特殊无人机影像空三自由网构建方法 |
-
2018
- 2018-05-07 CN CN201810427119.5A patent/CN108600026B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108600026A (zh) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110267194B (zh) | 一种无线漫游性能优化方法、装置、存储介质及系统 | |
CN105677447B (zh) | 分布式云中基于聚类的时延带宽极小化虚拟机部署方法 | |
JP2005190372A (ja) | パラメータ調整装置 | |
CN113014422B (zh) | 一种内容分发网络带宽调度的方法、装置及设备 | |
CN112073452A (zh) | 一种能源有效和资源受限的移动边缘计算任务分配方法 | |
CN108769118B (zh) | 一种分布式系统中主节点的选取方法及装置 | |
CN111460237B (zh) | 一种数据查询的方法、装置、可读存储介质和电子设备 | |
CN114492849B (zh) | 一种基于联邦学习的模型更新方法及装置 | |
CN108600026B (zh) | 邻居关系存储方法及装置 | |
CN113037791A (zh) | 运维方法和系统、计算机可读存储介质 | |
US20060209717A1 (en) | Distributed storing of network position information for nodes | |
CN113191432A (zh) | 基于离群因子的虚拟机集群的异常检测方法、设备及介质 | |
CN110968273B (zh) | 基于物联网的激光彩色打印方法及系统 | |
CN112035234A (zh) | 分布式批量作业分配方法及装置 | |
CN113821329B (zh) | 一种面向大规模数据的并行任务处理方法和系统 | |
CN116471228A (zh) | 一种信息确定方法、系统、装置、设备及存储介质 | |
CN114416913B (zh) | 一种对知识图谱进行数据分片的方法及装置 | |
CN116389266A (zh) | 一种基于强化学习的数字孪生网络切片的方法和装置 | |
CN115134288B (zh) | 通信网络路由调度方法及系统 | |
CN116303418A (zh) | 基于物联网平台的海量规则处理方法、系统及存储介质 | |
CN117290560B (zh) | 图计算任务中获取图数据的方法和装置 | |
CN112749004B (zh) | 基于节点访问热度的数据存储方法及装置 | |
CN116991337B (zh) | 一种远程教育系统的教育资源的云存储方法及装置 | |
CN109729531A (zh) | 确定信道规划 | |
CN117499017B (zh) | 区块链网络传输方法、系统及存储介质和终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231126 Address after: 518100 4th Floor, Building 12, Zhongrilong Road, Shajing Street, Bao'an District, Shenzhen, Guangdong Province, China Patentee after: Shenzhen Hechangsheng Technology Co.,Ltd. Address before: 400065 Chongwen Road, Nanshan Street, Nanan District, Chongqing Patentee before: CHONGQING University OF POSTS AND TELECOMMUNICATIONS |