专利名称:无向图结点定位方法
技术领域:
本发明涉及信息可视化技术领域,尤其是无向关系图即无向图的显示、绘制和可视化技术领域。
背景技术:
在计算机科学与技术中,描述一组对象之间的关系经常用无向图表示,而此类关系信息的获取形式往往是无向图的逻辑表示,如表格、数据库、邻接矩阵,这种逻辑表示很不直观,所以人们喜欢用平面上的图重新表示,将表示对象的结点用一个圆点或小圆圈表示,再将对象间的逻辑关系用一条条连接两个结点的线段表示。这种图形化表示固然直观, 但存在一个问题如果一开始结点的位置摆放得不好,画连线时会产生纵横交错的结果,画出来的图关系不清晰,连线产生交叉、远跨或重叠。所以结点的定位很重要,如果有一种能保证连线清晰的结点定位方法,那么按该方法将结点位置确定之后,再根据逻辑关系将一对对的结点用直线段连接起来就行了。这就是无向图的结点定位技术,关于结点定位技术, 目前有如下文献授权公告号为CN101582793的中国发明专利《网络拓扑图形化显示方法及装置》 公开了一种网络拓扑的显示方法,该发明将显示区域做扇形划分,解决了结点重叠问题,适用于网络拓扑图的显示,但对连线的交叉、远跨情况没有涉及和解决。确定性的结点定位方法有弹力模型方法(Eades,P. · A Heuristic for Graph Drawing. Congressus Numerantium, No. 42,1984 :149-160),该方法容易陷入局部最优解。随机化方法有遗传算法(张清国等用遗传算法画无向图.计算机工程与科学, 28 (6),2006 58-61 ;黄竞伟等基于遗传算法的二叉树画树算法.软件学报,11 (8),2000 1112-1117)、模拟退火算法(Davidson, Ron ;Harel, David. Drawing graphs nicely using simulated annealing. ACM Transactions on Graphics,Vol. 15,No· 4,1996 :301-331)等, 它们属于进化算法,进化算法的缺点是算法收敛慢,结果不确定。为方便描述,相关术语解释如下无向图由有穷结点集V,及V上的对称二元关系E构成的二元组G = (V, E)。简单图无环、无平行边的图。本发明仅考虑无向简单连通图,即无环、无平行边的无向连通图。这是因为图的连通分支很容易分离,不同的连通分支可以做各自的定位处理,故以下提及的无向图都是指无向简单连通图。树无回路的连通的简单图。度数结点ν的关联边的个数称为结点的度数,记为d(v)。割点在一个连通无向图中,若删除结点ν及其关联边,该无向图不再是连通图, 则称结点ν为割点。割边在一个连通无向图中,若删除边e,该无向图不再是连通图,则称边e为割边。
树的层数图论中树的层数定义为从树的根结点到叶结点的简单路径所含边数的最大值。本发明中(包括权利要求书),树的层数定义为从树的根结点到叶结点的简单路径所含结点个数的最大值。前者比后者少1,本发明如此定义为方便描述,不影响实质。哈密尔顿回路包含所有结点一次且仅一次的回路。边连通度删除若干条边后使连通图不再连通的最少删除边数。团无向连通图去掉所有割边之后的各个连通子图称为团。团除了不含原无向连通图的割边之外,还可以证明团不含自身的割边。只含一个结点的团为平凡团,含不止一个结点的团为非平凡团。团树在无向连通图中,把其中的团视为新的结点,由团与割边构成的导出图必为一个连通无环图,即树,该树称为团树。子团非平凡的团去掉所有割点及关联的边之后的各个连通子图称为子团。可以证明子团至少含两个结点(若不然,该唯一结点与团的某个割点的连线成为团的割边,与团的性质矛盾)。子团树在团中,把其中的子团和割点视为新的结点,由子团、割点构成的导出树称为子团树。割边割点识别的公知算法该算法是R. Tarjan发明的。先对图深度优先搜索,定义DFS(U)为u在搜索树(以下简称为树)中被遍历到的次序号。再定义Low(U)为u或u 的子树中能通过非父子边追溯到的最早的顶点,即DFS序号最小的顶点。根据定义,则有
Low(U)=Min { DFS(U) DFS(v) (u,v)为后向边(返祖边)
等价于DFS(v)<DFS(u)且ν不为u的父亲顶点 Low(v) (u,v)为树枝边(父子边)
}一个顶点U是割点,当且仅当满足⑴或(2)(I)U为树根,且u有多于一个子树。(2) u不为树根,且满足存在(u,ν)为树枝边,使得DFS (u) < = Low (ν)。一条无向边(U,ν)是割边,当且仅当(U,ν)为树枝边,且满足DFS (u) < Low (ν)。
发明内容
本发明所要解决的技术问题是提供一种易于计算、视觉上清晰易辨的无向图结点定位新方法,其符合人脑的层次化思维方式、直观易懂、实现步骤简单、结果确定。为解决上述技术问题,本发明采用以下技术方案一种无向图结点定位方法,该方法在计算机上进行,用于在一个矩形显示区域中给无向图的结点定位,包括以下步骤(1)识别出所有割边,将所述无向图视为由割边和团构成的团树,所述团是指将无向图的所有割边删除后剩下的各个连通子图。
(2)在团树中选择度数最大且使团树的层数最小的团,作为团树的根,若度数最大且使团树的层数最小的团不止一个,任选其中一个。(3)将所述矩形区域从上到下分若干层,层数等于团树的层数,即层的分割;对每一层,再从左到右分若干块,块数等于团树中位于该层的团的个数,即块的分割;每个团按该团在团树中的层号从上到下定位在相应的层,再按该团在团树同层中的顺序从左到右定位在相应的块。(4)对每个团,若只含有一个结点,将该结点定位在相应块的中心位置,否则,识别出该团的所有割点,并将该团视为由割点和子团构成的子团树,继续进行步骤(5)、(6)、 (7),所述子团是指团的所有割点及其关联边删除后剩下的各个连通子图;(5)若子团树是团树中的根团,则选择度数最大且使子团树的层数最小的子团或割点,作为子团树的根,若度数最大且使子团树的层数最小的子团或割点不止一个,任选其中一个;若子团树不是团树中的根,则在子团树中选择与上层团关联的唯一的子团或割点, 作为子团树的根;(6)将块从上到下分若干子层,子层数等于子团树的层数,即子层的分割;对每一子层,再从左到右分若干子块,子块数等于子团树中位于该层的子团的个数,即子块的分割;每个子团按该子团在子团树中的层号从上到下定位在相应的子层,再按该子团在子团树同层中的顺序从左到右定位在相应的子块;(7)在子团树中,对每个割点,将该割点定位在相应子块的中心位置;对每个子团,将其中的结点均勻定位在相应子块内的环形分布位置上,有上层子团时,其中与上层子团有关联的结点定位在该环形的上侧部分,且左右对称分布,无上层子团而有下层子团时, 其中与下层子团有关联的结点定位在该环形的下侧部分,且左右对称分布;所述环形分布位置是指子块内与之同心的收缩圆周或收缩椭圆周。所述步骤(3)中层的分割可采用层高平均法或层高结点比例法。层高平均法即根据团树的层数纵向均分矩形区域,层的高度根据团树的总层数平均分配。层高结点比例法即根据团树中各层所含的结点总数按比例分配层高。所述步骤(3)中块的分割可采用块宽平均法或块宽结点比例法。块宽平均法即根据同层的团数横向均分层,块的宽度根据该块所在层的总块数平均分配。块宽结点比例法即根据块所在层中各块所含的结点数按比例分配块宽。所述步骤(6)中子层的分割可采用子层平均法或子层结点比例法,子层平均法即根据子团树的层数纵向均分块,子层的高度根据子团树的总层数平均分配;子层结点比例法即子层的高度根据子团树中各层所含的结点总数按比例分配。所述步骤(6)中子块的分割可采用子块平均法或子块结点比例法,子块平均法即根据同层的子团数横向均分子层,子块的宽度根据该子块所在层的总块数平均分配;子块结点比例法即子块的宽度根据该子块所在层中各子块所含的结点数按比例分配。最好所述步骤(7)中收缩椭圆周的纵轴、横轴长度分别为子块高度、宽度的1/2 3/4倍,所述收缩圆周的直径为子块高度和宽度两者中较小者的1/2 3/4倍。采用上述方法,最终可以在一个矩形区域中确定无向图每个结点的坐标,继而可以将有关系的两个结点用直线段连接起来,构成可视化的无向图。本发明的技术效果最大程度地减少无向图中连线的交叉、远跨、重叠(包括线线重叠和线点重叠),并使无向图的结点分组情况和连线组织情况清晰可辨。按照上述设计方案的结点定位方法,虽然不能保证百分之百消除所有可能的连线交叉、远跨和重叠,但在大多数的情况尤其是稀疏无向图的情况下,不再有连线的交叉、远跨和重叠。尤其是对具备星型、链型、环型、完全图型等逻辑关系的无向图特例图型,按上述设计方案进行结点定位,能得到清晰、如实反映图型的视觉效果。 下面结合附图和具体实施方式
对本发明作进一步说明。
图1是本发明的总体流程图。
图2是采用平均法进行层的分割和块的分割的流程图。
图3是采用平均法进行子层的分割和子块的分割的的流程图。
图4是采用结点比例法进行层的分割和块的分割的流程图。
图5是采用结点比例法进行子层的分割和子块的分割的的流程图
图6是子团内结点定位的流程图。
图7是本发明一种实施例的结点定位过程示意图。
图8是对特例图型定位的前后效果图,
图8. a一种星型图型实施例的原始无向图8. b图8. a的定位后效果图8. c一种链型图型实施例的原始无向图8. d图8. c的定位后效果图8. e一种环形图型实施例的原始无向图8. f图8. e的定位后效果图8. g一种完全图型实施例的原始无向图8. h图8. g的定位后效果图。
具体实施例方式如图1所示,本发明一种在计算机上进行的无向图结点定位方法的总体流程图。 先执行步骤101,识别出无向图的所有割边,将无向图分解成树形组织的团。识别出所有割边,将所述无向图视为由割边和团构成的团树,所述团是指将无向图的所有割边删除后剩下的各个连通子图。再执行步骤102,确定各个团的矩形子区域(称之为块)。在团树中选择度数最大且使团树的层数最小的团,作为团树的根,若度数最大且使团树的层数最小的团不止一个, 任选其中一个。将所述矩形区域从上到下分若干层,层数等于团树的层数,即层的分割;对每一层,再从左到右分若干块,块数等于团树中位于该层的团的个数,即块的分割;每个团按该团在团树中的层号从上到下定位在相应的层,再按该团在团树同层中的顺序从左到右定位在相应的块。对每个团,执行判断103,团是否只含一个结点。若只含一个结点(即平凡团的情况),执行步骤104,只需简单地将该唯一结点定位在相应块的中心位置。不然,继续执行步骤105,识别出团内的所有割点,将团分解为子团,即将该团视为由割点和子团构成的子团树,继续进行以下步骤。所述子团是指团的所有割点及其关联边删除后剩下的各个连通子图。执行步骤106,确定各个子团和割点的矩形子区域(称之为子块)。若子团树是团树中的根团,则选择度数最大且使子团树的层数最小的子团或割点,作为子团树的根,若度数最大且使子团树的层数最小的子团或割点不止一个,任选其中一个;若子团树不是团树中的根,则在子团树中选择与上层团关联的唯一的子团或割点,作为子团树的根。将块从上到下分若干子层,子层数等于子团树的层数,即子层的分割;对每一子层,再从左到右分若干子块,子块数等于子团树中位于该层的子团的个数,即子块的分割;每个子团按该子团在子团树中的层号从上到下定位在相应的子层,再按该子团在子团树同层中的顺序从左到右定位在相应的子块。接着执行步骤107,判断是子团还是割点。若为子团,执行步骤108,对子团的各结点定位。对每个子团,将其中的结点均勻定位在相应子块内的环形分布位置上,有上层子团时,其中与上层子团有关联的结点定位在该环形的上侧部分,且左右对称分布,无上层子团而有下层子团时,其中与下层子团有关联的结点定位在该环形的下侧部分,且左右对称分布;所述环形分布位置是指子块内与之同心的收缩圆周或收缩椭圆周。若为割点,执行步骤109,只需简单地将该割点定位在相应子块的中心位置。其中步骤102对层的分割、块的分割有很多方法,常采用平均法或结点比例法。对层的分割可采用层高平均法或层高结点比例法,层高平均法即根据团树的层数纵向均分矩形区域,层的高度根据团树的总层数平均分配。层高结点比例法即根据团树中各层所含的结点总数按比例分配层高。块的分割也可采用块宽平均法或块宽结点比例法。块宽平均法即根据同层的团数横向均分层,块的宽度根据该块所在层的总块数平均分配。块宽结点比例法即根据块所在层中各块所含的结点数按比例分配块宽。层高平均法的优点是模型简单,计算方便。层高结点比例法的优点是结点密度均勻。因为层所含的结点数越多,应占的区域面积越大,所以根据团树中各层所含的结点总数按比例分配层高能使无向图的结点密度尽量均勻。块宽平均法、块宽结点比例法也各有类似层高平均法、层高结点比例法的优点。步骤106对子层的分割、子块的分割与层的分割类似,也有多种分法,常用两种分法平均法和结点比例法。对子层分割的子层平均法即根据子团树的层数纵向均分块,子层的高度根据子团树的总层数平均分配。对子层分割的子层结点比例法即根据子团树中各子层所含的结点总数按比例分配子层高。其也各有类似层高平均法、层高结点比例法的优点。对子块分割的子块平均法即根据同层的子团数横向均分子层,子块的宽度根据该子块所在层的总块数平均分配。对子块分割的子块结点比例法即根据子块所在层中各子块所含的结点数按比例分配子块宽。其也各有类似层高平均法、层高结点比例法的优点。图2为102步骤采用平均法进行层的分割和块的分割。先执行步骤1021,将连通的无向图视为由割边和团构成的树,该树成为团树,其中团是指将无向图的所有割边删除后剩下的各个连通子图,团内不含团自身的割边,更不含原无向图的割边。然后执行步骤 1022,选取度数最小并使树的层数最小的团作为团树的根结点。若度数最大且使团树的层数最小的团不止一个,任选其中一个。这种团树根的选法可以尽量使团树的高度不过长, 并使团树的各子树规模尽量均勻,易于在矩形区域中显示。再执行步骤1023A,将显示无向图的矩形区域从上到下分若干层,层数等于团树的层数,每层的高度根据总层数平均分配。 最后执行步骤1024A,对每一层,再从左到右分若干块,块数等于团树中位于该层的团的个数。每块的宽度根据所在层的总块数平均分配。设矩形区域的左上角坐标为(0,0),右下角坐标为(W,H),团树的层数为L,每层的团数为ni,i = l,……,L,每层的结点总数为Ni;i = 1,……,L,在第i层中,每个团的结点数为Nij,j = 1,……,叫。第i层第j个团的定位块的左上角坐标、高度、宽度分别是
权利要求
1.一种无向图结点定位方法,用于在一个矩形显示区域中给无向图的结点定位,其特征在于该方法包括以下步骤(1)识别出所有割边,将所述无向图视为由割边和团构成的团树,所述团是指将无向图的所有割边删除后剩下的各个连通子图;(2)在团树中选择度数最大且使团树的层数最小的团,作为团树的根,若度数最大且使团树的层数最小的团不止一个,任选其中一个;(3)将所述矩形区域从上到下分若干层,层数等于团树的层数,即层的分割;对每一层,再从左到右分若干块,块数等于团树中位于该层的团的个数,即块的分割;每个团按该团在团树中的层号从上到下定位在相应的层,再按该团在团树同层中的顺序从左到右定位在相应的块;(4)对每个团,若只含有一个结点,将该结点定位在相应块的中心位置,否则,识别出该团的所有割点,并将该团视为由割点和子团构成的子团树,继续进行步骤(5)、(6)、(7),所述子团是指团的所有割点及其关联边删除后剩下的各个连通子图;(5)若子团树是团树中的根团,则选择度数最大且使子团树的层数最小的子团或割点, 作为子团树的根,若度数最大且使子团树的层数最小的子团或割点不止一个,任选其中一个;若子团树不是团树中的根,则在子团树中选择与上层团关联的唯一的子团或割点,作为子团树的根;(6)将块从上到下分若干子层,子层数等于子团树的层数,即子层的分割;对每一子层,再从左到右分若干子块,子块数等于子团树中位于该层的子团的个数,即子块的分割; 每个子团按该子团在子团树中的层号从上到下定位在相应的子层,再按该子团在子团树同层中的顺序从左到右定位在相应的子块;(7)在子团树中,对每个割点,将该割点定位在相应子块的中心位置;对每个子团,将其中的结点均勻定位在相应子块内的环形分布位置上,有上层子团时,其中与上层子团有关联的结点定位在该环形的上侧部分,且左右对称分布,无上层子团而有下层子团时,其中与下层子团有关联的结点定位在该环形的下侧部分,且左右对称分布;所述环形分布位置是指子块内与之同心的收缩圆周或收缩椭圆周。
2.根据权利要求1所述的无向图结点定位方法,其特征在于所述步骤(3)中层的分割采用层高平均法或层高结点比例法,层高平均法即根据团树的层数纵向均分矩形区域, 层的高度根据团树的总层数平均分配;层高结点比例法即层的高度根据团树中各层所含的结点总数按比例分配。
3.根据权利要求1或2所述的无向图结点定位方法,其特征在于所述步骤(3)中块的分割采用块宽平均法或块宽结点比例法,块宽平均法即根据同层的团数横向均分层,块的宽度根据该块所在层的总块数平均分配;块宽结点比例法即块的宽度根据该块所在层中各块所含的结点数按比例分配。
4.根据权利要求1或2所述的结点定位方法,其特征在于所述步骤(6)中子层的分割采用子层平均法或子层结点比例法,子层平均法即子层的高度根据子团树的总层数平均分配;子层结点比例法即子层的高度根据子团树中各层所含的结点总数按比例分配。
5.根据权利要求3所述的结点定位方法,其特征在于所述步骤(6)中子层的分割采用子层平均法或子层结点比例法,子层平均法即子层的高度根据子团树的总层数平均分配;子层结点比例法即子层的高度根据子团树中各层所含的结点总数按比例分配。
6.根据权利要求1或2所述的结点定位方法,其特征在于所述步骤(6)中子块的分割采用子块平均法或子块结点比例法,子块平均法即子块的宽度根据该子块所在层的总块数平均分配;子块结点比例法即子块的宽度根据该子块所在层中各子块所含的结点数按比例分配。
7.根据权利要求3所述的结点定位方法,其特征在于所述步骤(6)中子块的分割采用子块平均法或子块结点比例法,子块平均法即子块的宽度根据该子块所在层的总块数平均分配;子块结点比例法即子块的宽度根据该子块所在层中各子块所含的结点数按比例分配。
8.根据权利要求4所述的结点定位方法,其特征在于所述步骤(6)中子块的分割采用子块平均法或子块结点比例法,子块平均法即子块的宽度根据该子块所在层的总块数平均分配;子块结点比例法即子块的宽度根据该子块所在层中各子块所含的结点数按比例分配。
9.根据权利要求5所述的结点定位方法,其特征在于所述步骤(6)中子块的分割采用子块平均法或子块结点比例法,子块平均法即子块的宽度根据该子块所在层的总块数平均分配;子块结点比例法即子块的宽度根据该子块所在层中各子块所含的结点数按比例分配。
10.根据权利要求1或2所述的结点定位方法,其特征在于所述步骤(7)中所述收缩椭圆周的纵轴、横轴长度分别为子块高度、宽度的1/2 3/4倍;所述收缩圆周的直径为子块高度和宽度两者中较小者的1/2 3/4倍。
全文摘要
一种无向图结点定位方法,用于在一个矩形显示区域中给无向图的结点定位,包括以下步骤(1)识别出所有割边。(2)在团树中选择度数最大且使团树的层数最小的团,作为团树的根。(3)将所述矩形区域从上到下分若干层。再按该团在团树同层中的顺序从左到右定位在相应的块。判断团是否只含一个结点。若只含一个结点,只需简单地将该唯一结点定位在相应块的中心位置;否则识别出团内的所有割点,将团分解为子团,再对子团进行从上到下分子层和对每一子层,再从左到右分若干子块。判断是子团还是割点,并给予相应的定位。本发明最大程度地减少无向图中连线的交叉、远跨、重叠,并使无向图的结点分组情况和连线组织情况清晰可辨。
文档编号G06K9/46GK102314606SQ20111020630
公开日2012年1月11日 申请日期2011年7月13日 优先权日2011年7月13日
发明者方文其, 胡明晓 申请人:温州大学