解:用四元组(f,w,s,g)表示状态,其中 f 表示猎人,w 表示狼,
s 表示羊,g 表示草,其中每个元素都可以为 0 或 1,表示在左案,
1 表示在右岸。四元组可表示的状态共有 16 种,其中合法状态为
10 种:
(0,0,0,0)(0,0,0,1)(0,0,1,0)(0,1,0,0)(0,1,0,1)(1,0,1,0)(1,0,1,1)(1,1,0,1)(1,1,1,0)(1,1,1,1)
初始状态为(0,0,0,0)目标状态为(1,1,1,1)
共有其中操作:从左岸到右岸三种,从右岸到左岸四种
方案有两种:p2→ q0 → p3→ q2 → p2 → q0 → p2
p2→ q0 → p1→ q2 → p3→ q0→ p2
解:用(a,b,c)来表示火柴的状态,用 0 表示火柴朝下,1 表示朝上,
三根火柴共有八种状态
(0,0,0)(0,0,1)(0,1,0)(0,1,1)
(1,0,0)(1,0,1)(1,1,0)(1,1,1)
操作有两个:fab:将火柴 a 和 b 倒置
fbc:将火柴 b 和 c 倒置
初始状态:(1,1,1)
目标状态:(0,0,0)
状态图如下所示:
从图上看,没有从初始状态到目标状态的联通路径,所以此问题没有解。
解:引入一个三元组(q0,q1,q2)来描述总状态,开状态为
0,关状态为 1,全部可能的状态为 :
Q0=(0,0,0) ; Q1=(0,0,1); Q2=(0,1,0)
Q3=(0,1,1) ; Q4=(1,0,0); Q5=(1,0,1)
Q6=(1,1,0) ; Q7=(1,1,1)。
翻动琴键的操作抽象为改变上述状态的算子,即 F={a, b, c}
a:把第一个琴键 q0 翻转一次
b:把第二个琴键 q1 翻转一次
c:把第三个琴键 q2 翻转一次
问题的状态空间为<{Q5},{Q0 Q7}, {a, b, c}>
问题的状态空间图如下页所示:从状态空间图,我们可以找到
Q5 到 Q7 为 3 的两条路径,而找不到 Q5 到 Q0 为 3 的路径,因此,
初始状态“关、开、关”连按三次琴键后只会出现“关、关、关”
的状态。
不考虑代价,广度优先搜索过程:A-﹥ B-﹥ C-﹥ D-﹥E -﹥F,解为:A-﹥ C-﹥ F
深度优先搜索过程为:A-﹥ C-﹥ G-﹥M-﹥P-﹥O-﹥L
解为:A-﹥ C-﹥G-﹥L
分支界限法搜索过程:A-﹥ B-﹥ C-﹥G-﹥E-﹥L
解为:A-﹥ C-﹥G-﹥L
瞎子爬山法搜索过程:A-﹥ B-﹥ E-﹥J
解为:A-﹥ B-﹥E-﹥J
解树有 3 个:ABDI,7;ABEJK,7 ; ACF 5(最优解)
解: