CN104461496A - 一种与或图的层次化显示方法 - Google Patents

一种与或图的层次化显示方法 Download PDF

Info

Publication number
CN104461496A
CN104461496A CN201410605659.XA CN201410605659A CN104461496A CN 104461496 A CN104461496 A CN 104461496A CN 201410605659 A CN201410605659 A CN 201410605659A CN 104461496 A CN104461496 A CN 104461496A
Authority
CN
China
Prior art keywords
node
graph
nodes
child
tree
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.)
Granted
Application number
CN201410605659.XA
Other languages
English (en)
Other versions
CN104461496B (zh
Inventor
尹文生
尹强
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201410605659.XA priority Critical patent/CN104461496B/zh
Publication of CN104461496A publication Critical patent/CN104461496A/zh
Application granted granted Critical
Publication of CN104461496B publication Critical patent/CN104461496B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种与或图的层次化显示方法,包括:(1)创建与或图的起点和终点;(2)读入数据文件,根据四元组数据文件构建与或图中所有的模型节点和有向线段,形成与或图的内部模型;(3)初始化,将节点数据对象的搜索标志设置为未搜索;(4)对与或图模型进行宽度优先搜索并显示,从起点或根节点开始,一层一层向外搜索并显示每个与或图节点;(5)扩展处理,对静态关系图进行扩展处理,使之能动态显示与或图的所有节点。本发明方法可以用计算机系统中常用的树窗口来显示复杂多方案的与或图,通过增加虚节点使复杂与或图的表示更加精炼、清晰,不产生线的交叉,特别适合大规模复杂问题或方案的表示和优化求解。

Description

一种与或图的层次化显示方法
技术领域
本发明属于计算机图形化技术领域,更具体地,涉及一种与或图的层次化显示方法,用于将二维的与或图用计算机系统中常用的树状显示软件显示出来。
背景技术
对于复杂的工程问题,常常将问题分解成一些相互独立的小问题,然后对其分别求解。与或图是描述这种工程求解方法的强有力的工具,其特点是用父子关系联接问题及其分解子问题。从形式上看,全部的问题和子问题关系形成了一种层次结构,类似于一个有向无圈图。与有向无圈图不同的是,与或图中还包含了与或关系,因为问题的分解并不是只有一种方案,与或图可在一幅图上将多种方案同时表示出来。与或图对于复杂问题特别是多方案的求解具有较大的优势。例如,与或图对于装配序列的表示和规划具有重要意义,图1是Homem de Mello和Sanderson在1990年提出的表示某简单产品的装配序列关系的一个与或图案例图。
在与或图中,主要存在三种图形元件,第一种是节点,通常用一个空心或实心的小圆点或圆框表示,用于表示各种问题;第二种是边,通常用从起始节点到终止节点的有向线段或弧来表示,用于表示问题分解关系;第三种是连接若干条边的弧线,表示这些边之间存在与关系(如这些边没有弧线,则表示它们存在或关系)。因为与或图可以理解成由父子关系组成的表示多种方案的层次结构,所以可以将其理解成一棵特殊的树,一种组合树,即多棵树的组合。因为作为一棵树,每一个方案都是一个有向无圈图,所以与或图是多个有向无圈图的组合。
在图论中,常常以二维图形的方式将有向图用节点和有向线段或弧绘制出来。因为任何两个节点之间都可以存在连线,所以必须采用二维或更高维的图形来表示有向图,而用一维空间则无法清晰地表示一般有向图中各节点之间的关系,除非该有向图描述的仅是线性关系。有向无圈图是有向图的一种特殊情况,由于不存在回路,其二维的图形显示可以通过一定的调整而变得非常有层次感,甚至可以与时间维产生一定的关联,例如,项目施工网络图可以清晰地表现出每个施工任务必须在什么时间开工,什么时间结束等等。
与或图是多个有向无圈图的组合,其任务就是通过对多个有向无圈图进行分析得到最优或较优的结果,而这最优或较优的结果通常又是用一个有向无圈图表示的,所以绘制与或图应该与绘制有向无圈图具有一定的相似性。其绘制方法既能有效地表示有向图,又能轻易地绘制与或关系。
显而易见,传统的与或图绘制方法表现力非常强大。例如,图1所示的简单产品与或图可以充分表示很多装配方案,如果不限制每次零件组装的个数,可以表示所有的装配方案。为了强调它的工程实际意义,图1中的节点采用简略零件图表现,非常直观。在一般的与或图绘制中,通常采用更抽象的方法,即每个节点都采用小圆点或圆框等方式表达,仅仅在小圆点外或圆框内标注数字或符号,如图2所示。
在计算机应用系统中,如果将与或图采用同传统的与或图一样的表示方法在计算机屏幕上进行绘制,效果也将是非常好的,但在实现和操作方面存在一定的缺点,主要表现在以下几个方面:
1)系统开发要求高
虽然与或图的基本构型是树,但如何合理地在二维的计算机屏幕上绘制出来仍然是一个比较复杂的问题。虽然与或图中的图形元件非常少,但开发一个二维绘图系统来实现与或图的绘制却是比较困难的。当与或图的特别复杂、图形元件数量较多的时候,对系统的开发要求将更高。
2)图形布局困难
与或图从构型上看是一个树,但进行图形布局也不是很容易的。首先,作为树,要求具有父子关系的节点处在相邻的位置,这样就要求对节点在同一层面上进行左右移动。其次,因为包含与或关系,方案数目大,为了减少重复,常常共用相同的节点,所以不可避免会出现有向线段交叉的情况,如图1所示。为了减少线段的交叉,同时又能清晰表达与或图的意义,需要进行复杂的布局计算。一般来说,与或图绘制系统仅提供手工图形布局设计功能,或简单自动布局功能。手工绘制虽然可以提供比较完美的效果,但绘制的效率很低,而且也不能完全消除交叉线。
3)与或关系自动绘制不方便
在传统的与或图表示方法中,与或关系是通过在存在与关系的若干边上加一个弧线实现的。这种方法非常精炼,也容易理解,但是在计算机系统中却不容易实现自动绘制,因为在计算机中父子关系之间的连线通常是折线,在若干个折线间画弧线不容易分清与或关系。
4)整体感差
当有向图节点和有向线段的数目比较大时,整个与或图的幅面将变得很大,而计算机显示屏幕是有限的,这样就给使用带来困难。如果观察整幅图,则可能看不清图上的文字信息;如果查看局部图,则很难形成整体印象。
5)查找比较麻烦
同样,当与或图中的节点数很大时,虽然可以放大看清文字,但同时可见部分很小,寻找不在当前视图范围内的节点或有向线段时会比较困难。而缩小图面内容时,虽然可以快速地移动与或图,但必须通过放大才能确认需要查找的内容。
6)图形维护困难
在与或图的使用过程中,图本身拓扑结构可能发生改变。一般情况下,增加或删除一些节点或有向线段都可能造成图形布局的变化。显然,拓扑结构的变化会破坏图形布局的整齐、美观,甚至不能有效表达逻辑关系,所以当与或图发生变化时需要重新对其布局,以产生良好的效果。显然,对图形布局的改变实际上意味着系统必须重新进行布局运算,其运算量将是比较大的。
特别需要指出的是,无论是否采用计算机图形显示,当与或图中出现递归时,使用传统的方法来绘制与或图可能由于不能充分利用这种递归关系而增加许多工作。例如,图1所示的装配体只有4个,每次装配只有2个零部件参与,就会产生12个节点和29条边,如果组成产品的零部件数比较大,每次装配参与的零件数不受限制,则节点和边数将很大,这样在绘制与或图时将难以保证正确性。
为了克服传统的计算机与或图图形显示方法的缺陷,必须首先对与或图的显示方法进行一些修改,然后采用计算机系统中常用的树窗口对其进行显示,以便能更简便、快键、有效地使用与或图。
发明内容
为了降低现有的与或图计算机显示方法的开发难度,方便计算机用户对与或图的应用和维护,本发明提出一种新的与或图的层次化显示方法。该方法首先在与或图中包含与或两种关系的节点中插入一些节点,这些插入的节点之间都是或关系,每个插入的节点内部都表示一组与关系。然后对新构成的图按照有向无圈图进行显示,得到与或图所有节点的层次化显示。
为了解决上述技术问题,本发明提供了一种与或图的层次化显示方法,所述方法包括如下步骤:
(1)创建与或图的起点和终点;
(2)读入数据文件,根据四元组数据文件构建与或图中所有的模型节点和有向线段,形成与或图的内部模型;
(3)初始化,将节点数据对象的搜索标志设置为未搜索;
(4)对与或图模型进行宽度优先搜索并显示,从起点或根节点开始,一层一层向外搜索并显示每个与或图节点,包括如下子步骤:
(4.1)如果当前模型节点标志设置为未搜索,则进入(4.2),否则进入(4.3);
(4.2)获得当前模型节点所有的子模型节点,将其显示在树窗口当前节点对应的树节点的下面作为子节点。这些树窗口的子节点记录它们所对应的模型节点的指针,同时将当前模型节点的标志设置为已扩展,其值为对应树节点的句柄;
(4.3)取得下一个当前层的模型节点,重复(4.1)-(4.3),直到当前层全部模型节点都处理完毕;
(4.4)取得下一层的模型节点,重复(4.1)-(4.4),直到所有模型节点都处理完毕。
本发明的一个实施例中,所述步骤(2)具体包括:
在读入四元组数据时,如果G不为0,表示该条边的父节点下子节点存在与或关系,则除了创建或引用该条有向线段的父子节点外,还需要创建一个虚节点,该虚节点的父节点就是该条有向线段的父节点,而将该条有向线段的子节点加为该虚节点的子节点。相同的G只有一个虚节点,多个不同的G则说明有多个或关系,它们都是父节点的子节点,其关系是或关系。如果G为0,或者没有数字,则说明当前父节点下各个子节点之间是与关系,可以直接连接父子关系,而不需创建虚节点;
数据文件读入后,再将这些数据与起点和终点连接起来:
连接起点的方法是,对所有的节点进行搜索,如果一个节点不存在入边,则认为该节点与起点相连,将该节点与起点连接起来:
连接终点的方法是,对所有的节点进行搜索,如果一个节点不存在出边,则认为该节点与终点相连,将该节点与终点连接起来;
其中所述四元组来描述与或图中的任一条有向线段E:E=(Nin,R,Nout,G),这里,Nin表示E的起点;Nout表示E的终点;R表示起点Nin和终点Nout之间的关系;G表示该有向线段的所属组号。
本发明的一个实施例中,所述方法还包括:
(5)扩展处理,对静态关系图进行扩展处理,使之能动态显示与或图的所有节点,即显示所有的树节点的父节点和子节点;所述扩展处理包括父节点显示操作或子节点显示操作,其中:
(5.1)父节点显示操作:用户需要观察某一个节点的所有父节点时,将鼠标移到该节点的树节点位置,然后单击鼠标右键弹出一个对话框,显示当前树节点的所有父节点;
(5.2)子节点显示操作:当用户需要观察某一个节点的所有子节点时,将鼠标移到该节点的树节点位置,然后双击鼠标左键,显示当前节点所有的子节点,同时将原来在扩展节点位置显示的所有子节点全部删除,即将所有的子节点从原来显示的位置都移到当前位置来。
本发明所带来的有益效果是,所提出的方法可以用计算机系统中常用的树窗口来显示复杂多方案的与或图,可以降低计算机与或图开发难度,减少了与或图表示的图形元件,通过增加虚节点使复杂与或图的表示更加精炼、清晰,不产生线的交叉,对问题的描述和理解有较强的整体感,同时可以提高与或图的操作效率和查找效率,特别适合大规模复杂问题或方案的表示和优化求解。
附图说明
图1是一个简单产品装配的与或图;
图2是一个与或图典型绘制示例;
图3是对应于图1的比较抽象的与或图,并且删除图1中描述与或关系弧线;
图4是本发明中宽度优先搜索流程图;
图5是对应于图1、图3的与或图的层次化显示图;
图6是显示图5中当前树节点的父节点图;
图7是显示图5中当前树节点双击后的子节点显示图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明中,假定与或图是简单图,而且图本身是正确的,不需要对错误的与或图进行验证,即本发明假定需要绘制的与或图是对具体应用的正确反映,每一个节点、有向线段和与或关系都是正确的。事实上,采用本发明的方法也容易保证与或图的正确性,特别是当节点数比较多时,越能显示其优势。
本发明假定与或图的输入采用数据文件定义,即用以下四元组来描述与或图中的任一条有向线段E:
E=(Nin,R,Nout,G)
这里,Nin表示E的起点;Nout表示E的终点;R表示起点Nin和终点Nout之间的关系;G表示该有向线段的所属组号。
与一般的有向图不同的是,这里增加了有向线段的所属组号。本发明认为:如果父节点相同,则具有相同组号的各条边属于同一组,即它们之间是与关系,而不同组之间是或关系,这样就有效地在有向图中表示与或图。同时,这种描述方式也降低了复杂与或图的构建难度,用户可以先用该四元组对具体应用进行描述,然后由计算机自动产生正确的与或图,而不必先由用户对具体应用进行与或图绘制,然后再传给计算机进行绘制。因此,这种方式可以有效地保证复杂与或图的正确性。
本发明增加分组的另一个好处是,可以使与或图的显示图形元件由节点、边和与或关系三种降低为节点和边两种,这样就可以用计算机应用系统中常用的树窗口表示与或图。
本发明对与或图的绘制也进行了一些修改,如图3所示,主要表现在两个方面。一个方面是将所有的连线均改成折线,同一组子节点之间的折线存在部分重合,而不同组子节点之间的折线不能出现重合,这样便于用树状结构加以描述。另一个方面是采用树状结构图形进行与或图绘制,并且限定一个节点只展开子节点一次,这样就可以完全避免线段交叉的出现。例如,按照普通方法绘制时,图1所示的简单产品装配与或图无法避免出现线段的交叉,但在采用本发明与或图绘制方法绘制时,则可轻易保证不出现交叉线段,如图3所示。同时,对具有不同子节点数的节点进行分类,尽可能使用不同的图形加以区分,使与或图的表达更加清晰。例如图3就根据子节点的组数进行分类,有4组子节点的用圆角框表示,有3组子节点的用椭圆表示,有2组子节点的用五边形表示,没有子节点的用矩形表示。
需要说明的是,由于与或图模型和计算机树窗口都使用节点进行描述,为了有效地加以区分,下面的论述中在需要区分时称与或图中的节点为模型节点,而称它在树窗口中显示的节点为树节点。
本发明的主要步骤如下:
(1)创建与或图的起点和终点
与或图形式上像一棵树,所以一般存在一个根节点,即存在一个起点。但考虑到应用的广泛性,所以也可以人为设置一个起点。同样,每个叶节点也自然是一个终点,也可以人为设置一个终点,所有的叶节点都与这个终点相连。在与或图中设置起点和终点不影响与或图的正确性,也不影响原来的与或图模型,但对于与或图的理解具有好处,例如,任何一个叶节点都与终点相连有助于用户认识该节点的意义。
(2)读入数据文件
根据四元组数据文件构建与或图中所有的模型节点和有向线段,形成与或图的内部模型。
在读入四元组数据时,如果G不为0,则表示该条边的父节点下子节点存在与或关系,则除了创建或引用该条有向线段的父子节点外,还需要创建一个虚节点,该虚节点的父节点就是该条有向线段的父节点,而将该条有向线段的子节点加为该虚节点的子节点。相同的G只有一个虚节点,多个不同的G则说明有多个或关系,它们都是父节点的子节点,其关系是或关系。如果G为0,或者没有数字,则说明当前父节点下各个子节点之间是与关系,可以直接连接父子关系,而不需创建虚节点。
数据文件读入后,再将这些数据与起点和终点连接起来。连接起点的方法是,对所有的节点进行搜索,如果一个节点不存在入边,则认为该节点与起点相连,将该节点与起点连接起来。同样,连接终点的方法是,对所有的节点进行搜索,如果一个节点不存在出边,则认为该节点与终点相连,将该节点与终点连接起来。
(3)初始化
主要将节点数据对象的搜索标志设置为未搜索。
(4)对与或图模型进行宽度优先搜索并显示
虽然与或图是多棵树的组合,但由于引入了虚节点而成为了一棵树,所以可以采用宽度优先搜索方法进行与或图的层次化显示操作,即从起点或根节点开始,一层一层向外搜索并显示每个与或图节点。对与或图进行宽度优先搜索过程可以得到一个静态关系图。在静态关系图中,被显示的与或图包含三类节点:有子节点但不展开节点、虚节点和其他节点。在树窗口中,有子节点但不展开的图像标志为三角形(“▲”或“△”),虚节点的图像标志为五角星(“★”或“☆”),其他节点的图像标志则为矩形(“■”或“□”)。
对与或图进行宽度搜索并显示过程是,从起点开始对每个节点做如下工作:
(4.1)如果当前模型节点标志设置为未搜索,则进入(4.2),否则进入(4.3);
(4.2)获得当前模型节点所有的子模型节点,将其显示在树窗口当前节点对应的树节点的下面作为子节点。这些树窗口的子节点记录它们所对应的模型节点的指针,同时将当前模型节点的标志设置为已扩展,其值为对应树节点的句柄;
(4.3)取得下一个当前层的模型节点,重复(4.1)-(4.3),直到当前层全部模型节点都处理完毕;
(4.4)取得下一层的模型节点,重复(4.1)-(4.4),直到所有模型节点都处理完毕。
(5)扩展处理
第(4)步完成后,就可以在树窗口以层次化的形式显示与或图。从形式上看,这种树窗口显示的与或图不完整,虽然所有的与或图节点都表现出来,但是许多边即许多父子关系没有表现,需要用户在查看树窗口时进行操作才能表现出来。
在层次化的树窗口中查看的关系主要有两种:父节点显示操作和子节点显示操作。这是因为与或图中一个节点可能不止一个父节点,这样在树窗口查找一个节点的父节点时可能漏掉不在当前节点上方的父节点,也可能造成一个节点虽然有子节点,但在该节点下没有显示出来的情况。为了能显示所有的树节点的父节点和子节点,需要对静态关系图进行扩展处理,使之能动态显示与或图。其方法是:
(5.1)当计算机用户需要观察某一个节点的所有父节点时,将鼠标移到该节点的树节点位置,然后单击鼠标右键弹出一个对话框,显示当前树节点的所有父节点。该扩展处理称为父节点显示操作。
(5.2)当计算机用户需要观察某一个节点的所有子节点时,将鼠标移到该节点的树节点位置,然后双击鼠标左键,显示当前节点所有的子节点,同时将原来在扩展节点位置显示的所有子节点全部删除,即将所有的子节点从原来显示的位置都移到当前位置来。该扩展处理称为子节点显示操作。
通过扩展处理,本发明可以动态地查看和查找任意与或图中的节点及其关系,但是不增加与或图显示中的节点和有向线段数量。本发明对于与或图的显示是非常有利的,因为如图1所示,即使是较小规模的与或图,其组合变化数也是相当大的。
下面以计算机实际开发过程为例,说明本发明与或图的层次化显示方法的实现过程。本发明采用VC++6.0系统进行开发,以图1~图7所示的附图作为说明对象,根据本发明所揭示的与或图的层次化显示的流程图和实现方案说明如下:
步骤1:创建与或图的起点和终点
定义节点类为CNode,则CNode主要数据结构如下:
CString m_Name;//节点的名称
CEdge*m_In;//所有的入度链
CEdge*m_Out;//所有的出度链
int m_Flag;//处理标志
CNode*m_Next;//指向下一个节点
定义有向线段类为CEdge,则CEdge的主要数据结构如下:
CString m_Relation;//具体的先后顺序关系
CNode*m_Node;//被联接的节点
CEdge*m_Next;//下一个有向线段
int m_Flag;//处理标志
创建起点和终点节点变量,其成员变量m_Name分别设为“起点”和“终点”,其他所有的数据项均为空,标志为0。
步骤2:读入数据文件
从数据文件中读入描述与或图的有向线段数据,生成相应的CNode和CEdge对象,并将CEdge对象放入对应的CNode对象成员链m_In、m_Out中,形成与或图的数据模型。
然后将这些数据对象与起点和终点相连。如果一个CNode对象的m_In成员为空,则将其连接到起点上,如果一个CNode对象的m_Out成员为空,则将其连接到终点上。
因为在与或图中起点只有一个,所以在步骤1和步骤2中,与或图的起点也可以不另外创建,直接使用与或图的起点,该起点就是唯一的一个m_In成员为空的CNode对象。
步骤3:初始化
搜索全部CNode对象,并将其成员变量m_Flag设置为未搜索。
步骤4:对与或图模型进行宽度优先搜索并显示
从起点或与或图的根节点开始,按照宽度优先顺序一层一层向外搜索并显示每个与或图节点。如果当前节点已经展开,则不再展开,并将该节点的图像标志设为三角形(“▲”或“△”);如果当前节点是虚节点,则将该节点的图像标志设为五角星(“★”或“☆”);其他节点的图像标志则设为矩形(“■”或“□”)。
每个树窗口的节点记录对应的与或图节点的指针,而在与或图节点的成员变量m_Flag中记录一个树节点,该节点为展开树节点。
其过程如图4所示。各步骤说明如下:
步骤401:开始。
步骤402:将起点加入到当前层中。以下的搜索针对当前层中的节点。
步骤403:检查当前层中是否存在没有进行处理的节点。
步骤404:如果当前层中还存在没有处理的节点,则取出一个节点。
步骤405:判断该节点成员变量m_Flag是否为未搜索状态。
步骤406:如果该节点成员变量m_Flag是未搜索状态,表示它的子节点没有展开,则在树窗口中显示它的子节点,同时在这些树窗口的子节点中记录对应的节点指针,最后将当前节点对应的树节点句柄记录在当前节点的成员变量m_Flag中。
步骤407:将当前节点的所有子节点加入到下一层中。
步骤409:如果当前层所有的节点都已处理,即不存在未处理节点,则检查是否到达最后一层。
步骤408:如果没有到达最后一层,则将下一层设置为当前层,转到步骤403,重复以上过程。
步骤410:如果达到最后一层,说明全部节点都已遍历,则退出当前过程。
本步骤完成后,图1、图3的数据将得到图5的显示结果。
步骤5:扩展处理
扩展处理主要包括两个操作:针对当前节点的父节点显示操作和子节点显示操作。
对于父节点显示操作,在对右键的消息响应程序里,可以用一个循环语句获得当前节点所有入边的起点,然后将其显示在一个对话框中,如图6所示。
对于子节点显示操作,首先构造一个双击响应程序,在该段程序里,找到当前树节点的展开树节点,如果展开树节点就是本身,则退出当前程序,否则将展开树节点下所有的子节点移动到当前树节点下面作为子节点。移动过程中复制所有的信息,同时将当前模型节点成员变量m_Flag设置为当前树节点。例如,在图5中双击图形标志为“▲”或“△”的树节点“7”(图5中虚圆框所示),则将该节点对应的展开节点下的全部子节点内容移动到当前节点下作为其子节点,如图7虚圆框所示,同时对应的树节点的图形标志(“■或□”和“▲或△”)也互换。
本具体实施步骤适合一般的计算机系统关于与或图的显示。对本领域的普通技术人员而言,本发明所涉及的数据结构和算法可以在一般的计算机系统中实现,举例而言,可以使用VC++、Java等任何高级程序设计语言加以实现。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种与或图的层次化显示方法,其特征在于,所述方法包括如下步骤:
(1)创建与或图的起点和终点;
(2)读入数据文件,根据四元组数据文件构建与或图中所有的模型节点和有向线段,形成与或图的内部模型;
(3)初始化,将节点数据对象的搜索标志设置为未搜索;
(4)对与或图模型进行宽度优先搜索并显示,从起点或根节点开始,一层一层向外搜索并显示每个与或图节点,包括如下子步骤:
(4.1)如果当前模型节点标志设置为未搜索,则进入(4.2),否则进入(4.3);
(4.2)获得当前模型节点所有的子模型节点,将其显示在树窗口当前节点对应的树节点的下面作为子节点。这些树窗口的子节点记录它们所对应的模型节点的指针,同时将当前模型节点的标志设置为已扩展,其值为对应树节点的句柄;
(4.3)取得下一个当前层的模型节点,重复重复(4.1)-(4.3),直到当前层全部模型节点都处理完毕;
(4.4)取得下一层的模型节点,重复(4.1)-(4.4),直到所有模型节点都处理完毕。
2.如权利要求1所述的方法,其特征在于,所述步骤(2)具体包括:
在读入四元组数据时,如果G不为0,表示该条边的父节点下子节点存在与或关系,则除了创建或引用该条有向线段的父子节点外,还需要创建一个虚节点,该虚节点的父节点就是该条有向线段的父节点,而将该条有向线段的子节点加为该虚节点的子节点。相同的G只有一个虚节点,多个不同的G则说明有多个或关系,它们都是父节点的子节点,其关系是或关系。如果G为0,或者没有数字,则说明当前父节点下各个子节点之间是与关系,可以直接连接父子关系,而不需创建虚节点;
数据文件读入后,再将这些数据与起点和终点连接起来:
连接起点的方法是,对所有的节点进行搜索,如果一个节点不存在入边,则认为该节点与起点相连,将该节点与起点连接起来:
连接终点的方法是,对所有的节点进行搜索,如果一个节点不存在出边,则认为该节点与终点相连,将该节点与终点连接起来;
其中所述四元组来描述与或图中的任一条有向线段E:E=(Nin,R,Nout,G),这里,Nin表示E的起点;Nout表示E的终点;R表示起点Nin和终点Nout之间的关系;G表示该有向线段的所属组号。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
(5)扩展处理,对静态关系图进行扩展处理,使之能动态显示与或图的所有节点,即显示所有的树节点的父节点和子节点;所述扩展处理包括父节点显示操作或子节点显示操作,其中:
(5.1)父节点显示操作:用户需要观察某一个节点的所有父节点时,将鼠标移到该节点的树节点位置,然后单击鼠标右键弹出一个对话框,显示当前树节点的所有父节点;
(5.2)子节点显示操作:当用户需要观察某一个节点的所有子节点时,将鼠标移到该节点的树节点位置,然后双击鼠标左键,显示当前节点所有的子节点,同时将原来在扩展节点位置显示的所有子节点全部删除,即将所有的子节点从原来显示的位置都移到当前位置来。
CN201410605659.XA 2014-10-30 2014-10-30 一种与或图的层次化显示方法 Expired - Fee Related CN104461496B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410605659.XA CN104461496B (zh) 2014-10-30 2014-10-30 一种与或图的层次化显示方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410605659.XA CN104461496B (zh) 2014-10-30 2014-10-30 一种与或图的层次化显示方法

