人工智能课件,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语言
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新IT计算机第6章 PROLOG语言全文阅读和word下载服务。
相关推荐: