文档视界 最新最全的文档下载
当前位置:文档视界 › 人工智能--课后习题答案

人工智能--课后习题答案

人工智能--课后习题答案
人工智能--课后习题答案

《人工智能》课后习题答案

第一章绪论

1.1答:人工智能就是让机器完成那些如果由人来做则需要智能的事情的科学。人工智能是相对于人的自然智能而言,即用人工的方法和技术,研制智能机器或智能系统来模仿延伸和扩展人的智能,实现智能行为和“机器思维”,解决需要人类专家才能处理的问题。

1.2答:“智能”一词源于拉丁“Legere”,意思是收集、汇集,智能通常用来表示从中进行选择、理解和感觉。所谓自然智能就是人类和一些动物所具有的智力和行为能力。

智力是针对具体情况的,根据不同的情况有不同的含义。“智力”是指学会某种技能的能力,而不是指技能本身。

1.3答:专家系统是一个智能的计算机程序,他运用知识和推理步骤来解决只有专家才能解决的复杂问题。即任何解题能力达到了同领域人类专家水平的计算机程序度可以称为专家系统。

1.4答:

自然语言处理—语言翻译系统,金山词霸系列

机器人—足球机器人

模式识别—Microsoft Cartoon Maker

博弈—围棋和跳棋

第二章知识表达技术

2.1解答:

(1)状态空间(State Space)是利用状态变量和操作符号,表示系统或问题的有关知识的符号体系,状态空间是一个四元组(S,O,S0,G):

S—状态集合;O—操作算子集合;S0—初始状态,S0?S;G—目的状态,G?S,(G可若干具体状态,也可满足某些性质的路径信息描述)

从S0结点到G结点的路径被称为求解路径。

状态空间一解是一有限操作算子序列,它使初始状态转换为目标状态:

O1 O2 O3 Ok

S0→???S1→???S2→???……→???G

其中O1,…,Ok即为状态空间的一个解(解往往不是唯一的)

(2)谓词逻辑是命题逻辑的扩充和发展,它将原子命题分解成客体和谓词两个部分。

与命题逻辑中命题公式相对应,谓词逻辑中也有谓词(命题函数)公式、原子谓词公式、复合谓词公式等概念。一阶谓词逻辑是谓词逻辑中最直观的一种逻辑。

(3)语义网络是一种采用网络形式表示人类知识的方法。即用一个有向图表示概念和概念之间的关系,其中节点代表概念,节点之间的连接弧(也称联想弧)代表概念之间的关系。

常见的语义网络形式有命题语义网络、数据语义网络:E-R图(实体-关系图)、语言语义网络等。

2.2解答:

(1)

(2)

2.3解答:设有如下四个谓词:

HUMAN(X) X 是人

LAWED(X) X 受法律管制

COMMIT(X) X 犯法

PUNISHED(X) X 受法律制裁

前两个谓词可以变为:HUMAN(X) LAWED(X),表示:人人都要受法律的管制; 后两个谓词可以变为:COMMIT(X) PUNISHED(X),表示只要X 犯了罪,X 就要受到惩罚;

进一步,还可以把上述两个谓词联结成如下形式:

[HUMAN(X) LAWED(X)] [COMMIT(X) PUNISHED(X)]

本公式的含义是:如果由于某个X 是人而受到法律管制,则这个人犯了罪就一定要受到惩罚。

晁盖是人,受法律的管制(老百姓受法律的管制);所以晁盖劫了生辰纲,违反了宋王朝的法律,一定要受到官府的追究。

高衙是人,却不受法律的管制(达官贵人和恶少不受法律的管制);所以高衙强抢民女,同样是违反了宋王朝的法律,却可以横行无忌。

2.4(1)条件②:周和钱是同一性别; 条件⑤:、徐、周是同一性别;

