【发布时间】:2020-01-25 08:58:13
【问题描述】:
我需要找到应该通过多个节点和边的最短路径。一些细节:
- 应该是根据权重的最短路径。
- 包含集可以有序和无序。
- 图形大小 - 50 000 个顶点和 450 0000 个边
有没有办法使用 arangodb 找到这样的路径? 我已经尝试过 K_SHORTEST_PATHS,但在某些情况下它太慢了。
【问题讨论】:
标签: arangodb
我需要找到应该通过多个节点和边的最短路径。一些细节:
有没有办法使用 arangodb 找到这样的路径? 我已经尝试过 K_SHORTEST_PATHS,但在某些情况下它太慢了。
【问题讨论】:
标签: arangodb
没有数据集,这很难测试。不幸的是,K_SHORTEST_PATHS 是向边缘添加“权重”的唯一内置方法,除非您自己构建一些东西。另外,SHORTEST_PATH 两种方法都没有实现PRUNE,这是加速图遍历的最佳方式。
我的建议是使用有向图方法 (FOR v,e,p IN 1..9 INBOUND x...),同时实现 PRUNE 和 FILTER 子句以减少跳数,并使用类似 COLLECT path = p AGGREGATE weight = SUM(e.weight) 的方法来计算重量。
【讨论】: