一种不规则区域中的网络拓扑结构可视化方法与流程

文档序号:16671631发布日期:2019-01-18 23:37阅读:322来源:国知局
一种不规则区域中的网络拓扑结构可视化方法与流程

本发明属于网络结构分析领域,特别涉及一种网络拓扑结构可视化技术。



背景技术:

随着社会的发展,我们进入了信息爆炸的时代,关系数据网络的规模越来越大,传统的文本表示方法已经不能快速而准确的使得数据研究员可以快速了解并分析一个网络的结构信息,而网络拓扑可视化产生的拓扑图像却可以让数据研究员一目了然的观察网络拓扑的整体情况以及任何子结构的细节。网络拓扑可视化的布局包括逻辑布局与物理布局,逻辑布局主要是为了展示网络的逻辑结构,布局比较简单;物理布局不仅要展示出网络的逻辑结构,还要结合拓扑中点的位置信息,这有重要的现实意义。

当前的网络拓扑可视化领域最关注的主题仍然是网络节点布局效果符合美学标准,例如力导引布局算法、kk布局算法;这些传统的布局算法所存在的问题是他们都是将网络拓扑的节点在矩阵区域中自由的移动从而获取较好的网络拓扑布局效果。然而当结合节点的位置信息之后,拓扑的布局区域往往为不规则多边形,在不规则多边形中进行布局就会产生布局不均匀的问题:多边形中心区域节点密集而多边形的边角区域节点稀疏。

网络拓扑可视化对于人们获取网络结构信息具有十分重要的作用,传统的网络拓扑布局方法通常以计算机屏幕作为显示目标,拓扑布局区域是规则区域(如长方形屏幕,长方形软件窗口等)。但在实际使用中,通常需要在不规则区域内布局,如当拓扑结构和地理信息结合时,需要将拓扑结构布局到某个国家和地区的范围内,这个范围就是一个不规则的区域。对于不规则区域内的拓扑结构布局,目前还缺少相关的解决方案。

力导引拓扑布局算法由p.eades于1984年提出,该方法参照了实际物理世界中分子之间的作用力模型:每个分子之间都存在引力从而拉近彼此间的距离,同时当距离过近时又会有巨大的引力从而维持彼此间的距离。这种物理模型可以保证分子之间维持稳定、清晰的结构。但是eades对力导引布局算法的构建有一点不同,他将网络拓扑中的节点想象成一个钢圈,将拓扑中的边想象成一个弹簧。每个钢圈拥有一个初始位置,通过弹簧的拉伸将钢圈的位置改变从而保证整体的势能最小。因为力导引算法是参照于实际物理模型,因此它的可视化效果满足布局的美学要求,是当今逻辑布局中最经典的算法之一。

力导引拓扑布局算法主要规律如下:有边相连的节点他们之间的距离应适当靠近;网络拓扑中任意两个节点之间距离不能特别近。该方法受到了弹簧的胡克定律及宇宙中的万有引力的启发,对于相连的节点保证两点之间是具有吸引力的,而网络节点两两之间是存在斥力。但是力导引算法只是通过斥力和引力来计算节点之间移动的速率,而不像真实物理世界中还要考虑加速度。这点修改是非常重要的,因为如果考虑了加速度的存在,那么这个系统将是动态系统,节点的位置一直是变化的;而只考虑速度的话由于移动距离有限,节点的位置会在多次迭代之后趋于平衡。所以力导引布局算法的核心是计算节点之间的斥力引力。

在上文阐述过,由于当纯考虑力对节点产生的速度变化,这使得整体会在多次迭代之后趋于平衡,因此本算法会对一些步骤进行大量的迭代,所要进行迭代的步骤如下:

第一步,计算每个节点所受到的引力作用产生的位移向量,对于一个节点来说,只有与它有邻接关系的节点才对该节点具有引力作用;

第二步,计算每个节点所受到的斥力作用产生的位移向量,对于一个节点来说,可视化区域中的剩余节点均对该节点具有斥力作用。

