【问题标题】:Allow A-star algorithm to bypass x number of obstacles允许 A-star 算法绕过 x 个障碍物
【发布时间】:2018-11-18 13:21:48
【问题描述】:

现在我有这个迷宫:

标有SE的节点代表这个迷宫的起点和终点。

橙色的节点代表目前无法绕过的障碍。

我的目标是让 A* 算法绕过 x 个障碍,并以最快的方式到达终点。

我的 A* 算法目前是这样导航的:

.

但如果我允许绕过 1 个障碍物,我希望它像这样导航:

如果我允许绕过 2 个障碍物,就像这样:

如何修改 A* 算法来实现这一点?是否有替代算法可以帮助我解决这个问题?

【问题讨论】:

  • 对于您的最后一个示例,将有两条长度相等的最短路径

标签: algorithm graph-algorithm path-finding a-star maze


【解决方案1】:

您可以复制图表中的节点并为每个绕过次数生成实例。即,您将创建图形的多个层并从第 0 层开始(您已经绕过了 0 个障碍)。每当你去一个障碍节点时,你就切换到下一层(即,下一层的相邻障碍节点有边,同一层的相邻非障碍节点有边)。创建尽可能多的层,以绕过障碍。如果您到达目标单元的任何实例(在任何层上),您就完成了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多