多模态图算法
Multi modal graphe algorithm
我正在创建一个应用程序,用于查找用户可以使用不同或指定的 public 交通方式(例如火车、公共汽车、电车等)从 A 点到达 B 点的所有可能路线。当然,步行边缘是允许的。我正在使用 neo4j 来存储数据,你能给我一个找到最短路径的算法吗,我从来没有使用过多模态图
Cypher(Neo4j 查询语言)有一个名为 shortestPath
和 allShortestPaths
的函数,可用于查找与给定模式匹配的最短路径。
查看文档 here。例如:
MATCH (martin:Person { name:"Martin Sheen" }),(oliver:Person { name:"Oliver Stone" }),
p = shortestPath((martin)-[*..15]-(oliver))
RETURN p
对于路由,您通常要考虑成本,通常由关系上的 属性 表示。有几种路径查找图算法可以与 Neo4j 一起使用,这些算法会考虑成本。具体来说,Dijkstra algorithm is exposed via the Neo4j REST API. More graph algorithms are available with the Java API, as described here.
我正在创建一个应用程序,用于查找用户可以使用不同或指定的 public 交通方式(例如火车、公共汽车、电车等)从 A 点到达 B 点的所有可能路线。当然,步行边缘是允许的。我正在使用 neo4j 来存储数据,你能给我一个找到最短路径的算法吗,我从来没有使用过多模态图
Cypher(Neo4j 查询语言)有一个名为 shortestPath
和 allShortestPaths
的函数,可用于查找与给定模式匹配的最短路径。
查看文档 here。例如:
MATCH (martin:Person { name:"Martin Sheen" }),(oliver:Person { name:"Oliver Stone" }),
p = shortestPath((martin)-[*..15]-(oliver))
RETURN p
对于路由,您通常要考虑成本,通常由关系上的 属性 表示。有几种路径查找图算法可以与 Neo4j 一起使用,这些算法会考虑成本。具体来说,Dijkstra algorithm is exposed via the Neo4j REST API. More graph algorithms are available with the Java API, as described here.