gpt4 book ai didi

java - Neo4j 中的 Dijkstra 变体 - 查找所有路径

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:00:47 25 4
gpt4 key购买 nike

我正在使用 Neo4J 来了解度假目的地的受欢迎程度,根据某人去过的地方以及他们接下来可能会根据与他们有类似旅行计划的人感兴趣的内容来了解​​。

我有一个 Neo4 数据库,其中有节点,表示位置和关系,表示它们来自哪里然后去了哪里。

例如,我有一个“威尼斯”->“罗马”,计数为 300。

现在我想了解创建的路径,以预测人们可能会去的 10 个位置的路径:“威尼斯”->“罗马”->“维也纳”->“巴塞罗那”-> “马德里” -> ...

这个项目的目标:

  • 我想了解任意两个节点(所有节点对)之间的所有路径
  • 限制路径的最大长度为 10,但如果找到,也应该获取路径,长度为 4 等。
  • 使用 Dijiktra 的 - 但一个侧重于选择最大计数的版本 - 我应该反转计数吗?

我一直在研究遍历所有节点的迭代,然后找到与另一个节点的路径。这将涉及嵌套的 for 循环和 Dijkstra 的一些变体。

已经讨论过如何获取所有节点here

我的问题是:

  • 这种方法是否合适?
  • 如何创建自己的寻路算法 - 或改变现有算法? - 迪克斯特拉
  • 是否有比通过节点迭代更有效的方法来完成所有这些工作?

最佳答案

我在 http://gist.neo4j.org/?9363884 上放了类似的东西,它显示了如何在节点中保存有关路径的元信息,并用关系类型表示不同的路径。这可能不适用于您想执行的所有路径查询,但可能会给您一些建模提示。

对于所有路径,我会用 Java 编写自己的算法并将其用作服务器插件或直接从 Java 代码使用,请参阅 http://docs.neo4j.org/chunked/stable/server-plugins.html

关于java - Neo4j 中的 Dijkstra 变体 - 查找所有路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22304329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com