寻找最佳启发式,A *搜索,pacman

时间:2015-11-03 02:56:44

标签: search artificial-intelligence

small board

larger board

(所有电路板都以每个角落的点开头)

如果我有这样的pacman板

*--------------------*
----------------------
----------------------
----------------------
----------------------
----------------------
----------------------
P--------------------*
----------------------

让他吃掉所有点(*)最好的启发法是什么? 我正在使用A *搜索。我曾尝试过使用曼哈顿距离,但是一旦墙壁被扔进混合物中,它就无法达到与BFS相同的效果,因此不是最佳选择。我正在寻找它是最佳的,同时扩展更少的节点然后BFS。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案:

(到最远角落的最大(x,y)距离

childXY =州[0]     cornersLeft = state [1]

maxDistance = 10000
minDistance = 0
farthestCorner = 0
nearestCorner = 0


for corner in cornersLeft:

    if util.manhattanDistance(childXY, corner) > minDistance:
        minDistance = util.manhattanDistance(childXY, corner)  
        farthestCorner = minDistance - min((childXY[0]-corner[0]),(childXY[1]-corner[1]))


heuristic = farthestCorner

print "heuristic is: ", heuristic
return heuristic

我的A *搜索出现问题,最终导致我的启发式主要问题无效。