第十一章人工智能语言
LISP、PROLOG是常用的人工智能语言
目前C、C++使用的比较多
专家系统工具
LISP语言
arthy首先发表
是一种表处理语言
被广泛应用于人工智能之中
LISP语言的家族
INTER LISP
MAC LISP
COMMON LISP
PROLOG语言
1972年在法国马赛大学首先发表
是一种逻辑程序设计语言
具有一定的自动推理能力
常量
以小写字母开头的符号,例如:abc is-bird append
变量
以大写字母开头的符号,例如:Classmate
表
[a, b, c] [1, 2, [a, b] ] [ ]
PROLOG语言
基本概念
表结构符“|”
[a, b | [c, d]] [a, b, c, d]
[a | X] 表示以a为头的表
[a,b | X] 表示前两个元素为a、b的表
[H | T] 表示一个非空表
项
常量、变量、表等,通称为项
PROLOG语言
基本概念
关系
<关系名>(<项1>,<项2>,…,<项n>)
Point(X, Y, Z) father(laoma, xiaoma)
关系也称为结构,也是项
PROLOG语言
基本概念
子句
P:-P1,P2,…,Pn.
其中P是句首,P1,P2,…,Pn是句体。
表示当P1,P2,…,Pn均为真时,P为真。等价于:
P1∧P2∧…∧Pn => P
子句表示规则,只有句首的子句表示事实
PROLOG程序由子句组成
PROLOG语言
基本概念
以下事实:
老王是小王的双亲之一
老赵是小王的双亲之一
老王是位男性
老赵是位女性
表示为:
parent(laowang, xiaowang).
parent(laozhao, xiaowang).
male(laowang).
female(laozhao).
规则:若X、Y是Z的双亲,且X为男性,Y为女性,则X是Y的丈夫。
表示为:
Husband(X,Y) :- parent(X,Z), parent(Y,Z), male(X), female(Y).
PROLOG语言
用factorial(X, Y)表示X的阶乘为Y。
factorial(0, 1).
factorial(1, 1).
factorial(N, M) :- N1 is N-1,
factorial(N1, M1),
M is N*M1.
PROLOG语言
定义阶乘
用append(X, Y, Z)表示表X、Y合并为表Z。
append( [ ], L, L ).
append( [H|T1], L, [H|T2]) :- append(T1, L, T2).
PROLOG语言
定义append
人工智能11 来自淘豆网www.taodocs.com转载请标明出处.