当前位置:文档之家› 第3章 图搜索与问题求解作业讲解

第3章 图搜索与问题求解作业讲解

第3章作业题参考答案
2.综述图搜索的方式和策略。

答:用计算机来实现图的搜索,有两种最基本的方式:树式搜索和线式搜索。

树式搜索就是在搜索过程中记录所经过的所有节点和边。

线式搜索就是在搜索过程中只记录那些当前认为是处在所找路径上的节点和边。

线式搜索的基本方式又可分为不回溯和可回溯的的两种。

图搜索的策略可分为:盲目搜索和启发式搜索。

盲目搜索就是无向导的搜索。

树式盲目搜索就是穷举式搜索。

而线式盲目搜索,
对于不回溯的就是随机碰撞式搜索,对于回溯的则也是穷举式搜索。

启发式搜索则是利用“启发性信息”引导的搜索。

启发式搜索又可分为许多不同
的策略,如全局择优、局部择优、最佳图搜索等。

5.(供参考)解:引入一个三元组(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的路径,因此,初始状态“关、开、关”连按三次琴键后只会出现“关、关、关”的状态。

(0,0,0)
(1,0,1)
(0,0,1) (0,1,0)
(1,1,0)
(1,0,0)
(0,1,0)
(1,1,1)
a
c
a
b
a
c
a
b
c
b
b
c
6.解:用四元组(f、w、s、g)表示状态, f 代表农夫,w 代表狼,s 代表羊,g 代表菜,
其中每个元素都可为0或1,用0表示在左岸,用1表示在右岸。

初始状态S0:(0,0,0,0) 目标状态:(1,1,1,1)
不合法的状态:(1,0,0,*),(1,*,0,0),(0,1,1,*),(0,*,1,1)
操作集F={P1,P2,P3,P4,Q1,Q2,Q3,Q4}
方案有两种:p2→q0 →p3→q2 →p2 →q0 →p2
p2→q0 →p1→q2 →p3→q0→p2
12 一棵解树由S0,A,D,t1,t2,t3组成;另一棵解树由S0,B,E,t4,t5组成。

左边的解树:
按和代价: g(D)=4,g(A)=7,g(S0)=12
按最大代价: g(D)=2,g(A)=5,g(S0)=10
右边的解树:按和代价:g(E)=2,g(B)=11,g(S0)=18
按最大代价: g(E)=2,g(B)=7,g(S0)=14
按和代价计算,左边的解树为最优解树;按最大代价计算,仍然是左边的解树为最优解树。

因此,左边的解树为最优解树。

此题需注意:代价最小的为最优解树。

所以,不管是按和代价,还是按最大代价,都是左边的树是最优解树。

14.传教士与野人问题:传教士(M)与野人(C)数目均为五人,渡船(B)最多可乘3人,
请定义一个启发函数,并给出相应的搜索树。

解:定义启发函数h(n)=0; h(n)=M+C; h(n)=M+C-2B
只有h(n)=M+C-2B可满足h(n)≤h*(n),是满足A*条件的。

分两种情况来讨论:
先考虑船在左岸的情况,如果不考虑限制条件,至少需要[(M+C-3)/2]*2+1次,其中分子上的“-3”表示剩下的3个留待最后一次运过去。

除以2是因为一个来回可以运过去2人,需(M+C-3)/2个来回,而来回数不能是小数,所以要取整。

一个来回是两次,所以“*2”,而最后的“+1”,则表示将剩下的3个运过去需要一次摆渡。

化简后为:
[(M+C-3)/2]*2+1=M+C-2
再考虑船在右岸的情况。

同样不考虑限制条件。

船在右岸,需要一个人将船运往左岸,因此,对于状态(M,C,0),需要的摆渡数,相当于船在左岸的(M+1,C,1)或(M,C+1,1),所以需要的最少摆渡数为M+C+1-2+1=M+C。

综合条件,需要的最少摆渡数为M+C-2B。

当加上限制条件时,最优的摆渡次数只能大于等于该摆渡数。

所以该启发函数是满足A*条件的。

搜索图如下:
15.
补充1:代价树如下图所示:分别给出宽度优先及深度优先搜索策略下的搜索过程和解。

其中,F、I、 J、L是目标节点。

宽度优先搜索过程:A -﹥ C -﹥ B -﹥ G -﹥E -﹥D -﹥ M -﹥ J ,G (J )=6, 解为:A -﹥ B -﹥ E -﹥ J
深度优先搜索过程为:A -﹥ C -﹥ G -﹥M -﹥P -﹥O -﹥L ,G (L )=7, 解为:A -﹥ C -﹥G -﹥L 剪枝
补充剪枝:最佳路径为N-〉A-〉B-〉C-〉D
以下题目仅供大家参考: 1.代价树如下图所示:分别给出宽度优先及深度优先搜索策略下的搜索过程和解。

其中,F 、
I 、 J 、L 是目标节点。

N
≥2
解答、宽度优先搜索过程:(1)先将A放入OPEN表中,g(A)=0;
(2)将A放入CLOSED表中,扩展A节点,得节点B、C,g(B)=1,g(C)=2,将B、C按代价从小到大放入OPEN中;
(3)将B放入CLOSED表中,扩展B节点得节点D、E,g(D)=5,g(E)=4,将C、D、E 按代价从小到大排列放入OPEN表中;
(4)将C放入CLOSED表中,扩展C得节点F、G,g(F)=6,g(G)=3,将D、E、F、G按代价从小到大排列放入OPEN表中;
(5)将G放入CLOSED表中,扩展G得L,M,g(L)=4,g(M)=5, 将D、E、F、L,M 按代价从小到大排列放入OPEN表中;
(6)将L放入CLOSED表中,L为目标节点,搜索成功。

解为A-﹥B-﹥C-﹥G-﹥L,g(L)=4
深度优先搜索过程:
(1)先将A放入OPEN表中,g(A)=0;
(2)将A放入CLOSED表中,扩展A节点,得节点B、C,g(B)=1,g(C)=2,将B、C按代价从小到大放入OPEN表中;
(3)将B放入CLOSED表中,扩展B节点得节点D、E,g(D)=5,g(E)=4,将D、E按代价从小到大排列放入OPEN表中;
(4)将E放入CLOSED表中,扩展E节点得节点J、K,g(J)=5,g(K)=6,将J、K按代价从小到大排列放入OPEN表中;
(5)将J放入CLOSED表中,J为目标节点,搜索成功。

解为A-﹥B-﹥E-﹥J,g(J)=4
2设有三个大小不等的圆盘A,B,C套在一根轴上,每个圆盘都标有数字1234,并且每个圆盘都可以独立地绕轴做逆时针转动,并且每次转动90度,其初始状态和目标状态如图所示,请分别画出广度优先搜索和深度优先搜索的搜索树,并求出从S0到Sg的路径。

解:状态表示:用轴上方的3个数字作为标记,按A,B,C 逆时针顺序移动 状态为(a,b,c ) 初始状态为;(2,2,2),目标状态为(4,2,1) 操作每次转动其中的一个盘,逆时针90度,分别为
Pa :if a>=2then a=a-1
If a=1then a=4 Pb :if b>=2 then b=b-1
If b=1then b=4
Pc :if c>=2 then c=c-1
If c=1then c=4
深度优先搜索树为:
初始状态S0
初始状态Sg
3 余一棋博弈法如下:两棋手可以从五个钱币堆中轮流拿走一个、两个或三个钱币,捡起最后一个钱币者算输。

试通过博弈证明,后走的选手必胜,并给一个简单的特征标记来表示取胜策略。

剪枝补充练习
2 -1
3
4 -2 -4 3 -3 0 7 6 -3
5 -4 3 2 1 9
6 -3 2 1 4 -3
1.代价树如下图所示:分别给出宽度优先及深度优先搜索策略下的搜索过程和解。

其中,
F、I、 J、L是目标节点。

2.代价树如下图所示:分别给出宽度优先及深度优先搜索策略下的搜索过程和解。

其中,
H、F、 J是目标节点。

3.用α-β方法求N的最佳走步。

N
4.用宽度优先搜索求下图所示迷宫的出路。

代价树如左图所示,给出深度优先和广度优先搜索策略下的搜索过程和解。

其中I、J、K、F、L、P为目标节点
求出与/或树的解树并用和代价法则求最佳解树。

其中,端节点中,I、J、F、L、P是
可解节点,其余节点是不可解节点。

相关主题