CN112437919A - 稳定图布局确定 - Google Patents

稳定图布局确定 Download PDF

Info

Publication number
CN112437919A
CN112437919A CN201980046520.7A CN201980046520A CN112437919A CN 112437919 A CN112437919 A CN 112437919A CN 201980046520 A CN201980046520 A CN 201980046520A CN 112437919 A CN112437919 A CN 112437919A
Authority
CN
China
Prior art keywords
graph
nodes
global
layout
paths
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.)
Pending
Application number
CN201980046520.7A
Other languages
English (en)
Inventor
R·A·M·弗利根
R·J·谢彭斯
R·J·P·门南斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Magnavue Ltd
Original Assignee
Magnavue Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Magnavue Ltd filed Critical Magnavue Ltd
Publication of CN112437919A publication Critical patent/CN112437919A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

一些实施例涉及一种用于确定图的布局的图布局设备。该图由通过节点集合的路径集合导出。该图的节点被包括在节点集合中。该路径集合是通过该节点集合的全局路径集合的子集。该布局包括图的每个节点的位置。图布局设备计算全局排名分配,过滤全局路径集合以获得路径集合,并且基于全局排名分配来计算该图的布局。

Description

稳定图布局确定
技术领域
本发明涉及一种图布局设备、图布局方法和计算机可读介质。
背景技术
例如在物理、生物、社会和信息系统中的各种关系和过程可以被表示为包括节点和边缘的图。例如,在生物系统中,节点可以表示存在某种物种的区域,并且边缘可以表示区域之间的迁移路径。对于从数据获得洞察力特别有用的一种图是由路径的集合(例如图的节点的序列)导出(induce)的图。例如,在信息系统中,路径可以表示相关日志记录活动的时间序列(例如“登录”和“注销”)。这样的路径集合可以导出包括它们的节点和这些节点之间的连通图。该图有助于深入了解路径中哪些节点经常一起出现,例如随后经常执行哪些被日志记录的活动。
以下是有益的,即,向用户提供图的可视化,以例如用于更好地理解它表示的数据。绘图的技术领域涉及确定图的顶点和边缘的(例如绘图表示)布局。绘图很复杂:同一图的许多布局都是可能的,并且用于确定布局的算法必须平衡各种因素,诸如性能、所得图的大小、以及各种美学参数(诸如边缘交叉的数目、边缘的长度、以及节点的空间分布)。
现有技术中已知的一类绘图技术关注于层次绘图,也称为分层绘图或杉山风格绘图,如罗伯托塔马西亚(Roberto Tamassia)(编辑)在“绘图和可视化手册(Handbook ofGraph Drawing and Visualization)”第13章“层次描绘算法(Hierarchical DrawingAlgorithms)”中所讨论的。层次绘图通常至少涉及:循环去除步骤,其中使图变为非循环;层分配步骤,其中节点被划分为层或排名;顶点定序步骤,其中具有相同排名的顶点被定序;以及X坐标分配步骤,其中节点的精确定位被确定。这些步骤中的若干步骤涉及解决复杂的优化问题,对此通常需要求助于启发法。例如,如在“绘图和可视化手册”中详细描述的,可以使用执行步骤的各种方式。例如,在作为Graphviz图可视化软件包的一部分的“点”工具中,可以使用层次绘图的实施方式。
使用现有的分层绘图方法来确定图的布局的缺点是,从稳定性的角度来看,其结果并不令人满意。图布局的稳定性涉及在改变图时最小化节点和边缘的放置的差异,例如不同的布局应该保留边缘的方向、节点之间的相对距离、和/或布局中的节点的位置,具体地,同时还考虑了导出图的路径。例如,在用于数据集的交互式分析的系统中,例如通过执行例如路径的各种过滤并且检阅所得图,各种所得图之间的稳定性是期望的,以例如使用户更容易观察到变化。然而,稳定性通常无法通过现有的分层绘图方法来保证,例如,添加或去除单个边缘可能会导致图的布局完全不同,使得难以了解什么发生了变化。
因此,期望提供一种具有提高稳定性的用于路径所导出的图的图布局方法。
发明内容
提出了一种权利要求中定义的图布局设备。图布局设备确定图的布局。该图是由通过节点集合的路径集合导出的。图的节点被包括在节点集合中,并且路径集合是通过节点集合的全局路径集合的子集。布局包括图的每个节点的位置。图布局设备计算将排名分配给节点集合中的每个节点的全局排名分配。计算全局排名分配包括从全局路径集合迭代地选择路径,并且基于所选择的路径来更新全局排名分配。图布局设备过滤全局路径集合以获得路径集合,图布局设备基于全局排名分配来计算图的布局,其中具有相等排名分配的图的节点被彼此相邻地放置,并且将图的布局存储在存储器中。
有趣的是,通过使用全局路径集合来计算全局排名分配并且使用全局排名分配来计算图的布局,提高了稳定性,因为与同一全局节点集合相关的不同图可能会重新使用相同的全局排名分配;而且,通过该方式计算全局排名分配和/或重新使用它可以提供性能优势和/或可以使得图与基础数据更紧密地匹配。
在一个实施例中,图布局设备基于相同的全局排名分配来确定由通过节点集合的另一路径集合导出的另一图的布局,从而提高了图与另一图之间的稳定性。在一个实施例中,图布局设备在显示器上绘制图。在另一实施例中,图布局设备绘制动画,该动画将图的绘制变形(morph)为另一图的绘制,该绘制通过提高的稳定性而被支持。
在一个实施例中,计算图的布局包括:确定具有相等排名分配的节点集合,确定所述节点集合的定序,以及根据全局排名分配和所述定序来将位置分配给所述节点集合中的节点。在一个实施例中,根据全局图的定序来对具有相等排名分配的节点定序,从而进一步提高稳定性和性能。在一个实施例中,利用骨干节点对节点定序,从而使得图与基础数据更紧密地匹配,尤其是其顺序性质。
在一个实施例中,来自全局路径集合的路径具有确定顺序的权重,全局排名分配以该顺序被确定。这可能会使得图布局与基础数据更紧密地匹配,例如图布局更突出地示出了具有高权重的路径。在一个实施例中,权重表示出现次数。在一个实施例中,路径的权重由用户指定。在一个实施例中,节点表示活动,并且路径表示活动的时间序列。
本发明的另一方面是一种权利要求中定义的图布局方法。根据本发明的方法可以在计算机上作为计算机实施的方法而被实施,或者在专用硬件中被实施,或者以上述两者的组合被实施。用于根据本发明的方法的可执行代码可以被存储在计算机程序产品上。计算机程序产品的示例包括存储器设备、光学存储设备、集成电路、服务器、在线软件等。优选地,计算机程序产品包括存储在计算机可读介质上的非瞬态程序代码,以用于当所述程序产品在计算机上被执行时执行根据本发明的方法。
在优选实施例中,计算机程序包括计算机程序代码,该计算机程序代码被适配于当计算机程序在计算机上运行时执行根据本发明的方法的所有步骤。优选地,计算机程序被实施在计算机可读介质上。
本发明的另一方面提供了一种使计算机程序可下载的方法。当计算机程序被上传到例如苹果的应用商店、谷歌的Play商店或微软的Windows商店中时,并且当计算机程序从这样的商店可下载时,该方面被使用。
附图说明
将仅通过示例参照附图来描述本发明的其他细节、方面和实施例。为了简单和清晰起见图示了附图中的元件,并且不一定按比例描绘。在附图中,与已经被描述的元件相对应的元件可以具有相同的附图标记。在附图中,
图1a、图1b示意性地示出了图布局设备的实施例的示例,
图2示意性地示出了图布局设备的实施例的示例,
图3a、图3b、图3c示意性地示出了排名单元的实施例的示例,
图3d示意性地示出了根据图的布局所绘制的图的示例,
图4a示意性地示出了造成两个图的布局的全局排名分配的示例,
图4b示意性地示出了造成两个图的布局的局部排名分配的示例,
图5a示出了根据使用“点”计算的图的布局所绘制的图的示例,
图5b示出了根据使用“点”计算的图的布局所绘制的图的示例,
图6示出了根据基于实施例计算的图的布局所绘制的图5a的图的示例,
图7示出了根据基于实施例计算的图的布局所绘制的图5b的图的示例,
图8示意性地示出了图布局方法的实施例的示例,
图9a示意性地示出了根据实施例的具有包括计算机程序的可写部分的计算机可读介质,
图9b示意性地示出了根据实施例的处理器系统的表示。
附图标记列表:
110、111 图布局设备
121 显示器
130、131 处理器
140、141 存储器
210 图布局设备
220 显示器
231 排名单元
232 过滤单元
233 布局单元
234 绘制单元
241 全局路径集合
242 全局排名分配
243 路径集合
244 图的布局
251、252、253、254、255 节点
256、257、258 路径
331 排名单元
342、342’、342” 全局排名分配
351、352、353、354、355 节点
356、357、358 所选择的路径
441 全局路径集合
442 全局排名分配
443、443’ 基于全局排名分配的图的布局
444、444’ 路径集合
445、445’ 局部排名分配
446、446’ 基于局部排名分配的图的布局
451、452、453 节点
456、457、458 路径
500、510、600、700所绘制的图
501-505、511-515、601-605、701-705 节点
509、609 边缘
900 图布局方法
901 计算全局排名分配
902 过滤全局路径集合
903计算图的布局
904 存储图的布局
911 选择路径
912 检查全局排名分配是否完成
913 更新全局排名分配
1000 计算机可读介质
1010 可写部分
1020 计算机程序
1110 (多个)集成电路
1120 处理单元
1122 存储器
1124 专用集成电路
1126 通信元件
1130 互连
1140 处理器系统
具体实施方式
尽管本发明容许许多不同形式的实施例,但是在附图中示出并且在本文中将详细描述一个或多个特定实施例,要理解本公开被认为是本发明原理的示例性的,并且不旨在将本发明限制于所示出和描述的特定实施例。
在下文中,为了理解,在操作中描述实施例的元件。然而,将显而易见的是,相应元件被布置为执行被描述为由它们执行的功能。
进一步地,本发明不限于实施例,并且本发明在于本文描述或在相互不同的从属权利要求中叙述的每个新颖特征或特征的组合。
图1a和图1b示意性地示出了用于确定图的布局的图布局设备的可能实施例。图1a所示的图布局设备110包括处理器130和存储器140。图1b所示的图布局设备111包括显示器121、处理器131和存储器141。例如,存储器140、141可以包括相应处理器130、131被配置为对其起作用的软件和/或数据。处理器130、131可以被实施为一个或多个处理器电路,例如微处理器、ASIC、FPGA等。可以例如在云计算架构等内配置处理器。本文示出了其他示例。存储器140、141可以包括由相应处理器130、131可执行的计算机程序指令。根据图布局设备的实施例来配置处理器130、131以及可能与相应存储器140、141一起配置。
下面的图2、图3a-图3c示出了可以是处理器的功能单元的功能单元。例如,图2可以用作处理器的可能功能组织的蓝图。处理器未与图2和图3a-图3c中的单元分开示出,但在图1a和图1b中被示出。例如,图2所示的功能单元可以全部或部分地以被存储在设备110处(例如在设备110的电子存储器中)的计算机指令来被实施,并且由设备110的微处理器可执行,并且针对设备111也是相似的。在混合实施例中,功能单元部分地在硬件中(例如作为协处理器,例如密码处理器)被实施,并且部分地在设备110和/或111上所存储和所执行的软件中被实施。
图2示意性地示出了图布局设备210的可能实施例。如上面所指出的,图2示出了可以由处理器实施的功能单元。出于阐明的目的,图2还示出了一些数据元素。图布局设备210被配置用于确定图的布局244。布局包括图的每个节点的位置,例如x坐标和y坐标。布局还可以包括例如虚拟节点的附加布局元素的位置,如下面所讨论的。
如下面更详细地描述的,确定布局244包括由图布局设备210的相应单元(例如排名单元231、过滤单元232、布局233以及可选地绘制单元234)执行的若干步骤。设备确定由节点集合导出的图的布局244,上述节点集合是通过过滤所获得的全局路径集合的子集的。图布局设备210的排名单元231计算将排名分配给节点集合中的每个节点的全局排名分配242。具有相等排名分配的图的节点在图布局中彼此相邻被放置。有趣的是,排名分配是基于全局路径集合的全局排名分配,从而提高稳定性。过滤单元232过滤全局路径集合以获得导出图的路径集合。布局单元233以将具有相等排名分配的图的节点彼此相邻放置的这样的方式,基于全局排名分配242来计算图的布局。绘制单元234可选地绘制图。排名单元231可选地执行循环去除步骤,例如如罗伯托塔马西亚(编辑)在“绘图和可视化手册”第13.2章“循环去除(Cycle Removal)”中详细描述的,通过引用将其包括在本文中。图布局设备210可选地执行边缘集中步骤,例如如罗伯托塔马西亚(编辑)在“绘图和可视化手册”第13.4章“边缘集中(Edge Concentration)”中详细描述的,通过引用将其包括在本文中。
有趣的是,排名单元231计算全局排名分配,并且布局单元233基于该全局排名分配计算图的布局。这样做的优势是,当多个图的布局基于相同的全局排名分配时,可以重新使用该排名分配,使得更有效地计算图布局,并且提高多个图的布局之间的稳定性。可以通过若干方式观察到提高的稳定性,例如通过观察到给定节点x和y之间的距离在两个图布局中相似和/或观察到图对象(例如节点或边缘)在两个图布局中具有相似的地点、和/或观察到布局调整通常会保留节点的方向,例如如果节点在一个图的布局中位于另一节点的左侧,则它通常也在另一图的布局中位于该节点的左侧。而且,由于图布局的计算使用了关于导出图的路径集合的信息,因此图的布局更好地反映了基础数据,这也将在下面更详细地讨论。
如下面详细描述的,布局设备210针对其确定布局的图由通过节点集合的路径集合243导出。图的节点被包括在节点集合中。路径通常包括节点的有序序列。例如,图2示意性地示出了被标记为“A”至“E”的五个节点251-255。路径集合243包括两个路径,路径257包括节点251、节点252和节点253的有序序列,并且路径258包括节点251和节点254的有序序列。为了解释的目的,我们可以将路径表示为标签的序列,例如路径257可以表示为“ABC”,并且路径258可以表示为“AD”。通过节点集合的各种路径可以彼此任意相关,例如成对的路径可以不相交,或者部分或全部地重叠,例如一个路径可以是另一路径的子路径,例如一个路径是另一路径的前缀或后缀。节点可以以不同的顺序出现在不同的路径中,例如节点集合243可以包括路径“AD”(其中节点A在节点D之前)以及路径“DA”(其中节点A直接在节点D之后)或路径“DBA”(其中A间接在节点D之后)。路径通常是有区别的,但这不是必须的。并非节点集合中的所有节点都必须出现在来自路径集合243的路径中,例如节点“E”255不会出现在来自集合243的路径中。
由路径集合243导出的图可以是有向图。这样的有向图可以包括节点集合和边缘集合,边缘是有序的顶点对。该图可以包含环路。节点集合也可以是多重集,例如图是多重图或多重有向图;该图可以是特定类型的有向图,例如有向非循环图和/或强连通图,或者可以是具有补充性质的有向图,例如加权有向图,例如每个边缘被分配具有权重的图。该图还可以是流网络,其中一个节点被区分为源节点,并且另一节点被区分为汇聚节点。可以使用有向图的各种其他已知子类和变型。由路径集合243导出的图也可以是无向图。无向图可以包括节点集合和边缘集合,边缘是两个节点的集合或两个节点的2重集,例如表示环路的边缘可以是两次包含相同节点的2重集。该图可以是文献中所区分的特殊类型的无向图(例如连通图或平面图)和/或具有补充性质的无向图,例如加权无向图或无向多重图。
该图可以由路径集合243以各种方式来导出。在一些实施例中,图的节点被包括在沿着来自路径集合的路径的节点的并集中,图的边缘被包括在沿着来自路径集合的路径的边缘的并集中。例如,出现在路径集合243中的路径中的所有节点可以是图的节点,并且出现在路径集合243中的路径中的所有边缘可以是图的边缘。例如,考虑包括路径“ABC”257和路径“AD”258的路径集合243。由该路径集合导出的图可以具有节点“A”、“B”、“C”和“D”以及从“A”到“B”、从“B”到“C”和从“A”到“D”的边缘。例如,可以通过在节点集合上叠加各种路径(例如路径“ABC”和路径“AD”)来获得该图。该图可以是以这样的方式被定义的图的子图,例如该图作为完整的所导出的图的子图被获得,该完整的所导出的图包括在路径集合243中的路径中出现的节点和在路径集合243中的路径中出现的边缘。例如,可以通过根据标准进行过滤(例如通过滤出满足一定标准的所有边缘、例如通过滤出具有低于阈值的权重的所有边缘和/或例如在滤出边缘之后滤出没有传入或传出边缘的所有节点)来获得图作为完整的所导出的图的子图。标准(例如阈值)可以由图布局设备210获得作为输入(例如由用户给出的输入),或者可以由图布局设备210本身来计算。图还可以由路径集合243以其他方式来导出,例如路径可以在沿着该路径的所有成对节点之间导出边缘,等等。
在不同的应用中,节点集合和路径集合243可以表示不同种类的对象。在一些实施例中,节点表示活动,并且路径表示活动的时间序列。活动可以是处理步骤或操作步骤,例如用于生产产品或递送服务的过程的步骤。例如,路径可以对应于情况,例如事件的序列,其中事件包括作为情况的一部分在特定时间发生的活动。活动可以是事件的一种。不同的情况可以对应于相同的路径。例如,包括在上午11:15的登录活动和在上午11:30的注销活动的情况以及包括在上午11:45的登录活动和在下午12:30的注销活动的情况都可以对应于通过节点集合“I”、“O”的路径“IO”,节点“I”表示登录活动并且节点“O”表示注销活动。其他节点可以表示其他活动,例如屏幕锁定、发送电子邮件等。例如,在这样的情况下,由路径集合243导出的图可以具有给定的情况集合下的活动作为节点以及在情况中的一种情况下的彼此直接接续的活动之间的边缘。该图还可以是以这样的方式被定义的图的子集,例如该图可以包括至少在最小数目的情况下(例如在10或100种情况下)彼此直接接续的活动之间的边缘和/或表示具有至少一个传入或传出边缘的活动的节点。
作为另一示例,节点可以表示物理地点,并且路径可以表示这些地点之间的路线,例如运输路线。例如,节点可以表示结点,并且路径可以表示经由一系列结点从起点行进到终点的可能性。例如,节点可以表示自行车路线网络中的结点,路径表示自行车路线网络中的自行车路线,并且边缘表示两个结点之间的路标路线。或者,节点可以表示公共运输站点,例如公共汽车、火车、电车或轮渡站点,并且路径可以表示经由公共运输从起点行进到终点的可能方式,边缘表示两个公共运输站点之间的直接公共运输路线,例如单个火车从一个火车站行进到另一火车站。表示有用的现实概念的节点、图和路径的各种其他使用是已知的,并且可以从此处提出的图布局技术中受益,例如系统结构图、计划、操作过程图和逻辑电路图。
有趣的是,路径集合是通过节点集合的全局路径集合241的子集。例如,图2中的全局路径集合241包括从节点集合243的路径“ABC”257和“AD”258,但是还包括路径“ACE”256。例如,全局路径集合241可以包括日志中的所有的事件的序列,而路径集合243包括这些事件的序列的子集。例如,可以通过条件选择路径集合243。例如,该条件可以是时间条件,例如在给定时间段(例如上周)内发生的事件的序列的子集。或者,该条件可以是来自路径集合243的路径满足某个条件或具有某个属性,例如该路径具有最小和/或最大长度,该路径已被标记,例如具有谓词,例如谓词“重要的”,或该条件可以是路径包含特定节点或特定类型的节点,例如特定活动。如稍后更详细地讨论的,路径集合243是通过过滤从全局路径集合241获得的。全局路径集合241被用于计算全局排名分配242,并且全局排名分配242被用于计算图的布局244。与不使用全局路径集合和/或全局排名分配的传统方法相比,这可以具有多个优势,例如提高了由不同路径集合导出的图的布局之间的稳定性,降低了计算图布局的计算复杂度,和/或确保一致地并且以以下方式示出了来自全局路径集合的具体路径(例如具有高权重的路径):来自这样的特定路径的节点以它们在那些路径中出现的顺序更频繁地被示出。
图布局设备210包括排名单元231。排名单元231计算将排名分配给节点集合中的每个节点的全局排名分配242。全局排名分配242支持根据分层绘图技术确定图的布局。优选地,全局排名分配242满足以下性质:对于全局路径集合241中的每个路径,将有区别的排名分配给沿着该路径的节点。该性质在分层绘图中很有用,以用于避免沿着路径的节点被彼此相邻描绘,从而减少边缘交叉的数目,因为图的布局被计算,使得具有相等排名分配的图的节点被彼此相邻地放置。有趣的是,将排名分配给节点集合中的每个节点,例如也分配给节点255,节点255出现在来自全局路径集合241的路径256中,但是没有出现在来自路径集合243的路径中。结果,当计算其他图(例如由通过节点集合的不同路径集合导出的图)的布局时,可以重新使用全局排名分配242。因此,多个图的布局可以基于相同的全局排名分配242,从而提高了这些不同图的布局之间的稳定性,并且提高了计算图布局的效率。
为了计算全局排名分配242,排名单元231从全局路径集合241迭代地选择路径,并且基于所选择的路径来更新全局排名分配242。例如,排名单元231选择路径,更新全局排名分配,选择另一路径,更新全局排名分配等,直到获得期望的全局排名分配。在优选实施例中,排名单元231在来自全局路径集合241的所有路径之上进行迭代,但这不是必须的:还可以仅在路径的子集之上进行迭代,例如仅固定数目的路径,例如路径的前10个或10%,或仅满足某个性质的路径,例如仅权重至少为10的路径,或迭代直到满足某个标准为止,例如直到全局排名分配满足某个性质,例如直到已经为节点集合中的所有节点或在节点集合243中的路径中出现的所有节点分配了排名或者直到全局排名分配通过若干迭代(例如通过最近的五次迭代)保持静态。有利地,代替仅使用图本身作为输入,例如关于图包括哪些节点和边缘的信息,排名单元231能够应用附加信息,例如全局路径集合241,这在用于计算图布局的排名或层分配方法中通常是不可用的,因此使排名分配242的计算更有效,以及使得排名分配242与基础数据(例如全局路径集合241)更紧密地匹配。例如,期望所得图的布局与全局路径集合241中的路径中的节点的顺序匹配,例如来自路径集合241的一个或多个路径的节点通常应该在布局中从左到右或从上到下出现。有利地,排名单元231可以使用全局路径集合241来改善这样的匹配。
有多种方法可以从全局路径集合241选择路径。在优选实施例中,来自全局路径集合241的路径具有对应的权重。排名单元231可以通过权重例如升序或降序对全局路径集合排序。然后,排名单元231可以按照经排序的全局路径集合的顺序迭代地更新全局排名分配242,例如从全局路径集合241迭代地选择路径可以包括从经排序的全局路径集合选择下一路径。在优选实施例中,以权重的降序顺序选择路径。结果,在全局排名分配的较早更新中使用了高权重路径,这可以使这样的路径与其他路径相比更严重地影响全局排名分配,进而影响图的布局。这可以具有以下优势:更重要的路径在所得的图布局中更加突出。
路径的权重可以由图布局设备210计算,它可以作为输入被接收,或者可以由用户指定,例如用户例如通过图布局设备210的用户界面指定至少一个路径的权重。例如,默认权重可以例如由图布局设备210分配给路径,并且用户可以针对一个或多个(例如所有)路径来覆盖该默认权重。这可以使由用户选择的路径在图的布局中比其他路径更加突出。在一些实施例中,来自全局路径集合241的路径的权重或默认权重表示该路径的出现次数。特别是在这样的情况下,高权重路径的集合针对作为相同的全局路径集合的子集的不同路径集合可能是相同或相似的,因为频繁出现可能会在多个子集中发生,从而提高了针对全局路径集合的不同子集的全局排名分配的准确性。例如,来自全局路径集合241的路径可以表示活动的时间序列,并且权重可以表示活动的时间序列的实例在例如日志文件中出现的次数。
迭代地选择路径的其他方法或上述方法的变型也是可能的,例如可以随机地选择路径,例如随机均匀地或有偏差地,例如以与路径的权重成比例的概率。
选择了路径之后,排名单元231基于所选择的路径来更新全局排名分配242。更新全局排名分配242可以包括例如从所选择的路径向先前未被分配排名的节点分配排名和/或更新先前分配给来自所选择的路径的节点或其他节点的排名。排名单元231优选地以初始为空的排名分配开始,例如尚未将排名分配给节点。替代地,排名单元231开始于其中默认排名已经被分配给所有节点的排名分配,例如所有节点已经被分配了相同的排名,或者所有节点已经被分配了随机排名。在一些实施例中,在基于所选择的路径更新全局排名分配242之后,通过全局排名分配242将排名分配给沿着迄今为止已经由排名单元231处理过的路径的所有节点。
在一些实施例中,排名单元231更新全局排名分配242,其中将有区别的排名分配给沿着所选择的路径的节点。具体地,这可以支持将有区别的排名分配给沿着来自全局路径集合241的每个路径的节点,这对于分层绘图是期望的,如上面所讨论的。例如,排名单元231可能检测到相同的排名先前已经被分配给沿着所选择的路径的第一节点和第二节点。在这样的情况下,排名单元231可以例如通过将第二节点的排名递增一来更新排名分配,以使第一节点和第二节点的排名有区别。一个或多个其他节点的排名也可以递增,例如如下的所有节点的排名可以递增:其排名大于或等于第二节点的排名的所有节点和/或沿着迄今为止所选择的路径直接或间接在第二节点之后的所有节点、或类似的所有节点。
优选地,在每次迭代之后,将有区别的排名分配给所选择的路径中的所有节点和/或之前已经选择的所有路径,例如排名单元231可以维持不变,即将有区别的排名分配给在已经选择的路径中被直接连通的节点。然而,这不是必须的,例如排名单元231在执行迭代时可能不保证该性质不变,而是在迭代被执行后通过后处理来实现。
排名通常是积分,尽管也可以使用排名值的其他有序集合。在全局排名分配242的计算期间或在计算完成之后,全局排名分配242中被分配给节点的排名不需要连续;例如可以将排名1分配给一个或多个节点,并且将排名3分配给其他节点,而没有排名分配有排名2。不分配连续排名可以是有益的,尤其是在全局排名分配的计算期间,因为它可以通过不必更新先前所分配的排名来简化将两个先前所分配的排名之间的排名分配给节点。例如,如果节点A的排名为1,并且节点B的排名为2,那么为了将介于节点A和节点B的排名之间的积分排名分配给节点C,则必须更新A的排名或B的排名,而如果节点A的排名为100,并且节点B的排名为200,那么可以为C分配排名150,而不会影响A或B的排名。相似地,在一些实施例中,例如在全局排名分配242的计算期间,排名可以为负。这对简化全局排名分配的计算可以是有益的,因为它可以简化将小于所有先前所分配的排名的排名分配给节点,例如可以将比所有先前所分配的排名小一个单位的排名分配给节点,例如最小的先前所分配的排名可以是-2,并且可以将-3的排名分配给该节点。全局排名分配242中的排名不必在由排名单元231进行计算期间和/或之后显式地存储在存储器中;例如可以通过维护被链接的级别列表(每个级别包括已被分配了相同排名的节点的集合)或者通过相似的数据结构来隐式地存储排名。在下面的示例中,为了清晰起见,我们显式地给出了积分排名,但是要理解的是,这些排名可以是隐式的。
图3a示意性地示出了排名单元331的实施例的示例。在图3a中,通过将排名1、排名2和排名3分配给先前没有被分配全局排名的节点A 351、C 353和E 355,排名单元331基于所选择的路径“ACE”356来更新全局排名分配342。例如,路径356是第一所选择的路径,并且排名单元331通过将增加的排名(例如连续的排名)分配给来自所选择的路径356的相应节点来更新全局排名分配331。
图3b示意性地示出了排名单元331的实施例的示例。该附图例证了第一节点(例如节点“B”352)沿着所选择的路径(例如路径“ACE”356)出现在第二节点(例如节点“A”351)和第三节点(例如节点“C”353)之间的情况,其中没有排名被分配给第一节点,并且排名被分配给第二节点和第三节点,例如排名1被分配给节点“A”351,并且排名2被分配给排名“C”353。在这样的情况下,可以更新全局排名分配,其中介于被分配给第二节点的排名和被分配给第三节点的排名之间的排名被分配给第一节点。例如,在图3b中,排名2被分配给第一节点“B”352,并且第三节点“C”353的排名被更新为3,使得节点352的排名在节点351的排名和节点353的排名之间。
在第二节点和第三节点之间可以存在尚未被分配排名的多个节点,在这样的情况下,可以将排名分配给这些节点中的每个节点,优选地分配有区别的排名,例如顺序排名。也可以更新除第二节点和第三节点以外的节点的排名。例如,可以更新排名,使得在更新之前具有有区别的排名的节点在更新之后也具有有区别的排名。例如,在图3b中,节点E 355的排名从3更新为4,使得节点C 353和E 355在更新之后具有有区别的排名。例如,可以通过将大于或等于期望排名的节点的排名递增一来将期望排名分配给节点,然后将期望排名分配给节点。
图3c示意性地示出了排名单元331的实施例的示例。该附图例证了沿着所选择的路径(例如路径“AD”358)的节点(例如节点“D”354)在沿着被分配了排名的所选择的路径的所有其他节点(例如节点“A”351)之前或之后的情况。在这样的情况下,排名单元331可以更新全局排名分配,其中将小于或大于所述所有其他节点的排名的排名分配给节点。例如,在图3c中,排名2在全局排名分配342”中被分配给节点“D”354,该排名大于在它之前的节点“A”351的排名。可以有多个节点在沿着被分配了排名的所选择的路径的所有节点之前和/或多个节点在沿着被分配了排名的所选择的路径的所有节点之后,其中可以将排名分配给这些之前和/或之后节点中的每个节点,优选地是有区别的,例如增加的。如在该示例中,所分配的排名可以直接在所分配的排名之前或之后,但这不是必须的,例如排名3、4或者更大的排名也可以被分配给节点“D”354。
沿着路径的先前所分配的节点的排名也可以被更新,例如如果选择了路径“AB”并且排名1已被分配给节点“B”,那么“B”的排名可以更新为2,并且“A”的排名可以被设置为1。如上文,其他节点的排名也可以被更新,例如为了将小于所述所有其他节点的排名的期望排名分配给节点,全局排名分配342”中已经被分配并且大于或等于期望排名的所有现有排名可以递增,并且可以将期望排名分配给该节点。如果该节点在所述所有其他节点之前,则分配给该节点的排名可以较小,并且如果该节点在所述所有其他节点之后,则分配给该节点的排名可以较大。然而,排名单元331也可以分配大于所述所有其他节点的排名的排名,如果节点在所述所有其他节点之前,例如如果排名3已经被分配给节点“B”且排名2已经被分配给节点“C”并且所选择的路径为“AB”,那么可以将排名4分配给节点“A”而不是排名1,例如提高图的所得布局的紧凑性。相似地,如果节点在所述所有其他节点之后,则排名单元331可以分配小于所述所有其他节点的排名的排名。
在一些实施例中,代替将小于或大于所述所有其他节点的排名的排名分配给节点,分配小于或大于立即在节点之前或之后的排名、但不必小于或大于所述所有其他节点的排名的排名。这可以有益于限制全局排名分配中的排名的总数,可能会造成更紧凑的图。
图5a、图5b、图6和图7示出了根据图布局所绘制的图的示例,其示出了由图布局210实现的一些优势,例如提高的稳定性。图5a示出了根据使用“点”(来自Graphviz图可视化软件(https://www.graphviz.org/)的已知工具)所计算的图的布局而被绘制的图500。“点”是进行有向图的“层次”或分层描绘的图布局程序。布局算法将边缘对准同一方向(从上到下或从左到右),然后尝试避免边缘交叉并且减小边缘长度。该图包括被标记为“检查接收到的发票”的节点501、被标记为“后处理发票”的节点502以及从节点501到节点502的边缘509。图5b示出了根据使用“点”所计算的图的布局而被绘制的、通过过滤从图5a的图获得的图的绘制510。图5b中所绘制的图与图5a中所绘制的图相同,例如它包括相同的节点和它们之间的边缘,除了边缘509已被滤出之外。例如,在布局510中,被标记为“检查接收到的发票”的节点511没有通过边缘被连通至被标记为“后处理发票”的节点512。从附图中可以看出,两个图之间的该小差异造成两个图布局500和布局510之间的大差异,例如两个图之间的稳定性很差。布局500和布局510看起来不同,例如很难看到它们表示几乎相同的图。例如,这会使将动画变形布局500绘制为布局510变得复杂。具体地,要注意的是,被标记为“处理员工报销”的节点503和被标记为“已检查并且核准”的节点504在布局500中不相邻,而对应的节点513和节点514在布局510中相邻。
图6示出了与图5a相同的图600,图600现在根据基于实施例计算的布局被绘制。从附图中可以看出,被标记为“检查接收到的发票”的节点601通过边缘609被连通至被标记为“后处理发票”的节点602。图7示出了与图5b相同的图700,图700根据基于实施例计算的布局被绘制。此处,被标记为“检查接收到的发票”的节点701和被标记为“后处理发票”的节点702没有被边缘连通。两个图是由通过公共节点集合的相应路径集合导出的,相应路径集合是全局路径集合的子集。例如,通过从该图过滤所去除的边缘609,从图600获得图700。两个图的布局都基于相同的全局排名分配。结果,在两个图布局中,相同的节点彼此相邻。例如,在布局600中相邻的节点在布局700中相邻,反之亦然,例如被标记为“处理员工报销”的节点603与布局600中被标记为“已检查并且核准”的节点604相邻,并且对应的节点703和节点704在布局700中也相邻。如上面所讨论的,在使用“点”计算的图500和510中不是这样的情况。因此,布局600和布局700具有提高的稳定性,具体地,两个布局的绘制看起来几乎完全相同,例如允许用户更容易地检阅相应图之间的变化。例如,这支持将动画变形布局600绘制为布局700。
返回图2,图布局设备210包括过滤单元232。过滤单元232过滤全局路径集合241以获得路径集合243。路径集合243可以是集合241的子集。例如,在图2中,过滤单元232选择被来自全局路径集合241的路径集合243包括的路径“ABC”257和“AD”258。不需要将路径集合243显式地存储在存储器中;例如集合243可以被存储为对全局路径集合241中的路径的引用的列表,作为指示来自全局路径集合243的哪个路径出现在路径集合中的位图,等等。如上面所讨论的,路径可以表示各种对象,诸如活动的时间序列。过滤这些路径可以以各种方式相应地发生。例如,选择路径可以包括基于以下至少一项来评估标准:路径的权重、路径的长度、与该路径中的节点相对应的活动的时间、以及该路径是否包含特定的边缘、节点、或者节点的类型。例如,如果对应于其节点的活动发生在上个月、如果在路径的活动中涉及特定的人、如果路径包括特定的节点或边缘、或相似的标准,则可以选择该路径。在任何情况下,从确定了全局排名分配242的全局路径集合241获得路径集合243的优势在于,可以将全局排名分配242用于确定图的布局,从而提高确定图的布局的效率,并且当计算由全局路径集合241的子集导出的多个图的布局时,提高图布局的稳定性。
图布局设备210还包括布局单元233。布局单元233基于全局排名分配242来计算图244的布局。布局包括图的每个节点的位置,例如x坐标和y坐标。具有相等排名分配的图的节点彼此相邻放置。例如,具有相等排名分配的图的节点被分配相同或相似的x坐标或者相同或相似的y坐标。在图2所示的示例中,节点“A”251的位置为(xA,y1);节点“B”252的位置为(xB,y2);节点“C”253的位置为(xC,y3);并且节点“D”254的位置为(xD,y2)。由于节点“B”252和节点“D”254根据排名分配242具有相同的排名,因此它们被分配了相同的y坐标y2。另一方面,节点“A”251和节点“C”253具有不同的排名,因此在该示例中,分别为它们分配了与y2不同的y坐标y1和y3。图3d示意性地示出了根据图244的布局所绘制的图的示例。在一个实施例中,布局单元233使用已知的分层绘图方法来计算布局,例如通过执行顶点定序、x坐标分配以及可选地边缘集中,如罗伯托塔马西亚(编辑)在“绘图和可视化手册”第13.5章“顶点定序(Vertex Ordering)”、第13.6章“x坐标分配(x-Coordinate Assignment)”、以及第13.4章“边缘集中(Edge Concentration)”中所描述的,通过引用将其包括在本文中。
在一些实施例中,图244的布局还包括一个或多个虚拟节点的位置。布局单元233可以将虚拟顶点和/或虚拟边缘添加到图。在一些实施例中,布局单元233在图的第一节点和第二节点之间添加包括虚拟顶点和虚拟边缘的路径,该第一节点和第二节点之间具有边缘并且其排名相差多于一。布局单元233可以临时或永久地从图去除原始边缘。虚拟边缘被分配连续的排名。虚拟边缘和顶点可以支持由布局单元233和/或其他单元执行的后续步骤,例如布局单元233的进一步操作可以假设顶点跨越单个层和/或绘制单元可以使用一个或多个虚拟节点的确定位置以在图的节点(例如图的非虚拟节点)之间描绘边缘。
基于全局排名分配242计算图244的布局可以包括:例如通过从全局排名分配消除在图中不出现的节点和/或消除没有被分配给图中的节点的排名来使全局排名分配适应图。例如,在图2所示的示例全局排名分配242中,排名4被分配给节点“E”255,但是该节点没有出现在由节点集合243导出的图中。因此,布局单元233可以从全局排名分配242消除节点“E”和/或排名4。从全局排名分配消除排名可以包括移动较高的排名,使得排名在所适应的全局排名分配中连续出现,例如从全局排名分配消除排名可以包括:将比所消除的排名高的所有排名降低一。可以例如通过编辑全局排名分配来原地(in-place)执行适应全局排名分配。优选地,然而,全局排名分配不是原地执行的,例如全局排名分配进行了深拷贝或浅拷贝,并且对该拷贝执行了适应,使得全局排名分配242本身可以被重新用于其他图。
具有相等排名分配的节点可能不会完全彼此相邻,例如它们可能只是近似相邻,例如相对于相邻位置稍微移动节点中的一个节点可能是有利的,例如以减少图中的交叉数目或在两个节点之间描绘更短或更笔直的边缘。然而,通常,节点沿着不相邻的方向以排名的增加顺序出现,例如具有相同排名分配的节点在x方向上相邻,并且具有较高y坐标的节点具有较高的排名,或相似地x定向和y定向互换。在计算了图244的布局之后,布局单元233将图244的布局存储在存储器中,例如图1a中的存储器140或图1b中的存储器141。
在一些实施例中,布局单元233通过确定具有相等排名分配的节点集合、确定该节点集合的定序、并且根据全局排名分配244和该定序将位置分配给所述节点集合中的节点,来计算图的布局。例如,布局单元233可以将图的所有节点分割为具有相等排名分配的节点集合,和/或利用相等排名分配将位置分配给每个节点集合中的所有节点。定序优选地是线性定序,例如总顺序。例如,使用本领域技术人员已知的交叉减少方法,例如启发式方法,对具有相等排名分配的节点进行置换以减少在将节点连通至具有较低排名的节点的边缘之中交叉的数目。可以针对不同排名重复该过程,直到获得每个排名的稳定定序集合或直到满足另一标准为止。布局单元233可以使用来自用于x坐标分配的文献的已知技术根据全局排名分配和定序来将位置分配给图的节点,例如如罗伯托塔马西亚(编辑)在“绘图和可视化手册”第13.6章“x坐标分配”中详细描述的,通过引用将其包括在本文中。
有趣的是,在一些实施例中,布局单元233确定节点的全局定序,并从该全局定序计算具有相等排名分配的图的节点集合的定序。例如,布局单元233可以从相应的全局定序确定具有相等排名分配的图的所有节点集合的定序。全局定序是具有相等排名分配的全局图的节点集合的定序,优选地是总定序或线性定序。具有相等排名分配的节点集合是具有相等排名分配的全局图的节点集合的子集,例如相同的排名被分配给来自具有相等排名分配的节点集合和全局图的节点集合的节点。全局图由全局路径集合241导出。例如,通过与图由路径集合243导出相同的方式由全局路径集合241导出全局图。例如,全局图具有节点集合或在全局路径集合241中的路径中出现的那些节点作为节点;并且具有在全局路径集合241中的路径中出现的边缘作为边缘;或者具有这些节点和/或这些边缘的子集,例如如通过根据标准过滤节点和/或边缘而获得的。在一些实施例中,已知的顶点定序技术用于获得具有相等排名分配的全局图的节点的定序,例如如罗伯托塔马西亚(编辑)在“绘图和可视化手册”第13.5章“顶点定序”中所描述的,通过引用将其包括在本文中。
在一些实施例中,布局单元233基于骨干节点确定具有相等排名分配的全局图的节点集合的定序。布局单元233确定针对每个排名的骨干节点。例如,可以根据它们被排名单元231从全局路径集合选择的顺序来对路径进行索引,针对排名的骨干节点是沿着被分配了排名的节点之中的最低索引路径的节点。针对后续排名的骨干节点被全局图的边缘连通,例如针对排名2的骨干节点和针对排名3的骨干节点被全局图的边缘连通。骨干节点可以是虚拟节点,例如虚拟节点可以被视为沿着来自虚拟节点沿其被插入的全局路径集合的路径。为了确定骨干节点,布局单元233可以以排名单元231的顺序通过来自全局路径集合241的路径迭代,如果还没有具有相同排名的骨干节点被选择,则将沿着所选择的路径的每个节点(例如包括虚拟节点)设置为骨干节点,继续直到针对每个排名的骨干节点都已被确定为止。
基于所确定的骨干节点,布局单元233将图的非骨干节点划分为连通分量。例如,布局单元233创建图的拷贝,从拷贝去除他们所连通到的骨干节点和边缘,并将拷贝划分为连通分量。布局单元233在针对其相应排名的骨干节点之前或之后对连通分量的所有节点进行定序。例如,布局单元233针对每个连通分量确定它是左连通分量还是右连通分量。如果连通分量是左连通分量,则布局单元233在针对其相应排名的骨干节点之前对连通分量的节点进行定序,例如如果节点具有某个排名,那么其在针对该排名的骨干节点之前被定序。相似地,如果连通分量是右连通分量,则布局单元233在针对其相应排名的骨干节点之后对连通分量的节点定序。作为左连通分量的连通分量可以意味着连通分量的节点被分配位置和/或被绘制到骨干节点的左侧或顶部,并且对于右连通分量也是相似的。
连通分量是左连通分量还是右连通分量可以被确定,使得左连通分量和右连通分量中的节点数目相似。例如,可以通过使用众所周知的分割优化算法将连通分量的集合分割为两个子集,从而使相应尺寸的和之间的差异被最小化或近似最小化,来确定连通分量是左连通分量还是右连通分量。例如,布局单元233最初可以将同一侧分配给所有连通分量,然后从最大到最小迭代通过连通分量,如果这减小了左连通分量和右连通分量的尺寸的和的差异,则改变其侧。
如果多个节点要被分配的顺序大于或小于骨干节点的顺序,例如来自全局图的不同的左连通分量或右连通分量的两个节点具有被分配给它们的相同排名,那么多个节点的相对定序可以以各种方式被确定,例如随机地或者以到先前或随后排名的边缘之间的交叉数目被最小化的方式。确定多个节点的相对定序的一种方式基于与骨干的连通性。节点的连通性可以被定义为具有相同路径索引的节点的数目,例如首先出现在由排名单元231选择的相同路径中的节点,其通过图的边缘被直接连通至骨干节点。可以通过连通性对多个节点排序来确定多个节点的相对定序。例如,通过首先从通过增加连通性而被定序的左连通分量获得节点,接着获得针对排名的骨干节点,接着是从通过减小连通性而被定序的右连通分量获得节点,或者类似的,布局单元233可以对具有相等排名分配的节点进行定序。具有相同连通性的节点的相对顺序可以被选择,以最小化到上一或下一排名的边缘之间的交叉,例如布局单元233可以根据连通性对路径进行排序,并且根据由排名单元231选择的第一路径来对节点进行定序,节点沿着第一路径出现。
在一些实施例中,布局单元233通过确定针对每个排名的骨干节点、确定全局图的连通子图的一侧,来确定具有相等排名分配的全局图的节点的定序,连通子图不包括骨干节点,该一侧是左侧或者右侧,并且向连通子图的子图节点分配顺序,如果该侧是左侧,该顺序小于针对被分配给子图节点的排名的骨干节点的顺序,如果该侧是右侧,该顺序大于针对被分配给子图节点的排名的骨干节点的顺序。
已经确定了全局图的节点的定序,这些定序可以用于确定具有相等排名分配的图的节点的定序。例如,具有相等排名分配的图的节点可以如它们在全局图的节点的定序中出现时被定序,例如通过从全局图的节点的定序中滤出未在图中出现的那些节点来获得图的节点的定序。这样做的优势是,由于使用了一致的节点顺序,因此提高了图布局之间的稳定性,并且由于可以将全局图的节点的定序重新用于确定多个图的布局,因此提高了对节点进行定序的效率。
如上面所讨论的,可以例如通过比较示出了由已知工具“点”根据布局所绘制的图的图5a和图5b与示出了根据实施例的根据布局所绘制的相应图的图6和图7,可以观察到提高的稳定性。通过“点”获得的图布局500和510都包括被标记为“已检查并且核准”的节点504、514和被标记为“请求数据”的节点505、515。在布局500中,第一节点504位于第二节点505的左侧,而在布局510中,第一节点514位于第二节点515的右侧。图6和图7示出了根据实施例的相同图布局600、700;具体地,两个布局600、700都包括被标记为“已检查并且核准”的节点604、704和被标记为“请求数据”的节点605、705。在两个布局600、700中,由于使用了全局图的节点的相同定序来确定图600中的节点604、605和图700中的节点704、705的定序的事实,第一节点604、704位于第二节点605、705的左侧。因此,有利地,与布局500、510相比,在布局600、700中提高了关于这些特定节点的布局的稳定性。
而且,由于骨干在图布局中的中心出现,因此所获得的布局可以有利地更紧密地匹配基础数据。通过将图5a和图5b与图6和图7进行比较,也可以观察到这一点。在附图中的每个附图中,以粗边缘和深色节点来示出包括五个节点“请求发票”、“检查接收到的发票”、“发票的最终检查”、“核准发票”和“支付发票”的同一路径。在这样的情况下,该特定路径是来自全局路径集合的路径,即,权重最高的路径。由于图布局设备210使用了本文描述的排名和定序机制,因此路径的节点在布局600、700中从上到下出现;而且,这些节点成为骨干节点,因此在布局600、700中的中心出现,反映出该路径的重要性。相反,在不使用本文描述的图布局技术的布局500和600中,路径不是从上到下出现的,并且节点也不在其排名的节点之中的中心出现。因此,布局600、700更紧密地匹配基础数据,特别是其在路径集合中所反映的顺序性质。
返回图2,已经基于全局图的节点的定序确定了图的节点的定序,这些定序还可以可选地被进一步改进,例如通过应用从文献已知的一个或多个交叉减少步骤来进一步减少交叉和/或获得更适合当前图的图布局。
在一些实施例中,图布局设备210还被配置为确定另一图的布局。该另一图是由通过节点集合的另一路径集合导出的。另一路径集合是全局路径集合241的子集。图的布局244和另一图的布局基于相同的全局排名分配而被计算,例如排名单元231计算全局排名分配242,并且单元233例如使用上面讨论的技术基于全局排名分配242计算图的布局和另一图的布局。有利地,全局排名分配242被用于计算图的布局和另一图的布局,从而消除了需要计算两次排名分配,从而提高了性能以及提高了被用于两个图的排名分配之间的一致性。在一些实施例中,具有相等排名分配的图的节点的定序是从由全局路径集合241导出的全局图的节点的定序计算的。在这样的情况下,布局单元233可以一次确定全局图的节点的定序,并使用它们两者来计算图244的布局和另一图的布局,相似地提高了图之间的性能和一致性。
图布局设备210可选地包括绘制单元234和显示器220。绘制单元234被配置为根据图244的布局在显示器220上绘制图。绘制图包括在由布局244指定的位置上显示图的节点,并且在节点之间描绘边缘。可以利用从文献已知的各种样条描绘技术来执行描绘边缘。在一些实施例中,例如如上面所讨论的,布局单元233被配置为计算虚拟节点的位置,虚拟节点被插入在其排名相差多于一的节点之间。这样的节点之间的边缘可以被描绘穿过在它们之间插入的虚拟节点的计算出的位置,例如虚拟节点布局针对样条的路径,并且节点之间的边缘可以被描绘为通过节点和在它们之间插入的虚拟节点的样条。绘制单元234可以搜索两点之间的最平滑曲线,从而避免其他节点、边缘和标签。这可以包括首先计算样条可以被描绘的多边形区域,然后在给定该多边形区域的情况下计算该区域内的样条。计算区域可以考虑已经描绘的样条、节点和标签,从而减少意外的边缘-边缘、边缘-节点或边缘-标签交叉的数目。具体地,可以应用甘丝纳(Gansner)等人在IEEE Trans.Software Eng.19.3(1993)“用于描绘有向图的技术(A Technique for Drawing Directed Graphs)”(通过引用将其包括在本文中)中提出的算法或其变型。
在图布局设备210还被配置为确定另一图的布局的实施例中,如上面所讨论的,绘制单元234可以在显示器220上绘制将图的绘制变形为另一图的绘制的动画。有利地,由于图的布局和另一图的布局都基于排名分配242并且可能基于全局图的节点的定序,因此在两个图中出现的节点通常在两个图布局中具有相似的位置以及相对于彼此的相似定向,从而支持了变形过程。例如,由于相似的定向,可以避免节点相对于彼此互换定向,例如第一节点在图中的第二节点的左侧并且在另一图中的第二节点的右侧,从而给出改善的变形效果。可以使用各种变形技术。例如,可以示出第一图的绘制,在其上第二图的绘制与提高的不透明度叠加。或者,可以示出随后的绘制,其中在两个图中出现的节点的位置被插补到它们在第一布局和第二布局中的位置之间。仅在第一图中出现的节点每当与另一节点重叠时,可能会以降低的不透明度示出和/或消失。相似地,每当节点的位置不与另一节点重叠时,仅在第二图中出现的节点可以以提高的不透明度示出和/或出现。例如,使用上面讨论的技术,可以相对于动画中的中间位置描绘边缘。
在图4a和图4b中示出了突出显示使用全局排名分配的一些优势的附加示例。图4a示意性地示出了全局路径集合441的示例,其包括通过节点“A”451、“B”452和“C”453的路径“CA”456、“AB”457和“AC”458。图4b示意性地示出了路径集合444、444'的示例,他们是全局路径集合441的子集。路径集合444包括路径“CA”456和路径“AB”457。路径集合444'包括路径“AB”457和“AC”458。
图4a示意性地示出了根据全局排名分配442分别由路径集合444和路径集合444'导出的图的布局443和布局443'的示例。根据本文描述的实施例计算全局排名分配可能会造成全局排名分配442,其中排名2被分配给节点“A”451,排名3被分配给节点“B”452,并且排名1被分配给节点“C”453。例如,排名单元231可以选择路径“CA”,并将全局排名分配更新为C:1、A:2;选择路径“AB”,并将全局排名分配更新为C:1、A:2、B:3;并且最后选择路径“AC”并保持全局排名分配不变。布局443和布局443’中的节点“A”451、“B”452和“C”453的y坐标由全局排名分配442确定,因此在布局443和布局443’中是相同的。有利地,这造成两个相似的图布局,例如图布局在由全局路径集合441的不同子集444、444’导出的图之间保持稳定。
图4b示意性地示出了分别由路径集合444和路径集合444'导出的图的布局446、446'的示例,其可以通过使用局部排名分配445、445'代替全局排名分配来获得。例如,路径集合444的局部排名分配445可以是A:2、B:3、C:1,例如A被分配了比C高的排名,因为A在路径中出现在C之后,并且B被分配了比A高的排名,因为B在路径中出现在A之后。相似地,路径集合444’的局部排名分配445’可以是A:1、B:2、C:2,例如B和C被分配了比A高的排名,因为它们在路径中出现在A之后。结果,节点“A”451、“B”452和“C”453的y坐标在所得布局446、446’中是不同的,因为它们基于不同的排名分配。具体地,当计算局部排名分配445’时,没有指示C应该被分配比A低的排名,例如以在基于相同的全局路径集合的不同图布局之间提高稳定性,因为在图布局中仅使用了局部信息。相反,全局排名分配442基于全局路径集合441,因此确信对布局443和布局443'使用一致的排名分配,从而提高稳定性并确保图布局443、443'更好地反映基础的全局路径集合441。
图布局设备110、111或210可以具有用户界面,该用户界面可以包括众所周知的元件,诸如一个或多个按钮、键盘、显示器、触摸屏等。该用户界面可以被布置用于适应用户交互以用于确定图布局,例如通过过滤全局路径集合。
通常,图布局设备110、111或210包括微处理器(未单独示出),该微处理器执行存储在设备110、111或210处的适当软件;例如该软件可能已经被下载和/或存储在对应的存储器中,例如诸如RAM等易失性存储器或诸如闪存等非易失性存储器(未单独示出)。备选地,图布局设备110、111或210可以全部或部分地以可编程逻辑实施,例如作为现场可编程门阵列(FPGA)。图布局设备110或210可以全部或部分地实施为所谓的专用集成电路(ASIC),即,针对其特定用途而定制的集成电路(IC)。例如,可以例如使用诸如Verilog、VHDL等硬件描述语言在CMOS中实施电路。
在一个实施例中,图布局设备110或111包括存储器电路和处理器电路。设备110或111可以包括附加电路,例如通信电路或存储电路。图布局设备可以包括排名电路、过滤电路、布局电路和绘制电路中的一个或多个。电路实施本文描述的对应单元。这些电路可以是处理器电路和存储电路,该处理器电路执行在存储电路中以电子方式表示的指令。这些电路也可以是FPGA、ASIC等。
处理器电路可以以分布式方式实施,例如作为多个子处理器电路。存储装置可以分布在多个分布式子存储装置上。存储器的一部分或全部可以是电子存储器、磁性存储器等。例如,存储器可以具有易失性和非易失性部分。存储器的一部分可以是只读的。
图8示意性地示出了图布局方法900的实施例的示例。图布局方法900被配置用于确定图的布局。例如,图布局方法900可以在图布局设备上执行。该图是由通过节点集合的路径集合导出的。图的节点被包括在节点集合中。路径集合是通过节点集合的全局路径集合的子集。布局包括图的每个节点的位置。图布局方法900包括:
-计算901全局排名分配,全局排名分配将排名分配给节点集合中的每个节点,计算全局排名分配包括:从全局路径集合迭代地选择911路径,并且基于所选择的路径来更新913全局排名分配,可选地检查912全局排名分配是否完成
-过滤902全局路径集合,以获得路径集合,
-基于全局排名分配来计算903图的布局,其中具有相等排名分配的图的节点被彼此相邻地放置,
-将图的布局存储904在存储器中。
如本领域技术人员将显而易见的,执行该方法的许多不同方式是可能的。例如,步骤的顺序可以改变,或者一些步骤可以并行执行。而且,在步骤之间可以插入其他方法步骤。所插入的步骤可以表示诸如本文描述的方法的改进,或者可以与该方法无关。例如,步骤901和步骤902可以至少部分地并行执行。而且,在开始下一步骤之前,给定步骤可能尚未完全完成。
可以使用软件来执行根据本发明的方法,该软件包括用于使处理器系统执行方法900的指令。软件可以仅包括由系统的特定子实体采取的那些步骤。该软件可以存储在合适的存储介质中,诸如硬盘、软盘、存储器、光盘等。该软件可以作为信号沿着有线、无线网络或使用数据网络(例如互联网)发送。可以使该软件可用于服务器上的下载和/或远程使用。可以使用比特流来执行根据本发明的方法,该比特流被布置为配置可编程逻辑(例如现场可编程门阵列(FPGA))以执行该方法。
要了解的是,本发明还扩展到适用于将本发明付诸实践的计算机程序,具体地,适用于载体上或载体中的计算机程序。该程序可以是源代码、目标代码、代码中间源和诸如部分编译形式等目标代码的形式,或者是适合用于实施根据本发明的方法的任何其他形式。关于计算机程序产品的实施例包括与所陈述的至少一种方法的每个处理步骤相对应的计算机可执行指令。这些指令可以被细分为子例程和/或被存储在可以静态地或动态地链接的一个或多个文件中。关于计算机程序产品的另一实施例包括与所陈述的至少一个系统和/或产品的每个部件相对应的计算机可执行指令。
图9a示出了根据实施例的具有包括计算机程序1020的可写部分1010的计算机可读介质1000,该计算机程序1020包括用于使处理器系统执行图布局方法的指令。计算机程序1020可以作为物理标志或借助于对计算机可读介质1000的磁化而实施在计算机可读介质1000上。然而,任何其他合适的实施例也是可以想到的。此外,要了解的是,尽管计算机可读介质1000在此处被示出为光盘,但是计算机可读介质1000可以是任何合适的计算机可读介质,诸如硬盘、固态存储器、闪存等,并且可以是不可记录的或可记录的。计算机程序1020包括用于使处理器系统执行所述图布局方法的指令。
图9b示出了根据实施例的处理器系统1140的示意性表示。该处理器系统包括一个或多个集成电路1110。在图7b中示意性地示出了一个或多个集成电路1110的架构。电路1110包括处理单元1120,例如CPU,以运行计算机程序部件以执行根据实施例的方法和/或实施其模块或单元。电路1110包括用于存储编程代码、数据等的存储器1122。存储器1122的一部分可以是只读的。电路1110可以包括通信元件1126,例如天线、连接器或两者等。电路1110可以包括专用集成电路1124,以执行该方法中定义的部分或全部处理。处理器1120、存储器1122、专用IC 1124和通信元件1126可以经由互连1130(例如总线)彼此连接。处理器系统1110可以被布置用于分别使用天线和/或连接器进行接触和/或无接触通信。
例如,在一个实施例中,图布局设备可以包括处理器电路和存储器电路,处理器被布置为执行存储在存储器电路中的软件。例如,处理器电路可以是英特尔酷睿i7处理器、ARM Cortex-R8等。在一个实施例中,处理器电路可以是ARM Cortex M0。存储器电路可以是ROM电路或者非易失性存储器,例如闪存。存储器电路可以是易失性存储器,例如SRAM存储器。在后一种情况下,设备可以包括非易失性软件接口,例如硬盘驱动程序、网络接口等,其被布置为提供软件。
应该注意的是,上面提及的实施例说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实施例。
在权利要求中,被放置在括号之间的任何附图标记都不应被解释为限制权利要求。动词‘包括’及其词形变化的使用不排除权利要求中所规定的元件或阶段之外的元件或阶段的存在。元件前面的冠词‘一’或‘一个’不排除存在多个这样的元件。本发明可以借助于包括若干不同元件的硬件以及借助于适当编程的计算机实施。在枚举了若干部件的设备权利要求中,这些部件中的若干部件可以由同一个硬件项实施。某些措施被记载在相互不同的从属权利要求中这一事实并不指示这些措施的组合不能被有利地使用。
在权利要求书中,括号中的引用指的是示例性实施例的附图中的附图标记或实施例的公式,因此增加了权利要求的可理解性。这些引用不应被解释为限制权利要求。

Claims (17)

1.一种用于确定图的布局的图布局设备(110),所述图由通过节点集合的路径集合导出,所述图的所述节点被包括在所述节点集合中,所述路径集合是通过所述节点集合的全局路径集合的子集,所述布局包括所述图的每个节点的位置,所述图布局设备包括:
-存储器,被配置为存储所述图,
-处理器,被配置为:
-计算全局排名分配,所述全局排名分配将排名分配给所述节点集合中的每个节点,计算所述全局排名分配包括:从所述全局路径集合迭代地选择路径,并且基于所选择的所述路径来更新所述全局排名分配,
-过滤所述全局路径集合,以获得所述路径集合,
-基于所述全局排名分配来计算所述图的所述布局,其中具有相等排名分配的所述图的节点被彼此相邻地放置,
-将所述图的所述布局存储在所述存储器中。
2.根据前述权利要求中任一项所述的图布局设备,其中所述图布局设备还被配置为:确定另一图的布局,所述另一图由通过所述节点集合的另一路径集合导出,所述另一路径集合是所述全局路径集合的子集,所述图的所述布局和所述另一图的所述布局基于相同的所述全局排名分配被计算。
3.根据前述权利要求中任一项所述的图布局设备,其中所述图布局设备还包括显示器,所述处理器还被配置为根据所述图的所述布局在所述显示器上绘制所述图。
4.根据权利要求2所述的图布局设备,其中所述图布局设备还包括显示器,所述图布局设备还被配置为在所述显示器上绘制动画,所述动画将所述图的绘制变形为所述另一图的绘制。
5.根据前述权利要求中任一项所述的图布局设备,其中计算所述图的所述布局包括:确定具有相等排名分配的节点集合,确定所述节点集合的定序,以及根据所述全局排名分配和所述定序来将位置分配给所述节点集合中的节点。
6.根据权利要求5所述的图布局设备,其中确定具有相等排名分配的所述节点集合的所述定序包括确定具有相等排名分配的全局图的节点集合的定序,并且从具有相等排名分配的所述全局图的所述节点集合的所述定序来计算具有相等排名分配的所述节点集合的所述定序,具有相等排名分配的所述节点集合是具有相等排名分配的所述全局图的所述节点集合的子集,并且所述全局图由所述全局路径集合导出。
7.根据权利要求6所述的图布局设备,其中确定具有相等排名分配的所述全局图的所述节点集合的所述定序包括确定针对每个排名的骨干节点,其中针对后续排名的骨干节点被所述全局图的边缘连通,将所述图的非骨干节点划分为连通分量,并且在针对所述骨干节点的相应排名的所述骨干节点之前或之后对连通分量的所有节点进行定序。
8.根据前述权利要求中任一项所述的图布局设备,其中所述图的节点被包括在沿着来自所述路径集合的路径的节点的并集中,所述图的边缘被包括在沿着来自所述路径集合的路径的边缘的并集中。
9.根据前述权利要求中任一项所述的图布局设备,其中来自所述全局路径集合的路径具有对应的权重,计算所述全局排名分配还包括通过权重对所述全局路径集合进行排序,基于来自所述全局路径集合的路径来迭代地更新所述全局排名分配是以经排序的所述全局路径集合的所述顺序来执行的。
10.根据权利要求9所述的图布局设备,其中来自所述全局路径集合的路径的权重表示所述路径的出现次数。
11.根据权利要求9所述的图布局设备,其中路径的所述权重由用户指定。
12.根据前述权利要求中任一项所述的图布局设备,其中基于所选择的所述路径更新所述全局排名分配包括更新在其中有区别的排名被分配给沿着所选择的所述路径的节点的所述全局排名分配。
13.根据权利要求12所述的图布局设备,其中,如果第一节点在沿着所选择的所述路径在第二节点与第三节点之间出现,其中没有排名被分配给所述第一节点并且排名被分配给所述第二节点和所述第三节点,则所述全局排名分配被更新,其中被分配给所述第二节点的所述排名与被分配给所述第三节点的所述排名之间的排名被分配给所述第一节点。
14.根据权利要求11所述的图布局设备,其中,如果沿着所选择的所述路径的节点在沿着所选择的所述路径的、排名被分配给的所有其他节点之前或之后,则所述全局排名分配被更新,其中小于或大于所述所有其他节点的所述排名的排名被分配给所述节点。
15.根据前述权利要求中任一项所述的图布局设备,其中节点表示活动,并且路径表示活动的时间序列。
16.一种用于确定图的布局的图布局方法(900),所述图由通过节点集合的路径集合导出,所述图的所述节点被包括在所述节点集合中,所述路径集合是通过所述节点集合的全局路径集合的子集,所述布局包括所述图的每个节点的位置,所述图布局方法包括:
-计算全局排名分配,所述全局排名分配将排名分配给所述节点集合中的每个节点,计算所述全局排名分配包括:从所述全局路径集合迭代地选择路径,并且基于所选择的所述路径来更新所述全局排名分配,
-过滤所述全局路径集合,以获得所述路径集合,
-基于所述全局排名分配来计算所述图的所述布局,其中具有相等排名分配的所述图的节点被彼此相邻地放置,
-将所述图的所述布局存储在所述存储器中。
17.一种计算机可读介质(1000),包括表示指令的瞬态或非瞬态数据,以使处理器系统执行根据权利要求16所述的方法。
CN201980046520.7A 2018-06-28 2019-06-07 稳定图布局确定 Pending CN112437919A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP18180380 2018-06-28
EP18180380.0 2018-06-28
PCT/EP2019/064925 WO2020001956A1 (en) 2018-06-28 2019-06-07 Stable graph layout determination

Publications (1)

Publication Number Publication Date
CN112437919A true CN112437919A (zh) 2021-03-02

Family

ID=62947917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980046520.7A Pending CN112437919A (zh) 2018-06-28 2019-06-07 稳定图布局确定

Country Status (5)

Country Link
US (1) US12013896B2 (zh)
EP (1) EP3814940A1 (zh)
JP (1) JP7377476B2 (zh)
CN (1) CN112437919A (zh)
WO (1) WO2020001956A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230053644A1 (en) * 2021-07-20 2023-02-23 AIble Inc. User Interface for Impact Analysis
CN115455890A (zh) * 2022-09-15 2022-12-09 深圳华芯盛软件科技有限公司 一种启发式行列定位的原理图布局方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953106A (en) * 1989-05-23 1990-08-28 At&T Bell Laboratories Technique for drawing directed graphs
WO2006091119A1 (en) * 2005-02-21 2006-08-31 Intel Corporation Method of stable incremental layout for a hierarchical graph representation
CN101176092A (zh) * 2003-03-28 2008-05-07 小利兰斯坦福大学理事会 在大型有向图中对节点进行排级的改进方法
US20110025692A1 (en) * 2009-07-28 2011-02-03 Amadeus S.A.S. Display of travel routes
US20130268533A1 (en) * 2012-04-04 2013-10-10 Google Inc. Graph-based search queries using web content metadata
US8577911B1 (en) * 2010-03-23 2013-11-05 Google Inc. Presenting search term refinements
CN105824883A (zh) * 2016-03-10 2016-08-03 中电海康集团有限公司 一种可动态扩展数据关联网络图的表示方法及系统
CN107357846A (zh) * 2017-06-26 2017-11-17 北京金堤科技有限公司 关系图谱的展示方法以及装置
US20170351406A1 (en) * 2016-06-07 2017-12-07 Palo Alto Research Center Incorporated Localized visual graph filters for complex graph queries

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201200158D0 (en) * 2012-01-05 2012-02-15 Rugerro Gramatica Dott Information network with linked information
US20140129420A1 (en) * 2012-11-08 2014-05-08 Mastercard International Incorporated Telecom social network analysis driven fraud prediction and credit scoring
US9439053B2 (en) * 2013-01-30 2016-09-06 Microsoft Technology Licensing, Llc Identifying subgraphs in transformed social network graphs
JP6028703B2 (ja) 2013-10-09 2016-11-16 新日鉄住金ソリューションズ株式会社 グラフ生成装置、グラフ生成方法及びグラフ生成プログラム
JP6168475B2 (ja) 2014-04-10 2017-07-26 新日鉄住金ソリューションズ株式会社 グラフ生成装置、グラフ生成方法及びグラフ生成プログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953106A (en) * 1989-05-23 1990-08-28 At&T Bell Laboratories Technique for drawing directed graphs
CN101176092A (zh) * 2003-03-28 2008-05-07 小利兰斯坦福大学理事会 在大型有向图中对节点进行排级的改进方法
WO2006091119A1 (en) * 2005-02-21 2006-08-31 Intel Corporation Method of stable incremental layout for a hierarchical graph representation
US20110025692A1 (en) * 2009-07-28 2011-02-03 Amadeus S.A.S. Display of travel routes
US8577911B1 (en) * 2010-03-23 2013-11-05 Google Inc. Presenting search term refinements
US20130268533A1 (en) * 2012-04-04 2013-10-10 Google Inc. Graph-based search queries using web content metadata
CN105824883A (zh) * 2016-03-10 2016-08-03 中电海康集团有限公司 一种可动态扩展数据关联网络图的表示方法及系统
US20170351406A1 (en) * 2016-06-07 2017-12-07 Palo Alto Research Center Incorporated Localized visual graph filters for complex graph queries
CN107357846A (zh) * 2017-06-26 2017-11-17 北京金堤科技有限公司 关系图谱的展示方法以及装置

Also Published As

Publication number Publication date
US20210326387A1 (en) 2021-10-21
US12013896B2 (en) 2024-06-18
JP7377476B2 (ja) 2023-11-10
WO2020001956A1 (en) 2020-01-02
JP2021529381A (ja) 2021-10-28
EP3814940A1 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
JP7413580B2 (ja) ニューラルネットワークを使用した集積回路フロアプランの生成
Tarjan et al. An O(n\log\logn)-time algorithm for triangulating a simple polygon
Liu et al. NCTU-GR 2.0: Multithreaded collision-aware global routing with bounded-length maze routing
Kopf et al. Automatic generation of destination maps
JP7495970B2 (ja) ルート計画計算デバイスを改良するためのデバイス及び方法
CN107564077B (zh) 一种绘制道路网的方法及装置
JP2019121137A (ja) 最適化装置および最適化装置の制御方法
JP2011215874A (ja) 配線設計支援方法、配線設計支援プログラム、及び配線設計支援装置
CN112437919A (zh) 稳定图布局确定
KR102198920B1 (ko) 온라인 학습을 이용한 객체 트래킹을 위한 방법 및 시스템
US8648861B2 (en) Two-dimensional vector fills using topological recipes
KR20170080315A (ko) 건물 객체에 대한 다축척 모델 기반의 지도 처리 방법
CN108959359A (zh) 一种统一资源定位符语义去重方法、装置、设备和介质
Utyamishev et al. Multiterminal pathfinding in practical VLSI systems with deep neural networks
CN105659292A (zh) 复杂断层网络拓扑的全局网格建立无断层序列
CN110781541B (zh) 一种家装设计图的区域合并方法及系统
CN111951059A (zh) 一种房地产估值方法、装置、终端以及可读存储介质
CN106920269A (zh) 图形处理方法和装置
Kulachenko et al. A matheuristic for the drilling rig routing problem
CN112884656A (zh) 一种包装盒平面展开图图像的印刷拼版方法及系统
RU2364940C1 (ru) Способ расстановки бергштрихов на оригинале рельефа, компьютерный способ распознавания на оригинале рельефа частей горизонталей, проходящих через области с малыми уклонами, и компьютерный способ распознавания минимальных контуров, составленных горизонталями и рамкой оригинала рельефа
Regnauld et al. Automated relief representation for visualisation of archaeological monuments and other anthropogenic forms
CN110188818A (zh) 热点区域聚类方法、装置及电子设备
Duque-Correa et al. Solving the Assignment of Customers to Trucks and Visit Days in a Periodic Routing Real-World Case
CN113436329B (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