下载此文档

7-AI程序设计语言.ppt


文档分类:IT计算机 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
工作总结 /述职报告/季度汇报 /演讲报告
7-AI程序设计语言
2018. 06. 02
/* 注释 */
编译指令
constants
常量说明
Domains
域语句
Database
0年由麦卡锡发明的。
Lisp语言以1941年Church提出的λ演算为理论基础的,λ演算是与图灵机等价的一种计算模型
80%的早期AI软件都是用Lisp语言写成的
人工智能
Lisp语言基本结构
Lisp语言的程序和数据具有统一的结构,就是符号表达式(S-表达式),S-表达式的基本组成元素是原子
原子
文字原子:相当于标识符,如ABC
串原子:引号引起的字符串,如“aaa”
数字原子:由正负号、小数点和数字组成
S-表达式
原子是S-表达式
若S1和S2是S-表达式,则(S1 • S2)也是S-表达式
例:A、(A • B)、(A • (B • C))都是正确的S-表达式
但 (A • B • C)、((A • B))就不是正确的S-表达式
人工智能
Lisp语言基本结构

是lisp语言中最常用的结构
表由左括号开始,后跟任意多个由空格隔开的原子或表,最后以右括号结束
例: (A)、(A B C)、 (1 (2 (3)))都是表
表的结构是嵌套的,表中最外层元素的个数称为表长
例: (A (B C) (D)) 的表长为3
人工智能
Lisp语言的基本函数
算数运算函数(用前缀方式表示)
(+ 3 5) (+ (* 3 5) (/ 4 2))
表处理函数
CAR 取表的第一个元素
(CAR ‘(a b c)) 得到a
(CAR ‘((a b) c)) 得到(a b)
‘ 表示禁止求值
CDR 返回除第一个元素外所有元素组成的表
(CONS S1 S2) 把S1作为第一元素插入S2表中
(LIST S1 S2 … Sn) 将各参数作为表的元素组成一个表
求值和赋值函数
(SET A S) 使第一个参数A的取值等于第二个参数S
人工智能
谓词函数:判断是否为真的函数
Lisp中,真用T表示,假用NIL表示
(EQ A1 A2) 检查A1和A2是否是相同的原子
(EQUAL S1 S2) 检查S1 和S2 是否是相同的表达式
输入输出函数
(READ) 等待输入
(PRINT S)输出表达式S的值
条件函数
( COND (P1 S1)
(P2 S2)

(Pn Sn))
相当于
If P1 then S1
Else if P2 then S2
Else if …
Else if Pn then Sn
人工智能
函数定义
格式
(DEFUN 函数名(参数1 参数2 …参数n) 函数体)
lisp中,定义函数最常用的手段是递归定义
例:定义阶乘函数 0!=1 1!=1 n!=n*(n-1)!
(DEFUN N! (n)
(COND ((= n 0) 1)
((= n 1) 1)
(T (* (N!(- n 1)) n))))
Lisp的程序设计也就是定义函数,lisp的整个程序也就是一堆函数
人工智能
例:汉诺塔问题
(DEFUN HANO1(a b c n)
(COND ((= n 1)(movedisk a c))
(T (HANO1 a c b (- n 1))
(movedisk a c)
(HANO1 b a c (- n 1)))))
(DEFUN movedisk (X Y)
(TERPR1)
(PRINTC “move disk from ”)
(PRINTC X)
(PRINTC “to “)
(PRINTC Y))
盘子所在针
起中转作用的针
盘子要移到的目标针
回车换行函数
输出函数
人工智能
小结
Prolog中所有事实和规则都是以谓词形式存放,Prolog自己提供了一套匹配回溯的控制策略。可以说用Prolog建立AI程序,推理部分已经在它内部实现了,我们只要用它规定的方式把各种规则、事实写出,然后就可运行求解
Lisp中也是一样,都以符号表达式这种结构

7-AI程序设计语言 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人我是药神
  • 文件大小16 MB
  • 时间2022-05-20