人工智能导论课件第2章 人工智能程序设计语言_第1页
人工智能导论课件第2章 人工智能程序设计语言_第2页
人工智能导论课件第2章 人工智能程序设计语言_第3页
人工智能导论课件第2章 人工智能程序设计语言_第4页
人工智能导论课件第2章 人工智能程序设计语言_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章人工智能程序设计语言

2.1概述

2.2知识工程经典语言PROLOG

2.3机器学习流行语言Python

2.1概述2.1.1函数型语言

典型的函数型语言如LISP语言。LISP程序由一组函数组成,程序的执行过程就是一系列的函数调用和求值过程。2.1.2逻辑型语言

典型的如PROLOG语言,在PROLOG程序中一般不需告诉计算机“怎么做”,而只需告诉它“做什么”。因此,PROLOG亦属陈述性语言。2.1.3面向对象语言

由于面向对象程序设计的类、对象、继承等概念,与人工智能特别是知识表示和知识库产生了天然的联系。因而,面向对象程序设计语言也就成为一种人工智能程序设计语言,流行的如C++、Java语言。2.1.4计算型语言

就是面向数值计算的程序设计语言。典型的计算型语言如MATLAB。计算型语言属于过程性语言,长于描述算法,而且本身又自带算法库,所以是机器学习的常用编程语言。2.1.5混合型语言1.函数型与逻辑型相结合的语言

典型的如LOGLISP、FUNLOG、POPLOG等。2.函数型与面向对象相结合的语言

典型的如Flavors、LOOPS、CommonLoops等。3.逻辑型与面向对象相结合的语言

典型的如SPOOL、Orient、VisualProlog等。4.计算型与面向对象相结合的语言

典型的如Python。2.2知识工程经典语言PROLOG2.2.1PROLOG的语句

1.

事实(fact)

格式

谓词名

(

项表

).

功能

一般表示对象的性质或关系。举例:student(john).

like(mary,music).abc.repeat.2.

规则

(rule)

格式

谓词名

(

项表

):-

谓词名

(

项表

){,

谓词名

(

项表

)}.

功能

一般表示对象间的因果关系、蕴含关系或对应关系。

举例:bird(X):-animal(X),has(X,feather).grandfather(X,Y):-father(X,Z),father(Z,Y).

run:-start,step1(X),step2(X),end.3.

问题(question)

格式

?-

谓词名

(

项表

){,

谓词名

(

项表

)}.

功能表示用户的询问,它就是程序运行的目标。举例:?-student(john).?-like(mary,X).

2.2.2PROLOG的程序PROLOG程序一般由一组事实、规则和问题组成。

举例:likes(bell,sports).likes(mary,music).likes(mary,sports).likes(jane,smith).friend(john,X):-likes(X,reading),likes(X,music).friend(john,X):-likes(X,sports),likes(X,music).?-friend(john,Y).

2.2.3PROLOG程序的运行机理(1)自由变量与约束变量(2)匹配合一

两个谓词可匹配合一,是指两个谓词的名相同,参量项的个数相同,参量类型对应相同,并且对应参量项还满足下列条件之一:

①如果两个都是常量,则必须完全相同。

②如果两个都是约束变量,则两个约束值必须相同。

③如果其中一个是常量,一个是约束变量,则约束值与常量必须相同。

④至少有一个是自由变量。

例如:下面的两个谓词pre1(″ob1″,″ob2″,Z).pre1(″ob1″,X,Y).

只有当变量X被约束为“ob2”,且Y、Z的约束值相同或者至少有一个是自由变量时,它们才是匹配合一的。(3)回溯

所谓回溯,就是在程序运行期间,当某一个子目标不能满足(即谓词匹配失败)时,控制就返回到前一个已经满足的子目标(如果存在的话),并撤消其有关变量的约束值,然后再使其重新满足。下面介绍PROLOG程序的运行过程。仍以上面的程序为例。likes(bell,sports).likes(mary,music).likes(mary,sports).likes(jane,smith).friend(john,X):-likes(X,reading),likes(X,music).friend(john,X):-likes(X,sports),likes(X,music).?-friend(john,Y).设所给的询问是?-friend(john,Y).(john和谁是朋友?)则求解目标为friend(john,Y).图2-1PROLOG程序运行机理图解示例(■教材的微课视频中有TurboPROLOG简介)

2.3机器学习流行语言Python2.3.1Python语言的特点和优势Python语言是新西兰的GuidovanRossum于1990年创建,现在由一个志愿者团队开发和维护。Python是一个解释型面向对象程序设计语言,也是一种跨平台脚本语言,其程序代码可以在Windows、Linux、MacOSX等各类操作系统上运行。Python支持网络编程,支持矢量编程,尤其是带有丰富的程序库,诸如开源机器学习算法库scikit-learn,用于自然语言处理的NLTK库,统计数据可视化库seaborn,可用于高效训练图像处理的神经网络单元的Theano库,科学计算的核心库SciPY、NumPY、matplotlib、pandas以及GPU并行库等,使得编程方便快捷,程序运行效率高,功能强大。特别是Python可以使用开源深度学习框架TensorFlow方便地编制深度学习程序。

2.3.2Python程序举例

例程1求两个整数的最大公约数程序。#这是一个求两个整数的最大公约数的Python程序i1=eval(input(“输入第一个整数:”))i2=eval(input(“输入第二个整数:”))

c=1

#设置一个临时计算器c,以存放当前能够整除所给两个整数的那个最大数d=2#设d为除数,置初值为2

whiled<=i1andd<=i2:

ifi1%d==0andi2%d==0:#判别d是否能整除i1和i2

c=d#用d更新c(if语句结束)d+=1#给d加1,继续循环gcd=c#循环结束后,将c赋予gcd作为两整数的最大公约数

#输出最终结果

ifgcd==1:

print(i1,“和”,i2,“互质”)

else:

print(i1,“和”,i2,“的最大公约数是”,gcd)

例程2圆类及实例。

fromFiguresimportCircle#从程序文件Figures.py中导入(圆)类Circle

defmain():#定义主函数maincircle1=Circle(1)#生成一个半径默认为1的类Circle的实例对象(圆)circle1a1=circle1.getArea()#向circle1发消息请求其面积并将返回结果赋给a1circle2=Circle(2)#生成一个半径为2的类Circle的实例对象(圆)circle2a2=circle2.getArea()circle3=Circle(3)a3=circle3.getArea()circle4=Circle(4)

a4=circle4.getArea()circle5=Circle(5)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论