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

not(member(Z,L)),

path(Z,Y,[Z|L],D2),D=D1+D2.%再找Z到出口Y的路径 member(X,[X|_]).

member(X,[_|T])if member(X,T).

road(A,B,D):-road(B,A,D). %因为没向图 /* 交通图 */

road(“西安”,”北京”,1165). road(“西安”,”上海”,1511). road(“西安”,“广州” ,2129). road(“西安”,”昆明”,1942). road(“昆明”,”北京”,3179). road(“昆明”,”上海”,2677). road(“昆明”,“广州”,2216). road(“北京”,”广州”,2510). road(“上海”,”北京”,1462). road(“广州”,“上海”,1511). (1)path(“西安”,”北京”,L,D),write(L,D). (2)path(“西安”,”北京”,L,D), member(“上海”,L),write(L,D). (3)path(“西安”,”北京”,L,D),

member(“上海”,L),not(member(“昆明”,L)), write(L,D). 17. 何谓估价函数? 在估价函数中,g(x)和h(x)各起什么作用? 

答:估价函数用来估计节点重要性的函数。估价函数f(x)被定义为从初始节点S0出发,约束经过节点x到达目标节点Sg的所有路径中最小路径代价的估计值。它的一般形式为: f(x)=g(x)+h(x)

其中,g(x)是从初始节点S0到节点x的实际代价;h(x)是从节点x到目标节点Sg的最优路径的估计代价。

18. 局部择优搜索与全局择优搜索的相同处与区别各是什么? 答:局部择优搜索与全局择优搜索的区别是,扩展节点N后仅对N的子节点按启发函数值大小以升序排序,再将它们依次放入OPEN表的首部。故算法从略。

19. 传教士和野人问题。有三个传教士和三个野人一起来到河边准备渡河, 河边有一条空船,且传教士和野人都会划船, 但每次最多可供两人乘渡。河的任何一岸以及船上一旦出现野人人数超过传教士人数,野人就会把传教士吃掉。为安全地渡河,传教士应如何规划渡河方案?试给出该问题的状态图表示, 并用PROLOG语言编程求解之。

若传教士和野人的数目均为五人,渡船至多可乘三人,请定义一个启发函数, 并给出相应的搜索树。

解:首先选取描述问题状态的方法。在这个问题中,需要考虑两岸的修道士人数和野人数,还需要考虑船在左岸还是在右岸。从而可用一个三元组来表示状态: S=(m, c, b) 其中,m表示左岸的修道士人数,c表示左岸的野人数,b表示左岸的船数。

右岸的状态可由下式确定:右岸修道士数:m'=3-m;右岸野人数:c'=3-c;右岸船数:b'=1-b 在这种表示方式下,m和c都可取0、1、2、3中之一,b可取0和1中之一。因此,共有4×4×2=32种状态。 这32种状态并非全有意义,除去不合法状态和修道士被野人吃掉的状态,有意义的状态只有16种:

S0=(3, 3, 1) S1=(3, 2, 1) S2=(3, 1, 1) S3=(2, 2, 1) S4=(1, 1, 1) S5=(0, 3, 1) S6=(0, 2, 1) S7=(0, 1, 1) S8=(3, 2, 0) S9=(3, 1, 0) S10=(3, 0, 0) S11=(2, 2, 0) S12=(1, 1,0) S13=(0, 2, 0) S14=(0, 1, 0) S15=(0, 0, 0) 有了这些状态,还需要考虑可进行的操作。

操作是指用船把修道士或野人从河的左岸运到右岸,或从河的右岸运到左岸。 每个操作都应当满足如下条件:

一是船至少有一个人(m或c)操作,离开岸边的m和c的减少数目应该等于到达岸边的m和c的增加数目;二是每次操作船上人数不得超过2个; 三是操作应保证不产生非法状态。 因此,操作应由条件部分和动作部分: 条件:只有当其条件具备时才能使用动作:刻划了应用此操作所产生的结果。操作的表示: 用符号Pij表示从左岸到右岸的运人操作用符号Qij表示从右岸到左岸的操作 其中: i表示船上的修道士人数 j表示船上的野人数

操作集

本问题有10种操作可供选择:

F={P01, P10, P11, P02, P20,Q01, Q10, Q11, Q02, Q20} 下面以P01和Q01为例来说明这些操作的条件和动作。

操作符号 条件 动作

P01 b=1, m=0或3, c≥1 b=0, c=c-1 Q01 b=0, m=0或3,c≤2 b=1, c=c+1 20.设(1)凡事清洁的东西

就有人喜欢

(2)人们都不喜欢苍蝇 用归结原理证明苍蝇 是不清洁的

