Artificial intelligence 对启发式函数进行加权*
三个AI新手问题:Artificial intelligence 对启发式函数进行加权*,artificial-intelligence,heuristics,Artificial Intelligence,Heuristics,三个AI新手问题: 为什么a*要找到一条最优路径,启发式方法是可以接受的 如果路上有障碍物,平局制动技术有什么好处 什么算法适合在有障碍物的网格上查找路径?(像吃豆人一样) 对于第一个问题让我们以曼哈顿距离启发式为基础,调用为h(x)。现在,为什么A*要用一个新的启发式方法,即8*h(x)+5,来找到一条非最优路径?(随机数)。据我所知,在A*算法中,决策将根据函数f(x)=g(x)+h(x)进行。因此,如果我放大h,为什么最大值\最小值会发生变化 我读过,在那里他们谈到用一个小的因数乘以系紧制
曼哈顿距离
启发式为基础,调用为h(x)。现在,为什么A*要用一个新的启发式方法,即8*h(x)+5,来找到一条非最优路径?(随机数)。据我所知,在A*算法中,决策将根据函数f(x)=g(x)+h(x)
进行。因此,如果我放大h,为什么最大值\最小值会发生变化
我读过,在那里他们谈到用一个小的因数乘以系紧制动,这在某种程度上符合我的理论,但他们坚持认为这个因数应该是小的。所以我不知道该怎么想
对于第二个问题我尝试了链接中解决pacman游戏的技巧。曼哈顿距离启发式的任何变化都会导致更多节点扩展。我甚至“发明”了一种新的加权方案,我更喜欢外壳上的路径——同样的事情。后来,我尝试使用所有函数的最大值(这也应该是允许的),但仍然得到了糟糕的性能。我错过了什么
第三个问题没有补充。如前所述,我找不到比曼哈顿距离更好的了
8*h(x)+5
会单调增加所有估计成本,因此虽然所有估计路径的成本都会更大,但它们的排序方式仍然相同(例如,使用启发式B,路径A
用于长度5,路径B
长度3)(成本29)预计仍将比A(成本45)短如果你真的在做一个吃豆人游戏,你必须找到每个“幽灵”的路径,你也可以使用,使用吃豆人的位置作为目标,一次计算每个幽灵的最佳路径。由于每个“边缘”(从一个单元格到下一个单元格)的成本始终相同,因此您也可以使用简单的广度优先搜索。最后,您还可以查看如何以不同的方式发送每个重影。通常,如果您的启发式函数不可接受,您可以在更短的时间内找到“非最优”解决方案(这是一种“问题松弛”)。如果你对解“最优性”没有严格的约束,你可以使用不可容许的启发式函数。(例如,在游戏AI中,您需要的是快速解决方案,而不是最佳解决方案) 现在是吃豆人AI的答案在原始的Pac Man AI中,没有A*,没有复杂的路径规划,没有网格空间导航。书中有一个简单的Pac Man AI算法,非常简单但非常有效
x/10
它选择一个随机方向的次数(10-x)/x
它选择玩家方向的路线的次数(通过玩家和鬼位置之间的简单偏移计算)2-3)我不清楚你所说的“解决”吃豆人是什么意思。如果有什么比找到一条最短的路径吃掉一个空网格中的所有点更复杂的话,我认为你已经远远超出了a*的范围。即使这样,A*也不是我选择的工具。我的家庭作业是为《吃豆人》制作人工智能,但我必须在几个小时内提交,我不确定我是否能尽快得到答案。。所以我有一个真正的兴趣,但我会根据答案做一个快速测试,然后离开。a*是两个重叠的启发式。Djikstra喜欢靠近原点的节点,Best First喜欢靠近目标的节点。A*就像Djikstra(向各个方向扩展),直到遇到障碍,然后开始向目标直线扩展。如果将距离目标的成本乘以一倍,A*开始关注快速解决方案。两秒钟后,我的A*tr