我正在尝试编写8-puzzle求解器,但我还没有:我使用曼哈顿优先功能,我想知道,如果它们具有相同的优先级值,如何在后代板安排之间做出选择。 / p>
例如:
这是初步的董事会安排:
8 1 3
4 2
7 6 5
及其后代董事会安排:
I
8 1 3
4 6 2
7 5
曼哈顿距离+移动数字= 10
II
8 3
4 1 2
7 6 5
曼哈顿距离+移动数字= 12
III
8 1 3
4 2
7 6 5
曼哈顿距离+移动数字= 10
哪个董事会安排应该选择?我还是III ???
答案 0 :(得分:0)
你应该为每一个数字总结曼哈顿距离(曼哈顿距离为1到达地方加上曼哈顿距离以获得2个到位...加上曼哈顿距离以获得8个到位)。如果使用某种启发式算法(例如A *),则使用最低总和扩展第一个板。如果两块板具有相同的总和值,那么您选择首先扩展哪一块并不重要。您之前访问过的州应该保存在某个地方(因此您不会进入周期性循环)并且根本不予考虑。