1、1习 题 31、答:深度优先搜索算法的特点是一般不能保证找到最优解;当深度限制不合理时,可能找不到解,可以将算法改为可变深度限制;方法与问题无关,具有通用性;属于图搜索方法。宽度优先搜索算法的特点是当问题有解时,一定能找到解;当问题为单位耗散值,并且问题有解时,一定能找到最优解;效率低;方法与问题无关,具有通用性;属于图搜索方法。2、答:在决定生成子状态的最优次序时,应该采用深度进行衡量,使深度大的结点优先扩展。3、答:(1)深度优先(2)深度优先(3)宽度优先(4)宽度优先(5)宽度优先4、答:如果把一个皇后放在棋盘的某个位置后,它所影响的棋盘位置数少,那么给以后放皇后留下的余地就大,找到解
2、的可能性也大;反之留下的余地就小,找到解的可能性也小。并不是任何启发函数对搜索都是有用的。5、解:首先用状态空间表达法表示该问题。(S, O,S 0,G)S:( ML,C L, BL) ,其中 0M L,C L5,B L0,1。(0,0,1)达不到 (0,0,0)(0,1,1) (0,1,0)(0,2,1) (0,2,0)(0,3,1) (0,3,0)(0,4,1) (0,4,0)(0,5,1) (0,5,0)达不到(1,0,1) 不合法 (1,0,0)不合法(1,1,1) (1,1,0)(1,2,1)不合法 (1,2,0)不合法(1,3,1)不合法 (1,3,0)不合法(1,4,1)不合法
3、(1,4,0)不合法(1,5,1)不合法 (1,5,0)不合法(2,0,1)不合法 (2,0,0)不合法(2,1,1)不合法 (2,1,0)不合法(2,2,1) (2,2,0)(2,3,1)不合法 (2,3,0)不合法2(2,4,1)不合法 (2,4,0)不合法(2,5,1)不合法 (2,5,0)不合法(3,0,1)不合法 (3,0,0)不合法(3,1,1)不合法 (3,1,0)不合法(3,2,1)不合法 (3,2,0)不合法(3,3,1) (3,3,0)(3,4,1)不合法 (3,4,0)不合法(3,5,1)不合法 (3,5,0)不合法(4,0,1)不合法 (4,0,0)不合法(4,1,1)
4、不合法 (4,1,0)不合法(4,2,1)不合法 (4,2,0)不合法(4,3,1)不合法 (4,3,0)不合法(4,4,1) (4,4,0)(4,5,1)不合法 (4,5,0)不合法(5,0,1)达不到 (5,0,0)(5,1,1) (5,1,0)(5,2,1) (5,2,0)(5,3,1) (5,3,0)(5,4,1) (5,4,0)(5,5,1) (5,5,0)达不到O:该问题有两种操作,即从左岸划向右岸的 Pmc 操作和从右岸划向左岸的 qmc 操作。if (ML,CL,BL=1) then (ML-1,CL,BL-1);(p 10 操作)if (ML,CL,BL=1) then (M
5、L,CL-1,BL-1);(p 01 操作)if (ML,CL,BL=1) then (ML-2,CL,BL-1);(p 20 操作)if (ML,CL,BL=1) then (ML,CL-2,BL-1);(p 02 操作)if (ML,CL,BL=1) then (ML-3,CL,BL-1);(p 30 操作)if (ML,CL,BL=1) then (ML,CL-3,BL-1);(p 03 操作)if (ML,CL,BL=1) then (ML-1,CL-1,BL-1);(p 11 操作)if (ML,CL,BL=1) then (ML-2,CL-1,BL-1);(p 21 操作)if (
6、ML,CL,BL=0) then (ML+1,CL,BL+1);(q 10 操作)if (ML,CL,BL=0) then (ML,CL+1,BL+1);(q 01 操作)if (ML,CL,BL=0) then (ML+2,CL,BL+1);(q 20 操作)if (ML,CL,BL=0) then (ML,CL+2,BL+1);(q 02 操作)if (ML,CL,BL=0) then (ML+3,CL,BL+1);(q 30 操作)if (ML,CL,BL=0) then (ML,CL+3,BL+1);(q 03 操作)if (ML,CL,BL=0) then (ML+1,CL+1,BL
7、+1);(q 11 操作)if (ML,CL,BL=0) then (ML+2,CL+1,BL+1);(q 21 操作)S0:( 5,5,1)G:(0,0,0) h(n) MC不满足 A*算法的条件。例如状态(1,1, 1) ,h(n)=M+C=1+1=2 ,这时只要一次摆渡就可以达到目标状态,最优路径的耗散值为 1,所以不满足3A*算法的条件。1(5,5,1) h=10, f=105(5,4,0) h=9,f=10 3(5,3,0) h=8, f=9 2(5,2,0) h=7, f=8 4(4,4,0) h=8, f=913(5,4,1) h=9, f=11 6(5,3,1) h=8, f=
8、108(3,3,0) h=6, f=9 9(5,1,0) h=6, f=9 7(5,0,0) h=5, f=8(4,4,1) h=8, f=12 11(5,2,1) h=7, f=11 10(5,1,1) h=6, f=1012(2,2,0) h=4, f=914(3,3,1) h=6, f=1215(0,3,0) h=3, f=1016(0,4,1) h=4, f=12 (0,5,1) h=5, f=1317(0,1,0) h=1, f=10 18(0,2,0) h=2,f=1119(1,1,1) h=2, f=12 (0,2,1) h=2, f=12 (0,3,1) h=3, f=13 (
9、2,2,1) h=4, f=1420(0,0,0) h=0, f=11图 1 M-C 问题搜索图 h(n )MC2B满足 A*算法的条件。先考虑船在左岸的情况。如果不考虑限制条件,船一次可以将 3 个人从左岸运到右岸,然后由 1 个人将船送回来。这样,船一个来回可以将 2 个人运过河,船仍然在左岸。最后剩下的 3 个人可以一次将他们运过河。所以,在不考虑限制条件的情况下,至少需要摆渡 次。12CM2323123 CMCM再考虑船在右岸的情况。同样不考虑限制条件,需要 1 个人将船送到左岸,4因此对于状态(M,C ,0 )来说,所需要的最少摆渡数相当于船在左岸时状态(M+1,C,1)或( M,C
10、+1 ,1)所需要的最少摆渡数加 1。所以,在不考虑限制条件的情况下,至少需要摆渡 次,即2)(C12)(综合考虑这两种情况,所需要的最少摆渡数为 ,其中 B=1 表示BCM2船在左岸,B=0 表示船在右岸。在考虑限制条件的情况下,最优的摆渡次数只能大于或等于该摆渡次数。所以该启发函数 h 满足 A*算法的条件。1(5,5,1) h=8, f=820(5,4,0) h=9,f=10 11(5,3,0) h=8, f=9 2(5,2,0) h=7, f=8 12(4,4,0) h=8, f=910(5,4,1) h=7, f=9 3(5,3,1) h=6, f=88(3,3,0) h=6, f=
11、9 9(5,1,0) h=6, f=9 4(5,0,0) h=5, f=819(4,4,1) h=6, f=10 6(5,2,1) h=5, f=9 5(5,1,1) h=4, f=87(2,2,0) h=4, f=913(3,3,1) h=4, f=1014(0,3,0) h=3, f=1015(0,4,1) h=2, f=10 (0,5,1) h=3, f=1116(0,1,0) h=1, f=10 (0,2,0) h=2,f=1117(1,1,1) h=0, f=10 18(0,2,1) h=0, f=10 (0,3,1) h=1, f=1121(0,0,0) h=0, f=11图 2
12、M-C 问题搜索图当出现 f 值相同的结点时,扩展顺序是任意的,所以结点的扩展顺序不是唯一的。56、讨论一个启发函数 h 在搜索期间可以得到改善的几种方法。7、答:最短路径为 ACEBDA, 其耗散值为 15。8、解:(1) (S ,O ,S 0,G )S:3 个黑色板和 3 个白色板在 7 个空格中的任何一种布局都是一个状态。O: 一块板移入相邻的空格; 一块板相隔 1 块其他的板跳入空格; 一块板相隔 2 块其他的板跳入空格。S0:B B B W W WG:W W W B B BW W W B B BW W W B B BW W W B B BW W W B B BW W W B B BW
13、 W W B B B(2) 14023145673 P(3)定义启发函数 h 为每一白色板左边的黑色板数的和。显然, ,所以该算法具有可采纳性。)(n又, ,所以该启发函数 h 满足单调限制条件。,(0)jiijcth9、解:( ),( ),( ),( ),( )6(S,( ),( ),( ),( )(A,( ),( ),( ),( )(A,S),( ),( ),( )(A,A),( ),( ),( )(A),( ),( ),( )(S,( ),( ),( )(A,( ),( ),( )(A,S,( ),( )(A,A,( ),( )(A,( ),( )(A,(S,( )(A,(A,( )(A
14、,(A,S)(A,(A,A)(A,(A)(A,S)(A,A)(A)S10、选择一个你熟悉的领域,设计一个状态搜索系统。11、解:从结点 n 到目的结点集合 N 的解图 G递归定义为 如果 n 是 N 的一个元素,则 G由单个结点组成; 如果 n 有一个扩展出结点n 1,n2,nk的 K-连接符,使得从每一个ni(i=1,2,k)到 N 有一解图,则 G由结点 n、K- 连接符和 n1,n2,nk中的每个结点到 N 的解图所组成;7 否则,n 到 N 不存在解图。如果 n=s,则此解图即为所求解问题的解图。AO*算法由两个过程组成 图生成过程,即扩展结点; 计算耗散值的过程。(3)2 3(1)(
15、4)(4) 31 1(2)(5)(4) (5)1 1 2(3)(5)(4) (5)(1) 1 210(4)8(6)(5) (6)(1) (2) 21 20(5)(6)(5) (6)(1) (2) 2(1) 20(6)12、解:(8)(1)(8)(4)(2)63 3 4 2263 3 4 219(9)(4) (5)(3)(9)(4) (6)(4)(4)(9)(4) (6)(2) (4)(5)(10)(4) (4) (6)263 3 4 21 2 32 1263 3 4 21 2 32 12 1263 3 4 21 2 32 12 11 163 3 4 210(2) (4)(6)(10)(4) (
16、4) (6)(2) (2) (4)(7)13、14、答:因为目的状态比初始状态多得多,所以博弈搜索过程采用正向搜索。状态数比较少的游戏可以采用回溯的策略。15、解:8 MAXMAX 的走步3 0 8 MIN7 8 3 0 6 8 9 MAX7 6 8 6 5 2 3 0 -2 6 2 5 8 9 216、解:8 MAX12 1 2 32 12 11 12 1263 3 4 21 2 32 12 11 12 1111MAX 的走步3 0 8 MIN7 8 3 0 6 8 9 MAX7 6 8 6 5 2 3 0 -2 6 2 5 8 9 217、解:(1)从左到右的 - 剪枝4 MAX3 4 MIN3 5 5 8 4 MAX0 5 7 8MIN0 7(2)从右到左的 - 剪枝4 MAX3 4 MIN3 5 5 8 4 MAX0 5 7 8MIN0 71218、写一个 - 搜索的算法。