【发布时间】:2019-10-16 06:46:09
【问题描述】:
我正在寻找某种寻路算法,它不仅可以提供最短路径。我想用最少的步骤获得最短的路径。
目前我正在使用Dijkstra's Algorithm 来获得最短路径,但我并没有坚持这一点。
在我的示例中,您必须在具有特定价格的特定位置停下来。所以我想获得“最便宜”的路线,但我也想停止最少的次数。
【问题讨论】:
-
“最短路径”已经暗示“步数最少的路径”?还是您的意思是您想要一条距离最短且节点遍历最少的路径?就像我们有两条长度相同的路径 A->B->C->D 和 A->F->D 你想选择第二条路径吗?
-
是的,没错!
-
使用相同的 Dijkstra 算法,但为每个节点保留一个附加信息,存储“到达该节点需要多少步”。在正常的 Dijkstra 中,如果您以更短的距离到达已访问的节点,则更新该节点,在此变体中,如果您以相同的距离但更短的步数到达该节点,您还将更新节点。
-
为什么不在遍历时计算步数?
-
有什么限制吗?地图中有多少个节点和边?
标签: java algorithm path-finding