在经过一定次数的迭代之后,网络拓扑会达到一个稳定的状态,在这个状态下,网络拓扑就会呈现出美观的可视化效果。



技术实现要素:

为解决上述技术问题,本发明提出一种不规则区域中的网络拓扑结构可视化方法,基于力导引方法,结合不规则区域本身的几何特点,并综合考虑节点的受力分析,建立起一套不规则区域节点布局方法,使得整个不规则区域中的节点布局均匀。

本发明的技术方案为:一种不规则区域中的网络拓扑结构可视化方法,包括:

s1、对不规则多边形进行分块,将多边形中圆形布局中的点分为n块,n为多边形顶点的数量;

s2、判断是否存在未布局的分块,如果有,则取出该分块内点的集合,然后执行步骤s3;否则结束;

s3、在各分块内建立受力模型,求解集合中每一个点所受的斥力总和:

s4、根据点所受的斥力总和计算本次迭代每一个点的移动距离,根据移动距离更新每一个点的坐标,并且记录本次迭代的最大移动距离;

s5、如果最大移动距离超过预设阈值,则返回进入步骤s3;否则,将现在点的坐标转化为直角坐标,并保存,然后将当前分块标志为布局状态,返回步骤s2。

进一步地,步骤s1之前还包括:

a1、确定子结构的不规则多边形,具体包括以下分步骤:

a11、结合网络结构多级层次性和地理信息多级层次性,对网络拓扑进行网络结构的划分,得到若干子结构。

a12、统计子结构中具有位置信息的节点,根据各节点确定该子结构的中心点;

a13、连接相邻子结构的中心点,并根据相邻子结构各自节点数目的比例,确定一第二类辅助点将中心点之间的连线划分为两段;

a14、顺序连接属于同一个中心点的辅助点,得到围绕中心点的不规则多边形。

a2、对不规则多边形进行圆形布局;具体包括以下分步骤:

a21、确定要布置的圆周数以及最大圆的半径;其他圆的半径按照给定步长缩小;

a22、根据不规则多边形内节点的属性值,将最大属性值的节点布置于圆心处,剩下的节点按照各圆周长度比例划分进行布置。

更进一步地,剩下的节点按照各圆周长度比例进行划分布置,具体为,根据各圆周长度比例得到布置到各圆周的节点数,然后根据各圆周对应的节点数按照节点属性值从大到小将剩下的节点划分至各圆周。

进一步地,步骤s1所述将多边形中圆形布局中的点分为n块,具体为:找到不规则多边形与圆形布局中最大半径圆的所有切点,将圆心与各切点相连,将圆形布局分为个分块。

更进一步地,还包括采用pointinpolygon算法统计每个分块内的节点。

进一步地,步骤s3所述建立受力模型,具体包括以下分步骤:

b1、以某个分块所对应的不规则多边形的顶点为起始点,连接该分块内的节点做射线,各射线与该分块两条半径边的交点为第一类辅助点;

b2、分块所对应的不规则多边形的顶点、分块内的节点以及各第一类辅助点具备斥力;且各节点在其所属射线线段上移动;

b3、根据分块所对应的不规则多边形的顶点对分块内的节点有斥力、分块内的节点相互之间有斥力、第一类辅助点对所属射线线段上的节点有斥力,建立力引导模型;

其中,射线线段为射线上不规则多边形的顶点和该射线上的辅助点之间的线段。

进一步地,步骤s3所述集合中每一个点所受的斥力总和计算式为:f=fg+fp+fq;

其中,fg表示分块内某节点受到所对应的多边形顶点g对其的斥力,fp表示分块内某节点受到分块内其节点的斥力,fq表示分块内某节点受到第一类辅助点的斥力。

进一步地,步骤s4所述根据点所受的斥力总和计算本次迭代每一个点的移动距离,计算式为:l=ft,t表示基础距离。

更进一步地,当前迭代完成后,还包括对t进行更新,更新表达式为:t=cool(t)。

进一步地,步骤s5还包括:将分块中的节点坐标转化为以该分块对应的不规则多边形顶点为原点的极坐标。

