《《人工智能》--课后习题答案.docx》由会员分享,可在线阅读,更多相关《《人工智能》--课后习题答案.docx(15页珍藏版)》请在优知文库上搜索。
1、UPIC1.1.3(fai1.,run():-SIdI0:Wri1.ecEndofIeSIn)endip1.c三cntfamiIy1.g1.mainExe:run(famiIy1.:run).(5)fai1.y1.pro补充习题:1.编写一ProIog程序使得你能和计算机“交谈”(ConversationswithaCoBP1.nerr下列图显示了对话时的情景,字体加机的语句表示用户从进盘输入的内容,其他则是计算机的答复。HE1.1.OHIDOYOUIAWTTOTA1.XNOIWANTTOS1.EEPYOUAREASTOPIDCOMPUTERIAMNICECOMPUTER1.答:domains
2、*领域段,说明程序要用到的数据类型*/Words=StririKsentence-words*predicates/*谓词段,说明程序要用到的谓词名和参数”nondetermta1.knndetermhuman(sentence)nondetermanswer(sentence)nondetermto1.ist(words,sentence)nondetermprocess(words)nondetermchange(words,words)c1.auses*子句段.说明程序要用到的事实和规则*taik:-human(X),answer(X),ta1.k.human(Y):-readIn(X)
3、,to1.ist(X,Y).to1.is1.(StrHIT):-fronttoken(Str,H1S1.r1.),!.Io1.ist(Str1.T).to1.istC,).answer():-n1.,n1.一个序列和一对点,要求证明(或反证)这个序列是这两个点之间一条可能的路线.可以看出,这是一个证明型问遨:即证明给出的序列是给定的两点之间的一条路规.那么什么是跖戏?结合图2,我们来看几个有用的例子。(1) bdC这个序列是a和C两点之间的路线吗?显然不是,因为它的起始点不对.(2) dce这个序列是d和b两点之间的路线吗?当然不是:它的终止点不对.(3) ab。是a和e之间的路线吗?不是,因
4、为在平面图上,b和e两个点之间不是直接相连的.可见,对于一个给定的点序列,要使它成为某对特定的点之间的路线,需要满足以下三个条件: 序列应该从点对的第一点开始。 序列应该以点对的第二点结束. 序列应该是连通的连通序列也就是说,序列中任意两个连续的点在平面图中应该是相连的.对于给定的一个序列和一对皓点,如果这三个条件都湎足,加么可以确信这个序列是这两个点之间的路战。这三个条件是证明该假设的充分条件,同时也是必要条件.设计方案在Prf1Og中可以用一个表来表示一个点序列,例如,序列可以表示为e,c,d,b:一对蝌点也可以用一个表表示。因此,route_between(e,c,d,b,e,b)可以表
5、示egcgdgb是e、b两点之间的路践”将是我们所关心的关系的一个实例,目标是什么?我们可以写成routeJCtWeen(X.Y,Z),这里序列X和一对端点Y,2是给定的.我们关心的是目标能否取得成功.为了给route_between写出一条规则,我们只需要将上面写下的三个条件转换成Pro1.og就可以了,如下所示:route_between(X,Y,Z):begins-with(X,Y),ends_with(X,7.),is_connected(X).如果能够写出beginSJrith、endsWith和is_COnneCIed这三个谓词的检脸定义,我们应该能铭输入询问,如routeJJet
6、Ween(a.d,e,c,b,a,b),并得到一个是还是否的答红“执行方案(1) begins.With该关系的一个实例就是bcinSjiIh(b,a,d,b).显然,这个关系要成立,端点与表头必须是完全相同的.用规则表示就是begins.WithuXN,X).可以用一些询问进行试验,例如beginswth(b,a.d,.b)等.(2) ends_withends.with(b,a,d,d)就是该关系的一个实例,与beginswith相比,这个关系就不是那么容易定义了,因为表的最后一个元素看起来并不像第一个元素那样特别.不过你可以想出一个表.使得它与表b,a.d)相关,又是从它的最后一个元案开
7、始的吗?珞原表一一下,变成倒,a,bj如何?所以我们可以这样描述ends_with;表X以点Y结束,如果X的逆序从点丫开始。表的倒置.即求一个表的逆序表是关于表的一个最常见的问题.这里我们不做具体讨论,其完整程序如图4所示.现在,我们就可以用reverse关系和刚刚已经定义好的1.egins_with关系,将上面的描述用Pro1.og表示成:ends_with(X,Y):-reverse(X,Z),begins_with(Z,Y).可以用一些适宜的询问来试验一下,domainss_1.ist=symbo1.*predicatesappend(s_1.ist,s_1.ist,s_1.ist)又称“黑板”、”综合数据库”或“动态数据库”,主要用于存放用户提供的初始1H实、问SS描述及系统运行过程中得到的中间结果、最终结果等信息数据库是推理机不可缺少的工作场地,同时由于它可记录推理过程中的各种有关信息.又为解择机构提供了答笑用户咨沏的依据(制相应的教押库管理程序)斛际机构:答班用户提出的问题,解和系统的推理过程,使系统对用户透明7.3答:(1)传统程序是依据某确定的算法和数据结构来求解某一确定的何时.而专家系统是依据知识和推理来求解问题,这是专家系统与传统程序的域大区别,传统程序=数据结构+翼法专媒系统=知识*推理(2)传蜕程序把关于向应求解的知识晦含于程序中,而专家