Java 如何用Dijkstra图搜索算法实现公交节点路由?
我有一个公共交通数据结构,我需要实现Java 如何用Dijkstra图搜索算法实现公交节点路由?,java,algorithm,graph,graph-algorithm,Java,Algorithm,Graph,Graph Algorithm,我有一个公共交通数据结构,我需要实现k条最短路径。当前,边权重只是距离 数据结构是: public class Node { public int id; public int level; } public class Edge { public int fromNodeId, toNodeId; public double distance; public double time; //might be used for quickest route
k条最短路径
。当前,边权重只是距离
数据结构是:
public class Node {
public int id;
public int level;
}
public class Edge {
public int fromNodeId, toNodeId;
public double distance;
public double time; //might be used for quickest route
}
边
表中的数据用于有向图。加载数据时,我将边加倍(并反转),这样图形现在就没有方向了
我正在实现标准Dijkstra,但是我需要k条最短路径
,所以我发现
搜索按预期工作,但由于图形是传输网络,因此某些结果无效(例如,即使路径较短,更改也太多)
节点
类有一个级别
属性,该属性到目前为止尚未使用。此属性具有值(1、2、3),其中1是级别1节点(最重要),2是级别2节点(不太重要),3是级别3节点(不重要)
有了这些现成的信息,我想知道是否有办法改进和加速搜索。。。我偶然发现了公交节点路由
,据我所知,我需要按如下方式预计算距离:
边
表中,以便图形具有所有这些新距离
搜索查询是基于更新的图表的简单Dijkstra(或Yen)查询吗?如果没有,应该采用什么样的搜索算法