Path 如何计算neo4j中的平均路径长度

Path 如何计算neo4j中的平均路径长度,path,neo4j,average,Path,Neo4j,Average,我在neo4j中有1250000个节点,现在我想计算这些节点之间的平均路径长度。有没有一个有效的方法来做到这一点?如果我使用: 对于节点中的x: 对于节点中的y: 卡尔(x,y) 我认为这花费了太多的时间。所以我想要一个更有效的算法。谢谢 嗯, 我会复制图形(例如,在Neo4j HA集群中),然后在每个节点上只运行x的一部分,这样可以并行计算。您可以尝试避免计算在前面步骤中已经计算过的路径(某种程度上类似于动态编程)。例如,假设你有路径x->y->z,而在计算x->z路径时,你会记住路径x->y

我在neo4j中有1250000个节点,现在我想计算这些节点之间的平均路径长度。有没有一个有效的方法来做到这一点?如果我使用: 对于节点中的x: 对于节点中的y: 卡尔(x,y) 我认为这花费了太多的时间。所以我想要一个更有效的算法。谢谢

嗯,
我会复制图形(例如,在Neo4j HA集群中),然后在每个节点上只运行x的一部分,这样可以并行计算。

您可以尝试避免计算在前面步骤中已经计算过的路径(某种程度上类似于动态编程)。例如,假设你有路径x->y->z,而在计算x->z路径时,你会记住路径x->y和y->z,以便以后使用它们


如果使用此方法,可能会达到内存限制,具体取决于服务器配置。

谢谢您的建议!我会做一个测试,它听起来像dijkstra算法。对于长度,我直接使用API,问题是我必须传输节点两次,以了解每对节点的透射率,它的成本仍然太高。我不确定DP是否能解决这个问题…我也不确定,但你可以尝试一下。是的,您仍然有最糟糕的复杂性,但您可以避免重新进行某些工作。谢谢!现在我在获取最大连通子图时遇到了一个问题。我有1250000个节点,我选择已连接的节点并删除未连接的节点。运行程序后,我删除了一些节点,如果我在web admin中使用cypher查看删除的节点,它会说这是一个无效的查询,但在仪表板中它仍然显示我有1250000个节点。看来我根本没有删除节点!你有什么建议吗?你在仪表板上看到的不是节点的数量,而是最后一个id。所以你不应该依赖这些数字。你可以看看关于这个问题的其他回答,比如@user2234995你能分享平均路径长度计算的代码吗?谢谢