N-Puzzle Python中的曼哈顿距离

时间:2016-07-13 18:23:08

标签: python algorithm matrix artificial-intelligence heuristics

我正在计算曼哈顿的N-Puzzle游戏的距离。我在所有网站上搜索过,但建议的解决方案并不好。

我正在尝试使用此代码:

def calculateManhattanDistance(matrix):
size  = len(matrix)
manhattanDistanceSum = 0
for i in range(size):
    for j in range(size):
        value = matrix[i][j]
        if(value != 0):
            targetX = (value)/size
            targetY = (value)%size
            dx = i-targetX
            dy = j-targetY
            manhattanDistanceSum = manhattanDistanceSum + abs(dx)+ abs(dy)

矩阵'目标是:

0 1 2
3 4 5
6 7 8

如果我尝试计算下一个矩阵中的距离(与目标相同):

0 1 2
3 4 5
6 7 8

建议的解决方案是3:S但它必须是0

我正在使用此页面来计算它:Manhattan distance但解决方案对我不利。

对不起我的普通英国人!

0 个答案:

没有答案