我正在创建一个应用程序,它可以使用不同或指定的公共交通工具(例如火车、公共汽车、电车等)找到用户从A点到B点的所有可能路线。当然允许走边。我使用neo4j存储数据,请您给我一个最短路径的算法,我从来没有使用过多模态图。
发布于 2016-01-12 19:50:14
Cypher ( Neo4j查询语言)有一个名为shortestPath
和allShortestPaths
的函数,可用于查找与给定模式匹配的最短路径。
查看文档这里。例如:
MATCH (martin:Person { name:"Martin Sheen" }),(oliver:Person { name:"Oliver Stone" }),
p = shortestPath((martin)-[*..15]-(oliver))
RETURN p
对于路由,您通常希望考虑成本,通常由关系上的属性表示。有几种路径查找图算法可以与Neo4j一起使用,这些算法将考虑成本。具体来说,Dijkstra算法是通过Neo4j REST公开的。Java提供了更多的图形算法,如这里所描述的。
https://stackoverflow.com/questions/34743253
复制相似问题