一种结点循环嵌套的检测方法、装置及系统的制作方法

文档序号:6576621阅读:107来源:国知局
专利名称:一种结点循环嵌套的检测方法、装置及系统的制作方法
技术领域
本发明属于管理领域,尤其涉及一种结点循环嵌套的检测方法、装置及系统。
背景技术
结点是一个独立的可与其它结点存在关系的物体的抽象,例如一个物料、一个物
料清单(Bill of Material,BOM)、路由器等。 一个物料与其它物料可能存在替代关系;B0M
记载构成产品的各物料及其需求数量、相互之间的组成结构关系,一个BOM可能与其它的
BOM存在层级的关系、一个路由器与其他路由器之间存在数据转发关系等。 有直接关系的两个结点,称为直接关系结点。例如可以用物料B来替代物料A,而
物料C可以用来替代物料B,因而物料A与物料B,物料B与物料C是互为直接关系结点,而
物料A与物料C就不是互为直接关系结点,而是互为间接关系结点。 两个直接关系结点A、B,如果从结点A向结点B发生关系,则称A为直接关系开始 结点,B为直接关系结束结点。例如,物料B替代物料A,替代的关系是用B向A发生,所以 称B为直接关系开始结点,A为直接关系结束结点。 —个结点通过直接关系结点的关系传递,最终与至少一个其它结点即有间接关 系,又有直接关系,则所有的这些结点之间的关系就是循环嵌套关系。例如,物料B可以用 来替代物料A,物料C可以用来替代物料B,而物料A又可以用来替代物料C,而他们的关系 为A- > C- > B- > A,即C与A即有直接关系,又有间接关系。因而,A、 B、 C、 D这些结点 间形成循环嵌套关系。 现有物料管理系统用结点表示其管理的各物料,一般在数据库中记录有关系的两
个结点,如表l所示
物料替代物料
AB
BC
CD 表1 有时需要知道结点间是否存在循环嵌套关系,现有结点循环嵌套的检测方法根据 结点间的直接关系信息,先将结点间的间接关系变为直接关系,例如,A与C之间存在间接 关系C- > B、 B- > A,则增加A与C之间的直接关系C- > A,然后判断最终如果出现A- > A这样的自身关系,则得知A、 B、 C间存在循环嵌套。但是,如果涉及到的节点较多,则比较 耗时、处理性能不高。 综上所述,现有结点循环嵌套的检测方法处理过程繁琐、效率低、耗时,尤其不适
4用于涉及到的节点多的情况。

发明内容
本发明实施例的目的在于旨在解决现有技术存在的问题,提供一种结点循环嵌套 的检测方法,处理过程简单、效率高、省时。 本发明实施例是这样实现的,一种结点循环嵌套的检测方法,所述方法包括下述 步骤 获取结点关系信息,所述结点关系信息由至少两条直接关系信息组成; 循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的
结点所对应的所有直接关系信息; 得到剩余的结点关系信息。 本发明实施例的另一目的在于提供一种结点循环嵌套检测装置,所述装置包括
信息获取单元,用于获取结点关系信息,所述结点关系信息由至少两条直接关系 信息组成; 信息修改单元,用于根据所述信息获取单元获取到的结点关系信息,循环检测删 除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直 接关系信息;以及 结果获取单元,用于得到所述信息修改单元处理后剩余的结点关系信息。
本发明实施例的另一 目的在于提供一种包含上述结点循环嵌套检测装置的系统。
在本发明实施例中,循环检测删除结点关系信息中只作为直接关系开始结点或直 接关系结束结点的结点所对应的所有直接关系信息,实现了一种结点循环嵌套的检测方 法,处理过程简单、效率高、省时,并且适用于涉及到的结点数量大的情况。


