题目
在8数码问题中,启发函数 f(x)=g(x)+h(x) 中的 g(x) 表示( )A. 结点x与目标状态位置不同的棋子个数B. 结点x的子结点数C. 结点x与目标状态位置相同的棋子个数D. 结点x所在的层数
在8数码问题中,启发函数 f(x)=g(x)+h(x) 中的 g(x) 表示( )
A. 结点x与目标状态位置不同的棋子个数
B. 结点x的子结点数
C. 结点x与目标状态位置相同的棋子个数
D. 结点x所在的层数
题目解答
答案
D. 结点x所在的层数
解析
考查要点:本题主要考查A*算法中启发函数的构成,特别是8数码问题中g(x)的具体含义。
解题核心思路:
在A*算法中,启发函数f(x) = g(x) + h(x),其中:
g(x)表示从初始状态到当前状态x的实际路径成本(即已移动的步数)。h(x)是启发式估计(如曼哈顿距离),用于预估当前状态到目标状态的剩余成本。
在8数码问题中,每移动一步棋子对应g(x)增加1,而g(x)的值等于节点所在的层数(即搜索树的深度)。
破题关键点:
明确区分g(x)和h(x)的定义,结合8数码问题中路径成本的计算方式,即可排除干扰选项。
选项分析
-
选项A:结点
x与目标状态位置不同的棋子个数。
这是典型的启发函数h(x)的可能形式(如“错位数”启发函数),而非g(x),排除。 -
选项B:结点
x的子结点数。
子节点数与路径成本无关,属于搜索策略的扩展操作,与g(x)无关,排除。 -
选项C:结点
x与目标状态位置相同的棋子个数。
该值可能用于其他启发方式,但与实际路径成本无关,排除。 -
选项D:结点
x所在的层数。
层数对应从初始状态到当前状态的实际移动步数,即g(x)的定义,正确。