java - Neo4j。迪克斯特拉。查找包含一组节点的路径 (graphalgo)

标签 java neo4j dijkstra

现在我正在测试 dijkstra (org.neo4j.graphalgo.impl.shortestpath.*)。您可以在下面看到代码:

 Dijkstra<Double> dijkstra = new Dijkstra<>(0.0,
         startNode,
         endNode,             
         CommonEvaluators.doubleCostEvaluator("weight"),
         new DoubleAdder(),
         new DoubleComparator(),
         Direction.BOTH,
         RelationshipTypes.rel);

如何定义路径中必须包含的节点?有什么想法吗?

最佳答案

您将不得不暴力破解所有可能的路径。只要您不需要包含太多节点,就可以使用这种方法。这基本上是旅行推销员的问题。 你可以做什么:

  • 查找节点的所有排列(以便以所有可能的方式对节点进行排序)
  • 为从第一个节点到第二个节点的每个排列启动最短路径,依此类推
  • 比较所有路径的权重并选择最短的一条

请记住,节点数量应尽可能少,因为 TSP 是一个 NP 难题。因此,不要包含接近 10 个节点。

我已经在 github 上请求了这个功能以及一些代码。 Here is my request.

关于java - Neo4j。迪克斯特拉。查找包含一组节点的路径 (graphalgo),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49030257/

相关文章:

go - 如果关系不存在,则新主义相关

algorithm - 在什么条件下图在删除一些边后将保持连接?

algorithm - 你如何使用 Dijkstra 找到更多的路线?

java - 在 Java 中遍历结果集的有效方法

java - Hibernate NamedQuery,设置值

javascript - 类型错误 : Object #<Object> has no method 'Schema'

algorithm - Dijkstra 路径权重

java - 为什么我的 Android 应用程序崩溃并出现 "Unfortunately myapp stopped"错误?

CollectionOfElements 上的 java.util.ConcurrentModificationException

neo4j 核心 java api 示例项目