人工智能及其应用蔡自兴课后习题答案第3章.docx
《人工智能及其应用蔡自兴课后习题答案第3章.docx》由会员分享,可在线阅读,更多相关《人工智能及其应用蔡自兴课后习题答案第3章.docx(13页珍藏版)》请在冰豆网上搜索。
人工智能及其应用蔡自兴课后习题答案第3章
第三章搜索推理技术
3-1什么是图搜索过程?
其中,重排OPEN表意味着什么,重排的原则是什么?
图搜索的一般过程如下:
(1)建立一个搜索图G(初始只含有起始节点S),把S放到未扩展肖点表中(OPEN表)中。
(2)建立一个已扩展节点表(CLOSED表),其初始为空表。
⑶LOOP:
若OPEN表是空表,则失败退出。
⑷选择OPEN表上的第一个节点,把它从OPEN表移出并放进CLOSED表中。
称此节点为肖点n,它是CLOSED表中右点的编号
⑸若n为一目标节点,则有解并成功退出。
此解是追踪图G中沿着指针从n到S这条路径而得到的(指针将在第7步中设置)
(6)扩展节点n,生成不是n的祖先的那些后继节点的集合Mo将M添入图G中。
⑺对那些未曾在G中出现过的(既未曾在OPEN表上或CLOSED表上岀现过的)M成员设置一个通向n的指针,并将它们加进OPEN表。
对已经在OPEN或CLOSED表上的每个H成员,确定是否需要更改通到n的指针方向。
对已在CLOSED表上的每个H成员,确左是否需要更改图G中通向它的每个后裔节点的指针方向。
(8)按某一任意方式或按某个探试值,重排OPEN表。
(9)GOLOOPe
重排OPEN表意味着,在第(6)步中,将优先扩展哪个节点,不同的排序标准对应着不同的搜索策略。
重排的原则当视具体需求而左,不同的原则对应着不同的搜索策略,如果想尽快地找到一个解,则应当将最有可能达到目标节点的那些节点排在OPEN表的前面部分,如果想找到代价最小的解,则应当按代价从小到大的顺序重排OPEN表。
3-2试举例比较各种搜索方法的效率。
原始文档來自蔡自兴老师的《人工智能》课件
hnp:
//nclclas$・csu.cdu.cMl)ki2003/rcn£on2zhincn2/rci也onpzhinciMkcchcnpxili.him
原始文档來自蔡自兴老师的《人工智能》课件
hnp:
//nclclas$・csu.cdu.cMl)ki2003/rcn£on2zhincn2/rci也onpzhinciMkcchcnpxili.him
宽度优先搜索
(1)把起始节点放到OPEN表中(如果该起始疔点为一目标节点,则求得一个解答)。
(2)如果OPEN是个空表,则没有解,失败退岀:
否则继续。
⑶把第一个廿点(节点n)从OPEN表移出,并把它放入CLOSED扩展节点表中。
(4)扩展节点n。
如果没有后继节点,则转向上述第
(2)步。
⑸把n的所有后继廿点放到OPEN表的末端,并提供从这些后继步点回到n的指针。
⑹如果n的任一个后继节点是个目标节点,贝I战到■伽答,成功退岀;否则转向第
(2)步。
原始文档來自蔡自兴老师的《人工智能》课件
hnp:
//nclclas$・csu.cdu.cMl)ki2003/rcn£on2zhincn2/rci也onpzhinciMkcchcnpxili.him
有界深度优先搜索
(1)把起始节点S放到未扩展节点OPEN表中。
如果此节点为一目标节点,则得到一个解。
(2)如果OPEN为一空表,则失败退出。
⑶把第一个节点(节点n)从OPEN表移到CLOSED表。
(4)如果节点n的深度等于最大深度,则转向
(2)。
⑸扩展节点n,产生其全部后裔,刑S它们放入OPEN表的前头。
如果没有后裔,则转向
(2)o
(6)如果后继节点中有任一个为目标节点,则求得一个解,成功退出:
否则,转向
(2)。
原始文档來自蔡自兴老师的《人工智能》课件
hupW/
等代价搜索方法以g⑴的递增顺序扩展其节点,其算法如下:
(1)把起始肖点S放到未扩展廿点表OPEN4*0如果此起始节点为一目标节点,贝味得一个解;否则令g(S)=O»
(2)如果OPEN是个空表,则没有解而失败退岀。
(3)从OPEN表中选择一个节点i,使其g(i)为最小。
如果有几个节点都合格,那么就要选择一个目标节点作为节点i(要是有目标节点的话):
否则,就从中选一个作为节点i。
把节点i从OPEN表移至扩展节点表CLOSED中。
(4)如果节点i为目标节点,则求得一个解。
⑸扩展节点i。
如果没有后继节点,则转向第
(2)步。
(6)对于节点i的每个后继节点j,计算g(j)=g(i)+c(i,j),并把所有后继节点j放进OPEN表。
提供回到节点i的指针。
(7)转向第
(2)步。
3-3化为子句形有哪些步骤?
请结合例子说明之。
原始文档來自蔡自兴老师的《人工智能》课件
hnp:
//nclclas$・csu.cdu.cMl)ki2003/rcn£on2zhincn2/rci也onpzhinciMkcchcnpxili.him
任一谓词演算公式可以化成一个子句集。
其变换过程由下列九个步骤组成:
(1)消去蕴涵符号
将蕴涵符号化为析取和否左符号
⑵减少否泄符号的辖域
每个否左符号最多只用到一个谓词符号上,并反复应用狄•摩根左律
⑶对变量标准化
对哑元改爼以保证每个量词有其自己唯一的哑元
⑷消去存在量词
引入Skolem函数,消去存在量词
如果要消去的存在量词不在任何一个全称量词的辖域内,那么我们就用不含变量的Skolem函数即常量。
⑸化为前束形
把所有全称量词移到公式的左边,并使每个量词的辖域包括这个量词后面公式的整个部分。
前束形=(前缀)(母式)
前缀==全称量词串
母式=无量词公式
⑹把母式化为合取范式
反复应用分配律,将珂式写成许多合取顷的合取的形式,而每一个合取项是一些谓词公式和(或)谓词公式的否定的析取
⑺消去全称量词
消去前缀,即消去明显出现的全称量词
⑻消去连词符号(合取)
用{合取项1.合取项2}替换明显岀现的合取符号
(9)更换变量名称
更换变量符号的名称,使一个变量符号不出现在一个以上的子句中
3-4如何通过消解反演求取问题的答案?
给出一个公式集S和目标公式L,通过反证或反演来求证目标公式L,其证明步骤如下:
(1)否定L,得〜L;
(2)把〜L添加到S中去:
⑶把新产生的集合{〜L,S}化成子句集:
(4)应用消解原理,力图推导出一个表示矛盾的空子句NIL。
3-5什么叫合适公式?
合适公式有哪些等价关系?
原始文档來自蔡自兴老师的《人工智能》课件
hnp:
//nclclas$・csu.cdu.cMl)ki2003/rcn£on2zhincn2/rci也onpzhinciMkcchcnpxili.him
合式公式的递归左义为:
(1)原子谓词公式是合式公式
(2)若A为合式公式,则A的否泄也是合式公式
⑶若A、B都是合式公式,则AANDB.AORB.A-»B.A<->B也都是合式公式
⑷若A是合式公式,x为A中的自由变元,贝i](ANYx)A和(EXTx)A都是合式公式
⑸只有按规则⑴~(4)求得的公式,才是合式公式等价关系有:
否定之否泄
蕴含与与或形式的等价
狄.摩根定律
分配律
交换律
结合律
逆否律
否泄跨越量词
全称量词同与或连词
量词中的哑元
3-6用宽度优先搜索求图3.33所示迷宫的岀踣。
原始文档來自蔡自兴老师的《人工智能》课件
hnp:
//nclclas$・csu.cdu.cMl)ki2003/rcn£on2zhincn2/rci也onpzhinciMkcchcnpxili.him
图3.33迷宫一例
第一步
STATB
第二步
BTH
BTC
第三步
HTG
CTF
最终路径为STATBTCTF
3-7用有界深度优先搜索方法求解图3.34所示八数码难题。
按顺时针方向(上、右.下、左)试探,尝试移动空格,将最大深度泄为5
原始文档來自蔡自兴老师的《人工智能》课件
hHp:
〃nclclas$ASU.cdu.cMpkc2003/rcn2on2/hincn2/rci也onpzhincng/kcchcnpxili.him
SO(So)
E
s
□
□
H
ZJ
3
SI
□
s
3
□
J
H
ZJ
3
S2
S3
E
s
3
□
H
J
3
S4
H
3
3
□
J
ZJ
H
3
S5
s
□
3
□
H
3
S6
2
3
1
8
4
7
6
5
2
3
1
8
4
原始文档來自蔡自兴老师的《人工智能》课件
hnp:
//nclclas$・csu.cdu.cMl)ki2003/rcn£on2zhincn2/rci也onpzhinciMkcchcnpxili.him
7
6
5
S7
□
□
3
□
H
3
S8(Sg)
□
3
3
0
J
H
3
3-8应用最新的方法来表达传教士和野人问题,编写一个计算机程序,以求得安全渡过全部
6个人的解答。
虧:
在应用)1雇亜歸OS索方法时,可用(Mm,M洙表示状态描述,其中Nm和N•分别为传教士和野人的人数。
初始状态为(33),而可能的中间状态为(0,1),(02)X03),(1,1),(2,1),(2,2),(3<0),(3,1)和(3.2)等。
3-9试髓优先瞬.有界腿优先搜索及有諏索邮滦效率,并以实例数据加以说明。
3-10-个机器人驾驶卡车,携带包裹(编号分别为#1、#2和#3)分别投递到林(LIN).吴(WU)和胡(HU)3家住宅处。
规定了某些简单的操作符,如表示驾驶方位的drive(x,y)fn表示卸下包裹的unload(z);对于每个操作符,都有一定的先决条件和结果。
试说明状态空间问题求解系统如何能够应用谓词演算求得一个操作符序列,该序列能够生成—个满足AT(#1,LIN)aAT(#2rWU)aAT(#3,HU)的目标状态。
初始状态可描述为:
AT(#1,~LIN)ANDAT(#2,~WU)ANDAT(#1,~HU)ANDAT(#LCAR)ANDAT(#2,CAR)ANDAT(#3,CAR)
目标状态可描述为:
AT併],LIN)ANDAT併2.WU)ANDAT(#LHU)ANDAT(#1,-CAR)
ANDAT(#2,-CAR)ANDAT(#3,-CAR)
对每个操作符都有一上的先决条件和结果,详细如下
drive(x,y)
原始文档來自蔡自兴老师的《人工智能》课件
hnp:
//nclclas$・csu.cdu.cMl)ki2003/rcn£on2zhincn2/rci也onpzhinciMkcchcnpxili.him
先决条件:
AT(CAR.X)
结果:
AT(CAR.y)
unload(z)先决条件:
AT(z,CAR)ANDAT(CAR.x)
结果:
AT(乙-CAR)ANDAT(z,x)
原问题就转换为寻找一个可将初始状态转换到目标状态的操作序列
如何求得该操作序列?
?
?
3-11规则演绎系统和产生式系统有哪几种推理方式?
各自的特点为何?
规则演绎系统的推理方式有正向推理、逆向推理和双向推理
项目
正向推理
逆向推理
推理方向
从if部分向then部分推理的过程,