人工智能语言--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).
表示凡是动物并且有羽毛,那么它就是鸟。