曼哈顿距离驱动NxN 2D阵列中的搜索

时间:2011-11-22 02:09:24

标签: java algorithm

我想知道如何使用Manhattan Distance启发式来驱动我在NxN 2d数组中的搜索。我有以下曼哈顿距离:

private int manhattan(int[] pos, int tile) {
        int[] dest = new int[] {
            (tile - 1) % BOARDSIZE, (tile - 1) / BOARDSIZE
        };
        return Math.abs(dest[0] - pos[0]) + Math.abs(dest[1] - pos[1]);
    } 

我将瓷砖移动到空的瓷砖左,右,上或下。如何使用上述函数选择节点的邻居以添加到队列?我不得不把它放在一个双循环或?我正在使用f = g + h

我是谜题的初学者,所以我有点难以理解。我需要帮助。

1 个答案:

答案 0 :(得分:0)

我可以看到你重写了之前的问题。您提出的问题将在Russell and Norvig's Artificial Intelligence: A Modern Approach中详细探讨。阅读第3章。查看他们的网站http://aima.cs.berkeley.edu/。他们甚至还有A *的代码,并附有8 puzzle的演示链接。