




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Ch1 Prolog基础 目标子句(goal clause)、事实(facts)、规则(rules)合起来称为Horn子句,因而得名Horn子句逻辑。 Prolog可以作为专家系统来使用,但它本身却是作为一种程序设计语言而设计出来的。把Horn子句逻辑变为一种程序设计语言的2个重要因素:(1)严格的搜索顺序或程序控制;(2)副效应。1. 程序控制 Prolog不使用随机搜索策略,而总是使用同一种策略。系统保持一个当前目标,始终从左到右进行求解。当求解一个特定子目标时,当前目标中待求解的那个子目标将被其规则右边的那些子目标所代替。所谓的“谓词”,就是相当于其他编程语言中的过程或者子例程。它们之间的区别在于一个Prolog谓词对于一个单个提问可以返回多个结果或者没有结果(即失败)。例:parent(Person, Parent) :- mother(Person, Parent).parent(Person, Parent) :- father(Person, Parent).sibling(Person, Sibling) :- mother(Person, Mother), mother(Sibling, Mother).sibling(Person, Sibling) :- father(Person, Father), father(Sibling, Father). fullBolodeSibling(Person, Sibling) :- mother(Person, Mother), mother(Sibling, Mother), father(Person, Father), father(Sibling, Father).1.1 失败(fail) 如果目标失败了,则说明定理中完全不存在针对该目标的解。1.2 回溯1.3 改进家庭定理 问题在于:选择了一个不好的方式来形式化这个定理。原因是从考虑实体间的关系开始的。如果首先考虑实体本身呢?person(Bill, male).person(John, male).person(pam, female).parent(Bill, John).parent(Pam, Bill).father(Person, Father) :- person(Father, male), parent(Person, Father).1.4 递归如何定义“祖先”关系?ancestor(Person, Ancestor) :- parent(Person, Ancestor).ancestor(Person, Ancestor) :- parent(Person, P1), ancestor(P1, Ancestor).递归具有非常强大的功能,但也有一点难于控制。使用递归时,要记住:(1)递归必须能够前进;(2)递归必须能够终止。1.5 副效应(side effects)例:ancestor(Pam,X), write(Ancestor of Pam: , X), nl().Ancestor of Pam: BillX = BillAncestor of Pam: JohnX = John2 SolutionsPIE给出的结果和自己给出的结果混在一起,怎么办?一个简单的办法是确保该目标没有解,例如:ancestor(Pam,X), write(Ancestor of Pam: , X), nl(),fail.Ancestor of Pam: BillAncestor of Pam: JohnNo solutionsFail是一个预先定义的谓词,它总是失败,没有解。注意:(1)目标本身不存在单一的解,从而使想要的全部解都作为副效应形式给出;(2)副效应在失败计算中也存在。建议:将计算性代码与执行输入输出的代码分开。2. Prolog算符2.1 算符简单论域(simple domains):字符串、数、符号、字符。复合论域(compound domains):简单论域的一个集合。例如:person(Name, Gender)注意上面的式子既不是事实,也不是谓词。person就是所谓的算符。例:father(person(Bill,male), person(John, male).father(person(Pam,male), person(Bill, male). grandFather(Person, GrandFather) :- father(Father, GrandFather), father(Person, Father). grandFather(X, Y).X = person(Pam,male), Y = person(John,male)1 Solution2.2 深入理解算符 算符的一个重要特性:一个算符的多个参数可以通过常见的Prolog变量和绑定值被分离和检查。例:parent(person(Bill, male), person(John, male).parent(person(Pam, female), person(Bill, male).parent(person(Pam, female), person(Jane, female).parent(person(Jane, female), person(Joe, male). grandFather(Person, TheGrandFather) :- parent(Person, ParentOfPerson), father(ParentOfPerson, TheGrandFather). father(P, person(Name, male) :- parent(P, person(Name, male). grandFather(person(Pam, female),W).W = person(John,male)W = person(Joe,male)2 Solutions2.3 算符和谓词 从技术角度上讲,一个算符代表一个将多个论域绑定到一块的逻辑功能。即,算符是一种使Prolog推理机把数据的各个部分放在一起的一种机制,它有效的把数据的各部分放在一个通用的盒子中。它只是一份数据,一个在很大程度上可以像一个字符串或数一样操作的数据。它不能够进行运算,它只不过简单的代表复合论域,并把自身的参数集成在一起。 使用算符最大的好处在于:修改代码时可以自由的改变算符的内部参数,而对使用该算符的谓词无需做大的改动。2.4 算符作为参数 可以把一个算符作为另一个算符的参数。2.5 算符递归例:ancestor(Person, Ancestor) :- parent(Person, Ancestor).ancestor(Person, Ancestor) :- parent(Person, P1), ancestor(P1, Ancestor).parent(person(Bill, male), person(John, male).parent(person(Pam, female), person(Bill, male). P=person(Pam, female), ancestor(P, Who)P = person(Pam,female), WHO = person(Bill,male)P = person(Pam,female), WHO = person(John,male)2 Solutions2.6 算符使用策略Prolog的好处在于:它可以使用一种内部代码能够高效使用的形式来描述客观数据。Ch2 类和对象 1. 对象模型 语义实体是对象、对象类型和类。语法概念是接口、类的声明和实现。接口是一组命名的谓词声明。接口描述了对象之间的“界面”。接口描述了对象类型。对象由类产生。一个类包含了类声明和类实现。 2. 类实体 一个类也有为这个类的所有对象共享的实体。注意:公共可访问类谓词在类声明中进行声明,而公共可访问对象谓词在接口中声明。这个规则没有例外。不可能在类声明中声明对象谓词,也不可能在一个接口中声明类谓词。 在声明类实体时,在相关的声明前加关键词class。 在构造函数中,有两处赋值形式相同,但一个是更新对象状态的,另一个是更新类的状态的。 3. 模块 类的一种特殊变体,根本不可能产生对象,一个非构造的对象类(或者直接称为模块)在声明中略去对象的类型。 4. 创建和访问对象例:goal P = person_class:new(“John”), Name = P:getName(), io:write(Name).注意:(1)引用类中的名字时要用“:”,引用对象谓词时要用“:”。(2)尽管构造函数并不像一般函数那样声明,但它们返回对象的函数:返回类型包含在类声明中。 5. 接口对象模型 按照字面意义来讲,在用到非对象类型的地方是可以用接口的。 6. 多重实现 可以创建多个完全不同的类,创建同一对象。 7. 包容多态性(subsumption polymorphism) 无论同一种类型的对象的实现有多大区别,它们都可以用在同一个场合里。包容:只要两个对象都是那段上下文需要的类型,那么由这个类构造的对象或者那个类构造的对象一样可用。 8. Support类型扩展 一个接口可以支持多个其他的接口,也就是说:(1) 该种类型的对象必须提供在被支持(直接或者间接)的接口中的全部谓词;(2) 该种类型的对象同样具有所有其他(直接或者间接)的类型。这种支持产生了子类型层次。 9. Object超类型 一个接口并不明确支持其他任何接口,却隐含的支持object接口。Object是一种没有内容(谓词)的接口,称object为所有对象类型的超类型。 10继承(inherits) 支持多重继承。 11. 对象体系的其他特点(1)对象支持实现中的更多的接口;(2)存储器回收生效的确定者(finalizer)(3)可以与C#中的委派无缝配对的对象谓词值。 12. VP5与VP6的差异12.1 句点(dots) 所有的声明(常量、论域、谓词、事实)均以句点(“.”)终止。12.2 谓词(predicates)12.3 谓词论域(predicates domains)12.4 引用论域(reference domains) 不能引用一个非引用型的用户论域。12.5 函数子句(function clauses) 返回值放在子句头的等号后。12.6 常量(constans) 必须是一个确定类型的值。12.7 事实(facts)(1)可以为single、determ、nondeterm。(2)只能用在一个类的实现内部。12.8 事实变量(fact variables)12.9 嵌套表达式与函数(nested expressions and functions)12.10 编译器命令(compiler directives) 以“”开始,表示转义序列不再使用。12.11 条件编译(conditional compilation) 只适用于VP6中的段(sections)。12.12 输入输出及特殊论域 特殊论域指file论域和db_selector论域。引入论域只考虑向后的兼容性,新的风格是使用对象进行代替。流谓词使用匿名(anonymous)参数类型和省略(ellipsis)符号。12.13 省略和匿名参数类型 “”:代表“任意类型的0个或多个参数”。12.14 库支持 描述了VP5和VP6之间名字的等价性。新的程序不应使用5x Vip库。Ch3 Visual Prolog编程1. Visual Prolog基础1.1 程序结构(1)声明(declaration)和定义(definition)在Prolog中,当需要使用一个谓词(或者复合论域)的时候,就可以直接使用,无需事先向Prolog推理机做任何的通告。(2)关键字1.2 目标goal1.3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025陕西西安建工第五建筑集团有限公司3月招聘笔试历年参考题库附带答案详解
- 2025陕西榆林市吴堡县县属国有企业招聘笔试历年参考题库附带答案详解
- 2025贵州安立航空材料有限公司招聘工作人员及笔试历年参考题库附带答案详解
- 2025湖南省低空经济发展集团有限公司招聘12人(第二次)模拟试卷带答案详解
- 2025浙江温州交运集团选聘温州低空经济发展有限公司副总经理1人笔试历年参考题库附带答案详解
- 2025年六安金寨县红旅客运有限公司公开招聘劳务外包制旅游客车储备驾驶员2名笔试历年参考题库附带答案详解
- 2025内蒙古赛雅人力资源服务有限公司面向社会公开招聘196名劳务派遣列车服务人员笔试历年参考题库附带答案详解
- 2025科学技术部国际科技合作中心SKAO国际组织职员招聘考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025广西来宾市政协办公室招聘所属事业单位后勤服务控制数人员1人考前自测高频考点模拟试题及1套完整答案详解
- 2025昆明市晋宁区文化和旅游局招聘编外工作人员(1人)模拟试卷附答案详解(黄金题型)
- 三年级上册语文《总也倒不了的老屋》
- 2024春期国开电大本科《中国现代文学专题》在线形考(阶段作业1至4+专题讨论1至2)试题及答案
- 楼梯-栏杆-栏板(一)等24项国家建筑标准设计
- 大型连锁医药零售企业发展模式
- 光伏发电项目设计任务书
- 站务员:站务员考点巩固(题库版)
- 大学美育(第二版) 课件 第七单元:设计艺术
- 成人高流量湿化氧疗临床应用规范专家共识2019
- 电大公共政策概论形考任务1-4答案
- 中职生安全教育PPT完整全套教学课件
- 网站信息发布审核制度
评论
0/150
提交评论