我遇到一个由带有墙壁,目标和代理的方形迷宫组成的问题。座席只能水平/垂直移动。在每个步骤中,每个特工都从1个正方形移动。
我必须实现A *算法来解决该问题,而我很难找到一种很好的启发式方法来解决该问题。
每次阅读有关最佳启发式方法的文档时,它总是与只有一个代理和多个目标但没有多个代理的迷宫有关。
我尝试尝试的启发式方法如下:
对于每个目标,我都会从代理商获取最接近的Manathan距离,并对结果求和。
在这种情况下,如果还有两个目标和三个业务代表,则只将两个业务代表相加,而没有考虑最远的业务代表,则总和将小于剩下三个目标和三个目标的情况。
根据可允许的启发式的定义,我怀疑我的规则是可以接受的。
我认为这是合理的,因为它不仅考虑了每种食物,而且还考虑了要点。
任何人都可以考虑技巧或有趣的方法吗?
答案 0 :(得分:0)
A *仅适用于一个代理。您需要为每个代理运行一个单独的搜索实例。
如果有很多座席,但只有几个目标,并且您的图形是无向的,则可以从目标搜索到座席,而不是(假设您只需要最接近的座席),然后反向结果。
如果需要查找大量和很多的代理人,则应该使用其他算法。有很多选择。在此处查找的关键字是“群寻路”,“人群流动”和“仿制”。通常,您将为整个地图创建一个向量字段,并将其与某种避免算法结合起来。