Publications (2)

Publication Number Publication Date
CN104461496A true CN104461496A (zh) 2015-03-25
CN104461496B CN104461496B (zh) 2017-09-29

Family

ID=52907608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410605659.XA Expired - Fee Related CN104461496B (zh) 2014-10-30 2014-10-30 一种与或图的层次化显示方法

Country Status (1)

Country Link
CN (1) CN104461496B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117404A (zh) * 2015-07-17 2015-12-02 南京大学 基于图表类型和数据特征场景下的图表显示缺陷优化方法
CN108319991A (zh) * 2017-01-16 2018-07-24 航天信息股份有限公司 一种节点工程布线图确定方法及装置
CN111090651A (zh) * 2019-12-18 2020-05-01 深圳前海微众银行股份有限公司 数据源的处理方法、装置、设备及可读存储介质
CN111383505A (zh) * 2020-03-04 2020-07-07 南京大学 一种基于笔交互的电路教学系统及方法
CN112306616A (zh) * 2020-11-23 2021-02-02 北京百家科技集团有限公司 一种加载显示处理方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101408850A (zh) * 2008-11-27 2009-04-15 中国人民解放军信息工程大学 任务流计算模型
US20090292685A1 (en) * 2008-05-22 2009-11-26 Microsoft Corporation Video search re-ranking via multi-graph propagation
CN102129494A (zh) * 2011-03-04 2011-07-20 华中科技大学 基于工程联接关系的产品装配表示方法
CN102930752A (zh) * 2012-09-21 2013-02-13 浙江大学 基于有限状态机的虚拟样机拆装序列模型的实训平台
CN103677950A (zh) * 2013-11-29 2014-03-26 北京航空航天大学 一种基于与或图的视频事件处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292685A1 (en) * 2008-05-22 2009-11-26 Microsoft Corporation Video search re-ranking via multi-graph propagation
CN101408850A (zh) * 2008-11-27 2009-04-15 中国人民解放军信息工程大学 任务流计算模型
CN102129494A (zh) * 2011-03-04 2011-07-20 华中科技大学 基于工程联接关系的产品装配表示方法
CN102930752A (zh) * 2012-09-21 2013-02-13 浙江大学 基于有限状态机的虚拟样机拆装序列模型的实训平台
CN103677950A (zh) * 2013-11-29 2014-03-26 北京航空航天大学 一种基于与或图的视频事件处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
梁勇强: "生成装配与或图的直接算法", 《计算机集成制造系统》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117404A (zh) * 2015-07-17 2015-12-02 南京大学 基于图表类型和数据特征场景下的图表显示缺陷优化方法
CN105117404B (zh) * 2015-07-17 2018-12-21 南京大学 基于图表类型和数据特征场景下的图表显示缺陷优化方法
CN108319991A (zh) * 2017-01-16 2018-07-24 航天信息股份有限公司 一种节点工程布线图确定方法及装置
CN111090651A (zh) * 2019-12-18 2020-05-01 深圳前海微众银行股份有限公司 数据源的处理方法、装置、设备及可读存储介质
CN111090651B (zh) * 2019-12-18 2024-03-29 深圳前海微众银行股份有限公司 数据源的处理方法、装置、设备及可读存储介质
CN111383505A (zh) * 2020-03-04 2020-07-07 南京大学 一种基于笔交互的电路教学系统及方法
CN111383505B (zh) * 2020-03-04 2021-11-09 南京大学 一种基于笔交互的电路教学系统及方法
CN112306616A (zh) * 2020-11-23 2021-02-02 北京百家科技集团有限公司 一种加载显示处理方法、装置、计算机设备和存储介质
CN112306616B (zh) * 2020-11-23 2023-09-29 北京百家科技集团有限公司 一种加载显示处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN104461496B (zh) 2017-09-29

