【问题标题】:Pathfinding algorithm with least amount of steps步数最少的寻路算法
【发布时间】:2019-10-16 06:46:09
【问题描述】:

我正在寻找某种寻路算法,它不仅可以提供最短路径。我想用最少的步骤获得最短的路径。

目前我正在使用Dijkstra's Algorithm 来获得最短路径,但我并没有坚持这一点。

在我的示例中,您必须在具有特定价格的特定位置停下来。所以我想获得“最便宜”的路线,但我也想停止最少的次数。

【问题讨论】:

  • “最短路径”已经暗示“步数最少的路径”?还是您的意思是您想要一条距离最短且节点遍历最少的路径?就像我们有两条长度相同的路径 A->B->C->D 和 A->F->D 你想选择第二条路径吗?
  • 是的,没错!
  • 使用相同的 Dijkstra 算法,但为每个节点保留一个附加信息,存储“到达该节点需要多少步”。在正常的 Dijkstra 中,如果您以更短的距离到达已访问的节点,则更新该节点,在此变体中,如果您以相同的距离但更短的步数到达该节点,您还将更新节点。
  • 为什么不在遍历时计算步数?
  • 有什么限制吗?地图中有多少个节点和边?

标签: java algorithm path-finding


【解决方案1】:

我在 Vertex 类中添加了一个新的 int 变量来保存它。这是一个计步器,在查看成本之前正在检查它并且它正在工作!

【讨论】:

    猜你喜欢
    • 2016-07-30
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 2016-05-15
    相关资源
    最近更新 更多