本发明的有益效果:本发明的方法,首先根据不规则区域的几何特征将区域分为几个部分,然后在每个部分中根据力导引的思想建立受力模型,在限制条件下进行多次迭代,使区域中心密集的节点向边角扩散,最终使得整个不规则区域中的节点布局均匀美观;本发明的方法具备以下优点:

1、本发明提出的受力模型,将圆形布局分块向不规则区域顶点扩散,使得不规则区域中节点分布均匀;

2、本发明建立了极坐标系下的力导引算法运算方法,在极坐标系下,可以方便的对节点进行受力分析并对坐标进行限制与移动,使计算更为简单易懂。

附图说明

图1为本发明的方案流程图;

图2为本发明实施例提供的子结构圆形布局的分块示意图;

图3为本发明实施例提供的pointinpolygon的射线解法示意图;

图4为本发明实施例提供的极坐标下的受力模型使用意图。

具体实施方式

为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。

网络拓扑可视化对于人们获取网络结构信息具有十分重要的作用,传统的网络拓扑布局方法通常以计算机屏幕作为显示目标,拓扑布局区域是规则区域(如长方形屏幕,长方形软件窗口等)。但在实际使用中,通常需要在不规则区域内布局,如当拓扑结构和地理信息结合时,需要将拓扑结构布局到某个国家和地区的范围内,这个范围就是一个不规则的区域。对于不规则区域内的拓扑结构布局,目前还缺少相关的解决方案。

针对上述问题,本发明提出一种不规则区域中的网络拓扑结构可视化方法,如图1所示,包括以下步骤:

s1、对不规则多边形进行分块,将多边形中圆形布局中的点分为n块,n为多边形顶点的数量;

s2、判断是否存在未布局的分块,如果有,则取出该分块内点的集合,然后执行步骤s3;否则结束;

s3、在各分块内建立受力模型,求解集合中每一个点所受的斥力总和:

s4、根据点所受的斥力总和计算本次迭代每一个点的移动距离,根据移动距离更新每一个点的坐标,并且记录本次迭代的最大移动距离;

s5、如果最大移动距离超过预设阈值,则返回进入步骤s3;否则,将现在点的坐标转化为直角坐标,并保存,然后将当前分块标志为布局状态,返回步骤s2。

步骤s1之前还包括:

a1、确定子结构的不规则多边形,具体包括以下分步骤:

a11、结合网络结构多级层次性和地理信息多级层次性,对网络拓扑进行网络结构的划分,得到若干子结构。

虽然现阶段处于信息时代,信息爆发、信息过载同样对各种网络产生影响,网络的规模越来越大,网络结构越来越复杂;但是研究人员、科研学者发现无论网络规模怎么增大,网络结构怎么复杂,网络一直都具有“社团结构”,即可以将网络划分为多个更小的结构,并且在每个子结构的内部,还可以划分成多个更小的子结构,即一个网络可以划分成多级子结构:第一级是规模较大的子结构,第二级是根据第一级划分出来的子结构继续进行划分。

不仅对于普通的网络拓扑存在多级层次性,位置信息也是具有层次性的。例如,对于一个国家级导航系统来说,可以将地理信息集合划分成多个省级地理信息子集合,在省级地理信息集合中又可以划分成多个市级地理信息子集合....本发明利用社团划分的方法,将网络结构多级层次性和地理信息多级层次性结合,共同进行网络结构的划分;本发明在对整个网络拓扑进行结构划分时就保证了网络拓扑结构和位置信息的层次性划分。

a12、统计子结构中具有位置信息的节点,根据各节点确定该子结构的中心点;具体的根据这些含有位置信息的节点的位置均值来确定每个子结构的中心点。

a13、连接相邻子结构的中心点,并根据相邻子结构各自节点数目的比例,确定一第二类辅助点将中心点之间的连线划分为两段;

a14、顺序连接属于同一个中心点的辅助点,得到围绕中心点的不规则多边形,此不规则多边形即为子结构的布局区域。

a2、对不规则多边形进行圆形布局;具体包括以下分步骤:

