Prolog语言(耐心看完-你就入门了).ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Prolog 语言 耐心 看完 入门
- 资源描述:
-
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,人 工 智 能,Artificial Intelligence(AI),2025/11/19 周三,Prolog,语言简介,Prolog,语言,是一种以一阶谓词为基础的逻辑性语言(,Pro,gramming in,Log,ic,),2025/11/19 周三,Prolog,语言的特点,Prolog,语言的基本内容,简单的例子,2025/11/19 周三,Prolog,语言,(或者,系统)是以一阶谓词逻辑的,Horn,子句集,为语法,以,Robinson,的,消解原理,为工具,加上,深度优先的控制策略,而形成的人工智能通用程序设计语言,Prolog,语言的特点,2025/11/19 周三,Horn,子句集,消解原理,深度优先,Prolog,系统,2025/11/19 周三,Prolog,具有下列特点,:,是一种描述性语言。只需要告诉“,系统做什么,”,不要告诉系统“,如何做,”,数据与程序的统一表达。提供一种统一的符号结构“,项,”,数据与程序都是由项组成,2025/11/19 周三,Prolog,语言的基本内容,1,项,2,Prolog,中的语句,3,表结构,4,Prolog,程序的结构,5,常用内部谓词,6,Prolog,程序设计步骤,2025/11/19 周三,符号说明,:,“,:=,”,表示,“定义为”,“,|,”,表示,“或”,可选,“,”,表示,“重复或者出现多个”,1,项,2025/11/19 周三,项的定义,:,:=,|,|,2025/11/19 周三,:=,|,:=,|,|,:=|,2025/11/19 周三,命名,:用小写字母或者小写字母开头的,小写字母数字串,用途,:用于标识对象的名字、谓词(对象间的关系)或函数名,标识符原子,例,:,john,marry,classmate,teacher,2025/11/19 周三,字符串原子,是用引号括起来的符号串,特殊原子,指一些特殊符号,如,+,、,-,、,*,、,/,等,2025/11/19 周三,变量,:,用于表示暂时不能命名或者不需要命名的对象,用,大写字母开头,:=|,2025/11/19 周三,特殊变量,:空变量,,记作,:“,_,”,含义,:我们对问题的某一个变量的值不关心,2025/11/19 周三,:=,(,),|,:=|,2025/11/19 周三,复合项,:由一组其它对象组成的单个对象,例:,函数项,:,like(john,apple),表,:,sa,sb,1,2,3,表达式,:,(12+59)*49-96,2025/11/19 周三,项,常量,变量,复合项,原子,数,标识符原子,字符串原子,特殊原子,(,),2025/11/19 周三,2,Prolog,中的语句,事实,:,P.,含义,:无条件成立,恒为真,例,:,like(monkey,banana),Prolog,中的语句分成三种形式:,2025/11/19 周三,规则,:,P,:-,P,1,P,2,P,n,.,“,:-,”,表示“,蕴涵,”,“,,,”表示“,合取,”,含义,:若,P,1,P,n,均,为真时,,P,为真,2025/11/19 周三,问题,(目标),Goal,Q,1,Q,2,Q,m .,含义,:待回答的问题,即,Q,1,Q,m,同时为真吗?,2025/11/19 周三,从消解角度来看:,(事实),中,,P,是,Horn,子句,2025/11/19 周三,(规则),可以表示为,P,1,P,2,P,n,P,可以转化为,P,1,P,2,P,n,P,也是,Horn,子句,并受,全称量词,约束,2025/11/19 周三,(问题)是,Q,1,Q,m,受,存在量词,约束,取非后,Q,1,Q,m,受全称,量词约束,,是,Horn,子句,2025/11/19 周三,Prolog,三种形式的语言都是,Horn,子句,问题求解就是,Horn,子句集,消解,2025/11/19 周三,3,表结构,表,:若干个元素的有序序列,表中的元素,:常量、变量、项、表,表用“,”来表示,元素之间用,逗号,或者,空格,分开,2025/11/19 周三,例,:,1,2,3,a,b,c,d,2025/11/19 周三,用符号“,|,”来划分,表头,(第一个元素)和,表尾,(其余元素),特例,:,当只用一个元素时,,表尾,为空,空表(无元素),既无表头又无表尾,2025/11/19 周三,例,:,P(the,cat,sat,down).,?-P(,X,|,Y,).,答案,:,X,=the,Y,=cat,sat,down,?-P(,X,Y,|,Z,).,答案,:,X,=the,Y,=cat,,,Z,sat,down,2025/11/19 周三,4,Prolog,程序,的结构,Prolog,的程序分为两部分:,前提部分,:所有事实和规则,问题部分,:目标子句序列,2025/11/19 周三,注意,:,这两部分不能颠倒。必须,前提部分,写在,前面,,,问题部分,写在,后面,2025/11/19 周三,likes(m,f).,likes(m,w).(,事实),likes(j,w).,likes(j,s).,goal,likes(m,X),likes(j,X).(,问题),问题,:是否,m,和,j,都喜欢什么东西?,(,X=?,),f,w,s,m,j,2025/11/19 周三,Prolog,的求解过程,现在有两个问题:,likes,(m,X),和,likes,(j,X)),第一步,:第一个问题,likes,(m,X),去与事实匹配(置换与合一),按,顺序,得到,f/X,likes(m,f).,likes(m,w).,likes(j,w).,likes(j,s).,2025/11/19 周三,第二步,:,f,代替第二个问题,likes,(j,X),中的,X,,,则得,likes,(j,f),。,再与事实匹配,不能匹配,失败,则回溯,忘掉刚才的匹配,likes(m,f).,likes(m,w).,likes(j,w).,likes(j,s).,likes(m,X),likes(j,X),2025/11/19 周三,第三步,:回到第一个问题,likes,(m,X),,重新匹配,得到,w/X,第四步,:第二个问题变成,likes,(j,w)。,再与事实匹配,成功,第五步,:答案就是,X=w,likes(m,f).,likes(m,w).,likes(j,w).,likes(j,s).,likes(m,X),likes(j,X),2025/11/19 周三,说明,:,实际运行中,要逐个试探(搜索),失败则要回溯,成功也要回溯(求出所有解),2025/11/19 周三,例,:,father(a,b).,a,是,b,的父亲,father(c,d).,brother(a,c).,a,与,c,是兄弟关系,uncle(X,Y):-brother(X,Z),father(Z,Y).,?-uncle(a,U).,问题,:,a,是谁的叔叔?,(,U=?,),2025/11/19 周三,第一步,:问题,uncle,(a,U),与事实逐个匹配,不成功,Prolog,的求解过程,:,father(a,b).,father(c,d).,brother(a,c).,2025/11/19 周三,第二步,:与规则头(左部)匹配,即寻找合一者,有,a/X,U/Y,转化为两个子问题:,brother,(a,Z),和,father,(Z,U),uncle(X,Y):-brother(X,Z),father(Z,Y).,uncle(a,U),2025/11/19 周三,第一个子问题,brother(a,Z),与事实匹配,得到,c/Z,代人第二个子问题,有,father(c,U),。,与事实匹配,得到,d/U,,即,U=d,,,解是:,a,是,d,的叔叔,father(a,b).,father(c,d).,brother(a,c).,brother(a,Z),father(Z,U),2025/11/19 周三,Prolog,的实现方法主要是:,匹配,与,回溯,匹配,:合一过程、消解过程,回溯,:搜索,而且是深度优先搜索,2025/11/19 周三,关于匹配的几点说明,:,第一,、一个变量,被置换,后,代入了另一个,项,,则称该变量为,实例化,的变量,2025/11/19 周三,若与另一个未实例化的变量,匹配,,则视为同一变量,两者,共享,若与另一个实例化的变量,匹配,,也变成了实例化的变量,且两者,同值,若与,常量匹配,,也变成了实例化变量,并取常量的值,第二,、一个,未实例化,的变量可以与任何,项匹配,:,2025/11/19 周三,第三,、,常量,只能与相同的,常量,匹配,第四,、实例化的变量与另一个实例化的值相同的变量,匹配,,也可以与另一个未实例化的变量匹配,使另一个变量实例化,且,约束值相同,2025/11/19 周三,5 常用的内部谓词,内部谓词,:,Prolog,系统本身定义的一些基本谓词,注意,:可以直接使用,用户不能修改,2025/11/19 周三,算术运算,算术表达式,由,操作数,(数、变量)、,操作符,和,括号,组成,算术运算符号,:“+、-、*、/”(加减乘除),2025/11/19 周三,优先级,:与通常的数学运算一致,形式,:中缀:,X+Y*Z,前缀:+(,X,*(Y,Z),2025/11/19 周三,比较谓词,eq(X,Y)X=Y,ne(X,Y)XY,gt(X,Y)XY,ls(X,Y)XY,2025/11/19 周三,对于“、”,,X,Y,可以取,常量,变量,谓词,表,2025/11/19 周三,第一,、当一个变量已经,实例化,,则可以与任意未实例化的变量,相等,,且将其实例化(赋值功能),第二,、两者均未实例化,,eq(X,Y),恒为真,并视为,同一变量,对于,“”(,赋值与比较,),的几点说明,:,2025/11/19 周三,第三,、均以实例化,由,当前值来决定,第四,、如果为表,要求对应的,元素相等,,才为真,第五,、如果是谓词,谓词,同名,,变元个数相等,对应的,变元相等,2025/11/19 周三,输入输出谓词,第一,、,write(X):,向,输出,设备输出实例化结果,第二,、,read(X):,当,X,未实例化时,输入一个项,当,X,在输入前已经实例化,则读入项将与,X,匹配,根据匹配的成功与否,决定其,真假值,2025/11/19 周三,谓词,cut,与,fail(,特殊谓词):,cut(!):,禁止回溯,fail:,强迫回溯,2025/11/19 周三,第一,、只允许作为一个子目标出现在程序中,第二,、第一次遇到它时,总是立刻被,满足,,但是不能被重新满足,第三,、用户可以使用它来控制回溯方式,切断一些不必要的回溯,提高程序运行效率,关于,cut,的几点说明,:,2025/11/19 周三,关于,fail,的说明,:,作为一个子目标,使,Prolog,程序运行到,fail,,,必定引起,回溯,2025/11/19 周三,例,:求,1,到,n,之间的和,定义一个二元谓词,sum(N,X),,,其中,X,表示和,答案是,:,X=21,去掉“,!,”,会发生什么?,sum(1,1):-!.,sum(N,R):-N1=N-1,sum(N1,R1),R=R1+N.,?-sum(6,X).,2025/11/19 周三,6,Prolog,程序设计步骤,第一,、,说明事实,:说明与待求解的问题有关的事实。例如,人物事及相互关系,对应于,叙述性知识,对应于,Prolog,程序的组成部分,,设计步骤,分为:,2025/11/19 周三,第二,、,定义规则,:定义个体及其相互关系的推理规则,反映与待求解问题有关的,过程性知识,第三,:,确定目标(问题),:提出待求解的问题或者确定逻辑推理的目标,2025/11/19 周三,程序的一般结构(组成部分),Visual Prolog,程序包括三到四个,基本程序段,:,第一,、,域段,:说明谓词变量的域(类型),第二,、,谓词段,:说明非标准谓词(用户自己的谓词),2025/11/19 周三,第三,、,子句段,:核心部分,可以写出事实与规则,第四,、,目标段,:设置内部目标,2025/11/19 周三,域段,(,domains),Prolog,语言中的域用于,区分不同变量类型的数据,相当于其它高级语言中的数据类型,2025/11/19 周三,基本标准域有:,char,:,用单引号括起来的,单个字符,,例如,,a,integer,:,整数,,范围为32767到-32768,real,:,实数,,例如,86.72,5.1,e+21,2025/11/19 周三,string,:,用双引号括起来的,字符序列,例,:“,I am from Nanjing”,2025/11/19 周三,symbol,:,有两种形式:,以小写字母开头的字母、数字和下划线组成的,序列,用双引号括起来的,字符串序列,2025/11/19 周三,Prolog,中表示成下列形式:,integerlist=integer*,“,integer,”,说明表中元素的类型,“,*,”告诉编译系统,这是一张表,表,:,2025/11/19 周三,例,domains,title,author=,symbol,pages=,integer,注,:,每一个说明的最后,无句号,“,.,”,2025/11/19 周三,谓词段,(,predicates),说明用户自己定义的,谓词,说明谓词变元的,域,2025/11/19 周三,谓词名,:,由小写字母开头,由字母、数字和下划线组成(,标识符原子,),谓词变元的类型,标准域,域段中说明的其它域,2025/11/19 周三,例:,domains,person=,symbol,predicates,father(person),或者,father(,symbol,),alphabet_position(,char,integer,),谓词后面,无句号,“,.,”,2025/11/19 周三,子句段,(,clauses),由事实与规则组成,说明,:,每一个事实或规则后面必须,有句号,“,.,”,2025/11/19 周三,例:,clauses,likes(tom,football),.,classify(X,negative):-X0,.,2025/11/19 周三,目标段,(,goal),必须书写一个目标段,作为源码的一部分(内部目标),外部目标,2025/11/19 周三,例,goal,likes(tom,X).,2025/11/19 周三,注释,:,多行注释,:/*/,(,C/C+,中采用的符号),单行注释,:%,(,Matlab,中采用的符号),2025/11/19 周三,Visual Prolog,程序的基本结构:,domains,(,说明变量类型,无句号),predicates,.(,说明谓词,无句号),clauses,.(,程序段,必须有句号),goal,(,目标或问题,必须有句号),2025/11/19 周三,3,例子,2025/11/19 周三,展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




Prolog语言(耐心看完-你就入门了).ppt



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/12643444.html