题目
用启发式搜索解决八数码难题,请计算下图中初始状态[1]的f(n)值,写出计算过程。2 8 3 1 2 3-|||-1 6 4 8 4-|||-7 5 7 6 5-|||-(初始状态) (目标状态)f(n) =d(n)+W(n)其中:d(n)表示节点n在搜索树中的深度W(n)表示节点n中'不在位'的数码个数
用启发式搜索解决八数码难题,请计算下图中初始状态[1]的f(n)值,写出计算过程。

f(n) =d(n)+W(n)其中:d(n)表示节点n在搜索树中的深度W(n)表示节点n中'不在位'的数码个数
题目解答
答案
在这个状态中,数字0代表空格,数字1到8的位置如下:
1在(1,1)
2在(1,2)
3在(1,3)
4在(2,1)
5在(2,3)
6在(3,3)
7在(2,2)
8在(3,2)
计算过程
确定深度d(n):由于这是初始状态,深度d(n) = 0。
计算W(n):计算不在位的数码个数。在这个例子中,数字6和8不在它们应该在的位置(6应该在(3,1),8应该在(3,2)),所以W(n) = 2。
计算f(n):f(n) = d(n) + W(n) = 0 + 2 = 2。
因此,对于这个假设的初始状态,f(n)的值为2.
解析
考查要点:本题主要考查启发式搜索算法中八数码问题的启发函数计算,具体为计算初始状态的$f(n)$值。
核心思路:根据公式$f(n) = d(n) + W(n)$,需分别确定节点深度$d(n)$和不在位数码个数$W(n)$。
关键点:
- 深度$d(n)$:初始状态的深度为$0$。
- 不在位数码$W(n)$:需明确目标状态中每个数码的正确位置,统计初始状态中与目标状态位置不同的数码数量。
步骤1:确定目标状态的正确位置
根据题目隐含的目标状态(空格为$0$),正确位置如下:
- $1$在$(1,1)$,$2$在$(1,2)$,$3$在$(1,3)$
- $4$在$(2,1)$,$5$在$(2,3)$,$6$在$(3,1)$
- $7$在$(3,2)$,$8$在$(3,3)$,空格$0$在$(3,3)$
步骤2:分析初始状态的数码位置
初始状态中数码的位置为:
- $1$在$(1,1)$,$2$在$(1,2)$,$3$在$(1,3)$
- $4$在$(2,1)$,$5$在$(2,3)$,$6$在$(3,3)$
- $7$在$(2,2)$,$8$在$(3,2)$
步骤3:计算$W(n)$
- $6$:正确位置应为$(3,1)$,实际在$(3,3)$,不在位。
- $8$:正确位置应为$(3,3)$,实际在$(3,2)$,不在位。
其他数码均在正确位置,因此$W(n) = 2$。
步骤4:计算$f(n)$
- 深度$d(n) = 0$(初始状态)。
- $f(n) = d(n) + W(n) = 0 + 2 = 2$。