Similar Documents

Publication Publication Date Title
Heer et al. Vizster: Visualizing online social networks
CN100587666C (zh) 模型变换中分析和呈现冲突以及自动协调模型变换的方法和系统
CN104461496A (zh) 一种与或图的层次化显示方法
US20050007383A1 (en) System and method of visual grouping of elements in a diagram
CN102135873A (zh) 一种创建用户界面的方法和装置
Pena et al. Performance evaluation of software virtual private networks (VPN)
Feng et al. Gallery dc: Auto-created gui component gallery for design search and knowledge discovery
CN111367514A (zh) 页面卡片的开发方法和装置、计算设备和存储介质
Dähler et al. A graphical tool for the design and prototyping of distributed systems
Rodgers et al. A graph-rewriting visual language for database programming
US6973642B2 (en) Multi-dimensional programming device and multi-dimensional programming method
CN114217794A (zh) 页面设计方法、客户端设备、可读介质及程序产品
Chai Construction and implementation of computer aided design system for art graphics
McFarland Dreamweaver CS6: The Missing Manual
Chau Vue. js 2 Web Development Projects: Learn Vue. js by building 6 web apps
CN104375829B (zh) 一种有向无圈图的层次化显示方法
US20200394152A1 (en) Digital design application plugin for content updates and delivery
CN104461497A (zh) 一种无向图或有向有圈图的层次化显示方法
Milovanovic et al. Python Data Visualization Cookbook
Cyre et al. Knowledge visualization from conceptual structures
Luce et al. A visual programming environment for Turing machines
Bolognesi et al. The definition of a graphical G-LOTOS editor using the meta-tool LOGGIE
Marchetta A Web-Based Application for Computer-Aided Design of Relational Databases
CA2118358C (en) Method for mapping between object-oriented models and relational models, or between two object models
Mishra et al. Non-Deterministic and Polynomial Time Problem Simulator

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170929

Termination date: 20211030