a21、确定要布置的圆周数以及最大圆的半径;其他圆的半径按照给定步长缩小;

根据节点数的多少以及用户的需要来设定要布置的圆周数n,获取圆周半径r,对其他要布置的圆周半径按照步长为r/n进行缩小,因此要布置的半径依次是(n-1)r/n、(n-2)r/n、(n-3)r/n…

a22、根据不规则多边形内节点的属性值,将最大属性值的节点布置于圆心处,剩下的节点按照各圆周长度比例划分进行布置。

统计网络中的节点属性,例如节点的度数,并将这些属性由大到小对节点进行排序;每个圆周上要布置节点个数按照圆周长度比例对所有总节点数进行划分,对于圆心处放置属性值最大的节点,最小的圆周放置属性值次大的多个节点,依次类推,最大圆周放置属性值最小的那些节点。

步骤s1具体为:

在子结构布局的时候,每一个子结构都必须在一个约束的区域内进行布局,和传统的力导引布局不同,这个区域一般不是规则的矩形,而是不规则的多边形。如图2所示,这是某一个子结构的布局,其中多边形aceg为约束的区域,子结构只能在约束区域内部布局。在对网络拓扑进行结构划分之后一般进行圆形布局,然而,由于圆形布局只能够在一个圆形区域内部完成布局,所以最终拓扑只布局在了图2中以o为圆心的圆中。

本实施例采取了分治的思想,按照不规则区域的角的数量,将圆形分为相等的份数,如图2,圆形布局分为了4个部分,目的是将每个部分向箭头方向分摊,以达到拓扑布局布满整个多边形布局区域内的目的。

按照以下标准将圆形区域进行分块:找到多边形与圆形布局的所有切点,将圆心o与切点相连,如图2,连接出来ob,od,of,oh四条线,将圆形分为了四个部分。圆形区域内为本次布局的所有的点,对圆形区域的分摊即为对点的分摊,为了之后的计算,必须把每个部分的点统计出来,统计点的时候,本实施例用pointinpolygon(判断一个点是否在一个多边形内部)算法。

如图3,检查一点是否在多边形之内,可以作一射线从该点往任意方向投射,若让射线与多边形边的相交次数为奇,则点位于多边形之内;若让射线与多边形边的相交次数为偶,则点位于多边形之外。如图2,对所有点进行pointinpolygon算法之后,可以将点分为四个部分:在ohab中的点,在obcd中的点,在odef中的点,在ofgh中的点。

步骤s2具体为:步骤s1中的分块会产生一个问题:多边形的中心区域有拓扑布局而多边形的边角区域没有拓扑布局,如图3,多边形的四个角有很大的空白。这时要把圆形布局区域“扩散”(即将圆形区域向箭头方向扩大)到整个多边形中,填补多边形边角的空白。因此,会对这类存在空白的分块进行布局优化、

步骤s3具体为:

在传统的力导引模型中,有边相连的点之间有引力,点与其他所有点之间有斥力,在算法执行过程中,由于每个点所受力是不断变化的,所以点的最终位置是不可知的,有的时候由于受力问题,点甚至会跑到约束布局区域的外部。

与传统的力导引模型不同,本发明技术方案中的力导引模型按照以下规则构建:

第一,构建辅助点。以多边形顶点为原点,连接扇形内部的点做射线,射线与扇形半径的交点为辅助点。如图4,以g为原点,连接了扇形区域中的p1~p55个点,产生了q1~q55个辅助点。

