neo4j路径发现算法(Path finding algorithms)-4.The All Pairs Shortest Path algorithm

一. 介绍
  所有对最短路径(APSP)计算所有节点对之间的最短路径(加权)。此算法具有优化功能,使其比为图中的每对节点调用单一源最短路径算法更快。

二.neo4j算法

CALL
algo.allShortestPaths.stream('cost',{nodeQuery:'Loc',defaultValue:1.0,graph:'huge'})
YIELD sourceNodeId, targetNodeId, distance
RETURN sourceNodeId, targetNodeId, distance LIMIT 10

三.实例

MERGE (a:Loc {name:'A'})
MERGE (b:Loc {name:'B'})
MERGE (c:Loc {name:'C'})
MERGE (d:Loc {name:'D'})
MERGE (e:Loc {name:'E'})
MERGE (f:Loc {name:'F'})
MERGE (a)-[:ROAD {cost:50}]->(b)
MERGE (a)-[:ROAD {cost:50}]->(c)
MERGE (a)-[:ROAD {cost:100}]->(d)
MERGE (b)-[:ROAD {cost:40}]->(d)
MERGE (c)-[:ROAD {cost:40}]->(d)
MERGE (c)-[:ROAD {cost:80}]->(e)
MERGE (d)-[:ROAD {cost:30}]->(e)
MERGE (d)-[:ROAD {cost:80}]->(f)
MERGE (e)-[:ROAD {cost:40}]->(f);

在这里插入图片描述

call algo.allShortestPaths.stream('cost',{nodeQuery:'Loc',defaultValue:1.0})
yield sourceNodeId,targetNodeId,distance
with sourceNodeId,targetNodeId,distance
where algo.isFinite(distance) = true

match(source:Loc) where id(source) = sourceNodeId
match(target:Loc) where id(target)=targetNodeId
with source,target,distance where source <> target

return source.name as source ,target.name as target ,distance
order by distance desc
limit 10

其中isFinite是来过滤无穷值,因为在图中有点节点之间是不可达的,所以他们之间不存在最短路径,故会返回无穷值,但在cypher中不支持无穷值,故采用isFinite来过滤。

在这里插入图片描述在我的结果中,与官方文档中所呈现的结果不一致,不知道是哪一个出现了错误,在官方文档中A—F得出的结果是100,故我重新使用单源最短路径计算了A—F的距离,所得的结果与我上图中的结果一致,单源结果如下所示:

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
neo4j-community-4.4.21-windows是一个用于Windows操作系统的neo4j图形数据库的发布版本。 首先,要下载neo4j-community-4.4.21-windows,您可以访问neo4j官方网站(https://neo4j.com)或使用GitHub上的Neo4j存储库(https://github.com/neo4j/neo4j/releases)。 在neo4j官方网站上,您可以找到"Download"按钮或类似的链接,点击后会跳转到下载页面。在下载页面上,您可以找到与您的操作系统兼容的文件,如Windows安装程序。点击相应的下载链接,即可开始下载neo4j-community-4.4.21-windows。 在GitHub上,您可以找到标有"Releases"的选项卡,并在其中找到与您的操作系统兼容的文件列表。在文件列表中,找到你想要下载的版本(在这种情况下是neo4j-community-4.4.21-windows),点击下载链接即可开始下载。 下载完成后,您可以在您选择保存的位置找到下载的ZIP或EXE文件。点击或双击该文件,根据您的操作系统的要求运行安装程序。遵循安装向导的说明进行安装。 安装过程可能需要一些时间,取决于您的计算机的性能和当前的网络连接速度。完成安装后,您可以启动neo4j-community-4.4.21-windows,并通过浏览器访问neo4j的图形用户界面。您可以在这个界面上使用图形数据库的功能和特性。 总结来说,要下载neo4j-community-4.4.21-windows,您需要访问neo4j官方网站或GitHub的Neo4j存储库,找到与您的操作系统兼容的文件,点击下载链接,然后按照安装向导的说明进行安装。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值