Ram*_*hil 5 artificial-intelligence heuristics
三个AI新手问题:
对于第一个问题,让我们以启发式为基础Manhattan distance,调用 h(x)。现在为什么 A* 应该用新的启发式 8*h(x) + 5 找到一条非最优路径?(随机数)。据我了解,A*算法是根据函数做出决定的,f(x) = g(x) + h(x)所以如果我扩大h,为什么最大值\最小值会改变?
我读过这篇文章,他们在那里谈到了乘以一个小系数来进行制动制动,这在某种程度上符合我的理论,但他们坚持认为该系数应该很小。所以我不知道该怎么想。
对于第二个问题,我尝试了链接中解决吃豆人游戏的技术。曼哈顿距离启发式的任何变化都会导致更多节点扩展。我什至“发明”了一种新的加权方案,我更喜欢外壳上的路径 - 同样的事情。后来我尝试取所有函数的最大值(这也应该是可接受的),但性能仍然很差。我缺少什么?
对于第三个问题,没什么可补充的。如前所述 - 我找不到比曼哈顿距离更好的东西了。
问题3:
如果您实际上正在制作吃豆人游戏,您必须找到每个“幽灵”的路径,您也可以使用Dijkstra 算法,以吃豆人的位置为目标,一次性计算每个幽灵的最佳路径。由于每个“边”(从一个单元格到下一个单元格)的成本始终相同,因此您也可以使用简单的广度优先搜索。最后,您还可以看看协作扩散,以不同的方式发送每个幽灵。