人工智能语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言,其中Prolog是当代最有影响的人工智能语言之一。
一、什么是人工智能语言
人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。
典型的人工智能语言主要有LISP、Prolog、Smaltalk、C++等。
一般来说,人工智能语言应具备如下特点:
•具有符号处理能力(即非数值处理能力);
•适合于结构化程序设计,编程容易;
•具有递归功能和回溯功能;
•具有人机交互能力;
•适合于推理;
•既有把过程与说明式数据结构混合起来的能力,又有辨别数据、确定控制的模式匹配机制。
人们可能会问,用人工智能语言解决问题与传统的方法有什么区别呢?
传统方法通常把问题的全部知识以各种的模型表达在固定程序中,问题的求解完全在程序制导下按着预先安排好的步骤一步一步(逐条)执行。解决问题的思路与冯.诺依曼式计算机结构相吻合。当前大型数据库法、数学模型法、统计方法等都是严格结构化的方法。
对于人工智能技术要解决的问题,往往无法把全部知识都体现在固定的程序中。通常需要建立一个知识库(包含事实和推理规则),程序根据环境和所给的输入信息以及所要解决的问题来决定自己的行动,所以它是在环境模式的制导下的推理过程。这种方法有极大的灵活性、对话能力、有自我解释能力和学习能力。这种方法对解决一些条件和目标不大明确或不完备,(即不能很好地形式化,不好描述)的非结构化问题比传统方法好,它通常采用启发式、试探法策略来解决问题。
二、Prolog语言及其基本结构
Prolog是当代最有影响的人工智能语言之一,由于该语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,已经成为人工智能应用领域的强有力的开发语言。
尽管Prolog语言有许多版本,但它们的核心部分都是一样的。Prolog的基本语句仅有三种,即事实、规则和目标三种类型的语句,且都用谓词表示,因而程序逻辑性强,文法简捷,清晰易懂。另一方面,Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。
1、事实
事实用来说明一个问题中已知的对象和它们之间的关系。在Prolog程序中,事实由谓词名及用括号括起来的一个或几个对象组成。谓词和对象可由用户自己定义。
例如,谓词likes(bill,book).
是一个名为like的关系,表示对象bill和book之间有喜欢的关系。
2、规则
规则由几个互相有依赖性的简单句(谓词)组成,用来描述事实之间的依赖关系。从形式上看,规则由左边表示结论的后件谓词和右边表示条件的前提谓词组成。
例如,规则 bird(X):-animal(X),has(X,feather).
表示凡是动物并且有羽毛,那么它就是鸟。
3、目标(问题)
把事实和规则写进Prolog程序中后,就可以向Prolog询问有关问题的答案,询问的问题就是程序运行的目标。目标的结构与事实或规则相同,可以是一个简单的谓词,也可以是多个谓词的组合。目标分内、外两种,内部目标写在程序中,外部目标在程序运行时由用户手工键入。
例如问题 ?-student(john).
表示“john是学生吗?”
三、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 Prolog
1990年后,PDC推出新的版本,更名为PDC Prolog 3.0,3.2,它把运行环境扩展到OS/2操作系统,并且向全世界发行。它的主要特点是:
•速度快。编译及运行速度都很快,产生的代码非常紧凑。
•用户界面友好。提供了图形化的集成开发环境。
•提供了强有力的外部数据库系统。
•提供了一个用PDC Prolog编写的Prolog解释起源代码。用户可以用它研究Prolog的内部机制,并创建自己的专用编程语言、推理机、专家系统外壳或程序接口。
•提供了与其他语言(如C、Pascal、Fortran等)的接口。Prolog和其他语言可以相互调用对方的子程序。
•具有强大的图形功能。支持Turbo C、Turbo Pascal同样的功能。
3、Visual Prolog
Visual Prolog是基于Prolog语言的可视化集成开发环境,是PDC推出的基于Windows环境的智能化编程工具。目前,Visual Prolog在美国、西欧、日本、加拿大、澳大利亚等国家和地区十分流行,是国际上研究和开发智能化应用的主流工具之一。
Visual Prolog具有模式匹配、递归、回溯、对象机制、事实数据库和谓词库等强大功能。它包含构建大型应用程序所需要的一切特性:图形开发环境、编译器、连接器和调试器,支持模块化和面向对象程序设计,支持系统级编程、文件操作、字符串处理、位级运算、算术与逻辑运算,以及与其它编程语言的接口。
Visual Prolog包含一个全部使用Visual Prolog语言写成的有效的开发环境,包含对话框、菜单、工具栏等编辑功能。
Visual Prolog与SQL数据库系统、C++开发系统、以及Visual Basic、Delphi或Visual Age等编程语言一样,也可以用来轻松地开发各种应用。
Visual Prolog软件的下载地址为:http://www.visual-prolog.com
分享到:
相关推荐
经典人工智能语言prolog编译器. Turbo公司出品.
**人工智能语言PROLOG** PROLOG,全称Programming in Logic,是一种基于逻辑编程的人工智能语言。它由法国计算机科学家阿尔让·德尔科特和杰拉德·布拉尚于1972年开发,旨在用于推理和知识表示。PROLOG的设计灵感...
《人工智能语言PROLOG-专家系统原理与设计》是一本深入探讨人工智能领域中PROLOG语言及其在专家系统设计中的应用的专业书籍。这本书详细介绍了PROLOG语言的基础知识,包括其语法结构、逻辑推理机制以及如何利用这些...
标题和描述中的关键词“人工智能语言PROLOG-专家系统原理与设计”揭示了本文将深入探讨Prolog编程语言在构建专家系统中的应用与理论基础。Prolog,作为一种逻辑编程语言,自1972年由Alain Colmerauer在法国马赛大学...
人工智能编程Prolog 本文介绍了一种逻辑式的程序语言,并用这种语言编写了一些规则,所谓的规则也就是专家。
***用于实现专家系统的编程语言,是最常用的人工智能语言***
prolog不是很高深的语言,相反,比较起其他的一些程序语言,例如c、basic等等语言, prolog是更加容易理解的语言。如果你从来没有接触过计算机编程,那么恭喜你,你将很容易的进入prolog世界。如果你已经是其他语言...
总的来说,"IBM PC软件技术资料 人工智能语言TURBO PROLOG2.0"是一份珍贵的历史资料,对于了解早期个人计算机上的AI开发和Prolog的应用具有重要价值。通过这份资料,开发者不仅可以学习到Prolog的基本语法和编程技巧...
Prolog,全称Prolog编程语言,是一种基于逻辑编程的人工智能语言,特别适用于处理和表示知识,构建推理系统。在人工智能领域,Prolog被广泛用于知识表示、自然语言处理、机器学习和专家系统等,因其规则和事实的表达...
《人工智能Visual Prolog课件1-9》涵盖了人工智能的基础理论以及Visual Prolog这一编程语言的实践应用。这个压缩包中的课件一共分为15个章节,深入浅出地讲解了人工智能的基本概念、知识表示方法、Prolog编程语言的...
在人工智能领域,Prolog(Programming in Logic)是一种重要的逻辑型编程语言,起源于20世纪70年代初,由A. Colmeraner及其团队在法国马赛开发。Prolog的设计灵感来源于逻辑学,最初旨在处理逻辑推理问题,但随着...
《人工智能与Prolog编程》 Prolog,全称“Programmation en LOGique”,是一种基于逻辑...中山大学的这门课程通过丰富的例子,引导初学者深入理解Prolog编程及其在人工智能领域的应用,为后续的AI学习打下坚实基础。
PROLOG,全称Programming in Logic,是一种基于逻辑推理的编程语言,常用于人工智能、自然语言处理和专家系统等领域。它的核心概念包括事实、规则和查询,这些元素共同构成了一个逻辑数据库。事实表示已知的信息,...
prolog不是很高深的语言,相反,比较起其他的一些程序语言,例如c、basic等等语言, prolog是更加容易理解的语言。如果你从来没有接触过计算机编程,那么恭喜你,你将很容易的进入prolog世界。如果你已经是其他语言...
在这个实验中,我们将探讨人工智能领域中的逻辑编程语言——Prolog,用于解决一个经典的侦探谜题:寻找凶手。这个实验的核心是使用Prolog的规则和推理机制来确定哪个嫌疑犯、在哪个房间、使用了哪件凶器进行了谋杀。...
在人工智能领域,逻辑编程语言Prolog(Prolog,全称Programming in Logic)以其独特的规则推理机制,在解决逻辑问题上展现出强大的能力。本篇将深入探讨如何利用Prolog解决经典逻辑谜题——斑马问题,并通过分析提供...
Prolog,全称“逻辑程序设计语言”(Programming in Logic),是一种基于逻辑推理的编程语言,广泛应用于人工智能、自然语言处理、专家系统等领域。在本实验中,我们将深入探讨如何使用Prolog来解决实际问题,特别是...
人工智能prolog语言,编写人工智能程序入门时所需要的编写工具。
总结而言,人工智能语言,特别是Prolog这类专业的AI语言,在知识工程和人工智能领域发挥着至关重要的作用。它们所具有的符号处理和逻辑推理能力,为处理非数值计算和智能问题求解提供了强大的工具。随着人工智能技术...