Prolog语言(耐心看完-你就入门了)
- 格式:ppt
- 大小:192.00 KB
- 文档页数:77
逻辑型程序设计语⾔PROLOG详细教程逻辑型程序设计语⾔PROLOG教程2.3. 1逻辑型程序设计语⾔PROLOGPROLOG的语句PROLOG语⾔只有三种语句,分别称为事实、规则和问题。
1.事实(fact)格式: <谓词名>(<项表>).功能⼀般表⽰对象的性质或关系。
其中谓词名是以⼩写英⽂字母打头的字母、数字、下划线等组成的字符串,项表是以逗号隔开的项序列。
例如:student(john).like( mary ,music).表⽰“约翰是学⽣”和“玛丽喜欢⾳乐”。
2. 规则(rule)格式:<谓词名>(<项表>):-<谓词名>(<项表>){,<谓词名>(<项表>)}.功能: ⼀般表⽰对象间的因果关系、蕴含关系或对应关系。
其中“:-”号表⽰“if”(也可以直接写为if),其左部的谓词是规则的结论(亦称为头),右部的谓词是规则的前提(亦称为体),{}表⽰零次或多次重复,逗号表⽰and(逻辑与),即规则的形式是⼀个逻辑蕴含式。
例如:bird(X):-animal(X),has(X,feather).grandfather(X,Y):-father(X,Z),father(Z,Y).第⼀条规则表⽰“如果X是动物,并且X有⽻⽑,则X是鸟”;第⼆条规则就表⽰“X 是Y的祖⽗,如果存在Z,X是Z的⽗亲并且Z⼜是Y的⽗亲”。
3.问题(question)格式: ?-<谓词名>(<项表>){,<谓词名>(<项表>)}.功能表⽰⽤户的询问,它就是程序运⾏的⽬标。
例如:-student(john).-like(mary,X).2.3. 2 PROLOG程序PROLOG程序⼀般由⼀组事实、规则和问题组成。
问题是程序执⾏的起点,称为程序的⽬标。
例如下⾯就是⼀个PROLOG程序。
PROLOG语言入门简介PROLOG语言是一个非常有趣的计算机语言。
它完全不同于我们已经很熟悉的其它计算机语言、例如BASIC、FORTRAN、C等。
主要由于现在的计算机硬件能力的限制,使得PROLOG语言没有得到更广泛的流行。
但是未来随着计算机硬件技术的发展,PROLOG语言将会发挥更大的作用。
尤其是通过PROLOG语言的学习,我们对计算机语言的本质会有更多的了解。
虽然对许多人来说,PROLOG语言比较陌生。
但是PROLOG语言很容易入门,人们很容易感受到它的魅力。
本书在多年从事相关教学的讲义的基础上形成。
本书没有试图写成PROLOG语言程序设计的指导书,而是着重在于于介绍PROLOG的有趣性,引导读者尽快进入PROLOG世界。
同时,尽量利用BASIC、FORTRAN、C等大家熟悉的语言的例子,说明PROLOG与这些语言的区别,以加深读者对PROLOG的理解。
因此,本书适合于PROLOG的初学者,而对于那些已有相当基础、希望利用PROLOG开发应用程序的读者,则可以选择其它更加全面的书籍,例如本书末尾所推荐的那些书籍。
目录1引言2为什么有PROLOG3什么是PROLOG ?4最简单的PROLOG程序5PROKOG运行方式6关于Visual PROLOG ?7Visual PROLOG的运行方式8PROKOG入门9规则与事实10递归11表12引言首先,介绍一种常见的扑克牌游戏。
该游戏方法为:“随意抽出4张扑克牌。
然后利用加、减、乘、除方法,对这个4张扑克牌所代表的4个数进行四则运算。
要求最后的运算结果为24。
注意,每个数只能在运算中出现1次,且必须出现1次。
”例如,如果所抽取的4张牌所代表的4个数分别为:2,4,7,9。
则可以采用如下运算方法:2 * 4 + 9 + 7 = 24有时,同一数字组合,可能存在好几种四则运算方法。
游戏时,可以规定先找到相应的四则运算方法的人获胜。
有些数字组合比较容易计算,例如6,6,6,6。
Prolog学习:基本概念对Prolog有了⼀个感性的认识,今天介绍下Prolog中⼀些基本概念,想要⽤Prolog解决⼀些实际问题之前必须要先了解它们。
这些概念在这本书中都有介绍,我简单提炼汇总下,就当给这门⼩众语⾔做个宣传吧。
变量/规则/知识库在Prolog中变量的命名是有特殊要求的,如果⼀个词以⼩写字母开头,它就是⼀个原⼦(atom),类似于其他语⾔中的符号(symbol),如果⼀个词以⼤写或下划线开头,那么它就是⼀个变量,和其他语⾔⼀样变量值可以改变,可以赋值(不过更灵活)。
符号组成⼀些事实:likes(zhangsan,lisi).likes(wangwu,lisi).likes(chenliu,maqi).符号和变量在⼀起可以⽤来定义规则:friend(X,Y):- \+(X = Y),likes(X,Z),likes(Y,Z).事实是我们对这个世界直接观察的结果。
规则是关于现实世界的逻辑推论。
事实 + 规则 = 知识库。
上⾯的规则可以叫做friend/2因为它有两个参数(类似C#⽅法中的形参),:-读作“如果”,“如果”后⾯是由⼀系列“⼦⽬标”组成,⼦⽬标之间可以是且的关系,⽤“,”分割,也可以是或者的关系,⽤“.”表⽰。
Prolog就是通过验证规则来回到我们yes或no的,如果参数能满⾜所有⼦⽬标就是yes。
合⼀(unification)合⼀是Prolog中⼀个⾮常重要的概念。
简单的来说合⼀就相当于其它语⾔中的赋值:cat(lion).cat(tiger).dorothy(X,Y,Z) :- X = lion,Y = tiger,Z = bear.twin_cast(X,Y) :- cat(X),cat(Y).合⼀的意思是:找出那些使规则匹配的值。
所以执⾏dorothy(lion,tiger,bear).这句,Prolog会返回yes:dorothy/3规则的右侧,Prolog将lion赋值给X,tiger赋值给Y,bear赋值给Z,就像在命令式语⾔中这样:var X = lion;var Y = tiger;var Z = bear;这些值和左侧(也就是dorothy(lion,tiger,bear))对应的值相匹配,所以合⼀成功。
信息技术与工程学院课程名称人工智能论文题目人工智能PROLOG语言简介专业班级13级计本二班作者******指导教师何淑贤2016 年6月16 日人工智能PROLOG语言简介因特网上丰富的人工智能教育资源为我国高中人工智能教育的开展提供了一个强有力的学习支持。
虽然大多以国外网站居多,但教师若能结合本校实际情况和学生的特点对其合理利用,使之本土化、校本化,无疑能够有效地促进人工智能教育的顺利开展。
人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。
能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。
典型的人工智能语言主要有LISP、Prolog、Smalltalk、C++等。
一般来说,人工智能语言应具备如下特点:•具有符号处理能力(即非数值处理能力);•适合于结构化程序设计,编程容易;•具有递归功能和回溯功能;•具有人机交互能力;•适合于推理;•既有把过程与说明式数据结构混合起来的能力,又有辨别数据、确定控制的模式匹配机制。
其中,Prolog语言是人工智能与专家系统领域最著名的逻辑程序设计语言。
Visual Prolog指可视化逻辑程序设计语言,是基于Prolog语言的可视化集成开发环境,是Prolog开发中心(PDC)最新推出的基于Windows环境的智能化编程工具,其语言特性符合相应的国际标准ISO/IEC 13211-1:1995。
Visual Prolog是当今新一代开发智能化应用的强有力工具,它还支持基于网络的开发、数据库、多媒体、与C语言集成等。
Visual Prolog在美国、加拿大、西欧、澳大利亚、新西兰、日本、韩国、新加坡等发达国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。
目前,中国在智能化领域的教学、研究、开发及应用正在迎来一个蓬勃发展的新时期,拥有较多的群体,对这种工具软件的需求已经逐渐显现出来。
Visual Prolog语言简介Prolog语言是人工智能与专家系统领域最著名的逻辑程序设计语言。
Visual Prolog 意指可视化逻辑程序设计语言,是基于Prolog语言的可视化集成开发环境,是Prolog开发中心(PDC)最新推出的基于Windows环境的智能化编程工具,其语言特性符合相应的国际标准ISO/IEC 13211-1:1995。
目前,Visual Prolog在美国、西欧、日本、加拿大、澳大利亚等发达国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。
预计短时期内,在国际上已经十分流行的最新版本的可视化逻辑程序设计语言Visual Prolog将会在我国广泛流行开来,并将迅速成为我国研究和开发智能化应用的最重要的工具。
Visual Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能。
它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器,支持模块化和面向对象程序设计,支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其它编程语言的接口。
Visual Prolog包含一个大型库,捆绑了范围广阔的API函数:包括Windows GUI函数族、ODBC/OCI数据库函数族和Internet函数族(socket、ftp、http、cgi等)。
这个开发环境全部使用Visual Prolog语言写成,而且包含对话框、菜单、工具栏等若干编码专家和图形编辑器。
Visual Prolog支持Windows 3.x/95/98/Me/NT/2000/XP、OS/2和文本方式下的DOS、Linux和SCO UNIX。
Visual Prolog非常适合于专家系统、规划和其它AI相关问题的求解,是智能程序设计语言中具有代表性且应用较多的一种语言。
由于这种语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用。