7-AI程序设计语言-(精品课件).pptVIP

  • 1
  • 0
  • 约4.93千字
  • 约 25页
  • 2019-01-02 发布于广西
  • 举报
人工智能 程序设计语言 概 述 前面几章,我们介绍了一些运用AI技术求解问题的一般方法。这些方法可运用于定理证明、自然语言理解、模式识别、专家系统等各个领域。要在计算机上实现,就涉及到计算机语言的问题。 严格地讲,可以使用任何计算机语言来实现这些算法。但是AI的主要课题是非数值计算的问题求解和知识处理等复杂问题,主要任务在于完成推理、规划、决策、分析、论证等智能行为,其中包括各种符号处理和表处理等。传统过程性语言不太适合AI方面的程序设计 AI语言的特点 具有回溯功能 具有模式匹配功能 守护功能(保护递归、回溯的现场) 过程说明功能(解释推理过程) 表达能力强(尤其对各种符号知识) 建立在严格的数学系统上(因为AI中的许多推理都有坚实的数学基础) 表处理功能 并行处理或分布处理(提高推理速度,实现时多采用模拟并行处理技术) 常用的AI程序设计语言 Prolog Lisp C C++ Smalltalk Prolog Prolog是Programming in Logic用逻辑进行程序设计的缩写 第一个Prolog系统是由Colmerauer及其研究小组于1972年在法国马赛研制成功 Prolog是完全基于一阶谓词逻辑基础上的,它的所有语句和推理都可以用Horn子句归结的形式表示,所以它又严格的数学基础 Prolog 的特点 逻辑型语言 语句类型简单,只有三种基本形式:事实、规则、询问 接近于自然语言,简洁明了,易写易读 数据和程序结构一致(都由项构成,便于将a程序的输出作为b程序的输入) 能自动进行匹配和回溯 可大量使用递归 Prolog的程序结构 Prolog程序包括常量段、域段、数据库段、谓词段、目标段和子句段;另外还可以在程序首部设置编译指令,在程序中加注释 通常,一个Prolog程序不一定包括所有段,最常用的有子句段、谓词段、域段。如果需要产生一个可独立执行的程序,还需要有目标段 /* 注释 */ 编译指令 constants 常量说明 Domains 域语句 Database 数据库说明 Predicates 谓词语句 Goal 目标语句 Clauses 子句语句 子句段 是整个程序的核心,所有的事实和规则都在子句段列出,例如 Clauses like(Bill,Cindy). like(Cindy,Bill). like(Bill,dogs). like(A,C):- like(A,B),like(B,C). parent(ZhangYi,ZhangEr). 谓词段 Prolog有许多内部谓词,如read,write, makewindow等,对内部谓词不需说明 在程序中,若定义了自己要用的外部谓词,如上例中like,parent,则必须在谓词段加以说明,例: Predicates like(symbol,symbol) parent(symbol,symbol) 域段 域就相当于类型说明,如上例中parent中的两个参数,应该是两个人名,则下面的程序更好理解 Domains name=symbol Predicates parent(name,name) 通过域,可以说明标准域中没有定义的数据结构 Domains articles=book(title,author);horse(name) title,author,name=symbol Predicates own(name,articles) Clauses own(John,book(ABC,Ding)). own(John,horse(blacky)). 标准域:integer,char,real,ref,string,symbol 目标段 目标段输入要解决问题的语句 也可以省略目标段。若省略目标段,则在运行时程序会等待用户输入一个目标,然后才能运行,这时称为外部目标 若把目标写在目标段中,则程序运行时,自动执行目标,直接显示运行结果,这种目标称为内部目标 目标段的作用有点类似于主程序 目标段 Predicates run(char) Clauses run(X):- write(“first”), readchar(X). run(X):- write(“second”), readchar(X). 运行时,会在对话窗口提示输入一个目标,若输入目标run(X). 则输出first,然后按一个键接着输出second,再按一个键

文档评论(0)

1亿VIP精品文档

相关文档