第二,受力模型的构建。为了使节点能够向多边形顶点移动,我们首先想到了赋予顶点吸引力,然而这种情况下待布局节点可能会被扩散到多边形外部,造成“出界”。为了使结果可控,本方法加了约束:模型中只有斥力,而且点只能在自己所属的射线线段上移动。如图4,p1只能在线段gq1上移动。为了达到这个目的,在计算一个点的受力情况的时候,我们要将力“旋转”,如图4,p1对p2的斥力为f,然而计算斥力的时候,我们把f换为了f',所以p2只能在gq1这个直线上移动。本方案的力导引模型中拥有斥力的点包括这些:不规则多边形顶点,扇形中的点以及辅助点。多边形顶点只对扇形中的点有斥力,对这些点的斥力可以阻止扇形中的点“出界”;扇形中的点相互之间有斥力,相互之间的斥力可以推动整个系统向多边形边角“扩散”,最后达到平衡;辅助点只对所在射线上的点有斥力,这样一方面是为了阻止扇形区域的点跑到相邻区域,另一个原因就是为了布局美观,不仅同一区域中的点要布置均匀,相邻区域的点也要均匀布置,这些点可以阻止扇形区域的点在迭代结束后与扇形的半径距离过近,造成两个相邻扇形区域中的节点过近。另外,本模型中没有引力,在传统的力导引算法中,有边相连的点之间有引力,是为了让点在一定区域中移动;但是在本模型中,由于圆心o与所有的布局点之间有连线,所以会阻止点向边角扩散,本申请不计算引力,布局点就会自然的向边角扩散,而且由于边角点的斥力作用,点不会跑到布局区域之外。

本方案中的受力模型中,待布局点pi只能在线段gqi(1≤i≤n,i为节点编号,n为本区域中节点的数量)上移动,所以在极坐标系中容易进行计算。将多边形顶点g作为极坐标的顶点,以此进行坐标转换。设多边形顶点在原先的直角坐标系中坐标为(x1,y1),则一个在直角坐标系中的点p(x,y)转化为以g(x1,y1)为原点的极坐标系中的点的坐标为(ρ,θ),其中

设极坐标系中两点为p1(ρ1,θ1),p2(ρ2,θ2),极坐标系中两点之间距离公式为

在完成计算之后,点p(ρ,θ)转换为直角坐标系中的点为(x,y),其中

x=ρcosθ-x1(4)

y=ρsinθ-y1(5)

力导引模型中,两个点p,pi距离越远,斥力越小,距离越近,斥力越大,根据这个条件,可以推测出斥力与距离近似为反比关系。假设这个反比关系为

其中,f为斥力大小,k为参数,dis为两点的距离。但是力是有方向的,我们按照公式2-7来判断力的方向:

其中,为射线pip与op的夹角,可由以下公式计算

在一个分块中,一个点p受到三种点的力,其中,受到多边形顶点g的力fg永远为正,

受到块内其他待布局点pi的力为

受到第一类辅助点的力fq永远为负,且只受到与自身在同一条射线gp上的辅助点的斥力

因此,点p在一次计算中受到的合力f为

f=fg+fp+fq(12)

步骤s4具体为:

在计算出力之后,要对节点p的位置进行更新,因为p的角度θ保持不变,所以只需更新p的长度ρ。在真实的物理世界中,一个系统的稳定过程是从一开始的剧烈移动到后来的微弱晃动,无法模拟系统的加速度,所以只能模拟系统每次迭代时的移动距离,每经过一次迭代,下一次系统中点的移动距离就会变小。假设系统第一次移动时的基础距离为t,则点p在一次迭代中的移动距离为

l=ft(13)

p新的坐标为(ρ+l,θ),要满足0<ρ+l<ρq,如果不满足,则将长度调为限制条件内的数。本次迭代完成之后,t应该变小

t=cool(t)(14)

cool(t)相当于一个冷却函数,每一次执行cool(t),t的值就会缩小;在构建辅助点的时候,以多边形顶点为极点,连接待布局点做射线,交于扇形半径上做出辅助点q,ρq代表p点对应的辅助点在极坐标中的长度;例如,在图4中,以g为极点,p1对应的辅助点为q1,q1在以g为极点的极坐标系中的坐标为(ρq,θq)。

本发明方法首先对网络拓扑进行社团划分,将拓扑划分为一个个子社团;然后对每一个子社团分配布局区域,布局区域为不规则多边形,并用圆形布局将子社团布局在不规则多边形中;最后,根据不规则区域的几何特征对圆形布局进行分块,利用力导引的思想将每个分块向不规则区域的顶点扩散。经过这种方法,可以达到整体布局均匀美观的效果。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

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