【问题标题】:How to design a cost function and a heuristic function that finds the FASTEST route using an A* pathfinding algorithm?如何设计使用 A* 寻路算法找到 FASTEST 路线的成本函数和启发式函数?
【发布时间】:2020-07-25 13:07:03
【问题描述】:

我目前正在制作一个道路网络寻路程序,我希望能够使用 A* 寻路找到最短路线(按距离)以及最快路线(时间)。

对于最短路径,我使用(道路长度)作为成本,并且使用从相邻节点到末端节点的欧几里德距离作为启发式。这工作正常。

但是,当试图找到最快的路线(按时间)时,我假设汽车会不断以限速行驶,所以我使用(道路长度/道路限速)作为成本。对于启发式,我使用从相邻节点到结束节点的欧几里得距离除以用于到达该相邻节点的道路的速度限制。这似乎工作正常,但是当我在相同的起点和终点之间使用最短路径算法时,我通常会获得更快的旅行时间,这不是我想要的。

我了解我的成本和启发式需要具有相同的程度,并且启发式函数需要一致且可接受。我不确定我是否正在设计正确找到最快路线的成本和启发式方法。如果我的想法不正确,我将如何找到最快的路径?

编辑:已解决

【问题讨论】:

  • 在任何道路上使用距离除以最大速度。
  • 考虑发布您自己问题的答案。
  • 事实证明,我的启发式方法实际上高估了它所花费的时间,这以某种方式导致它找到了一条不太理想的路径。谢谢你的帮助。

标签: algorithm path-finding a-star heuristics


【解决方案1】:

使用到目标节点的直线距离/网络中任何道路的最高限速作为启发式方法,意味着估计的成本(时间)永远不会高估路径的真实成本。我的代码中的问题是我最初的启发式方法被高估了。 @btilly 的建议解决了这个问题,因为启发式是可以接受的,并且会低估成本。

【讨论】:

    猜你喜欢
    • 2014-05-24
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多