图1是本发明实施例提供的结点循环嵌套的检测方法的实现流程图;
图2是本发明实施例提供的存储结点关系信息的数据库表的示意图;
图3是本发明实施例提供的存储剩余结点关系信息的数据库表的示意图;
图4本发明实施例提供的结点循环嵌套检测装置的结构示意图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。 在本发明实施例中,循环检测删除结点关系信息中只作为直接关系开始结点或直 接关系结束结点的结点所对应的所有直接关系信息。 图1示出了本发明实施例提供的结点循环嵌套的检测方法的实现流程,详述如 下 在步骤S101中,获取结点关系信息,该结点关系信息由至少两条直接关系信息组 成;
5
在步骤S102中,循环检测删除结点关系信息中只作为直接关系开始结点或直接 关系结束结点的结点所对应的所有直接关系信息;
在步骤S103中,得到剩余的结点关系信息。 其中,获取到的结点关系信息可以是其他系统、终端、服务器、数据库等输出的, 也可以是由用户等输入的;该结点关系信息可以由至少两条直接关系信息组成,例如由 A- > B、 B- > C、 C- > D、 A- > X等组成。直接关系信息表示有直接关系的两结点的关系, 记载哪个结点作为直接关系开始结点和哪个结点作为直接关系结束结点,还包括作为直接 关系开始结点的结点信息和作为直接关系结束结点的结点信息。其中,结点信息可以为结 点名称、标识号等唯一标识各结点的信息,在实际运用中,可以采用数学形式、数据库表中 的字段等方式来构建两结点间的直接关系信息,例如,以数学形式(A, B)构建两结点间的 直接关系信息,A为直接关系开始结点,B为直接关系结束结点;结点可以表示物料、B0M、路 由器、交换机等与其他结点存在关系的物体。在循环检测删除结点关系信息中只作为直接 关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息后,最终剩余的结点 关系信息就是结点循环嵌套的检测结果,由该剩余的结点关系信息可以得知哪些结点构成 循环嵌套关系,上述步骤S102通过具体包括 在步骤S1021中,依次提取结点关系信息中包括的各结点信息; 在步骤S1022中,根据结点关系信息,当检测到所提取的结点信息所表示的结点
只作为直接关系开始结点或直接关系结束结点时,删除结点关系信息中包括该结点信息的
所有直接关系信息,返回步骤S1021。 这里,由获取到的结点关系信息中的各条直接关系信息,即可提取结点关系信息 中包括的各结点信息。根据结点关系信息中的各条直接关系信息,可以判断获取到的结点 信息所表示的结点是否只作为直接关系开始结点或直接关系结束结点,如果是,则删除结 点关系信息中该结点所对应的所有直接关系信息,即删除结点关系信息中所有包括该结点 信息的直接关系信息,完成后,返回步骤S1021,重新提取结点关系信息中包括的各结点信 息;否则,对提取到的下一个结点信息进行相应判断处理。如果提取到的结点关系信息中包 括的所有的结点信息对应的结点,者既作为关系开始结点又作为关系结束结点,则结束。此 时,剩余的直接关系信息即为结点循环嵌套的检测结果。 采用上述结点循环嵌套的检测方法,只需要根据结点关系信息循环检测删除结点 关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系 信息,剩下的直接关系信息所组成的结点关系信息即为结点循环嵌套的检测结果,处理过 程简单、效率高、省时,并且适用于涉及到的结点数量大的情况。 下面,以一个具体的例子对上述结点循环嵌套的检测方法进行详细说明。采用数 据库表来记载结点关系信息,数据库表的一条记录对应一条直接关系信息,用一条记录的 两个字段来存储对应的直接关系开始结点的结点信息和直接关系结束结点的结点信息。
首先,获取到的结点关系信息为图2所示的数据库表,字段fl中存储直接关系开 始结点的结点信息,字段f2中存储对应的直接关系结束结点的结点信息;接着,依次提取
该数据库表各条记录中存储的结点信息,第一次提取到的结点信息为A、B、C、D.....F...、
P等。由于A既出现在字段fl中又出现在字段f2中,所以继续判断。判断B、C、D、X和Y 也既出现在字段fl中又出现在字段f2中,继续判断F。由于F只出现在字段f2中,所以删除该数据库表中所有包含F的字段。然后,按照上述步骤,重新提取数据库表各条记录中存 储的结点信息后,根据判断分别删除该数据库表中包含G、 N、 P、 0、 I、 H、 J、 M和X的相应记 录。再依次提取数据库表中存储的结点信息A、 B、 C、 D和Y,由于这些结点信息都既出现在 字段fl中又出现在字段f2中,所以结束。此时,数据库表中存储的包含结点信息A、B、C、 D和Y的记录即为剩余的结点关系信息,数据库表如图3所示。 为了提供结点间最小路径的环路,作为本发明的一个优选实施例,在步骤S103 后,还包括最小路径查找步骤,具体为 根据剩余的结点关系信息,搜索其中包括的所有环路信息,并检测输出搜索到的 不包括其他环路信息的环路信息。 根据步骤S103得到的剩余的结点关系信息中的直接关系信息可以得到其中涉及 到的对应各结点的环路信息。该最小路径查找步骤具体包括
依次提取剩余的结点关系信息中包括的各结点信息; 根据剩余的结点关系信息进行向前和/或向后搜索,得到所提取的各结点信息对 应的所有环路信息,该环路信息包括搜索到的所有结点信息; 根据各环路信息包括的结点信息,检测输出不包括其他环路信息的环路信息。
在上面得出的结点循环嵌套信息中,可以先依次提取各条记录对应的字段fl中 存储的结点信息,例如,依次提取到结点信息A、 B、 C、 D、 A和Y。对于提取到的结点信息A, 根据结点关系信息中的直接关系信息进行向后搜索,直至搜索到字段f2中存储的结点信 息A,中间搜索到结点信息B、C和D,则得到A对应的一条包括A、B、C、D和A环路信息。接 着,再对提取到结点信息B、C、D、A和Y进行上述向前搜索,得到各结点信息对应环路信息。 最后,根据得到的环路信息中包括的结点信息,判断各环路信息是否包括其他的环路信息, 如果没有包括其他的环路信息,则该搜索到的路径已经是最小路径,输出该环路信息;否 则,该搜索到的路径中还包括其他路径,不对该环路信息进行任何处理,继续判断下一环路 信息。在具体实现中,可用将搜索到的结点信息、得到的环路信息等先存储到缓存或存储单 元等中。 另外,还可以先依次提取各条记录对应的字段f2中存储的结点信息,再根据结点
关系信息中的直接关系信息向前搜进行上述环路信息搜索,并输出环路信息。 进一步地,为了提高效率,在先依次提取各条记录对应的字段fl或f2中存储的结
点信息后,还可以同时进行向前和向后搜索,直至向前搜索和向后搜索到的结点信息相同。
例如,首先提取到的结点信息为A,从字段fl中存储A的记录开始进行向后搜索,搜索到结
点信息B、C ;同时,从字段f2中存储A的记录开始进行向前搜索,搜索到结点信息D、C。可
以得到A对应的一条包括A、 B、 C和D环路信息。对于其他提取到的结点信息B、 C、 D、 A和
Y,也同时进行向前和向后搜索,得到对应的环路信息。 当然,还可以存储输出的环路信息,以供需要时直接获取该环路信息即可进行相 应的处理。 本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质 中,所述的存储介质,如ROM/RAM、磁盘、光盘等,该程序用来执行如下步骤
获取结点关系信息,该结点关系信息由至少两条直接关系信息组成;
7
循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的 结点所对应的所有直接关系信息;
得到剩余的结点关系信息。 图4示出了本发明实施例提供的结点循环嵌套检测装置的结构,为了便于说明仅 示出了与本发明实施例相关的部分。该结点循环嵌套检测装置可以用于物料管理系统、路 由器管理系统等系统,该结点循环嵌套检测装置可以是运行于这些结点系统设备内的软件 单元、硬件单元或者软硬件相结合的单元,也可以作为独立的挂件集成到这些系统中,其 中 信息获取单元401,获取结点关系信息,该结点关系信息由至少两条直接关系信息 组成,其实现如上所述,不再赘述。 信息修改单元402,根据信息获取单元401获取到的结点关系信息,循环检测删除 结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接 关系信息。 结果获取单元403,得到信息修改单元402处理后剩余的结点关系信息,其实现如 上所述,不再赘述。 并且,信息修改单元402具体包括 第一信息提取模块4021,依次提取信息获取单元401获取到的结点关系信息中包 括的各结点信息,其实现如上所述,不再赘述; 信息删除模块4022,根据信息获取单元401获取到的结点关系信息,当检测到第 一信息提取模块4021提取的结点信息所表示的结点只作为直接关系开始结点或直接关系 结束结点时,删除结点关系信息中包括该结点信息的所有直接关系信息,并触发第一信息 提取模块4021重新提取结点信息,其实现如上所述,不再赘述。 进一步地,为了提供结点间最小路径的环路,作为本发明的一个优选实施例,结点 循环嵌套检测装置还包括 路径查找单元404,根据结果获取单元403得到的结点关系信息,搜索其中包括的 所有环路信息,并检测输出搜索到的不包括其他环路信息的环路信息。该路径查找单元404 具体包括 第二信息提取模块4041,依次提取结果获取单元403得到的结点关系信息中包括 的各结点信息,其实现如上所述,不再赘述; 环路信息生成模块4042,根据结果获取单元403得到的结点关系信息进行向前和 /或向后搜索,得到第二信息提取模块4041提取到的各结点信息对应的所有环路信息,该 环路信息包括搜索到的所有结点信息,其实现如上所述,不再赘述; 输出模块4043,根据各环路信息包括的结点信息,检测输出环路信息生成模块
4042得到的不包括其他环路信息的环路信息,其实现如上所述,不再赘述。 在本发明实施例中,循环检测删除结点关系信息中只作为直接关系开始结点或直
接关系结束结点的结点所对应的所有直接关系信息,实现了一种结点循环嵌套的检测方
法,处理过程简单、效率高、省时,并且适用于涉及到的结点数量大的情况。 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精
神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种结点循环嵌套的检测方法,其特征在于,所述方法包括下述步骤获取结点关系信息,所述结点关系信息由至少两条直接关系信息组成;循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息;得到剩余的结点关系信息。
2. 如权利要求1所述的方法,其特征在于,所述循环检测删除结点关系信息中只作为 直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息的步骤具体包 括依次提取结点关系信息中包括的各结点信息;根据结点关系信息,当检测到所提取的结点信息所表示的结点只作为直接关系开始结 点或直接关系结束结点时,删除结点关系信息中包括该结点信息的所有直接关系信息,返 回所述依次提取结点关系信息中包括的各结点信息的步骤。
3. 如权利要求1所述的方法,其特征在于,在所述得到剩余的结点关系信息的步骤后, 还包括最小路径查找步骤,具体为根据剩余的结点关系信息,搜索其中包括的所有环路信息,并检测输出搜索到的不包 括其他环路信息的环路信息。
4. 如权利要求3所述的方法,其特征在于,所述根据剩余的结点关系信息,搜索其中 包括的所有环路信息,并检测输出搜索到的不包括其他环路信息的环路信息的步骤具体包 括依次提取剩余的结点关系信息中包括的各结点信息;根据剩余的结点关系信息进行向前和/或向后搜索,得到所提取的各结点信息对应的 所有环路信息,所述环路信息包括搜索到的所有结点信息;根据各环路信息包括的结点信息,检测输出不包括其他环路信息的环路信息。
5. —种结点循环嵌套检测装置,其特征在于,所述装置包括信息获取单元,用于获取结点关系信息,所述结点关系信息由至少两条直接关系信息 组成;信息修改单元,用于根据所述信息获取单元获取到的结点关系信息,循环检测删除结 点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关 系信息;以及结果获取单元,用于得到所述信息修改单元处理后剩余的结点关系信息。
6. 如权利要求5所述的装置,其特征在于,所述信息修改单元包括 第一信息提取模块,用于依次提取所述信息获取单元获取到的结点关系信息中包括的各结点信息;以及信息删除模块,用于根据所述信息获取单元获取到的结点关系信息,当检测到所述第 一信息提取模块所提取的结点信息所表示的结点只作为直接关系开始结点或直接关系结 束结点时,删除结点关系信息中包括该结点信息的所有直接关系信息,并触发所述第一信 息提取模块重新提取结点信息。
7. 如权利要求5所述的装置,其特征在于,所述装置还包括路径查找单元,用于根据所述结果获取单元得到的结点关系信息,搜索其中包括的所有环路信息,并检测输出搜索到的不包括其他环路信息的环路信息。
8. 如权利要求7所述的装置,其特征在于,所述路径查找单元包括第二信息提取模块,用于依次提取所述结果获取单元得到的结点关系信息中包括的各 结点信息;环路信息生成模块,用于根据所述结果获取单元得到的结点关系信息进行向前和/或 向后搜索,得到所述第二信息提取模块提取到的各结点信息对应的所有环路信息,所述环 路信息包括搜索到的所有结点信息;以及输出模块,用于根据各环路信息包括的结点信息,检测输出所述环路信息生成模块得 到的不包括其他环路信息的环路信息。
9. 一种包含权利要求5至8任一项所述结点循环嵌套检测装置的系统。
全文摘要
本发明适用于管理领域,提供了一种结点循环嵌套的检测方法、装置及系统,所述方法包括下述步骤获取结点关系信息,所述结点关系信息由至少两条直接关系信息组成;循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息;得到剩余的结点关系信息。在本发明实施例中,循环检测删除结点关系信息中只作为直接关系开始结点或直接关系结束结点的结点所对应的所有直接关系信息,实现了一种结点循环嵌套的检测方法,处理过程简单、效率高、省时,并且适用于涉及到的结点数量大的情况。
文档编号G06Q10/00GK101697211SQ20091011022
公开日2010年4月21日 申请日期2009年10月23日 优先权日2009年10月23日
发明者徐惠乾 申请人:金蝶软件(中国)有限公司;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1