人工智能语言--PROLOG(2)
2014-07-09 01:38
导读:三.Prolog程序的简单例子以下两个例子在Turbo Prolog 2.0环境下运行通过。[ 注:一个Turbo Prolog程序至少包括谓词段、子句段和目标段三项。目标可以包含在程
三.Prolog程序的简单例子以下两个例子在Turbo Prolog 2.0环境下运行通过。[ 注:一个Turbo Prolog程序至少包括谓词段、子句段和目标段三项。目标可以包含在程序中,也可以在程序运行时给出。]
例1 谁是john的朋友?predicates /*谓词段,对要用的谓词名和参数进行说明*/likes(symbol, symbol)friend(symbol, symbol)clauses /*子句段,存放所有的事实和规则*/likes(bell,sports). /*前4行是事实*/likes(mary,music).likes(mary,sports).likes(jane,smith).friend(john,X):-likes(X,sports),likes(X,music). /*本行是规则*/当上述事实与规则输入计算机后,运行该程序,用户就可以进行询问,如输入目标:friend(john,X) 即询问john的朋友是谁,,这时计算机的运行结果为:X=mary (mary是john的朋友)1 Solution (得到了一个结果)程序运行界面如下图所示:例2 汉诺塔问题:有N个有孔的盘子,最初这些盘子都叠放在柱a上(如图1),要求将这N个盘子借助柱b从柱a移到柱c(如图2),移动时有以下限制:每次只能移动一个盘子;大盘不能放在小盘上。问如何移动?
该问题可以采用递归法思想来求解,其源程序为:predicates /*谓词段*/hanoi(integer)move(integer,symbol,symbol,symbol)inform(symbol,symbol).
clauses /*子句段*/hanoi(N):-move(N,a,b,c).move(1,A,_,C):-inform(A,C),!.move(N,A,B,C):-N1=N-1,move(N1,A,C,B),inform(A,C),move(N1,B,A,C).inform(Loc1,Loc2):-nl,write("移动1个盘子从柱" ,Loc1,"到柱",Loc2).
goal /*目标段,问移动3个盘子的方法*/hanoi(3).
这个例子的目标包含在程序里面,因此运行时程序将直接输出所有结果。程序运行界面如下图所示:
四、Prolog语言的常用版本Prolog语言最早是由法国马赛大学的Colmerauer和他的研究小组于1972年研制成功。早期的Prolog版本都是解释型的,自1986年美国Borland公司推出编译型Prolog,即Turbo Prolog以后,Prolog便很快在PC机上流行起来。后来又经历了PDC PROLOG、Visual Prolog不同版本的发展。并行的逻辑语言也于80年代初开始研制,其中比较著名的有PARLOG、Concurrent PROLOG等。1、Turbo Prolog由美国Prolog开发中心(Prolog Development Center, PDC)1986年开发成功、Borland公司对外发行,其1.0,2.0,2.1版本取名为Turbo Prolog,主要在IBM PC系列计算机,MS-DOS环境下运行。2、PDC Prolog1990年后,PDC推出新的版本,更名为PDC Prolog 3.0,3.2,它把运行环境扩展到OS/2操作系统,并且向全世界发行。它的主要特点是:·速度快。编译及运行速度都很快,产生的代码非常紧凑。·用户界面友好。提供了图形化的集成开发环境。·提供了强有力的外部数据库系统。·提供了一个用PDC Prolog编写的Prolog解释起源代码。用户可以用它研究Prolog的内部机制,并创建自己的专用编程语言、推理机、专家系统外壳或程序接口。 ·提供了与其他语言(如C、Pascal、Fortran等)的接口。Prolog和其他语言可以相互调用对方的子程序。·具有强大的图形功能。支持Turbo C、Turbo Pascal同样的功能。3、Visual PrologVisual Prolog是基于Prolog语言的可视化集成开发环境,是PDC推出的基于Windows环境的智能化编程工具。目前,Visual Prolog在美国、西欧、日本、加拿大、澳大利亚等国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。Visual Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器,支持模块化和面向对象程序设计,支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其它编程语言的接口。Visual Prolog包含一个全部使用Visual Prolog语言写成的有效的开发环境,包含对话框、菜单、工具栏等编辑功能。Visual Prolog与SQL数据库系统、C 开发系统、以及Visual Basic、Delphi或Visual Age等编程语言一样,也可以用来轻松地开发各种应用。Visual Prolog软件的下载地址为:http:/// 。