CN116319518B - 一种基于知识图谱最短路径的信息获取方法及装置 - Google Patents
一种基于知识图谱最短路径的信息获取方法及装置 Download PDFInfo
- Publication number
- CN116319518B CN116319518B CN202211058393.2A CN202211058393A CN116319518B CN 116319518 B CN116319518 B CN 116319518B CN 202211058393 A CN202211058393 A CN 202211058393A CN 116319518 B CN116319518 B CN 116319518B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- path length
- shortest path
- shortest
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000004422 calculation algorithm Methods 0.000 claims description 43
- 239000002243 precursor Substances 0.000 claims description 30
- 238000012216 screening Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 16
- 230000002457 bidirectional effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000001186 cumulative effect Effects 0.000 claims description 4
- 230000007423 decrease Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 9
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 201000004569 Blindness Diseases 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000007115 recruitment Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本文提供了一种基于知识图谱最短路径的信息获取方法及装置,其中方法包括:根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径;将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集;重复上述步骤,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关;根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求。本文能够使得每一次迭代中都会计算出一个或多个节点的最短路径,并稳定地向其它节点的最短路径逼近。
Description
技术领域
本文涉及计算机领域,尤其涉及一种基于知识图谱最短路径的信息获取方法及装置。
背景技术
知识图谱用图模型描述知识,建模事物之间关联关系,并使用组织原则,使得用户或计算机***可以根据底层数据进行知识推理。
知识图谱中的节点对应实体,有向边对应实体间的关系。实体之间通过关系彼此联系在一起,理解实体之间的关系是知识图谱分析的基础。在对实体关系量化度量后,可用最短路径算法计算实体之间关系的密切程度,得到最短路径树或一条最短路径,以此更直观深入地理解实体之间的关系,为洞察与发现隐藏事实和规律提供高质量数据。
现有技术中知识图谱挖掘信息常用的最短路径算法主要建立在基于松弛操作的Dijkstra算法基础之上。
在Dijkstra算法中,设S为已经找到最短路径的节点集,Q为还未找到最短路径的节点集。Dijkstra算法对最近加入S中的节点u,以路径的权重值最小化为目标,考察每个与u相连且不在S中的节点v,即在dist[u]+length(u,v)<dist[v]时,v的权重值dist[v]被dist[u]+length(u,v)替换,v的路径前驱pre[v]指向u。基于此,Dijkstra算法存在如下缺陷:
(1)Dijkstra算法用松弛操作为Q中节点在多个路径之间不断地选择权重值更小的路径,会重复更新Q中某些节点的路径信息,具体表现在:Q中节点的路径信息在多次迭代之间可能被更新;在每次迭代中对dist的扰动程度与u的出度正相关。以上两点使得新生成的u在Q中的维护成本大幅增加。
(2)节点u的邻接边需要很多的条件判断,严重依赖CPU的算术逻辑单元,无法高效地利用并行计算提高计算机***运行最短路径算法的效率。
发明内容
本文用于解决现有技术中基于知识图谱的最短路径确定过程存在计算效率低的问题。
为了解决上述技术问题,本文一方面提供一种基于知识图谱最短路径的信息获取方法,知识图谱中包括多个节点及节点间邻接边,节点间邻接边权重表示节点间距离,方法包括:
S11,根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径;
S12,将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集及新增第一节点的已确定路径长度;
S13,重复上述步骤S12,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关;
S14,根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求。
本文另一方面提供一种知识图谱的最短路径确定装置,知识图谱中包括多个节点及节点间邻接边,节点间邻接边权重表示节点间距离,所述装置包括:
初始化单元,用于根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径;
最短路径确定单元,用于将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集;
循环控制单元,用于重复启动所述最短路径确定单元,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关;
信息获取单元,用于根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求。
上述两个实施例通过避免使用松弛操作,每次选择距离迭代起点最近的邻接节点确定最短路径(记为小步算法),能够使得每一次迭代中都会计算出一个或多个节点的最短路径,并稳定地向其它节点的最短路径逼近。节点的邻接边的数量不会直接影响时间复杂度,能够提高最短路径的确定效率。
本文另一方面提供知识图谱最短路径确定方法,知识图谱中包括多个节点及节点间邻接边,节点间邻接边权重表示节点间距离,方法包括:
S21,根据最短路径查找策略及用户请求中的源节点和目标节点,初始地设定迭代起点及边缘节点,边缘节点包括已确定最短路径且有未确定最短路径的邻接节点的第一节点集中节点、可加入第一节点集的未确定最短路径的待选节点集中节点、通过松弛操作得到路径但未确定最短路径的松弛操作集中节点;初始地设定第一节点集包括迭代起点并确定其最短路径,待选节点集及松弛操作集为空;初始地设定迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大;
S22,计算边缘节点的启发路径长度,其中,边缘节点的启发路径长度为从迭代起点到迭代终点经过边缘节点的路径长度;
S23,根据所述启发路径长度和边缘节点已确定路径长度,从第一节点集及待选节点集中筛选出启发路径长度最大的节点中已确定路径长度最小的节点pB,从松弛操作集中筛选出启发路径长度最小的节点中已确定路径长度最大的节点pA;
S24,如果松弛操作集为空或节点pB的启发路径长度小于节点pA的启发路径长度,或节点pB的启发路径长度等于节点pA的启发路径长度且节点pB的已确定路径长度大于等于节点pA的已确定路径长度,则执行如下小步算法:从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集及新增第一节点的已确定路径长度;
否则,基于松弛操作计算所述松弛操作集中节点pA的所有邻接节点的路径并更新所述松弛操作集及新增松弛节点的已确定路径长度;
S25,从松弛操作集中筛选出优秀节点移动至待选节点集中,所述优秀节点为松弛操作集中启发路径长度最小的节点中已确定路径长度最大的节点pA2;
当所述第一节点集及待选节点集中节点数量大于第二预定值时,从所述第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中;
S26,重复以上步骤S22至步骤S25的过程,直至找到从源节点到目标节点的最短路径且边缘节点的启发路径长度都大于从源节点到目标节点的最短路径的长度;
S27,根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应用户请求。
本文另一方面提供一种知识图谱的最短路径确定装置,知识图谱中包括多个节点及节点间邻接边,节点间邻接边权重表示节点间距离,装置包括:
初始化单元,用于根据最短路径查找策略及用户请求中的源节点和目标节点,初始地设定迭代起点及边缘节点,边缘节点包括已确定最短路径且有未确定最短路径的邻接节点的第一节点集中节点、可加入第一节点集的未确定最短路径的待选节点集中节点、通过松弛操作得到路径但未确定最短路径的松弛操作集中节点;初始地设定第一节点集包括迭代起点并确定其最短路径,待选节点集及松弛操作集为空;初始地设定迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大;
计算单元,用于计算边缘节点的启发路径长度,其中,边缘节点的启发路径长度为从迭代起点到迭代终点经过边缘节点的路径长度;
筛选单元,用于根据所述启发路径长度和边缘节点已确定路径长度,从第一节点集及待选节点集中筛选出启发路径长度最大的节点中已确定路径长度最小的节点pB,从松弛操作集中筛选出启发路径长度最小的节点中已确定路径长度最大的节点pA;
算法选择单元,用于如果松弛操作集为空或节点pB的启发路径长度小于节点pA的启发路径长度,或节点pB的启发路径长度等于节点pA的启发路径长度且节点pB的已确定路径长度大于等于节点pA的已确定路径长度,则执行如下小步算法:从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集及新增第一节点的已确定路径长度;
否则,基于松弛操作计算所述松弛操作集中节点pA的所有邻接节点的路径并更新所述松弛操作集;
节点移动单元,用于从松弛操作集中筛选出优秀节点移动至待选节点集中,所述优秀节点为松弛操作集中启发路径长度最小的节点中已确定路径长度最大的节点pA2;
当所述第一节点集及待选节点集中节点数量大于第二预定值时,从所述第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中;
循环控制单元,用于重复启动计算单元、筛选单元、算法选择单元及节点移动单元,直至找到从源节点到目标节点的最短路径且边缘节点的启发路径长度都大于从源节点到目标节点的最短路径的长度;
信息获取单元,用于根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应用户请求。
上述两个实施例通过启发信息作为目标引导信息将小步算法与松弛操作算法结合,能够降低小步算法在搜索过程中因对迭代终点一无所知而导致的搜索盲目性,由松弛操作筛选出优秀节点,作为小步算法中第一节点的候选节点,能够减小小步算法搜索范围,更加快速地得到迭代起点到迭代终点的最短路径。
本文另一方面还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述实施例所述方法。
本文另一方面还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行根据前述实施例所述方法的指令。
为让本文的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本文实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本文的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本文实施例基于知识图谱最短路径的信息获取方法的第一流程图;
图2示出了本文实施例选择距离迭代起点最近的邻接节点确定最短路径及更新第一节点集过程的第一流程图;
图3示出了本文实施例一知识图谱抽象图的示意图;
图4示出了本文实施例基于知识图谱最短路径的信息获取方法的第二流程图;
图5示出了本文实施例选择距离迭代起点最近的邻接节点确定最短路径及更新第一节点集过程的第二流程图;
图6示出了本文实施例另一知识图谱抽象图的示意图;
图7示出了本文实施例基于知识图谱最短路径的信息获取装置的一种结构图;
图8示出了本文实施例基于知识图谱最短路径的信息获取装置的另一种结构图;
图9示出了本文实施例计算机设备的结构图。
附图符号说明:
701、初始化单元;
702、最短路径确定单元;
703、循环控制单元;
704、信息获取单元;
801、初始化单元;
802、计算单元;
803、筛选单元;
804、算法选择单元;
805、节点移动单元;
806、循环控制单元;
807、信息获取单元;
902、计算机设备;
904、处理器;
906、存储器;
908、驱动机构;
910、输入/输出模块;
912、输入设备;
914、输出设备;
916、呈现设备;
918、图形用户接口;
920、网络接口;
922、通信链路;
924、通信总线。
具体实施方式
下面将结合本文实施例中的附图,对本文实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本文一部分实施例,而不是全部的实施例。基于本文中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本文保护的范围。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的***或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
知识图谱可高效地组织、管理和利用海量信息,其在社交网络、人力资源与招聘、金融、保险、零售、广告、通信、IT、制造业、传媒、医疗、电子商务和物流等众多领域有着广泛的应用。具体的,例如,知识图谱可以实现Web从网页链接向概念链接转变(支持按主题检索),真正实现语义检索。又例如,基于知识图谱的搜索引擎,能够以图形方式向用户反馈结构化的知识,用户不必浏览大量网页即能准确定位和深度获取知识。
本文所述的基于知识图谱最短路径的信息获取方法及装置可应用于各种基于知识图谱最短路径进行信息获取的领域,例如信息检索、路径规划(包括机器人导航、车辆导航等),本文对基于知识图谱最短路径的信息获取方法及装置的具体应用领域不做限定。
本文所述的知识图谱中包括多个节点及节点间邻接边,所述节点间邻接边权重表示节点间长度距离。知识图谱具体包括的内容视应用领域而定。节点间的长度距离为抽象概念,表示节点间转换或获取信息的花费、时间等。
本文一实施例中,提供一种基于知识图谱最短路径的信息获取方法,用于解决现有技术中基于知识图谱的最短路径确定过程存在计算效率低的问题,具体的,如图1所示,基于知识图谱最短路径的信息获取方法包括:
步骤S11,根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径。
步骤S12,将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集。
步骤S13,重复上述步骤S12,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关。
步骤S14,根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求。
本实施例可应用于客户端或服务端,客户端或服务端中存储有知识图谱信息(节点及节点间连接关系,节点反映实体,节点间连接关系反映节点间关联关系),从知识图谱获取的信息显示于客户端。本文所述的客户端包括但不限于计算机设备、移动终端等,还可以为安装于计算机设备、移动终端等的软件。
本实施例通过避免使用松弛操作,每次选择距离迭代起点最近的邻接节点确定最短路径(记为小步算法),能够使得每一次迭代中都会计算出一个或多个节点的最短路径,并稳定地向其它节点的最短路径逼近。节点的邻接边的数量不会直接影响时间复杂度,能够提高最短路径的确定效率。
本实施例实施之前,还需用户操作客户端的方式接收用户请求,用户请求至少包括起始节点,从而通过上述步骤S11至步骤S14挖掘出与起始节点相关的信息。
步骤S11中,最短路径查找策略至少包括单源查找、单源单目标正向查找、单源单目标反向查找及单源单目标双向查找,初始地设置迭代起点过程包括:
(1)若最短路径查找策略为单源查找,则设置用户请求中的源节点为迭代起点,从源节点开始执行步骤S12及步骤S13,所有期望最短路径的确定条件为所有已确定最短路径的节点没有未确定最短路径的邻接节点。
(2)若最短路径查找策略为单源单目标正向查找,则设置用户请求中的源节点为迭代起点,按照源节点至目标节点的正向查找方向执行步骤S12及步骤S13。
(3)若最短路径查找策略为单源单目标反向查找,则设置用户请求中的目标节点为迭代起点,按照源节点至目标节点的反向查找方向执行步骤S12及步骤S13。
(4)若最短路径查找策略为单源单目标双向查找,则设置用户请求中的源节点和目标节点为迭代起点,按照源节点至目标节点的正向查找方向及按照目标节点至源节点的反向查找方向分别执行步骤S12及步骤S13。
对于单源单目标正向查找、单源单目标反向查找及单源单目标双向查找,为各查找方向的已确定最短路径的节点关联各查找方向的迭代起点,为源节点和目标节点关联自身,所有期望最短路径的确定条件为存在节点同时关联源节点和目标节点。例如,源节点为节点A,目标节点为节点G,查找方向为从节点A至节点G,中间节点包括节点B,为源节点及目标节点关联自身即在源节点的关联信息中记录节点A,在目标节点的关联信息中记录节点G,在节点B关联信息中记录节点A。
对于单源单目标正向查找、单源单目标反向查找,确定出的路径即为最短路径。
对于单源单目标双向查找,得到的是两段路径,即迭代起点s到迭代中点p的路径,迭代中点p到迭代起点t的路径,二者组合成从起点s到终点t的完整路径。路径寻找时,可设置如下邻接边表达方式:
(1)有向邻接边<from,to>f用于正向搜索,表示从from指向to的有向边,from对应第一节点,to是from的邻接点,to对应第二节点。
(2)有向邻接边<from,to>b用于反向搜索,表示从from指向to的有向边,to对应第一节点,from是to的邻接点,from对应第二节点。
(3)反向搜索邻接边<from,to>b的方向,与正向搜索邻接边<from,to>f的方向相反,即其方向为第二节点from指向第一节点to,正向搜索为第一节点from指向第二节点to,它们都与邻接边<from,to>的方向一致。
(4)在反向搜索中,第一节点to的邻接边线性表中的to节点是同一节点,该to节点对应多个第二节点from。
(5)在正向搜索中,第一节点from的邻接边线性表中的from节点是同一节点,该from节点对应多个第二节点to。
单源单目标双向查找有多种实现形式,如是否使用统一的第二节点预计最短路径长度,是否使用多线程。下述方法为正向搜索和反向搜索采用独立的第二节点预计最短路径长度,在同一线程内,独立计算各个迭代方向的第二节点预计最短路径长度。
本文所述节点的最短路径包括:节点的前驱节点及节点已确定路径长度。节点已确定路径长度等于该节点的前驱节点已确定路径长度加上该节点与该节点的前驱节点间邻接边权重之和,节点至少包括一个前驱节点,例如0个1个或多个前驱节点。节点已确定路径长度表示从迭代起点移动至节点经过邻接边的权重之和,初始状态下,迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大,在路径寻找过程中进行更新。以迭代起点为例,迭代起点的前驱节点为空,迭代起点的已确定路径长度为零。又例如节点C前驱节点为节点B,节点B前驱节点为源节点A,且邻接边<A,B>权重为3,邻接边<B,C>权重为2,则节点C已确定路径长度为5。具体实施时,节点的最短路径还可包括节点的邻接边权重、前驱节点记录号、当前节点、当前节点记录号。通过前驱节点和前驱节点记录号为第二节点指向第一节点的路径信息,通过路径长度、前驱节点和当前节点记录邻接边信息。
对于邻接边<from,to>,正向搜索的方向从节点from指向节点to,节点to的前驱节点为from节点,反向搜索的方向从节点to指向节点from,节点from的前驱节点为to节点。例如最短路径p1->p2->p3由两条有向边<p1,p2>和<p2,p3>组成:正向搜索的路径指向为p1<-p2和p2<-p3,与路径方向相反;反向搜索的路径指向为p2->p3和p1->p2,与路径方向一致。
如图2所示,步骤S12中从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集包括:
步骤S121,为第一节点集中未确定相关信息的第一节点确定相关信息并从第一节点集中移除无相关信息的第一节点。
其中,第一节点的相关信息包括:第二节点、待处理邻接边及第二节点预计最短路径长度。待处理邻接边为第一节点与其未确定最短路径的邻接节点之间的所有邻接边中满足如下条件的邻接边:该邻接边权重为所述所有邻接边的最小值,且该邻接边权重与该第一节点的已确定路径长度之和大于第一节点集关联的累计移动步长的邻接边。第二节点为待处理邻接边的非第一节点。第一节点的第二节点预计最短路径长度等于所述待处理邻接边的权重加上第一节点的已确定路径长度。
详细的说,第一节点集关联的累计移动步长等于已确定最短路径的距离迭代起点最远的节点的最短路径长度,反映从迭代起点已经移动的路径权重长度,初始状态下,第一节点集关联的累计移动步长为零。该方法会在同一次迭代中,依次确定该第一节点的权重值相同的邻接边的第二节点的所有最短路径。
本步骤中,可依据第一节点的升序排列的邻接边线性表确定待处理邻接边,邻接边线性表通过指针的方式指向第一个未确认最短路径的邻接边,确定过程包括:
判断该第一节点的已确定路径长度与当前第一个未确认最短路径的邻接边权重之和是否大于第一节点集关联的累计移动步长,若否,则指针指向邻接边线性表中下个邻接边,若是,则该邻接边可作为下个待处理邻接边,待处理邻接边对应的非第一节点为第二节点。
步骤S122,从第一节点集中筛选出第二节点预计最短路径长度最小的第一节点。
步骤S123,筛选出的第一节点相关的第二节点为距离迭代起点最近的邻接节点。
本步骤实施时,将筛选出的第一节点作为其相关第二节点的前驱节点,该第一节点关联的第二节点预计最短路径长度即为该第二节点的已确定路径长度。
步骤S124,更新第一节点集关联的累计移动步长为所述筛选出的第一节点关联的第二节点预计最短路径长度。
步骤S125,对筛选出的每一第一节点相关的第二节点、待处理邻接边及第二节点预计最短路径长度,执行如下判断:
步骤S1251,当该第二节点预计最短路径长度等于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点;
该第二节点预计最短路径长度,即该第一节点的已确定路径长度与该待处理邻接边权重之和,等于该第二节点的已确定路径长度说明第二节点已加入第一节点集中,此时仅需确定该第一节点的相关信息即可。当第一节点无相关信息时第一节点已无未确定最短路径的邻接节点。
步骤S1252,当该第二节点预计最短路径长度小于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点,将该第二节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
该第一节点的第二节点预计最短路径长度,即第一节点的已确定路径长度与该待处理邻接边权重之和,小于该第二节点的路径长度说明第二节点未加入第一节点集中。
本文一实施例中,存在如下情况,如图3所示,假设当前第一节点为节点3及节点2,第二节点为节点5及节点4,待处理邻接边为<2,5>及<3,4>,路径0->2->5、0->3->5、0->3->4的权重均为10,假设某次迭代后节点2可达到节点5,此时节点5变更为第一节点,按照前文的逻辑,节点3不会筛选出下一待处理邻接边<3,5>,但实际上,路径0->3->5与0->2->5权重相同,也就是说,0->3->5也是一最优路径,因此,在图3所示特殊场景下,前文的方法存在不能找出所有最优路径的问题,为了解决该技术问题,基于知识图谱最短路径的信息获取方法还包括:
根据各第一节点的有序邻接边线性表,确定第三节点,其中,第三节点为正确认最短路径或已确认最短路径的节点;
如果该第一节点的已确定路径长度与该第一节点与其第三节点之间邻接边的权重之和等于该第三节点的已确定路径长度,则把所述第三节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路;否则,
如果该第一节点的已确定路径长度与该第一节点与其第三节点之间邻接边的权重之和等于第一节点集关联的累计移动步长,则把所述第三节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路,将该第三节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
以图3为例,第一节点为节点5、节点3、节点4,节点5的前驱节点为节点2,且假设节点5的已确定路径长度为10,节点3的已确定路径长度为2,节点4的已确定路径长度为10,邻接边<3,5>权重为8,节点4及节点5没有第三节点,节点3的第三节点为节点5,更新第三节点的最短路径可更新第三节点的前驱节点包括节点2及节点3。
本文一实施例中,为了避免出现无效迭代进而影响最小路径的寻找速度,确定第一节点的相关信息之后还包括:
判断是否至少两个第一节点的相关信息中存在相同的第二节点;
若是,则比较具有相同第二节点的第一节点的第二节点预计最短路径长度;
若第一节点的第二节点预计最短路径长度不同,则仅保留最小第二节点预计最短路径长度的第一节点的相关信息,为其它第一节点重新确定相关信息。
本实施例能够保证最短路径寻找过程中,去掉不必要的干扰线路,避免无效的迭代。
本文一实施例中,还提供一种知识图谱最短路径确定方法,用于解决现有技术中基于知识图谱的最短路径确定过程存在计算效率低的问题,所述知识图谱中包括多个节点及节点间邻接边,所述节点间邻接边权重表示节点间距离,如图4所示,方法包括:
步骤S21,根据最短路径查找策略及用户请求中的源节点和目标节点,初始地设定迭代起点及边缘节点,边缘节点包括第一节点集中节点、待选节点集中节点及松弛操作集中节点,初始地设定第一节点集包括迭代起点并确定其最短路径,待选节点集及松弛操作集为空;初始地设定迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大。
其中,第一节点集中节点为已确定最短路径且有未确定最短路径的邻接节点,待选节点集中节点为可加入第一节点集的未确定最短路径的节点,松弛操作集中节点为通过松弛操作得到路径但未确定最短路径的节点。
最短路径查找策略包括:单源单目标正向查找、单源单目标反向查找及单源单目标双向查找。
一些实施方式中,节点的最路径包括节点的前驱节点及节点的已确定路径长度,对应的迭代起点的先驱节点为空,迭代起点的已确定路径长度为零。其它实施方式中,节点的最短路径还包括迭代起点至节点间最短路径中的节点信息。
本步骤实施时,还可设置松弛操作集包括迭代起点。
步骤S22,计算边缘节点的启发路径长度,其中,边缘节点的启发路径长度为从迭代起点到迭代终点经过边缘节点的路径长度。
本步骤中,可利用如下公式计算得到边缘节点的启发路径长度:
f(n)=g(n)+h(n);
其中,f(n)为从迭代起点到迭代终点的经过边缘节点n的启发路径长度,即从迭代起点经过边缘节点n到达迭代终点的预计成本;n为边缘节点;h(n)为边缘节点n到达迭代终点的预测路径长度,即表示还需要多少成本才能从边缘节点到达迭代终点;g(n)为边缘节点n距离迭代起点的已确定路径长度,即表示从迭代起点到边缘节点n的已确定成本;h为估计函数,h可以为欧几里得距离函数、曼哈顿距离、切比雪夫距离函数等,本文对h具体类型不做限定,任意节点到迭代终点的预测路径长度要小于或等于该任意节点到迭代终点的最短路径长度。
步骤S23,根据启发路径长度和边缘节点已确定路径长度,从第一节点集及待选节点集中筛选出启发路径长度最大的节点中已确定路径长度最小的节点pB,从松弛操作集中筛选出启发路径长度最小的节点中已确定路径长度最大的节点pA。
本步骤中,从第一节点集及待选节点集中筛选出的启发路径长度最大的节点中已确定路径长度最小的节点pB为第一节点集及待选节点集中最差的节点,从松弛操作集中筛选出的启发路径长度最小的节点中已确定路径长度最大的节pA为最佳节点,具体理由为:
启发路径长度f最大的节点:表示经过该节点到达迭代终点的路径实际长度要大概率大于其它节点到达迭代终点的路径实际长度。
在启发路径长度f最大的节点中,选择已确定路径长度g最小的节点pB:表示经过该节点到达迭代终点的预测路径长度h最大,较大的h值在转换为g的过程中具有更大的不确定性,n到迭代终点的g值会更大概率的大于其它节点,即会生成更大的质量差的路径,因此,节点pB为最差节点。
启发路径长度f最小的节点:表示从迭代起点到该节点的最短路径在很大概率上会出现在从迭代起点到迭代终点的最短路径上。
在启发路径长度f最小的节点中,选择已确定路径长度g最大的节点pA:表示经过该节点到达迭代终点的预测路径长度h最小。一方面,选择较小的h值在转换为g的过程中具有更小的不确定性,即会生成质量好的路径。另一方面,选择g值最大的节点能够确保满足不小于累计移动步长的条件,另一方面也会降低节点在小步机制处理的集合与松弛操作集之间的移动频率。因此,节点pA为最佳节点。
步骤S24,根据节点pB及pA选择小步算法或松弛操作算法,具体包括:
如果松弛操作集为空或节点pB的启发路径长度小于节点pA的启发路径长度,或节点pB的启发路径长度等于节点pA的启发路径长度且节点pB的已确定路径长度大于等于节点pA的已确定路径长度,则执行如下小步算法:从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集。
否则,基于松弛操作计算松弛操作集中节点pA的所有邻接节点的路径并更新松弛操作集。
本步骤中,基于松弛操作计算松弛操作集中节点pA的所有邻接节点的路径并更新松弛操作集包括:
确定节点pA已经找到最短路径,将节点pA从松弛操作集中移除,并对节点pA的任一邻接点pNeighbor,计算从迭代起始s经节点pA到邻节点pNeighbor的路径长度cost为节点pA的已确定最短路径长度g(pA)加上节点pA与节点pNeighbor间邻接边的权重,执行如下步骤:
如果cost小于原有已确定路径长度g(pNeighbor)且pNeighbor不在松弛操作集中:把节点pNeighbor加入到松弛操作集中;
如果cost小于原有已确定路径长度g(pNeighbor):删除为pNeighbor记录的路径信息,并根据节点pA和cost记录邻接点pNeighbor的路径信息,节点pNeighbor的路径长度为cost,前驱节点为pA;
如果cost等于原有已确定路径长度g(pNeighbor):根据节点pA和cost记录邻接点pNeighbor的路径信息,即为pNeighbor增加一条等长路径;
如果cost大于原有已确定路径长度g(pNeighbor):不做任何操作。
步骤S25,移动松弛操作集、待选节点集及第一节点集中的节点。具体包括:
从松弛操作集中筛选出优秀节点移动至待选节点集中,优秀节点为松弛操作集启发路径长度最小的节点中已确定路径长度最大的节点pA2;
当第一节点集及待选节点集中节点数量大于第二预定值时,从第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中。
步骤S26,重复以上步骤S22至步骤S25的过程,直至找到从源节点到目标节点的最短路径且边缘节点的启发路径长度都大于从源节点到目标节点的最短路径的长度。
步骤S27,根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应用户请求。
本步骤实施时,可根据知识图谱中节点及节点间邻接边表示的含义获取信息。
本实施例通过启发信息作为目标引导信息将小步算法与松弛操作算法结合,能够降低小步算法在搜索过程中因对迭代终点一无所知而导致的搜索盲目性,由松弛操作筛选出优秀节点,作为小步算法中第一节点的候选节点,当第一节点集及候选节点集中节点数量大于预定值时,将第一节点集及候选节点集部分节点移动至松弛操作集中,能够减小小步算法搜索范围,更加快速地得到迭代起点到迭代终点的最短路径。
本文一实施例中,上述步骤S21中,若最短路径查找策略为单源单目标正向查找,则迭代起点为源节点。进一步的,按照源节点至目标节点的正向查找方向执执行步骤S22至步骤S25。步骤S22中从迭代起点经过边缘节点的启发路径长度为从源节点经过边缘节点到目标节点的启发路径长度。
若最短路径查找策略为单源单目标反向查找,迭代起点为目标节点,按照源节点至目标节点的反向查找方向执行步骤S22至步骤S25。步骤S22中从迭代起点经过边缘节点的启发路径长度为从目标节点经过边缘节点到源节点的启发路径长度。
若最短路径查找策略为单源单目标双向查找,迭代起点为源节点和目标节点,按照源节点至目标节点的正向查找方向及按照目标节点至源节点的反向查找方向分别执行步骤S22至步骤S25。在正向查找方向中,步骤S22中的从迭代起点经过边缘节点的启发路径长度为从源节点经过边缘节点到目标节点的启发路径长度,在反向查找方向中,步骤S22中的从迭代起点经过边缘节点的启发路径长度为从目标节点经过边缘节点到源节点的启发路径长度。
为各查找方向的已确定最短路径的节点关联各查找方向的迭代起点,为源节点和目标节点关联自身,从源节点到目标节点的最短路径的确定条件为存在节点同时关联源节点和目标节点。
具体实施时,单源单目标双向查找以迭代起点s为搜索起点做正向搜索,以迭代终点t为搜索起点做反向搜索,在到达相同的节点时,即找到了一条从s到t的最短路。其中:(1)有向邻接边<from,to>f用于正向搜索,表示从from指向to的有向边,from对应第一节点,to是from的邻接点,to对应第二节点;(2)有向邻接边<from,to>b用于反向搜索,表示从from指向to的有向边,to对应第一节点,from是to的邻接点,from对应第二节点;(3)反向搜索邻接边<from,to>b的方向,与正向搜索邻接边<from,to>f的方向相反,即其方向为第二节点from指向第一节点to,正向搜索为第一节点from指向第二节点to,与邻接边<from,to>的方向一致;(4)在反向搜索中,第一节点to的邻接边线性表中的to节点是同一节点,该to节点对应多个第二节点from;(5)在正向搜索中,第一节点from的邻接边线性表中的from节点是同一节点,该from节点对应多个第二节点to;(6)<from,to>可指代任意搜索方向的邻接边,在正向搜索中其代表邻接边<from,to>f,在反向搜索走过其代表邻接边<from,to>b。
本文一实施例中,上述步骤S25从第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中包括:
按照如下方式确定第一节点集及待选节点集中的优秀节点:按照启发路径长度从小到大、已确定路径长度从大到小的顺序筛选出至多排名前第二预定值的已确定最短路径的节点;将第一节点集及待选节点集中的非优秀节点移动至松弛操作集中。
第二预定值为调试参数,第二预定值太小会引起节点不断在第一节点集及待选节点集与松弛操作集之间移动,第二预定值太大会导致第一节点集及待选节点集中节点数量变大,进而提升计算量,使得启发式信息失去应用的作用,因此,合理选择第二预定值可降低节点在第一节点集及待选节点集与松弛操作集之间的移动次数,提高最短路径的确定效率。一具体实施方式中,第二预定值可由如下三种方法中的其中之一确定:
(1)根据局部或全部知识图谱数据,设定固定的第二预定值。
(2)根据迭代起点和迭代终点的不同,设定固定的第二预定值。
(3)根据知识图谱数据与应用场景设计第二预定值的上限和下限,第二预定值初始化时可设为下限和上限之间的一个值,根据下述策略动态调整第二预定值:在每个连续的K0次迭代中,如果松弛操作集向待选节点集移动的节点数量小于K1,第二预定值降低M,如果松弛操作集向待选节点集移动的节点数量大于K2,第二预定值增加M,其中,K0、K1、M为正整数,可根据实际情况进行设定。应用场景例如为信息检索、路径规划等,根据知识图谱的具体应用领域而定。本文所述K0次迭代指的是执行上述步骤S22至步骤S24的次数。
本文一实施例中,为了避免因第一节点集、待选节点集及松弛操作集中节点重复导致计算算力浪费,基于知识图谱最短路径的信息获取方法还包括:
当所述第一节点集发生变化时,从松弛操作集和待选节点集中移出第一交集节点,其中,所述第一交集节点为第一节点集与松弛操作集和待选节点集的交集节点。
本步骤中,当有新的节点,即不是从待选节点集中移动到第一节点集中的节点,加入到第一节点集时,如果该新的节点在待选节点集或松弛操作集中,则把该节点从待选节点集和松弛操作集中删除。
当所述松弛操作集发生变化时,从第一节点集和待选节点集中移出第二交集节点,其中,所述第二交集节点为松弛操作集与第一节点集和待选节点集的交集节点。
本步骤中,当有新的节点,即不是从第一节点集中移动到松弛操作集中的节点,加入到松弛操作集时,如果该新的节点在待选节点集或第一节点集中,则把该节点从待选节点集和第一节点集中删除。
本文一实施例中,步骤S21中初始地设定第一节点集包括迭代起点时,还设定第一节点集关联的累计移动步长为零。
步骤S24更新第一节点集时,还更新第一节点集关联的累计移动步长。
步骤S25中从松弛操作集中筛选出优秀节点移动至待选节点集中的执行条件包括:
第一节点集和待选节点集为空;或优秀节点的启发路径长度小于第一节点集和待选节点集中节点最大的启发路径长度且所述优秀节点的已确定路径长度大于或等于第一节点集关联的累计移动步长。
本文一实施例中,如图5所示,步骤S24小步算法中从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集包括:
步骤S241,当第一节点集为空时,将待选节点集中已确定路径长度最小的节点移动至第一节点集并设置第一节点集关联的累计移动步长为移动节点的已确定路径长度。
步骤S242,为第一节点集中未确定相关信息的第一节点确定相关信息并从第一节点集中移除无相关信息的第一节点。
其中,第一节点的相关信息包括:第二节点、待处理邻接边及第二节点预计最短路径长度;待处理邻接边为第一节点与其未确定最短路径的邻接节点之间的所有邻接边中满足如下条件的邻接边:该邻接边权重为所有邻接边的最小值,且该邻接边权重与该第一节点的已确定路径长度之和大于第一节点集关联的累计移动步长的邻接边;第二节点为所述待处理邻接边的非第一节点;第一节点的第二节点预计最短路径长度等于待处理邻接边的权重加上第一节点的已确定路径长度。
步骤S243,从第一节点集中筛选出第二节点预计最短路径长度最小的第一节点,根据筛选出的第一节点,从待选节点集中选择节点移动至第一节点集中。
本步骤中,当有节点从待选节点集中移动至第一节点集时,需重新执行步骤S242以为移动节点确定相关信息,并重新确定第一节点集中第二节点预计最短路径长度最小的第一节点。
本步骤实施时,根据筛选出的第一节点,从待选节点集中选择节点移动至第一节点集中包括:
(1)当所述筛选出的第二节点预计最短路径长度最小的第一节点的第二节点预计最短路径长度大于等于待选节点集中节点的最小已确定路径长度时,按照如下步骤(2)和(3)将待选节点集中节点移至第一节点集中:
(2)对待选节点集中最小已确定路径长度对应的每一个节点pX,判断所述筛选出的第一节点关联的第二节点中是否包含节点pX,
若否,则将节点pX从待选节点集中移至第一节点集中,为节点pX确定相关信息,其中,节点pX的第二节点预计最短路径长度=节点pX的已确定路径长度+节点pX的待处理邻接边的权重,
若是,则把节点pX从待选节点集移除;
(3)判断(2)中是否把待选节点集中节点移动到第一节点集中,若是,再次执行步骤S243重新从所述第一节点集中筛选出第二节点预计最短路径长度最小的第一节点,否则,再次执行步骤(1),直到待选节点集中节点的最小已确定路径长度都大于所述第二节点预计最短路径长度最小的第一节点的第二节点预计最短路径长度时,执行步骤S244。
本步骤中,通过把待选节点集中距离迭代起点最近的第一节点移动到第一节点中,确保筛选出的第一节点的第二节点预计最短路径长度对应的第二节点是距离迭代起点最近的未确定最短路径的节点,进而完成从松弛集到第一节点集的节点移动,优先把待选节点集中距离迭代起点最近的节点移动到第一节点集或从待选节点集中移除。
步骤S244,筛选出的第一节点相关的第二节点为距离迭代起点最近的邻接节点。
步骤S245,更新第一节点集关联的累计移动步长为所述筛选出的第一节点关联的第二节点预计最短路径长度。
步骤S246,对筛选出的每一第一节点相关的第二节点、待处理邻接边及第二节点预计最短路径长度,执行如下处理:
步骤S2461,当该第一节点的第二节点预计最短路径长度等于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点。
步骤S2462,当该第一节点的第二节点预计最短路径长度小于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点,将该第二节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
为了更清楚说明图4至图5所示实施例的技术方案,下面以一具体实例进行详细说明,本实施例的知识图谱中包含9个节点,各节点编号及节点间权重关系如图6所示,源节点为节点0,结束节点为节点8,各节点的启发路径长度f(n)、已确定路径长度g(n)及预测路径长度h(n)分别为:
g(0)=0,h(0)=5,f(0)=5;
g(1)=1,h(1)=4,f(1)=5;
g(2)=2,h(2)=2,f(2)=4;
g(3)=2,h(3)=2,f(1)=4;
g(4)=3,h(4)=5,f(4)=8;
g(6)=4,h(6)=1,f(6)=5;
g(7)=5,h(7)=9,f(7)=14;
g(8)=6,h(8)=0,f(8)=6。
基于知识图谱最短路径的信息获取方法包括:
初始化:迭代起点0的最短路径长度为0,将迭代起点初始化至第一节点集中,松弛操作集及待选节点集为空,记为松弛操作集{},待选节点集{},第一节点集{0},此时边缘节点只有节点0。
第一次循环:计算边缘节点的启发路径长度。
边缘节点仅有节点0,则启发路径长度f(0)=g(0)+h(0)=0+5=5。
从第一节点集及待选节点集中选择节点pB=0,从松弛操作集中无法筛选出节点pA。
因松弛操作集为空,则执行小步算法,筛选出节点1为距离迭代起点最近且未确定最短路径的邻接节点,确定节点1的最短路径,其已确定路径长度为g(1)=1,累计移动步长为1。更新第一节点集为{1,0}。
本次循环中,执行小步算法,因此,无需从松弛操作集中选取节点移动至待选节点集中。另第一节点集及待选节点集中节点数量为2,等于N=2,无需移动节点至松弛操作集中。
第二次循环:计算边缘节点的启发路径长度。
边缘节点包括节点0及节点1,则节点0的启发路径长度为f(0)=g(0)+h(0)=0+5=5,节点1的启发路径长度f(1)=g(1)+h(1)=1+4=5。
从第一节点集及待选节点集中选择节点pB=0,从松弛操作集中无法筛选出节点pA。筛选出节点2和3为距离迭代起点最近且未确定最短路径的邻接节点,确定节点2和3的最短路径,节点2及节点3的已确定路径长度为g(2)=g(3)=2,累计移动步长为2。更新第一节点集为{2,3,1}。
第一节点集中节点量大于N=2,此时需要将第一节点集中的启发路径长度最大且已确定路径长度最小的节点移动至松弛操作集中,因f(1)=g(1)+h(1)=1+4=5,f(2)=g(2)+h(2)=2+2=4,f(3)=g(3)+h(3)=2+2=4,因此,选择第一节点集中的节点1移动至松弛操作集中,此时,移动至松弛操作集包含节点1,待选节点集为空,第一节点集包含节点2和3。
第三次循环:计算边缘节点的启发路径长度。
边缘节点包括节点1、节点2及节点3,节点1的启发路径长度为f(1)=g(1)+h(1)=1+4=5,节点2及节点3的f(2)=g(2)+h(2)=2+2=4,f(3)=g(3)+h(3)=2+2=4。
从第一节点集及待选节点集中选择节点pB=3,从松弛操作集中无法筛选出节点pA=1。
f(pB)<f(pA),选择小步算法,节点4为距离迭代起点最近且未确定最短路径的邻接节点,确定节点4的最短路径,其已确定路径长度为g(4)=3,累计移动步长为3,更新第一节点集为{2,4}。
第一节点集及待选节点集中节点数量为2,小于N=3,无需移动节点至松弛操作集中。
第四次循环:计算边缘节点的启发路径长度。
边缘节点包括节点1、节点2及节点4,节点1的启发路径长度为f(1)=g(1)+h(1)=1+4=5,节点2及节点4的f(2)=g(2)+h(2)=2+2=4,f(4)=g(4)+h(4)=3+5=8。
从第一节点集及待选节点集中选择节点pB=4,从松弛操作集中无法筛选出节点pA=1。
f(pB)>f(pA),选择松弛操作算法,确定节点6和7的路径,节点6及节点7已确定路径长度分别为g(6)=4,g(7)=5,更新松弛操作集为{6,7}。
松弛操作集中节点的启发路径长度为:f(6)=g(6)+h(6)=4+1=5,f(7)=g(7)+h(7)=5+9=14,松弛操作集中优秀节点为节点6,f(6)<f(pB)且g(6)=4大于等于累计移动步长3,因此,将节点6加入至待选节点集中,此时,待选节点集为{6},第一节点集为{2,4}。第一节点集+待选节点集大于N,因此,需将第一节点集+待选节点集中启发路径长度最大的节点4移动至松弛操作集中,此时,松弛操作集为{7,4},待选节点集为{6},第一节点集为{2}。
第五次循环:计算边缘节点的启发路径长度。
边缘节点包括节点2、节点6、节点4及节点7,节点2的启发路径长度为f(2)=g(2)+h(2)=2+2=4,节点6的启发路径长度为f(6)=g(6)+h(6)=4+1=5,节点4的启发路径长度为f(4)=g(4)+h(4)=3+5=8,节点7的启发路径长度为f(7)=g(7)+h(7)=5+9=14。
从第一节点集及待选节点集中选择节点pB=6,从松弛操作集中无法筛选出节点pA=4。f(pB)<f(pA),选择小步算法,节点8为距离迭代起点最近且未确定最短路径的邻接节点,确定节点8的最短路径,其已确定路径长度为g(8)=6,更新第一节点集为{2}。
移动至迭代终点为8,此时找到了一条到达迭代终点的最短路径。因为f(2)=4<=g(8),还需要继续执行下一次循环。
第六次循环:计算边缘节点的启发路径长度。
边缘节点包括节点2、节点7及节点4,节点2的启发路径长度为f(2)=g(2)+h(2)=2+2=4,节点4的启发路径长度为f(4)=g(4)+h(4)=3+5=8,节点7的启发路径长度为f(7)=g(7)+h(7)=5+9=14。
按照前述循环过程继续迭代,直到待选节点集、松弛操作集和第一节点集中所有节点的f值都大于g(8)。
本文一实施例中,为了避免出现无效迭代进而影响最小路径的寻找速度,上述步骤S242确定第一节点的相关信息之后还包括:
判断是否至少两个第一节点的相关信息中存在相同的第二节点;
若是,则比较具有相同第二节点的第一节点的第二节点预计最短路径长度;
若第一节点的第二节点预计最短路径长度不同,则仅保留最小第二节点预计最短路径长度的第一节点的相关信息,为其它第一节点重新确定相关信息。
本文一实施例中,为了避免遗漏最短路径的情况发生,小步算法还包括:
根据各第一节点的有序邻接边线性表,确定第三节点,其中,第三节点为正确认最短路径或已确认最短路径的节点;
如果该第一节点的已确定路径长度与该第一节点与其第三节点之间邻接边的权重之和等于该第三节点的已确定路径长度,则把所述第三节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路;否则,
如果该第一节点的已确定路径长度与该第一节点与其第三节点之间邻接边的权重之和等于第一节点集关联的累计移动步长,则把所述第三节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路,将该第三节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
本文一实施例中,为了提高最短路径的确定效率,还提供一种任务并行分布式***,该分布式***可由多个集群设备同时处理多个单目标节点最短路径确定任务和单源节点最短路径确定任务,将各任务中的不同计算过程使用集群或并行计算方式实现。
基于同一发明构思,本文还提供一种基于知识图谱最短路径的信息获取装置,如下面的实施例。由于基于知识图谱最短路径的信息获取装置解决问题的原理与基于知识图谱最短路径的信息获取方法相似,因此基于知识图谱最短路径的信息获取装置的实施可以参见基于知识图谱最短路径的信息获取方法,重复之处不再赘述。
具体的,如图7所示,一种基于知识图谱最短路径的信息获取装置包括:
初始化单元701,用于根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径;
最短路径确定单元702,用于将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集;
循环控制单元703,用于重复启动所述最短路径确定单元702,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关;
信息获取单元704,用于根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求。
如图8所示,基于知识图谱最短路径的信息获取装置包括:
初始化单元801,用于根据最短路径查找策略及用户请求中的源节点和目标节点,初始地设定迭代起点及边缘节点,边缘节点包括已确定最短路径且有未确定最短路径的邻接节点的第一节点集中节点、可加入第一节点集的未确定最短路径的待选节点集中节点、通过松弛操作得到路径但未确定最短路径的松弛操作集中节点;初始地设定第一节点集包括迭代起点并确定其最短路径,待选节点集及松弛操作集为空;初始地设定迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大;
计算单元802,用于计算边缘节点的启发路径长度,其中,边缘节点的启发路径长度为从迭代起点到迭代终点经过边缘节点的路径长度;
筛选单元803,用于根据所述启发路径长度和边缘节点已确定路径长度,从第一节点集及待选节点集中筛选出启发路径长度最大的节点中已确定路径长度最小的节点pB,从松弛操作集中筛选出启发路径长度最小的节点中已确定路径长度最大的节点pA;
算法选择单元804,用于如果松弛操作集为空或节点pB的启发路径长度小于节点pA的启发路径长度,或节点pB的启发路径长度等于节点pA的启发路径长度且节点pB的已确定路径长度大于等于节点pA的已确定路径长度,则执行如下小步算法:从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集及新增第一节点的已确定路径长度;
否则,基于松弛操作计算所述松弛操作集中节点pA的所有邻接节点的路径并更新所述松弛操作集及新增松弛节点的已确定路径长度;
节点移动单元805,用于从松弛操作集中筛选出优秀节点移动至待选节点集中,所述优秀节点为松弛操作集启发路径长度最小的节点中已确定路径长度最大的节点pA2;
当所述第一节点集及待选节点集中节点数量大于第二预定值时,从所述第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中;
循环控制单元806,用于重复启动计算单元、筛选单元、算法选择单元及节点移动单元,直至找到从源节点到目标节点的最短路径且边缘节点的启发路径长度都大于从源节点到目标节点的最短路径的长度;
信息获取单元807,用于根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应用户请求。
本文一实施例中,还提供一种计算机设备,如图9所示,计算机设备902包括存储器906、处理器904及存储在存储器906上并可在处理器904上运行的计算机程序,处理器904执行计算机程序时实现前述任一实施例所述方法。处理器904诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。存储器906用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器906可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备902的固定或可移除部件。在一种情况下,当处理器904执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备902可以执行相关联指令的任一操作。计算机设备902还包括用于与任何存储器交互的一个或多个驱动机构908,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备902还可以包括输入/输出模块910(I/O),其用于接收各种输入(经由输入设备912)和用于提供各种输出(经由输出设备914))。一个具体输出机构可以包括呈现设备916和相关联的图形用户接口918(GUI)。在其他实施例中,还可以不包括输入/输出模块910(I/O)、输入设备912以及输出设备914,仅作为网络中的一台计算机设备。计算机设备902还可以包括一个或多个网络接口920,其用于经由一个或多个通信链路922与其他设备交换数据。一个或多个通信总线924将上文所描述的部件耦合在一起。
通信链路922可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路922可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
对应于图1至图2、图4至图5中的方法,本文实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法的步骤。
本文实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如图1至图2、图4至图5所示的方法。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本文所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本文的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本文各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本文中应用了具体实施例对本文的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本文的方法及其核心思想;同时,对于本领域的一般技术人员,依据本文的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本文的限制。
Claims (22)
1.一种基于知识图谱最短路径的信息获取方法,其特征在于,所述知识图谱中包括多个节点及节点间邻接边,所述节点间邻接边权重表示节点间距离,所述方法包括:
S11,根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径;
S12,将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集;
S13,重复上述步骤S12,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关;
S14,根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求;
步骤S12中从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径包括:
S121,为所述第一节点集中未确定相关信息的第一节点确定相关信息并从所述第一节点集中移除无相关信息的第一节点,所述第一节点的相关信息包括:第二节点、待处理邻接边及第二节点预计最短路径长度;所述待处理邻接边为所述第一节点与其未确定最短路径的邻接节点之间的所有邻接边中满足如下条件的邻接边:该邻接边权重为所述所有邻接边的最小值,且该邻接边权重与所述第一节点的已确定路径长度之和大于第一节点集关联的累计移动步长;所述第二节点为所述待处理邻接边的非第一节点;所述第二节点预计最短路径长度等于所述待处理邻接边的权重加上所述第一节点的已确定路径长度;
S122,从第一节点集中筛选出第二节点预计最短路径长度最小的第一节点;
S123,筛选出的第一节点相关的第二节点为距离迭代起点最近的邻接节点;
S124,更新第一节点集关联的累计移动步长为所述筛选出的第一节点关联的第二节点预计最短路径长度;
S125,对所述筛选出的每一第一节点相关的第二节点及待处理邻接边及第二节点预计最短路径长度,执行如下处理:
S1251,当该第二节点预计最短路径长度等于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点;
S1252,当该第二节点预计最短路径长度小于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点,将该第二节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
2.如权利要求1所述的方法,其特征在于,若所述最短路径查找策略为单源查找,则设置用户请求中的源节点为迭代起点,从源节点开始执行步骤S12及步骤S13,所述所有期望最短路径的确定条件为所有已确定最短路径的节点没有未确定最短路径的邻接节点;
若所述最短路径查找策略为单源单目标正向查找,则设置用户请求中的源节点为迭代起点,按照源节点至目标节点的正向查找方向执行步骤S12及步骤S13;
若所述最短路径查找策略为单源单目标反向查找,则设置用户请求中的目标节点为迭代起点,按照源节点至目标节点的反向查找方向执行步骤S12及步骤S13;
若所述最短路径查找策略为单源单目标双向查找,则设置用户请求中的源节点和目标节点为迭代起点,按照源节点至目标节点的正向查找方向及按照目标节点至源节点的反向查找方向分别执行步骤S12及步骤S13;
对于单源单目标正向查找、单源单目标反向查找及单源单目标双向查找,为各查找方向的已确定最短路径的节点关联各查找方向的迭代起点,为源节点和目标节点关联自身,所述所有期望最短路径的确定条件为存在节点同时关联源节点和目标节点。
3.如权利要求1所述的方法,其特征在于,节点的最短路径包括:节点的前驱节点及节点已确定路径长度;
所述节点已确定路径长度等于所述节点的前驱节点已确定路径长度加上所述节点与所述节点的前驱节点间邻接边权重之和,所述节点至少包括一个前驱节点;
S11中初始地设定迭代起点并确定其最短路径包括:设定迭代起点的前驱节点为空,迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据各第一节点的有序邻接边线性表,确定第三节点;
如果该第一节点的已确定路径长度与该第一节点与其第三节点之间邻接边的权重之和等于该第三节点的已确定路径长度,则把所述第三节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路;否则,
如果该第一节点的已确定路径长度与该第一节点与其第三节点之间邻接边的权重之和等于第一节点集关联的累计移动步长,则把所述第三节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路,将该第三节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
5.如权利要求1或4所述的方法,其特征在于,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径包括:
所述后继节点的新增最短路径的前驱节点为所述第一节点;
所述后继节点的新增最短路径长度为所述第一节点与所述后继节点间邻接边的权重加上所述第一节点的已确定路径长度。
6.如权利要求1或4所述的方法,其特征在于,确定第一节点的相关信息之后还包括:
判断是否至少两个第一节点的相关信息中存在相同的第二节点;
若是,则比较具有相同第二节点的第一节点的第二节点预计最短路径长度;
若第一节点的第二节点预计最短路径长度不同,则仅保留最小第二节点预计最短路径长度的第一节点的相关信息,为其它第一节点重新确定相关信息。
7.一种基于知识图谱最短路径的信息获取方法,其特征在于,所述知识图谱中包括多个节点及节点间邻接边,所述节点间邻接边权重表示节点间距离,所述方法包括:
S21,根据最短路径查找策略及用户请求中的源节点和目标节点,初始地设定迭代起点及边缘节点,边缘节点包括已确定最短路径且有未确定最短路径的邻接节点的第一节点集中节点、可加入第一节点集的未确定最短路径的待选节点集中节点、通过松弛操作得到路径但未确定最短路径的松弛操作集中节点;初始地设定第一节点集包括迭代起点并确定其最短路径,待选节点集及松弛操作集为空;初始地设定迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大;
S22,计算边缘节点的启发路径长度,其中,边缘节点的启发路径长度为从迭代起点到迭代终点经过边缘节点的路径长度;
S23,根据所述启发路径长度和边缘节点已确定路径长度,从第一节点集及待选节点集中筛选出启发路径长度最大的节点中已确定路径长度最小的节点pB,从松弛操作集中筛选出启发路径长度最小的节点中已确定路径长度最大的节点pA;
S24,如果松弛操作集为空或节点pB的启发路径长度小于节点pA的启发路径长度,或节点pB的启发路径长度等于节点pA的启发路径长度且节点pB的已确定路径长度大于等于节点pA的已确定路径长度,则执行如下小步算法:从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集;
否则,基于松弛操作计算所述松弛操作集中节点pA的所有邻接节点的路径并更新所述松弛操作集;
S25,从松弛操作集中筛选出优秀节点移动至待选节点集中,所述优秀节点为松弛操作集中启发路径长度最小的节点中已确定路径长度最大的节点pA2;
当所述第一节点集及待选节点集中节点数量大于第二预定值时,从所述第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中;
S26,重复以上步骤S22至步骤S25的过程,直至找到从源节点到目标节点的最短路径且边缘节点的启发路径长度都大于从源节点到目标节点的最短路径的长度;
S27,根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应用户请求;
步骤S24中从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径包括:
S241,当所述第一节点集为空时,将待选节点集中已确定路径长度最小的节点移动至所述第一节点集并设置所述第一节点集关联的累计移动步长为移动节点的已确定路径长度;
S242,为所述第一节点集中未确定相关信息的第一节点确定相关信息并从所述第一节点集中移除无相关信息的第一节点,所述第一节点的相关信息包括:第二节点、待处理邻接边及第二节点预计最短路径长度;所述待处理邻接边为所述第一节点与其未确定最短路径的邻接节点之间的所有邻接边中满足如下条件的邻接边:该邻接边权重为所述所有邻接边的最小值,且该邻接边权重与所述第一节点的已确定路径长度之和大于第一节点集关联的累计移动步长;所述第二节点为所述待处理邻接边的非第一节点;所述第二节点预计最短路径长度等于所述待处理邻接边的权重加上所述第一节点的已确定路径长度;
S243,从所述第一节点集中筛选出第二节点预计最短路径长度最小的第一节点;根据所述筛选出的第一节点,从待选节点集中选择节点移动至第一节点集中;
S244,筛选出的第一节点相关的第二节点为距离迭代起点最近的邻接节点;
S245,更新第一节点集关联的累计移动步长为所述筛选出的第一节点关联的第二节点预计最短路径长度;
S246,对所述筛选出的每一第一节点相关的第二节点、待处理邻接边及第二节点预计最短路径长度,执行如下处理:
S2461,当该第二节点预计最短路径长度等于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点;
S2462,当该第二节点预计最短路径长度小于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点,将该第二节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
8.如权利要求7所述的方法,其特征在于,若所述最短路径查找策略为单源单目标正向查找,迭代起点为源节点,按照源节点至目标节点的正向查找方向执执行步骤S22至步骤S25;
若所述最短路径查找策略为单源单目标反向查找,迭代起点为目标节点,按照源节点至目标节点的反向查找方向执行步骤S22至步骤S25;
若所述最短路径查找策略为单源单目标双向查找,迭代起点为源节点和目标节点,按照源节点至目标节点的正向查找方向及按照目标节点至源节点的反向查找方向分别执行步骤S22至步骤S25;
为各查找方向的已确定最短路径的节点关联各查找方向的迭代起点,为源节点和目标节点关联自身,从源节点到目标节点的最短路径的确定条件为存在节点同时关联源节点和目标节点。
9.如权利要求7所述的方法,其特征在于,步骤S25中从所述第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中包括:
按照如下方式确定第一节点集及待选节点集中的优秀节点:按照启发路径长度从小到大、已确定路径长度从大到小的顺序筛选出排名前第二预定值的已确定最短路径的节点;
将第一节点集及待选节点集中的非优秀节点移动至松弛操作集中。
10.如权利要求9所述的方法,其特征在于,所述第二预定值确定策略包括:
根据局部或全部知识图谱数据,设定固定的第二预定值;或
根据迭代起点和迭代终点的不同,设定固定的第二预定值;或
根据知识图谱数据与应用场景设计第二预定值的上限和下限,第二预定值初始化时可设为下限和上限之间的一个值,根据下述策略动态调整第二预定值:在每个连续的K0次迭代中,如果松弛操作集向待选节点集移动的节点数量小于K1,第二预定值降低M,如果松弛操作集向待选节点集移动的节点数量大于K2,第二预定值增加M,其中,K0、K1、M为正整数。
11.如权利要求9所述的方法,其特征在于,还包括:
当所述第一节点集发生变化时,从松弛操作集和待选节点集中移出第一交集节点,其中,所述第一交集节点为第一节点集与松弛操作集和待选节点集的交集节点;
当所述松弛操作集发生变化时,从第一节点集和待选节点集中移出第二交集节点,其中,所述第二交集节点为松弛操作集与第一节点集和待选节点集的交集节点。
12.如权利要求7所述的方法,其特征在于,节点的最短路径包括:节点的前驱节点及节点的已确定路径长度;
迭代起点的前驱节点为空;
所述节点已确定路径长度等于所述节点的前驱节点已确定路径长度加上所述节点与所述节点的前驱节点间邻接边权重之和,所述节点至少包括一个前驱节点。
13.如权利要求7所述的方法,其特征在于,所述边缘节点的启发路径长度利用如下公式计算:
f(n)=g(n)+h(n);
其中,f(n)为边缘节点n的启发路径长度,n为边缘节点,h(n)为边缘节点n到达迭代终点的预测路径长度,h为估计函数,g(n)为边缘节点n距离迭代起点的已确定路径长度。
14.如权利要求7所述方法,其特征在于,步骤S21中初始地设定第一节点集包括迭代起点时,还设定第一节点集关联的累计移动步长为零;
步骤S24中还更新第一节点集关联的累计移动步长;
步骤S25中从松弛操作集中筛选出优秀节点移动至待选节点集中的执行条件包括:
所述第一节点集和待选节点集为空;或
所述优秀节点的启发路径长度小于所述第一节点集和待选节点集中节点最大的启发路径长度且所述优秀节点的已确定路径长度大于或等于第一节点集关联的累计移动步长。
15.如权利要求7所述的方法,其特征在于,步骤S243根据所述筛选出的第一节点,从待选节点集中选择节点移动至第一节点集中包括:
当所述筛选出的第一节点相关的第二节点预计最短路径长度大于或等于待选节点集中节点的最小已确定路径长度时,按照如下步骤将待选节点集中节点移至第一节点集中:
对待选节点集中最小已确定路径长度对应的每一个节点pX,判断所述筛选出的第一节点相关的第二节点中是否包含节点pX,
若否,则将节点pX从待选节点集中移至第一节点集中,为节点pX确定相关信息,其中,节点pX相关的第二节点预计最短路径长度=节点pX的已确定路径长度+节点pX的待处理邻接边的权重,跳转到步骤S243再次执行该步骤,
若是,则把节点pX从待选节点集移除,重复执行上述步骤,直到待选节点集中节点的已确定路径长度都大于所述筛选出的第一节点相关的第二节点预计最短路径长度。
16.如权利要求7所述的方法,其特征在于,所述小步算法还包括:
根据各第一节点的有序邻接边线性表,确定第三节点;
如果该第一节点的已确定路径长度与该第一节点与其第三节点之间邻接边的权重之和等于该第三节点的已确定路径长度,则把所述第三节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路;否则,
如果该第一节点的已确定路径长度与该第一节点与其第三节点之间邻接边的权重之和等于第一节点集关联的累计移动步长,则把所述第三节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路,将该第三节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
17.如权利要求7或16所述的方法,其特征在于,确定第一节点的相关信息之后还包括:
判断是否至少两个第一节点的相关信息中存在相同的第二节点;
若是,则比较具有相同第二节点的第一节点的第二节点预计最短路径长度;
若第一节点的第二节点预计最短路径长度不同,则仅保留最小第二节点预计最短路径长度的第一节点的相关信息,为其它第一节点重新确定相关信息。
18.如权利要求7或16所述的方法,其特征在于,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径包括:
所述后继节点的新增最短路径的前驱节点为所述第一节点;
所述后继节点的新增最短路径长度为所述第一节点与所述后继节点间邻接边的权重加上所述第一节点的已确定路径长度。
19.一种基于知识图谱最短路径的信息获取装置,其特征在于,所述知识图谱中包括多个节点及节点间邻接边,所述节点间邻接边权重表示节点间距离,所述装置包括:
初始化单元,用于根据最短路径查找策略及用户请求中的节点,初始地设定迭代起点并确定其最短路径;
最短路径确定单元,用于将已确定最短路径且有未确定最短路径的邻接节点的节点作为第一节点组成第一节点集,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集;
循环控制单元,用于重复启动所述最短路径确定单元,直至找到所有期望最短路径为止,其中,所述期望最短路径与最短路径查找策略相关;
信息获取单元,用于根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应所述用户请求;
其中,从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径包括:
S121,为所述第一节点集中未确定相关信息的第一节点确定相关信息并从所述第一节点集中移除无相关信息的第一节点,所述第一节点的相关信息包括:第二节点、待处理邻接边及第二节点预计最短路径长度;所述待处理邻接边为所述第一节点与其未确定最短路径的邻接节点之间的所有邻接边中满足如下条件的邻接边:该邻接边权重为所述所有邻接边的最小值,且该邻接边权重与所述第一节点的已确定路径长度之和大于第一节点集关联的累计移动步长;所述第二节点为所述待处理邻接边的非第一节点;所述第二节点预计最短路径长度等于所述待处理邻接边的权重加上所述第一节点的已确定路径长度;
S122,从第一节点集中筛选出第二节点预计最短路径长度最小的第一节点;
S123,筛选出的第一节点相关的第二节点为距离迭代起点最近的邻接节点;
S124,更新第一节点集关联的累计移动步长为所述筛选出的第一节点关联的第二节点预计最短路径长度;
S125,对所述筛选出的每一第一节点相关的第二节点及待处理邻接边及第二节点预计最短路径长度,执行如下处理:
S1251,当该第二节点预计最短路径长度等于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点;
S1252,当该第二节点预计最短路径长度小于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点,将该第二节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
20.一种基于知识图谱最短路径的信息获取装置,其特征在于,所述知识图谱中包括多个节点及节点间邻接边,所述节点间邻接边权重表示节点间距离,所述装置包括:
初始化单元,用于根据最短路径查找策略及用户请求中的源节点和目标节点,初始地设定迭代起点及边缘节点,边缘节点包括已确定最短路径且有未确定最短路径的邻接节点的第一节点集中节点、可加入第一节点集的未确定最短路径的待选节点集中节点、通过松弛操作得到路径但未确定最短路径的松弛操作集中节点;初始地设定第一节点集包括迭代起点并确定其最短路径,待选节点集及松弛操作集为空;初始地设定迭代起点的已确定路径长度为零,其余节点的已确定路径长度为无穷大;
计算单元,用于计算边缘节点的启发路径长度,其中,边缘节点的启发路径长度为从迭代起点到迭代终点经过边缘节点的路径长度;
筛选单元,用于根据所述启发路径长度和边缘节点已确定路径长度,从第一节点集及待选节点集中筛选出启发路径长度最大的节点中已确定路径长度最小的节点pB,从松弛操作集中筛选出启发路径长度最小的节点中已确定路径长度最大的节点pA;
算法选择单元,用于如果松弛操作集为空或节点pB的启发路径长度小于节点pA的启发路径长度,或节点pB的启发路径长度等于节点pA的启发路径长度且节点pB的已确定路径长度大于等于节点pA的已确定路径长度,则执行如下小步算法:从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径并更新第一节点集;
否则,基于松弛操作计算所述松弛操作集中节点pA的所有邻接节点的路径并更新所述松弛操作集;
节点移动单元,用于从松弛操作集中筛选出优秀节点移动至待选节点集中,所述优秀节点为松弛操作集中启发路径长度最小的节点中已确定路径长度最大的节点pA2;
当所述第一节点集及待选节点集中节点数量大于第二预定值时,从所述第一节点集及待选节点集中筛选出超出第二预定值的节点移动至松弛操作集中;
循环控制单元,用于重复启动计算单元、筛选单元、算法选择单元及节点移动单元,直至找到从源节点到目标节点的最短路径且边缘节点的启发路径长度都大于从源节点到目标节点的最短路径的长度;
信息获取单元,用于根据各节点的最短路径,从知识图谱获取信息并根据获取的信息响应用户请求;
从第一节点集中第一节点的未确定最短路径的邻接节点中,选择距离迭代起点最近的邻接节点确定最短路径包括:
S241,当所述第一节点集为空时,将待选节点集中已确定路径长度最小的节点移动至所述第一节点集并设置所述第一节点集关联的累计移动步长为移动节点的已确定路径长度;
S242,为所述第一节点集中未确定相关信息的第一节点确定相关信息并从所述第一节点集中移除无相关信息的第一节点,所述第一节点的相关信息包括:第二节点、待处理邻接边及第二节点预计最短路径长度;所述待处理邻接边为所述第一节点与其未确定最短路径的邻接节点之间的所有邻接边中满足如下条件的邻接边:该邻接边权重为所述所有邻接边的最小值,且该邻接边权重与所述第一节点的已确定路径长度之和大于第一节点集关联的累计移动步长;所述第二节点为所述待处理邻接边的非第一节点;所述第二节点预计最短路径长度等于所述待处理邻接边的权重加上所述第一节点的已确定路径长度;
S243,从所述第一节点集中筛选出第二节点预计最短路径长度最小的第一节点;根据所述筛选出的第一节点,从待选节点集中选择节点移动至第一节点集中;
S244,筛选出的第一节点相关的第二节点为距离迭代起点最近的邻接节点;
S245,更新第一节点集关联的累计移动步长为所述筛选出的第一节点关联的第二节点预计最短路径长度;
S246,对所述筛选出的每一第一节点相关的第二节点、待处理邻接边及第二节点预计最短路径长度,执行如下处理:
S2461,当该第二节点预计最短路径长度等于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点;
S2462,当该第二节点预计最短路径长度小于该第二节点的已确定路径长度时,把所述第二节点作为后继节点,根据所述第一节点及其所述后继节点为所述后继节点新增一条最短路径,确定该第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该第一节点,将该第二节点新增为第一节点加入至所述第一节点集中,确定新增第一节点的相关信息,若无相关信息,则从所述第一节点集中移除该新增第一节点。
21.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至18任一项所述方法。
22.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1至18任一项所述方法的指令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058393.2A CN116319518B (zh) | 2022-08-31 | 2022-08-31 | 一种基于知识图谱最短路径的信息获取方法及装置 |
PCT/CN2023/110611 WO2024046013A1 (zh) | 2022-08-31 | 2023-08-01 | 一种基于知识图谱最短路径的信息获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058393.2A CN116319518B (zh) | 2022-08-31 | 2022-08-31 | 一种基于知识图谱最短路径的信息获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116319518A CN116319518A (zh) | 2023-06-23 |
CN116319518B true CN116319518B (zh) | 2024-02-20 |
Family
ID=86831055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211058393.2A Active CN116319518B (zh) | 2022-08-31 | 2022-08-31 | 一种基于知识图谱最短路径的信息获取方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116319518B (zh) |
WO (1) | WO2024046013A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319518B (zh) * | 2022-08-31 | 2024-02-20 | 王举范 | 一种基于知识图谱最短路径的信息获取方法及装置 |
CN116562488B (zh) * | 2023-07-05 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 导流岛生成方法、装置、计算机设备、介质和程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015052680A1 (en) * | 2013-10-11 | 2015-04-16 | Telefonaktiebolaget L M Ericsson (Publ) | High performance lfa path algorithms |
CN106096783A (zh) * | 2016-06-13 | 2016-11-09 | Tcl集团股份有限公司 | 一种基于Dijkstra的路径优化方法及其*** |
CN113781817A (zh) * | 2021-09-28 | 2021-12-10 | 合肥工业大学 | 一种基于共用计算的城市路网多源最短路径获取方法 |
WO2022048368A1 (zh) * | 2020-09-02 | 2022-03-10 | 深圳壹账通智能科技有限公司 | 基于知识图谱的推荐方法、装置、计算机设备及存储介质 |
CN114860886A (zh) * | 2022-05-25 | 2022-08-05 | 北京百度网讯科技有限公司 | 生成关系图的方法和确定匹配关系的方法、装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5502802B2 (ja) * | 2011-06-02 | 2014-05-28 | 日本電信電話株式会社 | 経路決定装置および経路決定方法 |
CN102662974B (zh) * | 2012-03-12 | 2014-02-26 | 浙江大学 | 一种基于邻接节点树的网络图索引方法 |
US9547823B2 (en) * | 2014-12-31 | 2017-01-17 | Verizon Patent And Licensing Inc. | Systems and methods of using a knowledge graph to provide a media content recommendation |
JP7276116B2 (ja) * | 2019-12-20 | 2023-05-18 | 富士通株式会社 | データ生成プログラム、情報処理装置およびデータ生成方法 |
CN113808424B (zh) * | 2021-09-28 | 2022-07-05 | 合肥工业大学 | 基于双向Dijkstra的城市路网K条最短路径的获取方法 |
CN114896377A (zh) * | 2022-04-07 | 2022-08-12 | 东南大学 | 一种基于知识图谱的答案获取方法 |
CN116319518B (zh) * | 2022-08-31 | 2024-02-20 | 王举范 | 一种基于知识图谱最短路径的信息获取方法及装置 |
-
2022
- 2022-08-31 CN CN202211058393.2A patent/CN116319518B/zh active Active
-
2023
- 2023-08-01 WO PCT/CN2023/110611 patent/WO2024046013A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015052680A1 (en) * | 2013-10-11 | 2015-04-16 | Telefonaktiebolaget L M Ericsson (Publ) | High performance lfa path algorithms |
CN106096783A (zh) * | 2016-06-13 | 2016-11-09 | Tcl集团股份有限公司 | 一种基于Dijkstra的路径优化方法及其*** |
WO2022048368A1 (zh) * | 2020-09-02 | 2022-03-10 | 深圳壹账通智能科技有限公司 | 基于知识图谱的推荐方法、装置、计算机设备及存储介质 |
CN113781817A (zh) * | 2021-09-28 | 2021-12-10 | 合肥工业大学 | 一种基于共用计算的城市路网多源最短路径获取方法 |
CN114860886A (zh) * | 2022-05-25 | 2022-08-05 | 北京百度网讯科技有限公司 | 生成关系图的方法和确定匹配关系的方法、装置 |
Non-Patent Citations (1)
Title |
---|
动态图上的最短路径距离并行算法;韩硕;邹磊;;北京大学学报(自然科学版)(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2024046013A1 (zh) | 2024-03-07 |
CN116319518A (zh) | 2023-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116319518B (zh) | 一种基于知识图谱最短路径的信息获取方法及装置 | |
CN111149117B (zh) | 机器学习和深度学习模型的基于梯度的自动调整 | |
Bertsekas | Rollout algorithms for discrete optimization: A survey | |
JP6816078B2 (ja) | 拡張可能なマルチ車両タスクのためのシステムおよび方法 | |
US10728103B2 (en) | Edge device resourcing using recursive ledger chaining | |
Onwubolu et al. | Optimal path for automated drilling operations by a new heuristic approach using particle swarm optimization | |
JP5650921B2 (ja) | 大きな符号化サイズを有するグラフ探索問題への適用において幅優先探索戦略と深さ優先探索戦略とを組み合わせるシステム及び方法 | |
Blot et al. | MO-ParamILS: A multi-objective automatic algorithm configuration framework | |
AU2020252872A1 (en) | Adaptive error correction in quantum computing | |
Li et al. | Multi-objective differential evolution with adaptive control of parameters and operators | |
Zhang et al. | Robust scheduling with gflownets | |
CN112632744B (zh) | 基于超网络模型的作战体系架构建模方法及空间探索方法 | |
Qu et al. | Efficient shortest-path-tree computation in network routing based on pulse-coupled neural networks | |
KR20220064866A (ko) | 코스-파인 검색, 2-페이즈 블록 증류, 그리고 뉴럴 하드웨어 예측기를 이용한 하드웨어 및 뉴럴 네트워크 아키텍처들의 공동 설계를 위한 방법 | |
Chouhan et al. | DiMPP: a complete distributed algorithm for multi-agent path planning | |
Kim et al. | Improved max-sum algorithm for dcop with n-ary constraints | |
Kucharska et al. | Extended learning method for designation of co-operation | |
Feldmann et al. | Optimal on-line scheduling of parallel jobs with dependencies | |
JP5845716B2 (ja) | 巡回路決定のためのプログラム、情報処理方法及び装置 | |
CN110233763B (zh) | 一种基于时序差分学习的虚拟网络嵌入算法 | |
Sirocchi et al. | Topological network features determine convergence rate of distributed average algorithms | |
CN116319517A (zh) | 一种最短路径确定方法及装置 | |
Nagy et al. | The maximum flow problem: A real-time approach | |
Workneh et al. | Learning to schedule (L2S): Adaptive job shop scheduling using double deep Q network | |
CN115700641A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |