CN101702655B - 网络拓扑图的布局方法和系统 - Google Patents
网络拓扑图的布局方法和系统 Download PDFInfo
- Publication number
- CN101702655B CN101702655B CN2009102362985A CN200910236298A CN101702655B CN 101702655 B CN101702655 B CN 101702655B CN 2009102362985 A CN2009102362985 A CN 2009102362985A CN 200910236298 A CN200910236298 A CN 200910236298A CN 101702655 B CN101702655 B CN 101702655B
- Authority
- CN
- China
- Prior art keywords
- node
- subgraph
- connections
- topological diagram
- layout
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种网络拓扑图的布局方法和系统,其中方法包括以下步骤:分析目标拓扑图的连通性,如果目标拓扑图不连通,将其分解为多个连通的子图;通过矩形块放置算法将多个连通的子图按照类正方形图形进行初步布局,并获取多个连通的子图的坐标;对初步布局后的多个连通的子图的节点按照受力驱动的布局算法进行布局,使得目标拓扑图的系统总动能小于设定值,并获取多个连通的子图的节点的相对坐标;根据多个连通的子图的坐标和多个连通的子图的节点的相对坐标得到多个连通的子图的节点的坐标。
Description
技术领域
本发明涉及网络管理领域,具体而言,涉及一种网络拓扑图的布局方法和系统。
背景技术
随着计算机网络技术的快速发展和日益复杂化,网络管理越来越依赖于专业的网管软件。其中,基于拓扑图的网络可视化管理方式由于能直观地反映网络的拓扑结构,为网络监控、路由分析等方面提供了可视化的展现方法且提供了方便的图形操作界面,一直深受广大网络管理人员的喜爱,代表了网管软件的发展方向。
基于拓扑图的网络可视化管理依赖于几项核心技术,其中一项是如何对网络拓扑图中的节点进行自动布局。对拓扑图进行自动布局的目的是将拓扑图中的设备节点均匀地布局在二维平面上(即网管软件中的拓扑图),使得网络管理员可以更加清晰地看清拓扑图上各设备之间的链路关系,以及更好地将软件和实际的网络拓扑联系起来。拓扑图的自动化布局的基本目标是:经过布局后,拓扑图中的节点尽可能不重叠、链路尽可能少交叉;节点均匀对称地分布在拓扑图中。对称的图比较有美感。
一个好的自动布局算法对基于拓扑的可视化管理越来越重要,这是因为在较大规模(网元节点数超过100)的网络拓扑图中,由于节点、链路众多,节点之间互相重叠、链路交叉的现象比较严重,没有一个好的布局算法,很难得到一个令人满意的布局结果,后续的对网络的监控和分析等网络管理活动也就无从开展。
目前工业界提出了一些拓扑图自动化布局的方法,相关专利如表1所示:
表1
申请号 | 申请人 | 网络专利名称 |
01123481.4 | 华为 | 网络节点拓扑结构图示方法 |
200710079757.4 | 华为 | 一种网络结构拓扑布局的方法及网管设备 |
200410081133.2 | 北京航空航天大学 | 大规模网络拓扑图形化显示的方法 |
200510022224.3 | 电子科大、中兴通讯 | 一种网络管理系统中网络拓扑图自动生成方法 |
200710121347.1 | 中兴通讯 | 一种设备拓扑网络布局的方法与装置 |
这些专利提出的拓扑图自动布局方法主要有以下两类,分析如下:
1.基于根的布局。这种布局方法的核心思想是把网络拓扑看成一个层次结构,采用逐层布局的办法将拓扑展开。算法从所有的结点中按照一定的规则选出一个根节点或者多个根节点,如果是多个根节点,先对这些根节点进行布局(一般将其均匀地布局到一个圆周上)。接着再对每一个根结点,按照一定的规则布局它的还未曾布局过的邻居结点(一般将其布局到一个圆周上),接着再以刚刚布局过的所有结点为根重复上面的过程,如此递归下去,直到布局完所有的结点。采用这种布局思想的专利有专利号为01123481.4的《网络节点拓扑结构图示方法》、专利号为200410081133.2的《大规模网络拓扑图形化显示的方法》以及专利号为200510022224.3的《一种网络管理系统中网络拓扑图自动生成方法》。图1、图2分别示出了根据相关技术的基于根的布局方法的理想布局效果图。
这种布局方法的优点是:算法简单容易实现,算法的运行速度快。它的缺点是:
1)不够灵活以适应复杂的网络拓扑的局部。在基于根的布局算法中,如果遍历过程碰到已经布局过的节点,采用的方式通常是使用原来布局得到的坐标,而不是根据当前的情况再对其进行调整修改,这样就会产生一些位置很不合理的连接线。并且布局总共只进行一轮,布局完成后不会有再次调整拓扑图布局的机会。所以,如果布局的对象不是算法理想的拓扑图,则可能得到的如图3所示的拓扑图布局结果,图3示出了基于根的布局在节点连接方式比较复杂的拓扑下的效果图;
2)只能对连通的拓扑图进行布局。所谓连通的拓扑图,是指在拓扑图中,对于任意的两个节点,总有路径可以到达。具体表现就是拓扑图中存在孤立的子图或者孤立的节点。在实际的应用中,一张拓扑图中包含几张互相孤立的子拓扑图,即被布局的目标拓扑是一张不连通的图的情况还是比较常见的,例如:某个交换机和主网之间的链路被切断,此时所有和该交换机相连的交换机或者PC就组成了一个和主网不连通的子网;还有一种常见的情况是,拓扑自动发现算法的缺陷导致一些本该存在的链路没有被发现。在网管软件中,受管网络的拓扑通常是软件自动发现的,由于网络越来越复杂,拓扑发现以及建立链路的结果也不一定和实际情况精确匹配,这也导致发现的拓扑图不连通。在基于根的布局算法中,潜在的假设的拓扑图是连通的。这就导致了算法的应用有局限性。
2.根据节点到网关的路由次数,分层布局。这种布局算法的核心思想是区分普通节点和网关节点,根据普通节点到网关节点的最小路由次数,将各节点分布在一个矩形区域中。其中,网关节点置于第一行,其他到网关的最小路由次数相同的节点置于同一行,并且路由次数越少,节点越靠近网关节点。这种布局算法同样有简单易于实现、运行速度快的优点,另外,如果普通节点到网关节点的最小路由次数是正确的,那么各层节点之间的链路交叉比较少,节点分布也比较均匀。采用这种布局思想的专利有专利号为200710079757.4的《一种网络结构拓扑布局的方法及网管设备》和200710121347.1的《一种设备拓扑网络布局的方法与装置》。图4示出了根据节点到网关的路由次数进行分层布局的理想拓扑布局效果图。
这种布局方法本质上是一个简单的树形布局,它的缺点是:
1)只能用于交换网络中的链路层拓扑图的布局。不能用于网络层拓扑图。这是因为网络层拓扑图上的节点是网络层(三层)设备和子网,没有节点到网关的路由次数的概念。
2)布局结果的正确性受限于是否能正确地得到节点到网关的路由次数。由于专利200710079757.4中没有描述在实际的网络中,如何获得节点到网关的路由次数的数据,所以其对布局结果的影响我们也无从得知。
3)和“基于根的布局算法”一样,它只能对连通的拓扑图进行布局。在专利200710079757.4中,潜在的假设也是被布局的拓扑图是连通的,没有描述如何对非连通的拓扑图进行布局。
在实现本发明过程中,发明人发现现有技术中基于根的布局方法只能一次性布局,较容易产生交叉的链路,节点布局较不合理,而且只能布局连通的拓扑图;而分层布局方法只能用于树形的链路层拓扑,不适用于网状的网络层拓扑,同时依赖于是否能正确地得到节点到网关的路由次数,布局算法过于依赖底层网络的技术约束,导致其适应性比较差,而且只能布局连通的拓扑图。
发明内容
本发明旨在提供一种网络拓扑图的布局方法和系统,能够解决现有技术中基于根的布局方法只能一次性布局,较容易产生交叉的链路,节点布局较不合理,而且只能布局连通的拓扑图;而分层布局方法只能用于树形的链路层拓扑,不适用于网状的网络层拓扑,同时依赖于是否能正确地得到节点到网关的路由次数,布局算法过于依赖底层网络的技术约束,导致其适应性比较差,而且只能布局连通的拓扑图的问题。
在本发明的实施例中,提供了一种网络拓扑图的布局方法,包括以下步骤:
分析目标拓扑图的连通性,如果目标拓扑图不连通,将其分解为多个连通的子图;
通过矩形块放置算法将多个连通的子图按照类正方形图形进行初步布局,并获取多个连通的子图的坐标;
对初步布局后的多个连通的子图的节点按照受力驱动的布局算法进行布局,使得目标拓扑图的系统总动能小于设定值,并获取多个连通的子图的节点的相对坐标;
根据多个连通的子图的坐标和多个连通的子图的节点的相对坐标得到多个连通的子图的节点的坐标。
在本发明的实施例中,还提供了一种网络拓扑图的布局系统,包括:
分解模块,用于分析目标拓扑图的连通性,如果目标拓扑图不连通,将其分解为多个连通的子图;
第一布局模块,用于通过矩形块放置算法将多个连通的子图按照类正方形图形进行初步布局,并获取多个连通的子图的坐标;
第二布局模块,用于对初步布局后的多个连通的子图的节点按照受力驱动的布局算法进行布局,使得目标拓扑图的系统总动能小于设定值,并获取多个连通的子图的节点的相对坐标;
计算模块,用于根据多个连通的子图的坐标和多个连通的子图的节点的相对坐标得到多个连通的子图的节点的坐标。
在上述实施例中,通过矩形块放置算法对多个连通的子图进行初步的布局使得各连通子图之间的间隙尽量小,最后得到比较紧凑的总拓扑图,进而通过采用受力驱动算法,对当前结果进行反复迭代,每一次迭代都得到比上一次更好的结果,使得本发明的实施例不依赖于任何网络技术,可以对各种网络拓扑图进行布局,包括链路层拓扑图和网络层拓扑图,可以较好地解决链路交叉、节点布局不合理的问题,可以较好地对比较大规模的拓扑图进行自动布局,布局结果基本达到拓扑图的自动化布局的目标——节点不重叠、链路少交叉、拓扑图对称有美感。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1、图2分别示出了根据相关技术的基于根的布局方法的理想布局效果图;
图3示出了基于根的布局在节点连接方式比较复杂的拓扑下的效果图;
图4示出了根据节点到网关的路由次数进行分层布局的理想拓扑布局效果图;
图5示出了根据本发明一个实施例的网络拓扑图的布局方法流程图;
图6-图10示出了根据本发明一个实施例的矩形块放置方法示意图;
图11示出了根据本发明一个实施例的受力驱动的布局算法流程图;
图12示出了根据本发明一个实施例的网络拓扑图的布局系统模块图。
具体实施方式
下面将参考附图并结合实施例,来详细说明本发明。
图5示出了根据本发明一个实施例的网络拓扑图的布局方法流程图,包括以下步骤:
S102,分析目标拓扑图的连通性,如果目标拓扑图不连通,将其分解为多个连通的子图;
S104,通过矩形块放置算法将多个连通的子图按照类正方形图形进行初步布局,并获取多个连通的子图的坐标;
S106,对初步布局后的多个连通的子图的节点按照受力驱动的布局算法进行布局,使得目标拓扑图的系统总动能小于设定值,并获取多个连通的子图的节点的相对坐标;
S108,根据多个连通的子图的坐标和多个连通的子图的节点的相对坐标得到多个连通的子图的节点的坐标。
在本实施例中,通过矩形块放置算法对多个连通的子图进行初步的布局使得各连通子图之间的间隙尽量小,最后得到比较紧凑的总拓扑图,进而通过采用受力驱动算法,对当前结果进行反复迭代,每一次迭代都得到比上一次更好的结果,使得本发明的实施例不依赖于任何网络技术,可以对各种网络拓扑图进行布局,包括链路层拓扑图和网络层拓扑图,可以较好地解决链路交叉、节点布局不合理的问题,可以较好地对比较大规模的拓扑图进行自动布局,布局结果基本达到拓扑图的自动化布局的目标——节点不重叠、链路少交叉、拓扑图对称有美感。
在本发明的实施例中,假设拓扑图是不连通的,而连通的拓扑图是其特例,所以可以对连通的或者不连通的拓扑图进行布局。
优选地,在上述布局方法中,分析目标拓扑图的连通性,如果目标拓扑图不连通,将其分解为多个连通的子图包括:
步骤a,将目标拓扑图用函数式G(V,E)表示,其中V代表图中的节点集,E代表图中的边集;
步骤b,取节点集V中的第一个节点a,并从节点a遍历边集E,取出边集E中所有和节点a有关的边以及相应的节点,得到连通的子图G1(V1,E1),以及目标拓扑图G中剩余的节点和边组成的图G′(V′,E′);
步骤c,如果节点集V′不为空,则取出节点集V′中的第一个节点,对边集G′执行步骤b中的操作,直至节点集V′为空。
优选地,在上述布局方法中,还包括以下步骤:如果目标拓扑图是连通的,对布局后的目标拓扑图的节点按照受力驱动的布局算法进行布局,使得目标拓扑图的系统总动能小于设定值,获取目标拓扑图的节点的坐标。
优选地,在上述布局方法中,通过矩形块放置算法将多个连通的子图按照类正方形图形进行初步布局,并获取多个连通的子图的坐标包括:
步骤d,计算多个连通的子图的边长和面积,并按面积将多个连通的子图进行降序排列;
步骤e,将多个连通的子图中面积最大的子图的左上角作为坐标原点,沿X轴方向依次摆放面积最大的两个连通的子图A和B,并计算子图A和B之间的空余区域S1的面积;
步骤f,按照面积大小依次判断剩余的多个连通的子图是否可以放置在空余区域S1中;
步骤g,如果是,将其放置在空余区域S1中;
步骤h,否则,按照面积大小沿Y轴正向向右依次摆放剩余的多个连通的子图,并使得其所在行沿X轴的宽度不大于其前一行沿X轴的宽度;
步骤i,当沿Y轴的长度大于沿X轴的长度时,放弃沿Y轴方向的摆放,转而在X轴方向沿子图B向右摆放,重复步骤e。
图6-图10示出了根据本发明一个实施例的矩形块放置方法示意图,如图6-图10所示:
1)按给定的正比例参数K,计算每个连通子图的边长和面积。每一个连通图都确定为一个正方形,边长为L(n)=K*n,面积S(n)=L*L=K*K*n*n,其中n是连通子图中节点的个数。
2)根据连通子图的面积大小,对所有连通子图进行排序(从大到小)。
3)在坐标系上,取出最大的连通子图A,将其左上角坐标置为0。再取出第二个连通子图B,将其沿x轴正方向,挨着子图A的右边排列。记录下A与B之间的空余区域X1。如图6所示。
4)判断第三个子图是否可以放置在S1中,如果可以,则放置;如果不能放置得下,则将其沿Y轴正方向,挨着子图A的下方排列,如图7所示。
5)同样,对第4、5、6......子图应用步骤:S1是否可以容纳得下?如果可以,则将其放置在S1区域;如果不可以,将其依次向右摆放。直到第二行已经不能摆得下(超出了A+B的宽度)。如图8所示,按照C、D、E、F、G、H的顺序排列。
6)接着在第3行继续摆放剩下的子图(子图I)。如果摆上子图I后,现有拓扑图在Y轴方向的边长大于X轴方向的边长,则不再继续往下摆,而返回步骤3,并在第一行依次摆下A子图、B子图和最小的子图(假设为J)。(X轴的宽度一开始是给定的,不一定合理。需要在后续迭代中调整。此实施例中就是Y太长了,该继续摆X了。这样最后的结果就基本会使拓扑图的展示区域为正方形,不会横向或者纵向特别长。)如图9和图10所示。摆放完毕后,拓扑图的在X轴方向的宽度一定大于或者等于在Y轴方向的宽度。
综上所述,“矩形块放置算法”的核心是摆放正方形子图的顺序是先X向后Y向,并且在摆放新的子图的时候首先尝试将其放置在其他行的“闲置”空间中。如果在摆放过程中,某个摆放步骤导致Y向的宽度大于X向的宽度,则取消该步骤,转向X向的摆放,这样在摆放过程结束后,X轴等于或者略长于Y轴宽度,而拓扑图的总体接近正方形,得到了比较好的放置效果。本算法在设计的时候,考虑到了程序实现,所以使用程序实现比较简单。
优选地,在上述布局方法中,对初步布局后的多个连通的子图的节点按照受力驱动的布局算法进行布局,使得目标拓扑图的系统总动能小于设定值,并获取多个连通的子图的节点的相对坐标包括:
步骤j,将多个连通的子图的节点随机设置为不相同的坐标,并获取链接的边最多的节点,将其坐标设定为其所在子图的拓扑图的中心;
步骤k,设目标拓扑图的系统动能的初始值为0,根据库伦定律计算多个连通的子图的节点所受的斥力;
步骤l,根据斥力和胡克定律计算多个连通的子图的节点所受的节点力;
步骤m,根据初始速度、节点力、时间间隔值和设定的阻尼系数计算多个连通的子图的节点的节点速度;
步骤n,根据节点质量、节点速度和系统动能的初始值计算多个连通的子图的系统动能;
步骤o,根据节点速度、时间间隔值和初始坐标计算多个连通的子图的节点的节点坐标;
步骤p,判断系统动能是否小于预设值,如果判断结果为否,跳转到步骤j。
“受力驱动的布局算法”的核心思想是:将待布局的节点看做是带相同电荷的、有质量的小球,节点之间的链路则被看成是弹簧。这样,整个布局图就可以看做一个物理系统:每两个小球之间有斥力(可以由“库伦定律”计算得出),而相连接的小球之间则有弹力(可以由“胡克定律”计算得出)。节点在这两种力的作用下,互相靠近或者远离,最后整个系统趋于稳定,节点的位置不再剧烈地变化。当整个系统所有节点的动能之和小于某个预设值时,布局过程就完成了。
“受力驱动的布局算法”的布局结果节点分布合理、形态美观,特别是以下几个特点使其很好地符合了人们对拓扑图的审美标准:链路长度均匀、节点分布合理、视觉上的对称性。“受力驱动的布局算法”的主要缺点是其布局计算时间比较长。其算法复杂度O(V2),V是节点的数量。也就是说布局时间是和节点的增长成平方关系。本发明的实施例在采用该算法的时候,根据网络拓扑图的特点,在以下几个方面对“受力驱动的布局算法”进行了完善,很大程度上减小了其算法运行比较慢的缺点:
1、首先将目标拓扑图划分为多张连通子图。所以,算法应用的对象就是一个个规模相对比较小的连通子图。这对加快算法运行速度起到了两个方面的作用:首先,虽然最终要进行布局的节点数目是一样的,但划分成多张子图后,算法运行时间明显缩短。这是由于其算法复杂度是O(V2),运行时间的平方和节点数目成正比。例如算法布局8个节点所需要的时间是1秒,那么布局64个节点就需要n1=(64/8)*(64/8)*1=64秒,但布局4张含16个节点的子图只需要n2=4*(16/8)*(16/8)*1=16秒。减少的时间是很可观的;其次,“受力驱动的布局算法”作用在非连通图上时,算法的“收敛速度”比较慢(算法需要比较长的计算时间),也就是说,要达到和连通图类似的布局效果,需要更多的时间。所以,将“受力驱动的布局算法”的布局目标拓扑图调整为各个连通的子图,又从另一方面减少了布局所需要的时间。
2、对“受力驱动的布局算法”的初始化步骤做了一个改善。在原“受力驱动的布局算法”中,初始化步骤是把所有的节点随机设置为不相同的坐标。在本发明中,添加了一个步骤:首先找出度数最大的节点(即链接的边最多的节点),将其坐标设定为拓扑图的中心;如果多个节点都拥有最大的度数,则将这些节点均匀地布局在以拓扑图为中心的一个圆周上。之所以做这个改动,是因为在初始化步骤就设定度数最大的节点在中间,相当于做了一次和最后目标比较一致的布局处理,可以使布局在更短的时间内达到更好的效果(即较少的迭代次数)。
图11示出了根据本发明一个实施例的受力驱动的布局算法流程图,包括以下步骤:
S201,随机设置所有节点的坐标,保证每两个节点的坐标都不一样;
S202,将度数最大的点的坐标设置为拓扑图的中心坐标;
S203,系统总动能设定为0;
S204,对所有的节点循环开始;
S205,作用在节点上的力初始化为0
S206,对所有其它节点循环开始;
S207,节点力=节点力初始值+两个节点之间的库伦力;
S208,对所有其它节点循环结束;
S209,对所有的链路(弹簧)循环开始;
S210,节点力=节点力初始值+两个节点之间的弹力(根据胡克定律进行计算);
S211,对所有的链路(弹簧)循环结束;
S212,节点速度=(节点速度初始值+时间间隔值*作用在节点上的力)*预设的阻尼系数;
S213,节点坐标=节点坐标初始值+时间间隔值*节点速度;
S214,系统动能=系统动能初始值+节点质量*节点速度*节点速度;
S215,对所有的节点循环结束;
S216,判断系统总动能是否小于预设值,如果是,流程结束,否则跳转到步骤S204。
在本实施例中,先得到每一张子拓扑图在总拓扑图中的坐标;进而得到了所有节点在相应的子拓扑图中的坐标。将所有节点的坐标加上其所在子拓扑图的坐标,即可得到所有节点在总拓扑图中的坐标。至此,布局完成。后续的拓扑展示模块根据节点信息、链路信息以及节点在总拓扑图中的坐标即可绘制出相应的拓扑图。
优选地,在上述布局方法中,将多个连通的子图的节点随机设置为不相同的坐标,并获取链接的边最多的节点,将其坐标设定为其所在子图的拓扑图的中心包括:
如果具有链接的边最多的节点的数目为多个,将具有链接的边最多的多个节点均匀地布局在以拓扑图为中心的圆周上。
图12示出了根据本发明一个实施例的网络拓扑图的布局系统模块图,包括:
分解模块10,用于分析目标拓扑图的连通性,如果目标拓扑图不连通,将其分解为多个连通的子图;
第一布局模块20,用于通过矩形块放置算法将多个连通的子图按照类正方形图形进行初步布局,并获取多个连通的子图的坐标;
第二布局模块30,用于对初步布局后的多个连通的子图的节点按照受力驱动的布局算法进行布局,使得目标拓扑图的系统总动能小于设定值,并获取多个连通的子图的节点的相对坐标;
计算模块40,用于根据多个连通的子图的坐标和多个连通的子图的节点的相对坐标得到多个连通的子图的节点的坐标。
在本实施例中,通过矩形块放置算法对多个连通的子图进行初步的布局使得各连通子图之间的间隙尽量小,最后得到比较紧凑的总拓扑图,进而通过采用受力驱动算法,对当前结果进行反复迭代,每一次迭代都得到比上一次更好的结果,使得本发明的实施例不依赖于任何网络技术,可以对各种网络拓扑图进行布局,包括链路层拓扑图和网络层拓扑图,可以较好地解决链路交叉、节点布局不合理的问题,可以较好地对比较大规模的拓扑图进行自动布局,布局结果基本达到拓扑图的自动化布局的目标——节点不重叠、链路少交叉、拓扑图对称有美感。
优选地,在上述布局系统中,分解模块包括:
表示单元,用于将目标拓扑图用函数式G(V,E)表示,其中V代表图中的节点集,E代表图中的边集;
遍历单元,用于取节点集V中的第一个节点a,并从节点a遍历边集E,取出边集E中所有和节点a有关的边以及相应的节点,得到连通的子图G1(V1,E1),以及目标拓扑图G中剩余的节点和边组成的图G′(V′,E′);
第一判断单元,如果节点集V′不为空,则取出节点集V′中的第一个节点,对边集G′执行遍历单元的操作,直至节点集V′为空。
优选地,在上述布局系统中,第一布局模块包括:
排序单元,用于计算多个连通的子图的边长和面积,并按面积将多个连通的子图进行降序排列;
第一摆放单元,用于将多个连通的子图中面积最大的子图的左上角作为坐标原点,沿X轴方向依次摆放面积最大的两个连通的子图A和B,并计算子图A和B之间的空余区域S1的面积;
第二判断单元,按照面积大小依次判断剩余的多个连通的子图是否可以放置在空余区域S1中,如果是,将其放置在空余区域S1中;
第二摆放单元,用于当第二判断单元的判断结果为否时,按照面积大小沿Y轴正向向右依次摆放剩余的多个连通的子图,并使得其所在行沿X轴的宽度不大于其前一行沿X轴的宽度;
第三判断单元,用于当沿Y轴的长度大于沿X轴的长度时,放弃沿Y轴方向的摆放,转而在X轴方向沿子图B向右摆放,重复执行第一摆放单元。
优选地,在上述布局系统中,第二布局模块包括:
坐标设置单元,用于将多个连通的子图的节点随机设置为不相同的坐标,并获取链接的边最多的节点,将其坐标设定为其所在子图的拓扑图的中心;
第一计算单元,用于设目标拓扑图的系统动能的初始值为0,根据库伦定律计算多个连通的子图的节点所受的斥力;
第二计算单元,用于根据斥力和胡克定律计算多个连通的子图的节点所受的节点力;
第三计算单元,用于根据初始速度、节点力、时间间隔值和设定的阻尼系数计算多个连通的子图的节点的节点速度;
第四计算单元,用于根据节点质量、节点速度和系统动能的初始值计算多个连通的子图的系统动能;
第五计算单元,用于根据节点速度、时间间隔值和初始坐标计算多个连通的子图的节点的节点坐标;
第四判断单元,用于判断系统动能是否小于预设值,如果判断结果为否,重复执行坐标设置单元。
从以上的描述中,可以看出,本发明上述的实施例实现了如下技术效果:使用本发明实施例的布局方法的布局得到的拓扑图节点分布合理、形态美观,为基于拓扑图的可视化网络管理奠定了良好的基础;本发明实施例的布局方法不依赖于任何网络技术,隔离了复杂的实际网络情况对布局结果的影响,更为稳定;本发明实施例的布局方法可用于一张连通的拓扑图的布局,也可以用于一张不连通的拓扑图(包含多张互相孤立的子拓扑图)的布局,既可用于网络层拓扑图的布局,也可以用于链路层拓扑图的布局,适应性较广。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种网络拓扑图的布局方法,其特征在于,包括以下步骤:
分析目标拓扑图的连通性,如果所述目标拓扑图不连通,将其分解为多个连通的子图;
通过矩形块放置算法将所述多个连通的子图按照类正方形图形进行初步布局,并获取所述多个连通的子图的坐标,该步骤包括:步骤d,计算所述多个连通的子图的边长和面积,并按面积将所述多个连通的子图进行降序排列;步骤e,将所述多个连通的子图中面积最大的子图的左上角作为坐标原点,沿X轴方向依次摆放面积最大的两个连通的子图A和B,并计算所述子图A和B之间的空余区域S1的面积;步骤f,按照面积大小依次判断剩余的所述多个连通的子图是否可以放置在所述空余区域S1中;步骤g,如果是,将其放置在所述空余区域S1中;步骤h,否则,按照面积大小沿Y轴正向向右依次摆放剩余的所述多个连通的子图,并使得其所在行沿X轴的宽度不大于其前一行沿X轴的宽度;步骤i,当沿Y轴的长度大于沿X轴的长度时,放弃沿Y轴方向的摆放,转而在X轴方向沿所述子图B向右摆放,重复步骤e;
对初步布局后的所述多个连通的子图的节点按照受力驱动的布局算法进行布局,使得所述目标拓扑图的系统总动能小于设定值,并获取所述多个连通的子图的节点的相对坐标;
根据所述多个连通的子图的坐标和所述多个连通的子图的节点的相对坐标得到所述多个连通的子图的节点的坐标。
2.根据权利要求1所述的布局方法,其特征在于,分析目标拓扑图的连通性,如果所述目标拓扑图不连通,将其分解为多个连通的子图包括:
步骤a,将目标拓扑图用函数式G(V,E)表示,其中V代表图中的节点集,E代表图中的边集;
步骤b,取所述节点集V中的第一个节点a,并从所述节点a遍历所述边集E,取出所述边集E中所有和所述节点a有关的边以及相应的节点,得到连通的子图G1(V1,E1),以及所述目标拓扑图G中剩余的节点和边组成的图G′(V′,E′);
步骤c,如果节点集V′不为空,则取出所述节点集V′中的第一个节点,对边集G′执行所述步骤b中的操作,直至所述节点集V′为空。
3.根据权利要求1所述的布局方法,其特征在于,还包括以下步骤:
如果所述目标拓扑图是连通的,对布局后的所述目标拓扑图的节点按照受力驱动的布局算法进行布局,使得所述目标拓扑图的系统总动能小于设定值,获取所述目标拓扑图的节点的坐标。
4.根据权利要求1所述的布局方法,其特征在于,对初步布局后的所述多个连通的子图的节点按照受力驱动的布局算法进行布局,使得所述目标拓扑图的系统总动能小于设定值,并获取所述多个连通的子图的节点的相对坐标包括:
步骤j,将所述多个连通的子图的节点随机设置为不相同的坐标,并获取链接的边最多的节点,将其坐标设定为其所在子图的拓扑图的中心;
步骤k,设所述目标拓扑图的系统动能的初始值为0,根据库伦定律计算所述多个连通的子图的节点所受的斥力;
步骤l,根据所述斥力和胡克定律计算所述多个连通的子图的节点所受的节点力;
步骤m,根据初始速度、所述节点力、时间间隔值和设定的阻尼系数计算所述多个连通的子图的节点的节点速度;
步骤n,根据节点质量、所述节点速度和系统动能的初始值计算所述多个连通的子图的系统动能;
步骤o,根据所述节点速度、所述时间间隔值和初始坐标计算所述多个连通的子图的节点的节点坐标;
步骤p,判断所述系统动能是否小于预设值,如果判断结果为否,跳转到步骤j。
5.根据权利要求4所述的布局方法,其特征在于,将所述多个连通的子图的节点随机设置为不相同的坐标,并获取链接的边最多的节点,将其坐标设定为其所在子图的拓扑图的中心包括:
如果具有链接的边最多的节点的数目为多个,将所述具有链接的边最多的多个节点均匀地布局在以拓扑图为中心的圆周上。
6.一种网络拓扑图的布局系统,其特征在于,包括:
分解模块,用于分析目标拓扑图的连通性,如果所述目标拓扑图不连通,将其分解为多个连通的子图;
第一布局模块,用于通过矩形块放置算法将所述多个连通的子图按照类正方形图形进行初步布局,并获取所述多个连通的子图的坐标,所述第一布局模块包括:排序单元,用于计算所述多个连通的子图的边长和面积,并按面积将所述多个连通的子图进行降序排列;第一摆放单元,用于将所述多个连通的子图中面积最大的子图的左上角作为坐标原点,沿X轴方向依次摆放面积最大的两个连通的子图A和B,并计算所述子图A和B之间的空余区域S1的面积;第二判断单元,按照面积大小依次判断剩余的所述多个连通的子图是否可以放置在所述空余区域S1中,如果是,将其放置在所述空余区域S1中;第二摆放单元,用于当所述第二判断单元的判断结果为否时,按照面积大小沿Y轴正向向右依次摆放剩余的所述多个连通的子图,并使得其所在行沿X轴的宽度不大于其前一行沿X轴的宽度;第三判断单元,用于当沿Y轴的长度大于沿X轴的长度时,放弃沿Y轴方向的摆放,转而在X轴方向沿所述子图B向右摆放,重复执行所述第一摆放单元;
第二布局模块,用于对初步布局后的所述多个连通的子图的节点按照受力驱动的布局算法进行布局,使得所述目标拓扑图的系统总动能小于设定值,并获取所述多个连通的子图的节点的相对坐标;
计算模块,用于根据所述多个连通的子图的坐标和所述多个连通的子图的节点的相对坐标得到所述多个连通的子图的节点的坐标。
7.根据权利要求6所述的布局系统,其特征在于,所述分解模块包括:
表示单元,用于将目标拓扑图用函数式G(V,E)表示,其中V代表图中的节点集,E代表图中的边集;
遍历单元,用于取所述节点集V中的第一个节点a,并从所述节点a遍历所述边集E,取出所述边集E中所有和所述节点a有关的边以及相应的节点,得到连通的子图G1(V1,E1),
以及所述目标拓扑图G中剩余的节点和边组成的图G′(V′,E′);
第一判断单元,如果节点集V′不为空,则取出所述节点集V′中的第一个节点,对边集G′执行所述遍历单元的操作,直至所述节点集V′为空。
8.根据权利要求6所述的布局系统,其特征在于,所述第二布局模块包括:
坐标设置单元,用于将所述多个连通的子图的节点随机设置为不相同的坐标,并获取链接的边最多的节点,将其坐标设定为其所在子图的拓扑图的中心;
第一计算单元,用于设所述目标拓扑图的系统动能的初始值为0,根据库伦定律计算所述多个连通的子图的节点所受的斥力;
第二计算单元,用于根据所述斥力和胡克定律计算所述多个连通的子图的节点所受的节点力;
第三计算单元,用于根据初始速度、所述节点力、时间间隔值和设定的阻尼系数计算所述多个连通的子图的节点的节点速度;
第四计算单元,用于根据节点质量、所述节点速度和系统动能的初始值计算所述多个连通的子图的系统动能;
第五计算单元,用于根据所述节点速度、所述时间间隔值和初始坐标计算所述多个连通的子图的节点的节点坐标;
第四判断单元,用于判断所述系统动能是否小于预设值,如果判断结果为否,重复执行所述坐标设置单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102362985A CN101702655B (zh) | 2009-10-27 | 2009-10-27 | 网络拓扑图的布局方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102362985A CN101702655B (zh) | 2009-10-27 | 2009-10-27 | 网络拓扑图的布局方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101702655A CN101702655A (zh) | 2010-05-05 |
CN101702655B true CN101702655B (zh) | 2011-12-28 |
Family
ID=42157550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102362985A Expired - Fee Related CN101702655B (zh) | 2009-10-27 | 2009-10-27 | 网络拓扑图的布局方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101702655B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550239A (zh) * | 2015-12-08 | 2016-05-04 | 北京工商大学 | 一种针对树图布局方法的时移性评价方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894168B (zh) * | 2010-06-30 | 2013-02-06 | 优视科技有限公司 | 移动终端网页页面的排版显示方法及系统 |
CN103065028B (zh) * | 2011-10-19 | 2017-03-01 | 西安邮电大学 | 一种基于图多阶段任务系统模块分解的可视化布局方法 |
CN103124279B (zh) * | 2011-11-18 | 2015-12-02 | 浪潮(北京)电子信息产业有限公司 | 资源信息的输出方法和系统 |
CN103324477B (zh) * | 2013-06-04 | 2016-07-13 | 北京大学 | 基于受力情况的元素排布方法 |
CN104408662B (zh) * | 2013-12-25 | 2017-10-03 | 杭州昊美科技有限公司 | 基于线路正交布局算法的电网成图方法 |
CN103763153B (zh) * | 2014-01-10 | 2017-06-06 | 迈普通信技术股份有限公司 | 自动将设备链路信息转换为拓扑图形的方法及系统 |
CN105743727B (zh) * | 2014-12-10 | 2019-11-05 | 南京中兴新软件有限责任公司 | 检测处理方法及装置 |
CN105991330B (zh) * | 2015-02-13 | 2019-07-02 | 中国移动通信集团广东有限公司 | 一种实现电路拓扑调度的方法及装置 |
CN105721202B (zh) * | 2016-01-26 | 2018-12-07 | 天津大学 | 一种生成稀疏无向连通随机图的方法 |
CN106599347A (zh) * | 2016-10-28 | 2017-04-26 | 华东师范大学 | 基于视觉感知的图布局评估方法 |
CN109450675A (zh) * | 2018-10-26 | 2019-03-08 | 广州供电局有限公司 | 网络布局方法、装置、网络布局设备和存储介质 |
US11048670B2 (en) | 2019-08-27 | 2021-06-29 | Advanced New Technologies Co., Ltd. | Node layout determining method and apparatus, computing device, and computer readable medium |
CN110598056A (zh) * | 2019-08-27 | 2019-12-20 | 阿里巴巴集团控股有限公司 | 节点布局确定方法以及装置 |
CN111028311A (zh) * | 2019-12-16 | 2020-04-17 | 南京富士通南大软件技术有限公司 | 一种平面正交网络拓扑图宽高比的优化方法 |
CN110990984B (zh) * | 2019-12-16 | 2023-05-12 | 南京富士通南大软件技术有限公司 | 一种优化平面正交拓扑图中线段弯折的方法 |
CN111461711B (zh) * | 2020-03-12 | 2021-12-14 | 上海宓猿信息技术有限公司 | 一种区块链交易的追踪系统 |
CN113452557B (zh) * | 2021-06-24 | 2022-08-26 | 新华三大数据技术有限公司 | 子网络拓扑的呈现方法、装置及设备 |
CN115828488B (zh) * | 2023-02-21 | 2023-05-05 | 江西中至科技有限公司 | 新风风管布置方法、系统、存储介质及设备 |
-
2009
- 2009-10-27 CN CN2009102362985A patent/CN101702655B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105550239A (zh) * | 2015-12-08 | 2016-05-04 | 北京工商大学 | 一种针对树图布局方法的时移性评价方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101702655A (zh) | 2010-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101702655B (zh) | 网络拓扑图的布局方法和系统 | |
Garcia et al. | Fictitious play for finding system optimal routings in dynamic traffic networks | |
Delahaye et al. | Airspace sectoring by evolutionary computation | |
CN107784380A (zh) | 一种巡检最短路径的优化方法及优化系统 | |
CN104036324B (zh) | 一种基于遗传算法的通信网络容量可靠性最优设计方法 | |
CN102904815B (zh) | 基于无尺度网络的路由级拓扑建模方法 | |
CN105469143A (zh) | 基于神经网络动态特征的片上网络资源映射方法 | |
CN107742169A (zh) | 一种基于复杂网络的城市公交网络系统构建方法及性能评估方法 | |
Ji et al. | Particle swarm optimization for mobile ad hoc networks clustering | |
CN104836711A (zh) | 一种指挥控制网络生成模型的构建方法 | |
CN104200295A (zh) | Rcrss中基于分区的多警察智能体任务分配方法 | |
Fu et al. | A spatial network model for civil infrastructure system development | |
CN107196808A (zh) | 一种双层网络模型构建的方法 | |
Lyu et al. | Procedural modeling of urban layout: population, land use, and road network | |
Pratomoatmojo | LanduseSim Methods: Land use class hierarchy for simulations of multiple land use growth | |
Rui et al. | Urban growth modeling with road network expansion and land use development | |
CN103984828A (zh) | 一种温度均衡的三维片上网络核映射方法与系统 | |
CN116976057B (zh) | 一种装置布置图自动排布方法 | |
Andris et al. | Spatial network analysis | |
Vanegas et al. | Allocating reforestation areas for sediment flow minimization: an integer programming formulation and a heuristic solution method | |
Delahaye et al. | 3D airspace sectoring by evolutionary computation: Real-world applications | |
Inoue et al. | Layout algorithm for an EC-based room layout planning support system | |
Zhao et al. | A coevolution model of population distribution and road networks | |
Kato et al. | An alife approach to modeling virtual cities | |
Li et al. | Potential games design using local information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111228 Termination date: 20211027 |
|
CF01 | Termination of patent right due to non-payment of annual fee |