第6章 PROLOG语言
更新时间:2023-08-13 19:17:01 阅读量: IT计算机 文档下载
- 机器人大乱斗第6章推荐度:
- 相关推荐
人工智能课件,PROLOG语言
第6章 PROLOG语言
第6章 PROLOG语言6.1 PROLOG语言概述6.2 PROLOG语言的结构 6.3 PROLOG语言的内部谓词 6.4 PROLOG语言的搜索策略 6.5 谓词!的讨论 6.6 PROLOG程序设计 6.7 PROLOG语言与C语言的连接2013-8-3 1
人工智能课件,PROLOG语言
第6章 PROLOG语言
6.1 PROLOG语言概述到目前为止,PROLOG语言是两种主要的人工智能程序设 计语言之一(另一个是LISP)。本章对PROLOG语言做 一描述,并讨论几个例子,使大家了解PROLOG语言及
其特点,并能编写简单的PROLOG程序。
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言
6.1.1 PROLOG语言的发展 PROLOG(Programming in Logic)语言是一种以逻辑 推理为基础的逻辑型程序设计语言。它是陈述性语言 而不是过程性的语言。 PROLOG语言首先由法国马塞大学的Colmerauer和它
的研究小组于1972年研制成功,后来在欧洲得到进一步发展。特别是1981年日本宣布要以PROLOG作为他们 正在研制的新一代计算机——智能计算机的核心语言,
更使PROLOG举世瞩目,迅速风靡世界
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言
Prolog是建立在逻辑学的理论基础之上的, 最初是运用 于自然语言的研究领域。然而现在它被广泛的应用在 人工智能的研究中,它可以用来建造专家系统、自然 语言理解、智能知识库等。 同时它对一些通常的应用程序的编写也很有帮助。使用
它能够比其他的语言更快速地开发程序,因为它的编程方法更象是使用逻辑的语言来描述程序。 从纯理论的角度来讲,Prolog是一种令人陶醉的编程语言,
接近人的思维习惯。
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言
早期PROLOG版本都是解释型的,1986年美国的Borland公 司推出了编译型PROLOG-TurboPROLOG,并很快成为PC 机上流行的PROLOG。 现在运行在Windows环境下的可视化编程语言Visual PROLOG也已面世。
但这些PROLOG语言版本属顺序逻辑程序设计语言。目前的常用 PROLOG环境有:Visual Prolog 、Amzi! Prolog、SWI Prolog、Turbo Prolog、B Prolog 、Strawberry Prolog、Sicstus Prolog、EZY Prolog 等。2013-8-3 5
人工智能课件,PROLOG语言
第6章 PROLOG语言 6.1.2 PROLOG语言的特点 作为一种程序设计语言,PROLOG语言它与一般的程序设计语言有很 大的差别。用一般的程序设计语言,像Fortran C等等来解决问题
的时候,都要指明算法。即告诉计算机“如何做”。prolog是更加容易理解的语言。 (1) PROLOG语言求解问题的时候,只要求程序员描述所解问题中的对
象和反映他们之间关系的某些已知事实,描述,定义各个对象和他们之间关系的某些规则。它强调的是对象之间的逻辑关系。 (2) PROLOG语言的数据和程序结构统一,PROLOG提供了一种统一的数
据结构称为“项”。所有的程序和数据都由项组成(3) PROLOG可以自动实现模式匹配和回溯。 (4) 递归是PROLOG语言的重
要特点之一
语法简明,只有三种句型2013-8-3 6
人工智能课件,PROLOG语言
第6章 PROLOG语言
一个例子:比如一群年轻人正在恋爱,每个人都有自己心中所追求的对象: 张学友爱王菲
张学友爱周慧敏王菲爱谢廷峰 周慧敏爱张学友 谢廷峰爱王菲 谢廷峰爱周慧敏 刘德华爱周慧敏 问题:我们说两个年轻人要互相都喜爱,他们就算是一
对情侣,那么上面的谁和谁是情侣呢?2013-8-3 7
人工智能课件,PROLOG语言
第6章 PROLOG语言
解答: 1、事实的表达:“张学友爱王菲”是一条已知的事实, 用prolog语言来表达就是:爱(张学友,王菲). 注意1:prolog是不允许使用除了基本字符以外字符的, 上面的句子必须写成love(zhangxueyou,wanfei).,电脑
才能够真正的理解。注意2:最末尾的“.”一定不能掉,它表示一个句子结束。 注意3:上面词汇对于电脑来说并没有真正的含义,所以 我们完全可以用 ai(zxy,wf).来表达这个关系 。 注意4:张学友和王菲的顺序也没有特别的规定,你完全
可以把他们换个位置:爱(王菲,张学友).2013-8-3 8
人工智能课件,PROLOG语言
第6章 PROLOG语言
2、规则的表达:即,那么情侣的概念怎么定义呢? 情侣(某人甲,某人乙):-爱(某人甲,某人乙),爱(某人乙,某人 甲). :-在prolog中表示“如果”的意思 。 规则:lovers(X,Y):-love(X,Y),love(Y,X).
3、如果把上面的程序调入prolog解释器然后就可以对以上的程序进行询问。 prolog解释器的提示符号为“?-”,你只需要在在这个提 示符后面输入自己的句子就可以了。
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言
完整的可运行的prolog程序如下: love(zhangxueyou,wanfei). love(zhangxueyou,zouhuimin). love(wanfei,xietinfen). love(zouhuimin,zhangxueyou). love(xietinfen,wanfei). love(xietinfen,zouhuimin).
love(liudehua,zouhuimin).lovers(X,Y):-love(X,Y),love(Y,X).
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言
询问: 1)?-love(zhangxueyou,wanfei). yes. 2)?-love(zhangxueyou,X). X=wanfei; X=zouhuimin; no.
用户输入“;”,解释器将继续寻找其他的答案 。解释器又找不到其他的答案了,于是输出no.来终止查询。 3)?-love(X,zouhuimin).2013-8-3 11
人工智能课件,PROLOG语言
第6章 PROLOG语言
在上面的询问中,我们只涉及到对事实的查询,下面我 们来看规则的用法。 1)?- lovers(X,Y).X = zhangxueyou Y = zouhuimin ; X = wanfei
Y = xietinfen ;X = zouhuimin Y = zhangxueyou ; X = xietinfen Y = wanfei ; no
2) ?- lovers(wanfei,Y).2013-8-3 12
人工智能课件,PROLOG语言
第6章 PROLOG语言
编写一个寻找情敌的规则 : rival_in_love(X,Y):-love(X,Z),not(love(Z,X)),love(Z,Y). ?- rival_in_love(X,Y). X = zhangxueyou Y = xietinfen ;
X = xietinfenY = zhangxueyou ; X = liudehua Y = zhangxueyou ; no
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言
和其他的语言进行比较 prolog的特点: 1. prolog程序没有特定的运行顺序,其运行顺序是由电 脑决定的,而不是编程序的人。 2. pro
log程序中没有if、when、case、for这样的控制 流程语句。程序的运行方式有电脑自己决定 。
3. prolog程序和数据高度统一。在prolog程序中,是很难分清楚哪些是程序,哪些是数据的。 4. prolog程序实际上是一个智能数据库。prolog的原理 就是关系数据库,它是建立在关系数据库的基础上的。 5. 强大的递归功能。在prolog中,递归的功能得到了充
分的体现 。2013-8-3 14
人工智能课件,PROLOG语言
第6章 PROLOG语言
6.2 PROLOG语言的结构6.2.1数据结构
PROLOG语言和其他任何一种计算机高级语言一样,有其定义的数据结构。1. 常量 PROLOG的常量有整数、实数、字符、串、符号、结构、表和文件这八种数
据类型。如:123(整数),abC21(标识符), ?、-、=(符号),abc、012、#、$(字符集)。 2. 变量
同理,PROLOG的变量也就有这八种取值。另外,变量名要求必须是以大写字母或下划线开头的字母、数字和下划线序列,或者只有一个下划线 (_)。最后一种变量称为无名变量(匿名变量)。比如想知道是否有人喜
欢跳舞,但是不需要知道这个人的名字的时候,就可以用匿名变量2013-8-3 15
人工智能课件,PROLOG语言
第6章 PROLOG语言
3. 结构 结构也称复合对象,它是PROLOG谓词中的一种特殊的参量项 (类似于谓词逻辑中的函数)。结构的一般形式为: <函子>(<参量表>) 其中函子及参量的标识符与谓词相同。注意,这意味着结构中
还可包含结构。所以,复合对象可表达树形数据结构。例如下面的谓词 likes(Tom,sports(football,basketball,table-tennis)) 其中sports(football,basketball,table-tennis)就是一个结 构,即复合对象。2013-8-3 16
人工智能课件,PROLOG语言
第6章 PROLOG语言
又如: person("张华",student("西安石油学院"),address("中 国","陕西","西安")). reading("王宏",book("人工智能技术基础教程","西安 电子科技大学出版社")).
friend(father("Li"),father("Zhao")).这几个谓词中都有复合对象。 复合对象在程序中的说明,需分层进行。
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言
例如,对于上面的谓词 在PROLOG中常用的结构形式有: (1)函子表示为:<函子>(<参量表>) (2)表:他是PROLOG语言中最常用的数据结构 表的一般形式是[x1,x2,…,xn]表的分量可以是原子, 结构也可以是表。 其中xi(i=1,2,…,n)为PROLOG的项,一般要求同一个表 的元素必须属于同一领域。不含任何元素的表称为空 表,记为[ ]。
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言 例如下面就是一些合法的表。 [1,2,3] [apple,orange,banana,grape,cane]
["PROLOG","MAENS","PROGRAMMING","in logic"][[a,b],[c,d],[e]] [] 表的最大特点是其元素个数可在程序运行期间动态变化。这时其元素可 以属于不同领域。 例如:
[name("Li Ming"),age(20),sex(male),address(xi an)][
[1,2],[3,4,5],[6,7]]
都是合法的表。后一个例子说明,表也可以嵌套。2013-8-3 19
人工智能课件,PROLOG语言
第6章 PROLOG语言 (3)表达式 PROLOG提供了五种最基本的算术运算:加、减、乘、除和取模,相 应运算符号为+、-、*、/、mod。这五种运算的顺序为:*、/、
mod优先于+、-。同级从左到右按顺序运算,括号优先。算术表达式的形式与数学中的形式基本一样。例如: 数学中的算术表达式 PROLOG中的算术表达式
x+yzab-c/d u mod v
X+Y*ZA*B-C/D U mod V(表
示求U除以V所得的余数)运算符+、-、*、/和mod实际也就是PROLOG内部定义好了的函数符。
2013-8-3
人工智能课件,PROLOG语言
第6章 PROLOG语言
Prolog语言中的运算可以是中缀形式,使之简明直观,符 合人们的习惯。 算术表达式X+Y&Z中,“+”、“&”便是运算符,该表达式 如用函数结构形式来表示就是:+(X&(YZ))。所以, 表达式也是一种结构。
※ Prolog语言提供了统一的数据结构——项(term)。在Prolog中,无论是程序还是数据,都是由项所构成。 项的定义为: < 项 > ∷ = < 常量 > | < 变量 > | < 结构 > | “ (”< 项 > “ )” 每一个项书写为一个字符串。2013-8-3 21
正在阅读:
第6章 PROLOG语言08-13
Module1Unit1 We lived in a small house08-30
江苏省无锡市惠山区八校2020-2021学年九年级12月月考物理试题05-23
《秘密花园》读后感12-12
玄秘塔碑原文及译文09-29
安全生产隐患整改通知书09-24
融资融券影响的元胞自动机股票市场模拟研究08-10
七年级英语下册Unit1试题(4)03-06
中央电视台总部大楼03-22
我爱校园一角作文400字07-10
- 供应商绩效评价考核程序
- 美国加州水资源开发管理历史与现状的启示
- 供应商主数据最终用户培训教材
- 交通安全科普体验教室施工方案
- 井架安装顺序
- 会员积分制度
- 互联网对美容连锁企业的推动作用
- 互联网发展先驱聚首香港
- 公司文档管理规则
- 机电一体化系统设计基础作业、、、参考答案
- 如何选择BI可视化工具
- 互联网产品经理必备文档技巧
- 居家装修风水的布置_家庭风水布局详解
- 全省基础教育信息化应用与发展情况调查问卷
- 中国石油--计算机网络应用基础第三阶段在线作业
- 【知识管理专题系列之五十八】知识管理中如何实现“场景化协同”
- 网络推广方案
- 中国石油--计算机网络应用基础第二阶段在线作业
- 汽车检测与维修技术专业人才培养方案
- 详解胎儿颈透明层
- 语言
- PROLOG
- 五一三星天河城路演活动总结
- 高中生物第2章_基因和染色体的关系_测试题必修2
- 自来水厂常用的几种水处理消毒技术
- 中国中共文献研究会毛泽东思想生平研究分会
- 重庆铜梁关溅中学2012年中考文言文复习提纲(10篇)(含《桃花源记》)
- 传播学视野下的80后文学
- 风湿性疾病的护理
- 历史必修三周周练及答案
- 环境影响评价文件审批工作程序
- 员工敬业度调查-太和
- 毕业设计“阀腔”零件机械加工工艺规程及工艺设备
- 《圆明园的毁灭》教学设计
- 2019年初级会计《经济法基础》入门基础:档案的保管、鉴定和销毁
- 装修业主的一些注意事项
- 工会收入支出表及资产负债表
- 希捷7200.9硬盘不认盘的修复
- 贵州大学计算机网络实验报告-实验四-分析IP协议数据包格式
- 塑料产业风险管理方案完成版
- 果树冬季病虫害综合防治技术的探究
- 香港购物网分析报告