VisualProlog实验.doc_第1页
VisualProlog实验.doc_第2页
VisualProlog实验.doc_第3页
VisualProlog实验.doc_第4页
VisualProlog实验.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 Visual Prolog运行环境实验(1学时)一、实验目的1、了解PROLOG解释器;2、掌握PROLOG语言中常量、变量的表示方法;3、掌握利用PROLOG进行事实库、规则库的编写方法。二、实验要求1、熟悉Visual Prolog运行环境,包括硬件与软件环境;2、学习示例程序,分析其功能;3、写出Example 1、Example 2、Example 3示例程序的功能;4、利用PROLOG进行事实库、规则库的编写,并在此基础上进行简单的询问。三、实验设备计算机,Visual prolog教学软件。四、实验内容及步骤(一)实验内容:1、熟悉Visual prolog的运行环境,包括所用的机器的硬件与软件环境;2、学习使用Visual prolog,包括进入Prolog主程序、编辑源程序、修改环境目录、退出等基本操作;3、学习Visual prolog的简单程序结构,掌握分析问题、询问解释技巧;4、了解PROLOG语言中常量、变量的表示方法;5、利用PROLOG进行事实库、规则库的编写,并在此基础上进行简单的询问。(二)实验步骤:1、启动Windows 2000操作环境;2、安装Visual Prolog集成开发环境;3、双击桌面图标或者找到Visual Prolog可执行文件所在目录双击图标,启动Visual prolog集成开发环境;4、打开Project菜单,选择New Project菜单项,将工作目录修改为你要保存到的文件夹,例如,c:11,给出工程文件名;5、打开Option菜单,选择Project菜单项打开下拉菜单,选择Compiler Options项,按下图中显示进行设置;6、从工程界面中选择“new”按钮或者从file菜单中选择“new”菜单项,弹出一个界面,将所有的复选框都去掉,进入Visual Prolog的程序编辑界面;7、将下面的Example 1编辑到编辑界面里面,Project菜单里面的Test goal菜单项或者直接点击菜单栏中的Test Goal按钮执行程序。查看执行结果显示窗口中结果是否与理论分析的结果一致;8、仿前例,运行Example 2、Example 3,分析程序功能;9、保存每个.Pro文件,保存工程。退出Visual Prolog系统,返回到Windows2000环境。五、源程序Example 1:domains person, activity = symbolpredicates likes(person,activity)clauses likes(ellen,tennis). likes(john,football). likes(tom,baseball). likes(eric,swimming). likes(mark,tennis). likes(bill,X):-likes(tom,X). goal likes(bill, What).Example 2: domains element=c(char);i(integer);r(real);s(symbol) mixlist=element* predicates length(mixlist, integer)clauses length(,0). length(_|T,L):-length(T,L1),L=L+1. goal length(10,9,8,7,6,5,4,3,2,1,X).Example 3:predicates fac(integer,real)clauses fac(1,1):-!. fac(X,FactX):- Y=X-1, fac(Y,FactY), FactX=X *FactY. goal fac(3,X).实验二知识表示、推理、搜索实验(10学时)正确完成给15分一、实验目的1、掌握利用PROLOG进行推理、问题求解的方法。2、掌握PROLOG编程技巧。二、实验要求对同学进行分组,每组完成一题:1. 野人与传教士过河问题:有传教士和野人各三人需要过河,他们都会划船。现只有一条船,一次只能载两人。假设野人多于传教士时传教士就会被吃掉。试编程求出所有能确保全部安全的过河的计划,并给出Visual Prolog程序。2. 农夫和小米问题:农夫、狐狸、鸡和米都在一条河的左岸,现在要把它们全部送到右岸去,农夫有一条船,过河时,除农夫外,船上至多能载狐狸、鸡和米中的一样。狐狸要吃鸡,鸡要吃米,除非农夫在那里。试编程求出所有能确保全部安全的过河的计划,并给出Visual Prolog程序。3. 八皇后问题模拟:在88格的国际象棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上。试编程求出所有能满足要求的摆法,并给出Visual Prolog程序。4. 谁是盗窃犯问题:某人被盗,公安局派出所派出5个侦察员去调查。研究案情时:侦察员A说:“赵与钱中至少有一人作案”;侦察员B说:“钱与孙中至少有一人作案”;侦察员C说:“孙与李中至少有一人作案”;侦察员D说:“赵与孙中至少有一人与此案无关”;侦察员E说:“钱与李中至少有一人与此案无关”。如果这5个侦察员的话都是可信的,试编程求出谁是盗窃犯,并给出Visual Prolog程序。5. 理发师问题:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉; 第一个顾客来到时,必须将理发师唤醒; 顾客来时如果还有空座的话,他就坐在一个座位上等待; 如果顾客来时没有空座位了,他就离开,不理发了; 当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。试编程求出谁是盗窃犯,并给出Visual Prolog程序。三、实验设备计算机,Visual prolog教学软件。四、实验内容及步骤(一)实验内容:后面请同学们根据不同的实验内容补齐!实验三 基于Jess的专家系统设计实验(10学时)正确完成给25分一、实验目的1、掌握利用Jess进行知识表示和推理的方法。2、掌握Jess编程技巧。二、实验要求(任选一题)1 假设一个交易系统:客户提出要买的东西,卖家提供要卖的东西,如果有符合的,就成交。 试编使用Jess实现该专家系统,并给出Jess程序。2. 试用Jess编程实现一个具有学习功能的动物识别专家系统。三、实验设备计算机,Jess教学软件。四、实验内容及步骤(一)题目1的实验内容:下面内容请同学自己补充!提示:1 第一条规则如果来了新的客户,取得这个客户所有需要的商品,并产生新的事实。(defrule query-buyer ?fact (retract ?fact) (foreach ?i (nth$ 2 (send ?buyer GetProducts) (assert (requires ?buyer ?i) ; get the products the buyer requires ; and for each one create a fact ; associating the buyer and the product )例如,来了一个客户Danny,我们先assert(new-buyer danny) ,jess发现了这条事实后,触发query-buyer这个规则,注意所有的规则之间没有顺序性。query-buyer这条规则先撤销刚才的事实,避免死循环,然后调用一个函数取得用户所有需要的商品Send ?buyer GetProducts.例如得到的结果是(Computer Keyboard Mouse),然后规则遍历这个结果集,每一个商品都产生一个新的事实,例如assert requires Danny Computer等等。2 第二个规则,出现一个新卖家,原理和刚才一样(defrule query-seller ?fact (retract ?fact) (foreach ?i (nth$ 2 (send ?seller GetProducts) (assert (provides ?seller ?i) ; get the products the seller provides ; and for each one create a fact ; associating the seller and the product )3 最后一个是交易的规则当有买家购买一个商品,卖家卖一个商品,并且两者相同的事实时候,告诉卖家有人要买该物品,同时也告诉买家有卖家投递该物品(defrule match-buyer-and-seller (requires ?buyer ?product1) ; the buyer requires product1 (provides ?seller ?product2) ; the seller provides product2 (test (eq ?product1 ?product2) ; product1 and product2 are the same= (send ?seller Order ?product2) ; order from the seller (send ?buyer Delivery ?product1) ; deliver to the buyer)(二)题目2的实验内容1. 判定树图 1 动物识别判定树左分支本系统的多叉判定树的左、右分支分别如图1、2所示。判定树的叶结点代表能从树派生出来的所有可能的解决方案。这些结点称为答案结点,树上所有其他结点则被称为判定结点。每个判定结点代表一个问题或判定。当回答问题或作判定时,它决定选取一个合适的判定分支继续下去。在简单的判定树中,问题可以是“yes”或“no”的问题。例如:“该动物有奶或有毛发吗?”如果回答是“yes”,则结点的左分支代表继续路径;如果回答是“no”, 则结点的右分支代表继续路径。图 2 动物识别判定树右分支该判定树具有23个结点,如下表列出:nameType作用rootDecision判断是否哺乳动物node1Decision判断是否肉食动物node2Decision判断是否鸟类node3Decision判断是否蹄类动物node4Decision判断是否鸵鸟node5Decision判断是否金钱豹node6Decision判断是否企鹅node7Decision判断是否虎node8Decision判断是否信天翁node9Decision判断是否长颈鹿node10Answer答案是鸵鸟node11Decision判断是否斑马node12Answer答案是企鹅node13Answer答案是金钱豹node14Answer答案是信天翁node15Answer答案是虎node16Answer答案是未定义的鸟类node17Answer答案是长颈鹿node18Answer未定义的动物node19Answer答案是斑马node21Answer答案是未定义的哺乳动物node23Answer答案是未定义的肉食动物node25Answer答案是未定义的蹄类动物有时,一棵判定树通过学习在其中添加新的知识是非常有用的,动物识别判定树就是这样。一旦判定树已得到答案,它就问答案是否正确。如果正确,则不须再做什么了。然而,如果答案不正确,那么,判定树将被修改以得出正确的答案。包含一个问题的判定结点将代替答案结点,所包含的问题不同于原来这个结点上的旧答案和没有被猜中的答案。2遍历判定树遍历树得到答案结点的过程是十分简单的。推理过程以设置判定树的当前结点为根节点开始。若当前位置为一判定结点,则必须以某种方式回答与该判定结点相联系的问题(一般由人来询问判定树)。如果答案为“是”,则当前位置将被设置为同当前位置的“是”分支(或左分支)相联系的子结点。如果答案是“否”,则当前位置将被设置为同当前位置的“否”(或右)分支相联系的子结点。如果在任意点,答案结点成为当前结点,则此答案结点的值就是询问该判定树所得的答案。否则,处理判定结点的过程将重复进行,直至到达一个答案结点。一旦判定树已得到结点,它就问答案是否正确。如果正确,则不须再做什么。然而,如果答案不正确,那么,判定树将被修改以得出正确的答案。包含一个问题的判定结点将代替答案结点,所包含的问题不同于原来这个结点上的旧答案和没有被猜中的答案。这样下去,判定树可学到越来越多的信息。用这种方式学习的一个缺点是,在猜测适当的动物中,判定树最后不会很有层次或很有效率。一棵有效的判定树从根结点到答案结点的所有路径应具有基本相同的分枝数。遍历判定树的工作过程如图3所示:图3 遍历判定树的工作流程图关于这个具有学习能力的算法的伪代码如下: procedure Solve_Tree_and_Learn Set the current location in the tree to the root node while the current location is a decision node do Ask the question at the current node.if the reply to the question is yes Set the current node to the yes branch.else Set the current node to the no branch.end if end do Ask if the answer at the current node is correct. if the answer is correct Return the correct answer. else Determine the correct answer. Determine a question which when answered yeswill distinguish the a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论