【问题标题】:Shortest Path, but on a physical maze最短路径,但在物理迷宫上
【发布时间】:2016-07-18 17:18:34
【问题描述】:

我正在实现一个能够解决任何迷宫的机器人(机器人只有前置传感器,但我让它扫描周围环境),我能够让它把迷宫变成一个地图,其中 0代表墙壁,1 代表道路,可能有倾斜的道路。现在,机器人转弯速度不快,但沿直线移动的速度相当快。因此,通过稍微倾斜的走廊的正常最短路径算法会很慢,尽管路径足够宽。

例如,我们发现

0001111111000
0011111110000
0111111100000
1111111000000
1111110000000

作为可能的地图。我希望机器人能够识别出它可以对角行走,甚至可以直接向上然后再向右走,而不是每次都以正常的最短路径算法转弯。

有什么想法吗?此外,也欢迎完整的算法更改 - 我对此很陌生。

【问题讨论】:

  • 你一次得到所有的地图?
  • 你能告诉我直线移动和转弯之间的时间差吗?这里的最短路径应该计算到达目标的最短时间?
  • 您可以使用 2D 网格图 A* 来实现这一点……转动和移动的单元格值增加不同。你也可以对齐墙壁还是只做 90 度转弯?单元格中的机器人宽度是多少......这也是最快的路径而不是最短的

标签: algorithm


【解决方案1】:

我前段时间遇到过类似的问题。
您可以为周围的单元格分配权重,为前面的单元格分配较小的权重,从而制作在运动过程中制作的权重图。
我使用 Dijkstra 算法,周围单元的权重为 2,前单元的权重为 1,您必须将机器人的方向传递给 Dijkstra,并将它们添加到优先级队列中,并在从队列中提取单元时添加相对于方向保存在提取的单元格中。
然后进行移动,然后重新计算修改后的 Dijkstra 以找到最近的看不见的单元格。

【讨论】:

    猜你喜欢
    • 2018-03-24
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多