多模态graphe算法

时间:2016-01-12 12:05:46

标签: neo4j routing spring-data-neo4j

我正在创建一个应用程序,找到用户可以使用不同或指定的公共交通模式(例如火车,公共汽车,有轨电车等)从A点到达B点的所有可能路线。当然,允许走边。我使用neo4j存储数据,请你建议我找到最短路径的算法,我从未使用多模态图

1 个答案:

答案 0 :(得分:0)

Cypher(Neo4j查询语言)有一个名为shortestPathallShortestPaths的函数,可用于查找与给定模式匹配的最短路径。

查看文档here。例如:

MATCH (martin:Person { name:"Martin Sheen" }),(oliver:Person { name:"Oliver Stone" }),
  p = shortestPath((martin)-[*..15]-(oliver))
RETURN p

通过路由,您经常需要考虑成本,通常由关系中的属性表示。有几种路径查找图算法可以与Neo4j一起使用,它将考虑成本。具体来说,Dijkstra algorithm通过Neo4j REST API公开。 Java API提供了更多图形算法,如here所述。