这样可以初步推出:(2 条件③:与不构成夫妻;

条件①:王与周不构成夫妻,则王选择的余地为徐;推得:王与徐是夫妻

排除上述已经成立的条件,显然可推得:与周是夫妻。

2.5解答:符号微积分基本公式为b a b

a x F a F

b F x f |)()()()(?=-=

用产生式表示为:If f(x) and (a,b) Then F(b)-F(a)

2.6解答:题中描述的情况用谓词形式可表达如下:

DOG(X) X 是狗

SOUND(X) X 会吠叫

BIT(X,Y) X 咬Y

ANIMAL(X) X 是动物

题中各条推理则可以表示为:

P1: ?x DOG(X) ?yBIT(X,Y)∨SOUND(X)

P2: :?x (ANIMAL(X) ∧SOUND(X)) yBIT(X,Y)

P3: 猎犬是狗,即DOG(X)种X 的谓词样品是猎犬,同时也可得ANIMAL(猎犬)

将P3带入P1可得SOUND(猎犬),再将SOUND(猎犬)和ANIMAL(猎犬)带入P2可得?yBIT(猎犬,Y),即可以得到结果:猎犬是咬人的。

2.7解答:题中的三条规则侧重点不同:R1规则的重点在于我师的任务;R2规则的重点在于敌团的配置;R3规则的重点在于我师的任务和敌团的配置同时满足。它们之间的关系为R1? R2? R3。

所以根据冲突解决规则中的规模排序,可知首先应该选择规则R3,系统执行才最有效。

2.8 解答:

2.9 解答:

(1)

(2)

2.10 解答:

2.11解答:

在产生式系统中,随着产生式规则的数量的增加,系统设计者难以理解规则间的相互作用,究其原因,在于每条规则的自含性使得知识表示的力度过于细微。因此要提高产生式系统的可理解性,就应当按照软件工程的思想,通过对规则的适当划分,将规则组织诚易于管理的功能模块。由于框架系统具有组织成块知识的良好特性,因此将两者进行有机结合,可以为产生式系统的开发、调试和管理提供有益的帮助。

基于框架的表示机制可以用作产生式语言和推理机制设计的一个重要构件。另外,框架可以直接用于表示规则,如果将每一个规则作为一个框架处理,一组用于解决特定问题的规则可组织成一类,且在这一类框架中表示这组规则的各种特性。

2.12 解答:略

2.13 解答:

(1)题目描述可转换为如下问题(N阶汉诺塔问题)

有编号为A、B、C 的三个柱子和标识为1、2、…、N的尺寸依次从小到大的N个有中心孔的金片;初始状态下N个金片按1、2、…、N 顺序堆放在A号柱子上,目标状态下N个金片以同样次序顺序堆放在B 号柱子上,金片的搬移须遵守以下规则:每次只能搬一个金片,且较大金片不能压放在较小金片之上,可以借助于C针。

(2)假设基本操作为move(x,A,C,B),表示将x个金片从A移到B上,中间可借助于C。

当N=1时,则无需借助中间的C针,就可以直接实现将1个金片从A移到B上,这也是问题的最简操作,可表示为move-one(1,A,B);

当N>1时,需要用中间的C针作辅助。其操作又可分为以下三步:

将N-1个金片从A移到C上,中间可借助于B,转换为基本操作就是move(N-1,A, B, C);

将1个金片直接从A移到B上,转换为基本操作就是move-one(1,A,B);

将N-1个金片从C移到B上,中间可借助于A,转换为基本操作就是move(N-1, C, A, B);

(3)设M(x)表示移动x个金片所需要的操作次数,则上述N阶汉诺塔问题可以表示成如下形式:

M(1)=1

M(N)=2M(N-1)+1

最后可以解得M(N)=2N-1

下面给出对梵塔问题给出产生式系统描述,并讨论N为任意时状态空间的规模。

(1)综合数据库

定义三元组:(A, B, C),其中A, B, C分别表示三根立柱,均为表,表的元素为1~N之间的整数,表示N个不同大小的盘子,数值小的数表示小盘子,数值大的数表示大盘子。表的第一个元素表示立柱最上面的柱子,其余类推。

(2)规则集

为了方便表示规则集,引入以下几个函数:

first(L):取表的第一个元素,对于空表,first得到一个很大的大于N的数值。

tail(L):取表除了第一个元素以外,其余元素组成的表。

cons(x, L):将x加入到表L的最前面。

规则集:

r1: IF (A, B, C) and (first(A) < first(B)) THEN (tail(A), cons(first(A), B), C)

r2: IF (A, B, C) and (first(A) < first(C)) THEN (tail(A), B, cons(first(A), C))

r3: IF (A, B, C) and (first(B) < first(C)) THEN (A, tail(B), cons(first(B), C))

r4: IF (A, B, C) and (first(B) < first(A)) THEN (cons(first(B), A), tail(B), C)

r5: IF (A, B, C) and (first(C) < first(A)) THEN (cons(first(C), A), B, tail(C))

r6: IF (A, B, C) and (first(C) < first(B)) THEN (A, cons(first(C), B), tail(C))

(3)初始状态:((1,2,...,N),(),())

(4)结束状态:((),(),(1,2,...,N))

问题的状态规模:每一个盘子都有三种选择:在A上、或者在B上、或者在C上,共N个盘子,所以共有种可能。即问题的状态规模为。

2.14 解答:

(1)定义谓词G(x,y):x比y大,个体有三(zhang)、四(li),将这些个体带入谓词中,得到G(zhang,li)和?G(zhang,li),根据语义用逻辑连接词将它们联结起来就得到表示上述知识的谓词公式:G(zhang,li) ?G(zhang,li)。

(2) 定义谓词Marry(x,y):x和y结婚,Male(x):x是男的,Female(x):x是女的。个体有甲

(A)、乙(B),将这些个体带入谓词中,得到Marry(A,B)、Male(A)、Female(B)以及Male(A)、Female(B),根据语义用逻辑连接词将它们联结起来就得到表示上述知识的谓词公式:

Marry(A,B) (Male(A)∧Female(B))∨(Male(B)∧Female(A))

(3) 定义谓词Honest(x):x是诚实的,Lying(x):x会说谎。个体有三(zhang),将这些个体带入谓词中,得到Honest(x)、?Lying(x)、Lying(zhang)、?Honest(zhang),根据语义用逻辑连接词将它们联结起来就得到表示上述知识的谓词公式:

?x (Honest(x) ?Lying(x)) (Lying(zhang) ?Honest(zhang))

第三章问题求解方法

3.1答:深度优先搜索与广度优先搜索的区别在于:在对节点n进行扩展时,其后继节点在OPEN表中的存放位置不同。广度优先搜索是将后继节点放入OPEN表的末端,而深度优先搜索则是将后继节点放入OPEN表的前端。广度优先搜索是一种完备搜索,即只要问题有解就一定能够求出,而深度优先搜索是不完备搜索。

在不要求求解速度且目标节点的层次较深的情况下,广度优先搜索优于深度优先搜索;在要求求解速度且目标节点的层次较浅的情况下,深度优先搜索优于广度优先搜索。

广度优先的正例:积木问题;深度优先的正例:邮递员问题,反例:国际象棋。

3.2答:衡量标准为:这组子状态中有没有目标状态,如果有,则选择该节点并且搜索成功;若没有,则按照某种控制策略从已生成的状态中再选择一个状态作为当前状态重复搜索过程。

3.3答:(1)广度优先搜索:该程序必须找到解,并且最好是最优解;

(2)广度优先搜索:医生要根据病人的各种病状判断病人的病;

(3)深度优先搜索:该程序要求一定要找到目标路径;

(4)深度优先搜索:该程序要求找到最优解;

(5)广度优先搜索:不能确定它们是否等同,既不能确定它们是否有等同解。

3.4答:对于四皇后问题,如果放一个皇后的耗散值为1的话,则任何一个解的耗散值都是4。因此如果h是对该耗散值的估计,是没有意义的。对于像四皇后这样的问题,启发函数应该是对找到解的可能性的评价。利用一个位置放皇后后,消去的对角线的长度来进行评价。

3.5答:定义h1=M+C-2B,其中M,C分别是在河的左岸的传教士人数和野人人数。B=1表示船在左岸,B=0表示船在右岸。也可以定义h2=M+C。h1是满足A*条件的,而h2

不满足。

要说明h2=M+C不满足A*条件是很容易的,只需要给出一个反例就可以了。比如状态(1, 1, 1),h2=M+C=1+1=2,而实际上只要一次摆渡就可以达到目标状态,其最优路径的耗散值为1。所以不满足A*的条件。

下面我们来证明h1=M+C-2B是满足A*条件的。

我们分两种情况考虑。先考虑船在左岸的情况。如果不考虑限制条件,也就是说,船一次可以将三人从左岸运到右岸,然后再有一个人将船送回来。这样,船一个来回可以运过河2人,而船仍然在左岸。而最后剩下的三个人,则可以一次将他们全部从左岸运到右岸。所

以,在不考虑限制条件的情况下,也至少需要摆渡次。其中分子上的"-3"表示剩下三个留待最后一次运过去。除以"2"是因为一个来回可以运过去2人,需要

个来回,而"来回"数不能是小数,需要向上取整,这个用符号表示。而乘以"2"

是因为一个来回相当于两次摆渡,所以要乘以2。而最后的"+1",则表示将剩下的3个运过去,需要一次摆渡。

化简有:

再考虑船在右岸的情况。同样不考虑限制条件。船在右岸,需要一个人将船运到左岸。因此对于状态(M,C,0)来说,其所需要的最少摆渡数,相当于船在左岸时状态(M+1,C,1)或(M,C+1,1)所需要的最少摆渡数,再加上第一次将船从右岸送到左岸的一次摆渡数。因此所需要的最少摆渡数为:(M+C+1)-2+1 。其中(M+C+1)的"+1"表示送船回到左岸的那个人,而最后边的"+1",表示送船到左岸时的一次摆渡。化简有:(M+C+1)-2+1=M+C。

综合船在左岸和船在右岸两种情况下,所需要的最少摆渡次数用一个式子表示为:

M+C-2B。其中B=1表示船在左岸,B=0表示船在右岸。由于该摆渡次数是在不考虑限制条件下,推出的最少所需要的摆渡次数。因此,当有限制条件时,最优的摆渡次数只能大于等于该摆渡次数。所以该启发函数h是满足A*条件的。

3.6答:在搜索期间改善h函数,是一种动态改变h函数的方法。像改进的A*算法中,对NEXT中的节点按g值的大小选择待扩展的节点,相当于令这些节点的h=0,就是动态修改h函数的一种方法。

由定理2:若h(n)满足单调限制,则由A*所扩展的节点序列,其f值是非递减的,即

f(ni)≤f(nj)),当h满足单调条件时,A*所扩展的节点序列,其f是非递减的。对于任何节点i,j,如果j是i的子节点,则有f(i)≤f(j)。利用该性质,我们可以提出另一种动态修改h 函数的方法:f(j)=max(f(i), f(j))

以f(j)作为节点j的f值。f值的改变,隐含了h值的改变。当h不满足单调条件时,经过这样修正后的h具有一定的单调性质,可以减少重复节点的可能性。

3.7答:

A C

B

E

D

6

6

7

1

5

4

3

8

2

5

像这种类型的问题,由于涉及到城市距离或旅行费用,所以利用代价树广度优先搜索求

解。为此,首先必须将旅行交通图转换为代价树,转换方法为:从初始节点A开始,把与它直接相邻的节点作为他的后继节点,对其他节点也作同样的扩展,但若一个节点以作为某节点的前驱节点,则它就不能再作为该结点的后继结点。另外,图中节点除了初始节点A 之外,其它的节点都有可能在代价树中多次出现,为了区分它们的多次出现,分别用下标1,2…标出。但他们却是图中的同一个节点。设估价函数f(n)=d(n)+w(n),其中d(n)为状态的深度,w(n)为城市间的距离。代价树如下所示:

相关文档