人工智能经典习题集及各章总结(期末考试必备)

请设计一个过河方案,使得农夫、浪、羊都能不受损失的过河,画出相应的状态空间图。 题示:(1) 用四元组(农夫,狼,羊,菜)表示状态,其中每个元素都为0或1,用0表示在左岸,用1表示在右岸。

(2) 把每次过河的一种安排作为一种操作,每次过河都必须有农夫,因为只有他可以划船。

解:第一步,定义问题的描述形式

用四元组S=(f,w,s,v)表示问题状态,其中,f,w,s和v分别表示农夫,狼,羊和青菜是否在左岸,它们都可以取1或0,取1表示在左岸,取0表示在右岸。

第二步,用所定义的问题状态表示方式,把所有可能的问题状态表示出来,包括问题的初始状态和目标状态。

由于状态变量有4个,每个状态变量都有2种取值,因此有以下16种可能的状态: S0=(1,1,1,1),S1=(1,1,1,0),S2=(1,1,0,1),S3=(1,1,0,0) S4=(1,0,1,1),S5=(1,0,1,0),S6=(1,0,0,1),S7=(1,0,0,0) S8=(0,1,1,1),S9=(0,1,1,0),S10=(0,1,0,1),S11=(0,1,0,0) S12=(0,0,1,1),S13=(0,0,1,0),S14=(0,0,0,1),S15=(0,0,0,0)

其中,状态S3,S6,S7,S8,S9,S12是不合法状态,S0和S15分别是初始状态和目标状态。

第三步,定义操作,即用于状态变换的算符组F

由于每次过河船上都必须有农夫,且除农夫外船上只能载狼,羊和菜中的一种,故算符定义如下:

L(i)表示农夫从左岸将第i样东西送到右岸(i=1表示狼,i=2表示羊,i=3表示菜,i=0表示船上除农夫外不载任何东西)。由于农夫必须在船上,故对农夫的表示省略。

R (i)表示农夫从右岸将第i样东西带到左岸(i=1表示狼,i=2表示羊,i=3表示菜,i=0表示船上除农夫外不载任何东西)。同样,对农夫的表示省略。

这样,所定义的算符组F可以有以下8种算符: L (0),L (1),L (2),L (3) R(0),R(1),R (2),R (3)

第四步,根据上述定义的状态和操作进行求解。 该问题求解过程的状态空间图如下:

(1,1,l,1)

L(2)

(0,1,0,1) R(0) (1,1,0,1)

L(1) L(3)

(0,0,0,1) (0,1,0,0)

R(2) (1,0,1,1)

R(2) (1,1,1,0) L(2)

L(3)

(0,0,1,0) R(0)

(1,0,1,0) L(2) (0,0,0,0)

4.7 圆盘问题。设有大小不等的三个圆盘A、B、C套在一根轴上,每个盘上都标有数字1、2、3、4,并且每个圆盘都可以独立的绕轴做逆时针转动,每次转动90°,其初始状态S0和目标状态Sg如图4-31所示,请用广度优先搜索和深度优先搜索,求出从S0到Sg的路径。

1 2 C 2 C 2 B 4 B A A 2 2 3 3 1 4 1 3 3 3 1 1 1 2 4 4 4 3 4 初始状态S0 目标状态Sg

图 4-31 圆盘问题

解:设用qA,qB和qC分别表示把A盘,B盘和C盘绕轴逆时针转动90o,这些操作(算符)的排列顺序是qA,qB,qC。

应用广度优先搜索,可得到如下搜索树。在该搜索树中,重复出现的状态不再划出,节点旁边的标识Si,i=0,1,2,…,为按节点被扩展的顺序给出的该节点的状态标识。

由该图可以看出,从初始状态S0到目标状态Sg的路径是 S0→2→5→13(Sg)

>>灞曞紑鍏ㄦ枃<<
12@gma联系客服:779662525#qq.com(#替换为@)