【问题标题】:How to impure A* algorithm to support multi-searching in a maze如何不纯 A* 算法以支持迷宫中的多重搜索
【发布时间】:2016-09-15 18:53:57
【问题描述】:

如果我有一个支持在迷宫中找到从起点到目标的最佳路径的 A* 函数,我应该如何修改启发式函数以使其可以接受,以便在有多个目标的情况下该函数仍然返回最佳路径结果。

【问题讨论】:

    标签: search artificial-intelligence a-star


    【解决方案1】:

    假设问题是只访问一个目标:

    想到的第一个解决方案是遍历所有可能的目标,为每个目标计算允许的启发式值,然后最终返回这些值中的最小值作为最终的启发式值。这样您就可以确定启发式仍然可以接受(不会高估到任何目标的距离)。

    EDIT:现在假设问题是访问所有个目标:

    在这种情况下,A* 甚至不一定是最好的算法。您可以将 A* 与上述启发式方法一起使用,以首先找到到最近目标的最短路径。然后,在到达第一个(最近的)目标时,您可以以相同的方式再次运行它以找到下一个最近的目标,等等。

    但这可能无法提供最佳的整体解决方案。首先访问第二个最近的目标(例如)可能是有益的,因为在某些情况下,这可能会为第二个目标提供更便宜的后续路径。

    如果您想要一个最佳的整体解决方案,您可能需要了解一种不同的整体方法。您的问题将类似于Travelling Salesman Problem(尽管不完全相同,因为我认为您可以多次访问同一点)。这个link或许也能帮到你。

    【讨论】:

    • 我是否应该在每次起点移动时或每次达到具有最小启发式价值的目标之一后循环所有可能的目标?
    • 你最终需要访问所有个目标,还是只需要A*来找到到一个个目标的最短路径?
    • 访问所有目标
    • @Deidara 我刚刚用新信息编辑了答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    相关资源
    最近更新 更多