21.八皇后问题: 答案:用八元组(X0,X1,X2,X3,X4,X5,X6,X7)表示第1~8行的棋子,值(x0,x1,x2,x3,x4,x5,x6,x7)表示其在列上的位置。状态可表示为八元组的一组值。

专家系统:所谓专家系统,就是基于人类专家知识的程序系统。专家系统的特点是拥有大量的专家知识(包括领域知识和经验知识),能模拟专家的思维方式,面对领域中复杂的实际问题,能作出专家水平级的决策,像专家一样解决实际问题。

专家系统的特征:1)处理问题的性质:善于解决不确定、非结构化、没有算法解或虽有算法解但在现有机器上无法实施的困难问题。2)处理问题方法:靠知识和推理来解决问题3系统

结构:强调知识与推理的分离,系统具有很好的灵活性和可扩充性。4具有解释功能:在运行中能回答用户提出的问题,同时还能对输出(结论)或处理问题的过程作出解释。5具有“自学习”能力:即不断对已有知识进行扩充、完善和提炼。6专家系统它始终如一地以专家级水平求解问题。

各部分功能:1知识库:以某种表示形式存储于计算机中的知识集合。知识库中的知识一般包括专家知识、领域知识和元知识。2推理机:推理机就是实现机器推理的程序,包括通常的逻辑推理和基于产生式的操作。3动态数据库:是存放初始证据事实、推理结果和控制信息的场所。4。人机界面:最终用户与专家系统的交互界面5解释模块: 专门负责向用户解释专家系统的行为和结果。 6知识库管理系统:是知识库的支撑软件。其功能包括知识库的建立、删除、重组;知识的获取、知识的检查等。

专家系统的应用和发展情况:医学诊断/地质勘探/物质结构分析/生物遗传研究/市场决策/生产管理。20世纪90年代模糊技术、神经网络和面向对象等新技术迅速崛起,为专家系统注入了新的活力。

知识获取:知识获取是建造专家系统的关键一步,也是较为困难的一步,被称为建造专家系统的“瓶颈”。知识获取大体有三种途径。1人工获取:即计算机人员与领域专家合作,对有关领域知识和专家知识,进行挖掘、搜集、分析、综合、整理、归纳,然后以某种表示形式存入知识库。2半自动获取,即利用某种专门的知识获取系统,采取提示、指导或问答的方式,帮助专家提取、归纳有关知识,并自动记入知识库。3 自动获取又可分为两种形式:一种是系统本身具有一种机制,使得系统在运行过程中能不断地总结经验,并修改和扩充自己的知识库;另一种是开发专门的机器学习系统,让机器自动从实际问题中获取知识,并填充知识库。

22.有两个最优解树

左解树:为最优解 右解树

按和代价法,代价为:

g(S0)=12,g(A)=7, g(D)=4.

按最大代价法,代价为:

g(S0)=10,g(A)=5, g(D)=2.

第2章 知识表示方法部分参考答案

2.8 设有如下语句,请用相应的谓词公式分别把他们表示出来:s

(1) 有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花 。 解:定义谓词d P(x):x是人 L(x,y):x喜欢y

其中,y的个体域是{梅花,菊花}。

将知识用谓词表示为:

(?x )(P(x)→L(x, 梅花)∨L(x, 菊花)∨L(x, 梅花)∧L(x, 菊花)) (2) 有人每天下午都去打篮球。 解:定义谓词 P(x):x是人 B(x):x打篮球 A(y):y是下午

将知识用谓词表示为:a

(?x )(?y) (A(y)→B(x)∧P(x))

(3) 新型计算机速度又快,存储容量又大。 解:定义谓词

NC(x):x是新型计算机 F(x):x速度快 B(x):x容量大

将知识用谓词表示为: (?x) (NC(x)→F(x)∧B(x))

(4) 不是每个计算机系的学生都喜欢在计算机上编程序。 解:定义谓词

S(x):x是计算机系学生

L(x, pragramming):x喜欢编程序 U(x,computer):x使用计算机 将知识用谓词表示为:

? (?x) (S(x)→L(x, pragramming)∧U(x,computer)) (5) 凡是喜欢编程序的人都喜欢计算机。 解:定义谓词 P(x):x是人 L(x, y):x喜欢y

将知识用谓词表示为:

(?x) (P(x)∧L(x,pragramming)→L(x, computer))

2.9 用谓词表示法求解机器人摞积木问题。设机器人有一只机械手,要处理的世界有一张桌子,桌上可堆放若干相同的方积木块。机械手有4个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌之上;在积木上再摞上一块积木;从积木上面拣起一块积木。积木世界的布局如下图所示。