一种划分逻辑节点等级的方法及装置与流程

文档序号:14363765阅读:312来源:国知局
一种划分逻辑节点等级的方法及装置与流程
本发明涉及数字化领域,尤其涉及一种划分逻辑节点等级的方法及装置。
背景技术
:随着互联网和数字化技术的快速发展,社会已经进入了智能化时代,各智能应用或智能服务需要将复杂的、变化万千的现实世界进行数字化,特别是随着大数据时代的到来,数据量正以史无前例的速度在增长,这种需要将现实世界进行虚拟化和抽象化的需求就越来越大。目前,没有一种简便、高效的对现实事件抽象为逻辑节点后划分等级的方法。为了满足上述智能化快速发展的业务需要,应该实现一种划分逻辑节点等级的简便、高效的方法,以满足逻辑布图或逻辑节点应用的实际需求。技术实现要素:为此,本发明为了解决上述缺陷之一。因而,本发明提供一种划分逻辑节点等级的方法及装置,通过计算节点的入度设定初始节点,并根据节点的逻辑关系进行深度遍历初始节点,进而依次设定遍历中各节点的等级,还要循环遍历设定了的节点等级进行优化,从而清晰展现各逻辑节点的内在联系,从而实现一种简便、高效的划分逻辑节点等级的方法,满足逻辑布图或逻辑节点应用的实际需求。本发明一个实施例提供一种划分逻辑节点等级的方法,该方法包括以下步骤:获取节点和节点间的逻辑关系;计算节点的入度并设定初始节点;按照节点逻辑关系深度遍历初始节点,并依次设定遍历中各节点的等级;优化节点的等级。优选地,所述节点的信息至少包含:节点的名称、子节点的列表、父节点的列表、出度、入度、层次。所述节点的逻辑关系包括:用连线来描述节点间的逻辑关系;所述连线包括节点的起始节点和结束节点。优选地,所述设定初始节点包括:根据节点的父节点个数来计算各节点的入度;将入度值为0的节点设定为初始节点。所述按照节点逻辑关系深度遍历初始节点,依次设定遍历中各节点的等级,该步骤具体为:依次遍历各初始节点,并将初始节点level值设定为1;深度遍历各初始节点的子节点,并循环遍历其他各分支节点;根据当前子节点的父节点的等级来计算当前节点的level值;判断当前节点己设定的等级值是否比level值小,如果是,更新当前节点的等级值。优选地,所述优化节点的等级包括以下步骤:依次遍历各初始节点,获取初始节点的最低等级子节点的值;计算当前初始节点和该子节点的等级差,如果等级差大于1,那么将当前初始节点的等级更新为该子节点等级值减1的等级值。本发明另一个实施例提供一种划分逻辑节点等级的装置,该装置包括:节点信息单元,用以获取节点和节点间的逻辑关系信息;初始节点设定单元,用以计算节点的入度,并设定初始节点;节点遍历单元,用以按照节点逻辑关系深度遍历初始节点,并依次设定遍历中各节点的等级;节点优化单元,用以优化节点的等级。优选地,所述初始节点设定单元包含节点的入度单元,所述节点的入度单元根据节点的父节点个数来计算节点的入度;所述初始节点设定单元获取节点的入度单元中各节点的入度值,将入度值为0的节点设定为初始节点。所述节点遍历单元获取初始节点设定单元中各初始节点的信息,并将初始节点的level值设定为1;所述节点遍历单元采用深度遍历各初始节点并循环遍历其他各分支节点的方法,依次设定各节点的等级。所述节点优化单元获取初始节点的最低等级子节点的值,并计算当前初始节点和该子节点的等级差,如果等级差大于1,那么将当前初始节点的等级更新为该子节点等级值减1的等级值。本发明提供一种划分逻辑节点等级的方法及装置,通过计算节点的入度设定初始节点,并根据节点的逻辑关系进行深度遍历初始节点,进而依次设定遍历中各节点的等级,还要循环遍历设定了的节点等级进行优化,从而清晰展现各逻辑节点的内在联系,从而实现一种简便、高效的划分逻辑节点等级的方法,满足逻辑布图或逻辑节点应用的实际需求。应当理解,以上总体说明和以下详细说明都是说明性和实例性的,旨在提供对所要求的本发明的进一步说明。附图说明图1是本发明实施例实现的一种划分逻辑节点等级的方法的流程示意图。图2是本发明实施例中描述了优化初始节点等级的具体流程示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。本发明实施例提供一种划分逻辑节点等级的方法及装置,通过计算节点的入度设定初始节点,并根据节点的逻辑关系进行深度遍历初始节点,进而依次设定遍历中各节点的等级,还要循环遍历设定了的节点等级进行优化,从而清晰展现各逻辑节点的内在联系,从而实现一种简便、高效的划分逻辑节点等级的方法,满足逻辑布图或逻辑节点应用的实际需求。如图1所示,是本发明一个实施例实现的一种划分逻辑节点等级的方法的流程示意图,具体包括以下详细步骤:步骤S110:获取节点和节点间的逻辑关系。首先,本发明给出以下定义:逻辑关系:指事件(抽象为节点)间建立的带有顺序性、业务逻辑性的关联关系。例如:一个逻辑关系A→B,表明事件A和B关联,且只有A事件发生,B事件才有可能发生。逻辑节点:(Node):每一个事件,我们都把它抽象为一个节点。当节点间包含逻辑关系,我们称这样的节点叫逻辑节点。每个节点里都包含以下信息:节点的名称(NodeName)、子节点的列表(List<Node>outNodes)、父节点的列表(List<Node>inNodes)、出度(outNum)、入度(inNum)、层次(Level)。子节点:当前节点的下一个逻辑节点(outNode);父节点:当前节点的前一个逻辑节点(inNode);入度:一个逻辑节点的父节点的个数;初始节点:入度值为0的逻辑节点是初始节点。连线(Link):描述两个节点间的逻辑关系,每条连线里包含它的初始节点(startNode)和结束节点(endNode)。下面给出一个例子来描述上面定义:例1:一组逻辑关系{A→D,A→E,B→E,B→F→B→H,C→G,D→G,D→H,E→H},抽象后,我们得到8个节点{A、B、C、D、E、F、G、H}和9条连线{(A,D)、(A,E)、(B,F)、(B,E)、(B,H)、(C,G)、(D,G)、(D,H)、(E,H)}。等级(Level):一个逻辑节点在所给逻辑关系中的级别,它包含了这个逻辑节点在逻辑关系中的顺序特性。等级越低的逻辑节点在逻辑关系中,代表越先发生的事件,往往是前驱事件。深度优先遍历:是数据遍历的基本方法之一,在本方法中指按照逻辑关系所蕴含的顺序,从逻辑的初始节点到结束节点遍历的方法,并且,尽可能遍历到没有子节点的逻辑节点为止。并且,不同于其他深度遍历方法,我们的深度优先遍历,会重复遍历节点。步骤S120:计算节点的入度并设定初始节点。所以,在给定一组逻辑关系,本发明提取每个事件元素作为一个节点,通过分析己知的逻辑关系,给这些逻辑节点划分等级,设置等级值(level)。设定初始节点包括以下步骤:步骤S121:根据节点的父节点个数来计算各节点的入度;根据入度的定义,如例1中各个逻辑节点的入度的值见下表1所示:入度节点0A、B、C1D、F2E、G3H表1各个逻辑节点的入度步骤S122:将入度值为0的节点设定为初始节点。根据表1,我们可以定位,初始节点是A、B、C节点。步骤S130:按照节点逻辑关系深度遍历初始节点,并依次设定遍历中各节点的等级。当我们定位了逻辑关系中所有的初始节点,我们依次对每个初始节点进行深度优先遍历,在这个遍历过程中,我们要依次设置各个节点的等级。因此,遍历各分支节点是循环进行的,每次遍历一个节点,都要对其的等级进行设定。在深度遍历中,我们遵循以下三个原则:第一:初始逻辑节点的等级是1。第二:依次遍历初始节点,沿着其连线深度遍历,每个当前逻辑节点的等级等于父节点的等级加1。第三:当一个节点有不止一个父节点的时候,它的等级由等级最高的那个父节点决定。在本发明实施例中按照节点逻辑关系深度遍历初始节点,并依次设定遍历中各节点的等级,具体包括以下步骤:步骤S131:依次遍历各初始节点,并将初始节点level值设定为1。如例1所示的逻辑节点,经过步骤S110和S120后知道初始节点为:A、B、C,那么设定这三个初始节点的level值为1。步骤S132:深度遍历各初始节点的子节点,并循环遍历其他各分支节点。那么,按照深度遍历。初始点A下面的遍历,依次通过的连线为(A,D)、(D,G)、(D,H)、(A,E)、(E,H),因此遍历节点顺序为A→D→G→H→E→H,同理,B的遍历节点顺序为B→E→H→H→F,C的遍历节点顺序为C→G。步骤S133:根据当前子节点的父节点的等级来计算当前节点的level值。其中,节点H有三个父节点B、D、E,因此它的等级由等级较高的D和E决定,为3。步骤S134:判断当前节点已设定的等级值是否比level值小,如果是,更新当前节点的等级值。例如例1中,依次遍历A、B、C三个初始逻辑节点,依据上面的遍历和等级定义原则,各节点的等级如下表2所示:等级节点1A、B、C2D、E、F3G、H表2深度遍历后的逻辑节点等级步骤S140:优化节点的等级。如例1中,我们注意到初始节点C,有且仅有一个子节点G;即,逻辑节点C只和一个逻辑节点G在逻辑上具有关联性,它们是息息相关的。然而,在深度遍历计算后得到表2中,节点C和G的等级差异为2,无法正确体现逻辑节点间紧密相关的关系。对这类情况,本步骤需要对节点的等级进行了优化。如图2所示是本发明实施例中描述了优化初始节点的等级的具体流程示意图,具体包括以下步骤:步骤S141:依次遍历各初始节点,获取初始节点的最低等级子节点的值。根据例1,经过遍历各初始节点,可以得出A的最低等级子节点的值是2、B的最低等级子节点的值也是2、而初始节点C的最低等级子节点的值是3。步骤S142:计算当前初始节点和该子节点的等级差,如果等级差大于1,那么将当前初始节点的等级更新为该子节点等级值减1的等级值。可以看出,我们当且仅当,优化初始节点和它最近级别的子节点的等级差距大于1的时候,对初始节点的等级进行优化。在上例中,虽然初始节点B和它的子节点H的等级差距为2,方法并不会对逻辑节点B进行优化,因为它的其他子节点E和F的等级为1,和它非常接近。经过上述S110至S140全步骤之后,我们得到最终优化后的各个逻辑节点的等级如下表3所示:等级节点1A、B2C、D、E、F3G、H表3优化后的逻辑节点等级本发明另一个实施例提供一种划分逻辑节点等级的装置,该装置包括:节点信息单元,用以获取节点和节点间的逻辑关系信息;初始节点设定单元,用以计算节点的入度,并设定初始节点;节点遍历单元,用以按照节点逻辑关系深度遍历初始节点,并依次设定遍历中各节点的等级;节点优化单元,用以优化节点的等级。在例1中,节点的入度单元根据节点的父节点个数来计算节点的入度,各节点的入度如上表一所示,初始节点设定单元获取表一中各节点的入度信息,将入度值为0的A、B、C节点设定为初始节点。在节点遍历单元中,首先获取上述初始节点设定单元中各初始节点的信息,并将初始节点A、B、C的level值设定为1,然后采用深度优先遍历的方法遍历各初始节点,并循环遍历其各分支节点,保证分支节点能够被重复遍历到,进而在遍历过程中依次设定各节点的等级。如例1中,我们注意到初始节点C,有且仅有一个子节点G;即,逻辑节点C只和一个逻辑节点G在逻辑上具有关联性,它们是息息相关的。然而,在深度遍历计算后得到表2中,节点C和G的等级差异为2,无法正确体现逻辑节点间紧密相关的关系。对这类情况,我们需要对节点等级进行优化。在节点优化单元中,首先遍历各初始节点,获取到各初始节点的最低等级子节点的值,然后计算当前初始节点和该子节点的等级差,如果等级差大于1,那么将当前初始节点的等级更新为该子节点等级值减1的等级值。所述节点优化单元,依次遍历各初始节点,获取初始节点的最低等级子节点的值;计算当前初始节点和该子节点的等级差,如果等级差大于1,那么将当前初始节点的等级更新为该子节点等级值减1的等级值。可以看出,我们当且仅当,优化初始节点和它最近级别的子节点的等级差距大于1的时候,对初始节点的等级进行优化。在上例中,虽然初始节点B和它的子节点H的等级差距为2,方法并不会对逻辑节点B进行优化,因为它的其他子节点E和F的等级为1,和它非常接近。经过调整,我们得到最终的优化后的各个逻辑节点的等级如表三所示。本发明提供一种划分逻辑节点等级的方法及装置,通过计算节点的入度设定初始节点,并根据节点的逻辑关系进行深度遍历初始节点,进而依次设定遍历中各节点的等级,还要循环遍历设定了的节点等级进行优化,从而清晰展现各逻辑节点的内在联系,从而实现一种简便、高效的划分逻辑节点等级的方法,满足逻辑布图或逻辑节点应用的实际需求。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1