<分区>
关于三壶水问题:
我们有 3 个水壶,第一个水壶的容量是 12 个,第二个水壶的容量是 8 个,第三个水壶的容量是 3 个。 初始状态是:(0,0,0) 后继函数是:
- 添加:完全填满锯齿
- 倒到另一个 jar 里:将一个 jar 里的东西倒入第二个 jar 里(直到第一个 jar 倒空或第二个 jar 完全装满)
- 清空是:清空一个 jar 里的所有内容
目标状态为:(1,1,1)
我想画出它的状态树。我自己做的,但我不确定它是否正确?
(0,0,0)
/ | \
/ | \
/ | \
(12,0,0) (0,8,0) (0,0,3)
(12,0,0)的子节点是:(12,0,0),(12,8,0),(12,8,3),(0,8,3),(0 ,0,3),(0,0,0),(9,8,3),(12,8,0),(4,8,3),(12,0,3),(12,5 ,3),(12,5,3),(12,8,0)
which (12,0,0),(0,0,0)==>因为它在根目录中,(12,8,0)==> 是失败节点,我们不展开它们。
我认为如果我扩展 (0,0,3),我将达到我的目标状态: 节点 (0,0,3) 的子节点:(3,0,0),(0,3,0),(0,0,3),(1,1,1) (1,1,1 ) 目标状态对吗?
问题:我的理解正确吗?这些是状态和生成树吗?