.net Microsoft Graphingine LIKQ查询 描述

.net Microsoft Graphingine LIKQ查询 描述,.net,algorithm,graph,graphengine,.net,Algorithm,Graph,Graphengine,我有一个简单的有向图,它有两个末端节点C,E(汇点)和一个起始节点a。我使用的框架是微软的 我的TSL文件如下所示:图形节点由一个NodeItem组成,NodeItem只是一个具有属性Id和名称的容器。该节点具有传出关系的路由和传入关联的INEDGE 我知道有几种图形算法,如A*、Dijkstra、Floyd Warshall、Bellman–Ford等。。。它们都解决了非常具体的遍历问题。到现在为止,一直都还不错。但是现在我想学习如何用。 LIKQ是一种语言集成的知识查询语言。它允许用户通

我有一个简单的有向图,它有两个末端节点C,E(汇点)和一个起始节点a。我使用的框架是微软的

我的TSL文件如下所示:图形节点由一个NodeItem组成,NodeItem只是一个具有属性Id和名称的容器。该节点具有传出关系的路由和传入关联的INEDGE

我知道有几种图形算法,如A*、Dijkstra、Floyd Warshall、Bellman–Ford等。。。它们都解决了非常具体的遍历问题。到现在为止,一直都还不错。但是现在我想学习如何用。 LIKQ是一种语言集成的知识查询语言。它允许用户通过图遍历和lambda表达式实时查询、搜索和使用知识

问题: 我想做的是:找到节点A和C以及节点A和E之间的所有最短路径。这在LIKQ中可能吗

到目前为止,我得到的是:

 List<PathDescriptor> paths = KnowledgeGraph.StartFrom(start)
            .FollowEdge("OutEdges")
            .VisitNode(_ => Action.Continue)
            .FollowEdge("OutEdges")
            .VisitNode(_ => Action.Continue)
            .FollowEdge("OutEdges")
            .VisitNode(_ => Action.Return)
            .ToList();
List path=KnowledgeGraph.StartFrom(开始)
.FollowEdge(“OutEdges”)
.VisitNode(=>Action.Continue)
.FollowEdge(“OutEdges”)
.VisitNode(=>Action.Continue)
.FollowEdge(“OutEdges”)
.VisitNode(=>Action.Return)
.ToList();
我可以从A-B-D-E遍历,但这是一个手动步骤。是否有机会让LIKQ决定如何从节点A开始并获得两条路径(到C和E)作为返回

此外,我想知道BFS或DFS是否可以翻译成LIKQ

希望有人能给黑暗带来光明 提前非常感谢

致以最良好的祝愿,
Phil

目前这有点棘手,扇出搜索算法不能保证发出的遍历步骤的顺序,但较短的路径实际上会提前安排。因此,如果在每个步骤中放置
Action.Continue&Action.Return
,并创建一个全局标志变量,以便在命中目标时,每隔一步切换该位路径阅读可能会停止,然后你可能会得到最短路径。

@Yadli,你能帮我回答这个问题吗?[](