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

下载本文档

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

文档简介

人工智能程序设计语言华北电力大学计算机系

2023/4/91​内容综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计2023/4/92​华北电力大学内容综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计2023/4/93​华北电力大学综述人工智能所解决的问题并非一般的数值计算或数据处理问题是要实现对脑功能的模拟和再现人工智能程序面向问题面向逻辑支持知识表示能描述逻辑关系和抽象概念处理对象更多的是知识,或者说是符号常规程序设计语言受限2023/4/94​华北电力大学综述人工智能程序设计语言函数型语言逻辑性语言面向对象语言混合型语言2023/4/95​华北电力大学综述-函数型语言函数型语言LISP是一种函数型程序设计语言。LISP程序由一组函数组成,程序的执行过程就是一系列的函数调用和求值过程。但LISP还不是纯函数型语言,准确地讲,它是基于λ--函数的语言。除LISP外,20世纪70年代J.Backus还提出了一种称为FP的所谓纯函数型程序设计语言。但该语言现在还限于理论研究,实现上还存在一定困难。2023/4/96​华北电力大学综述-逻辑型语言逻辑型语言逻辑型程序设计语言起源于PROLOG(PROgramminginLOGic)。PROLOG语言首先由法国马塞大学的Colmerauer和它的研究小组于1972年研制成功,后来在欧洲得到进一步发展。特别是1981年日本宣布要以PROLOG作为他们正在研制的新一代计算机——智能计算机的核心语言,更使PROLOG举世瞩目,迅速风靡世界。2023/4/97​华北电力大学综述-逻辑型语言现在PROLOG几乎在人工智能的所有领域都获得了应用,成为与LISP并驾齐驱的甚至更加流行的智能程序设计语言。由于PROLOG语言是一种逻辑型程序设计语言,因此用它编写的程序也就是逻辑程序,即在PROLOG程序中一般不需告诉计算机“怎么做”,而只需告诉它“做什么”。因此,PROLOG亦属陈述性语言。与通常的过程性程序设计语言相比,PROLOG是更高级的语言。2023/4/98​华北电力大学综述-面向对象语言面向对象语言

20世纪80年代以来,面向对象程序设计(ObjectOrientedProgramming,简称OOP)异军突起,发展迅速。OOP以其信息隐蔽、封装、继承、多态、消息传递等一系列优良机制,大大改善了软件的复杂性、模块性、重用性和可维护性,有望从根本上解决软件的生产效率问题。另一方面,由于面向对象程序设计的类、对象、继承等概念,与人工智能特别是知识表示和知识库产生了天然的联系。

2023/4/99​华北电力大学综述-混合型语言混合型语言1.函数型与逻辑型相结合的语言

函数型与逻辑型语言的结合方式有耦合型和统一型两类。统一型又可分为具有归结语义的函数型语言和集成式语言两个子类。耦合型语言意为将具有归约语义的函数型语言和具有归结语义的逻辑型语言组合在一起,并在二者之间提供一个接口而形成的一种混合型语言。其典型代表有:2023/4/910​华北电力大学综述-混合型语言(1)LOGLISP。该语言在LISP的基础上增加了表达合一、回溯等机制的系统函数,从而在保持LISP特色的同时又有了逻辑程序设计能力。(2)FUNLOG。该语言在PROLOG之外又增加了函数定义机制,系统以归结语义执行PROLOG程序,以归约语义求解函数。(3)POPLOG。这是POP-11、PROLOG和LISP的混合型语言,三种成分各有一个增量式编译器。具有归结语义的函数型语言又可分为N-语言、F-语言和R-语言。2023/4/911​华北电力大学综述-混合型语言2.函数型与面向对象相结合的语言

在LISP语言的基础上再扩充面向对象机制而产生的语言,称为函数型的面向对象程序设计语言(亦称为面向对象的LISP)。这种语言现已成为一个家族,其中比较著名的有:(1)Flavors由MIT的LispMachine小组于1979年研制而成,它的基语言是SymbolicsCommonLISP。(2)LOOPS(Lisp-Object-OrientedProgrammingSystem)。它是在InterLisp-D环境上实现的基于LISP的OOP语言,由Xerox公司于1983年推出。2023/4/912​华北电力大学综述-混合型语言(3)CommonLoops。它是基于CommonLisp的函数型OOP语言,由Xerox公司于1985年推出。(4)CLOS(CommonLispObjetcSystem)。它是Xerox公司于1986年推出的一个CommonLoops与NewFlavors的后继产品。(5)CommonObjects。它是由HP公司于1983~1985年实现的又一个基于CommonLisp的OOP语言。(6)OBJ2也是一种面向对象的函数型语言。2023/4/913​华北电力大学综述-混合型语言3.逻辑型与面向对象相结合的语言

这类语言著名的有:(1)SPOOL。日本IBM分部于1985年推出的以面向对象思想扩充的PROLOG语言。(2)Orient84K。Keio大学于1984年发表的基于PROLOG和Smalltalk的并行执行语言。(3)Vulan。一种面向对象的逻辑型语言。2023/4/914​华北电力大学内容综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计2023/4/915​华北电力大学函数型程序设计语言LISPLISP是第一个人工智能程序设计语言LIStProcessing,表处理语言1960年由MIT的麦卡锡和他的研究小组设计,擅长表处理,即符号处理许多人工智能系统用LISP语言编写LISP被誉为人工智能的数学,是人工智能研究和开发的主要工具2023/4/916​华北电力大学

函数型程序设计语言LISP

LISP语言的主要特点:LISP程序由一组函数组成,程序的执行过程是函数的调用过程程序和数据在形式上是相同的,即都是符号表达式,简称为S─表达式递归是LISP语言的主要控制结构程序以交互方式运行2023/4/917​华北电力大学LISP的程序结构LISP的程序一般由函数的定义和函数的调用两部分组成。其一般格式为:(DEFUN(<函数名>(<形参表>)<函数体>)(<函数名>(<形参表>)<函数体>)

…(<函数名>(<形参表>)<函数体>))

(<函数名><实参表>)(<函数名><实参表>)…(<函数名><实参表>)“DEFUN”是定义函数的关键字“函数名”可以是系统的内部函数(名),也可以是用户用DEFUN定义的函数(名)2023/4/918​华北电力大学一个LISP程序(DEFUNHANOI(abcn)(COND((=n1)(MOVE-DISKac))(T(HANOIacb(-n1))(MOVE-DISKac)(HANOIbac(-n1))))

(DEFUNMOVE-DISK(fromto)(TERPRI)(PRINC″MoveDiskFrom″)(PRINCfrom)(PRINC″To″)(PRINCto))

(HANOI′a′b′c3)两个函数前者调用后者函数调用部分只有一个函数调用2023/4/919​华北电力大学LISP的基本函数LISP的函数一律使用前缀表示方式,分为内部函数(基本或系统函数)和用户自定义函数两类基本函数的种类有十多个,仅给出主要的几类表处理函数算数函数求值与赋值函数谓词函数条件函数2023/4/920​华北电力大学表处理函数表处理是LISP的主要特色,下面仅给出最常用的几个:1)CAR函数 功能 取出表中的表头。 如 CAR′(LISPLanguageProgram)) 返回值 LISP2)CDR函数功能 取出表中的表尾如 (CDR′(LISPLanguageProgram))返回值(LanguageProgram)2023/4/921​华北电力大学表处理函数3)CONS函数

功能

将S─表达式作为表头加到表中去如

(CONS′My′(LISPLanguageProgram))返回值

(MyLISPLanguageProgram)4)APPEND函数

功能

将n个表中的元素合并成一个新表

(APPEND′(TIGERLION)′(DOGCAT))

返回值

(TIGERLIONDOGCAT)5)LIST函数

功能

把n个S─表达式作为元素构成一张新表

(LIST′YELLOW′RED′BLUE)

返回值

(YELLOWREDBLUE)2023/4/922​华北电力大学算术函数LISP的算术表达式也是用函数表示的,称为算术函数举例说明(+25)表示2+5,返回值为7(-(*48)(/105))表示4×8-10/5,返回值为302023/4/923​华北电力大学求值与赋值函数撇号′是禁止求值函数QUOTE的简写形式赋值函数有多个SET函数是最基本的一个功能 把S─表达式赋给变量例如:(SET′X′8);X得到值8(SET′Y′(abc));Y得到值(abc)(SET′Z(CDRY);Z得到值(bc)2023/4/924​华北电力大学谓词函数返回值为逻辑值真或假的函数称为谓词函数真和假分别用T和NIL表示谓词函数也有多个,仅给出常用的几个:(1)原子谓词ATOM功能 检测其参数是否为原子,是则T,否则NIL例如: (ATOM′a);返回T (ATOM′(ab));返回NIL2023/4/925​华北电力大学谓词函数

(2)相等谓词EQUAL功能 判断两个参数是否逻辑相等例如:(EQUAL′a′a);返回T(EQUAL′(ab)′(ac));返回NIL

(3)判空表函数NULL功能 判断参数是否为空表,是则返回T,否则返回NIL2023/4/926​华北电力大学条件函数条件函数类似于分支语句,其作用是控制程序的流程

格式 (COND(P1e1) (P2e2) … (Pnen))其中Pi(i=1,...,n)为谓词,ei(i=1,...,n)为一个或多个S─表达式

功能 如果P1为真,则COND函数的值为e1。否则,判断P2,……直到某个Pi真为止,然后将对应的ei作为函数值。若没有一个Pi的值为非NIL,则COND的返回值为NIL。特别地,Pi也可以为逻辑常量T,这时则对其对应的各表达式求值,并把最后一个表达式的值作为COND的返回值

2023/4/927​华北电力大学条件函数例如:(COND((NULLx)0)((ATOMx)1)((LISTPx)(LENGTHx)))其语义是,若x的值为NIL,则COND的返回值为0;若x为原子,则COND的返回值为1;若x的值为表,则COND的返回值为表的长度2023/4/928​华北电力大学自定义函数自定义函数的格式为:(DEFUN<函数名>(<形参表>)<函数体>)其中函数体,又可能是用户自定义的函数或LISP基本函数的某种组合2023/4/929​华北电力大学例定义求N!的LISP函数阶乘的公式是n!=n×(n-1)!1!=10!=1其LISP函数如下:(DEFUNN!(n)(COND((=n0)1)((=n1)1)(T(*n(N!(-n1))))))该函数的最后一行中又调用了它自己→这个函数N!是递归定义的2023/4/930​华北电力大学例HANOI(DEFUNHANOI(abcn)

当只有一个盘子时,直接将a上的盘子移动到c上

(COND((=n1)(MOVE-DISKac))

其他情况,通过递归,先将柱a上的n-1个盘子通过柱c移到柱b上

(T(HANOIacb(-n1))

再将柱a上的一个盘子移动到柱c上

(MOVE-DISKac)

最后再通过递归,将柱b上的n-1个盘子通过柱a移动到柱c上 (HANOIbac(-n1)))))函数MOVE-DISK起显示的作用,表示从柱from到柱to移动了一个盘子

(DEFUNMOVE-DISK(fromto)

TERPRI是回车换行函数,PRINC是显示参数的函数 (TERPRI)

(PRINC”MoveDiskFrom”)

(PRINCfrom)

(PRINC”To”)

(PRINCto))

2023/4/931​华北电力大学内容综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计2023/4/932​华北电力大学逻辑型程序设计语言PROLOG1972年,法国马赛大学的Alain.Colmerauer提出了Prolog的雏型1975年,Prolog被用于问题求解系统,此后在许多领域获得了应用,如关系数据库、定理证明、智能问题求解、计算机辅助设计、规划生成等领域Prolog语言是以一阶谓词逻辑的Horn子句集为语法,以Robinson的消解原理为工具,加上深度优先的控制策略而形成的人工智能通用程序设计语言2023/4/933​华北电力大学Horn逻辑文字:原子公式(正文字)或原子公式的否定(负文字)P,Q,¬R子句:若干文字的析取 ¬P∨Q∨R在数理逻辑中,霍恩子句(HornClause)是带有最多一个肯定文字的子句(文字的析取)Horn子句:子句L1∨L2∨…∨Ln中如果至多只含一个正文字,那么该子句称为Horn子句。Horn子句P∨¬Q1∨¬Q2∨…∨¬Qn通常表示为:PQ1,Q2,…,Qn2023/4/934​华北电力大学Horn逻辑Horn子句的类型:过程:PQ1,Q2,…,Qn事实:P目标:Q1,Q2,…,Qn空子句:⊓2023/4/935​华北电力大学Horn逻辑例:过程:AT(dog,x)

AT(Zhang,x) 事实:AT(Zhang,train)

目标:AT(dog,train)

首先目标中过程调用AT(dog,train)与过程名AT(dog,x)匹配,合一为{train/x},调用过程AT(Zhang,x),从而产生新目标

AT(Zhang,train),与事实匹配,产生目标⊓。因而调用成功,输出“是”。2023/4/936​华北电力大学Prolog的基本特点Prolog既是一种逻辑程序设计语言,又是一个逻辑系统Prolog是一种描述性语言,是一种面向问题的语言,只需要告诉它要做什么,即给出问题的形式描述,而不需要知道应该如何做Prolog完全依靠匹配、回溯来进行搜索Prolog有很强的描述能力2023/4/937​华北电力大学内容综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计PROLOG语句PROLOG程序PROLOG程序的运行机理其它2023/4/938​华北电力大学PROLOG的语句PROLOG语言只有三种语句,分别为:事实(fact)规则(rule)问题(question)

2023/4/939​华北电力大学事实(fact)格式 <谓词名>(<项表>).谓词名是以小写英文字母打头的字母、数字、下划线等组成的字符串项表是以逗号隔开的项序列例如:student(john).like(mary,music).功能一般表示对象的性质或关系

作为特殊情形,事实也可以只有谓词名而无参量例如:abc.repeat.2023/4/940​华北电力大学规则(rule)格式<谓词名>(<项表>):-<谓词名>(<项表>){,<谓词名>(<项表>)}.“:-”号表示“if”左部的谓词是规则的结论(亦称为头)右部的谓词是规则的前提(亦称为体){}表示零次或多次重复逗号表示and(逻辑与)例如:bird(X):-animal(X),has(X,feather).grandfather(X,Y):-father(X,Z),father(Z,Y).功能一般表示对象间的因果关系、蕴含关系或对应关系作为特殊情形,规则中的谓词也可以只有谓词名而无参量例如:run:-start,step1(X),step2(X),end.2023/4/941​华北电力大学问题(question)格式?-<谓词名>(<项表>){,<谓词名>(<项表>)}.例如:?-student(john).?-like(mary,X).功能问题表示用户的询问,是程序运行的目标2023/4/942​华北电力大学Prolog的一些内建谓词Prolog提供了一些有用的内建谓词(Built-inPredicates)内建谓词和用户定义谓词使用方式类似常用内建谓词等价谓词:=永真和永假:true;fail载入程序文件:consult/1终端输出write/1;nl/02023/4/943​华北电力大学PROLOG程序PROLOG程序一般由一组事实、规则和问题组成。问题是程序执行的起点,称为程序的目标。例如下面就是一个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).四条事实两条规则一个问题2023/4/944​华北电力大学PROLOG程序的运行机理PROLOG程序的运行是从目标出发,并不断进行匹配、合一、归结,有时还要回溯,直到目标被完全满足或不能满足时为止匹配?合一?回溯?2023/4/945​华北电力大学PROLOG程序的运行机理自由变量与约束变量PROLOG中称无值的变量为自由变量,有值的变量为约束变量一个变量取了某值就说该变量约束于某值或者说该变量被某值所约束或者说该变量被某值实例化了2023/4/946​华北电力大学PROLOG程序的运行机理匹配合一:指两个谓词的名相同,参量项的个数相同,参量类型对应相同,并且对应参量项满足下列条件之一(1)如果两个都是常量,则必须完全相同(2)如果两个都是约束变量,则两个约束值必须相同(3)如果其中一个是常量,一个是约束变量,则约束值与常量必须相同(4)至少有一个是自由变量例如:下面的两个谓词

pre1(“ob1”,“ob2”,Z).pre1("ob1",X,Y).只有当变量X被约束为"ob2",且Y、Z的约束值相同或者至少有一个是自由变量时,它们才是匹配合一的2023/4/947​华北电力大学PROLOG程序的运行机理回溯在程序运行期间,当某一个子目标不能满足(即谓词匹配失败)时,控制就返回到前一个已经满足的子目标(如果存在的话),并撤消其有关变量的约束值,然后再使其重新满足。成功后,再继续满足原子目标。如果失败的子目标前再无子目标,则控制就返回到该子目标的上一级目标(即该子目标谓词所在规则的头部)使它重新匹配。回溯也是PROLOG的一个重要机制2023/4/948​华北电力大学设所给的询问是?-friend(john,Y).(john和谁是朋友?)则求解目标为friend(john,Y).这时,系统对程序进行扫描,寻找能与目标谓词匹配合一的事实或规则头部。显然,程序中前面的四条事实均不能与目标匹配,而第五个语句的左端即规则PROLOG程序的运行过程2023/4/949​华北电力大学friend(john,X):-likes(X,reading),likes(X,music).头部可与目标谓词匹配合一。但由于这个语句又是一个规则,所以其结论要成立则必须其前提全部成立。于是,对原目标的求解就转化为对新目标likes(X,reading),likes(X,music).的求解。这实际是经归结,规则头部被消去,而目标子句变为?-likes(X,reading),likes(X,music).现在依次对子目标likes(X,reading)和likes(X,music)求解PROLOG程序的运行过程2023/4/950​华北电力大学子目标的求解过程与主目标完全一样,也是从头对程序进行扫描,不断进行测试和匹配合一等,直到匹配成功或扫描完整个程序为止。可以看出,对第一个子目标like(X,reading)的求解因无可匹配的事实和规则而立即失败,进而导致规则friend(john,X):-likes(X,reading),likes(X,music).的整体失败。于是,刚才的子目标likes(X,reading)和likes(X,music)PROLOG程序的运行过程2023/4/951​华北电力大学被撤消,系统又回溯到原目标friend(john,X)这时,系统从该目标刚才的匹配语句处(即第五句)向下继续扫描程序中的子句,试图重新使原目标匹配,结果发现第六条语句的左部,即规则friend(john,X):-likes(X,sports),likes(X,music).的头部可与目标为谓词匹配。但由于这个语句又是一个规则,于是,这时对原目标的求解,就又转化为依次对子目标likes(X,sports)和likes(X,music)PROLOG程序的运行过程2023/4/952​华北电力大学的求解。这次子目标likes(X,sports)与程序中的事实立即匹配成功,且变量X被约束为bell。于是,系统便接着求解第二个子目标。由于变量X已被约束,所以这时第二个子目标实际上已变成了likes(bell,music).由于程序中不存在事实likes(bell,music),所以该目标的求解失败。于是,系统就放弃这个子目标,并使变量X恢复为自由变量,然后回溯到第一个子目标,重新对它进行求解。由于系统已经记住了刚才已同第一子目标谓词匹配过的事实的位置,所以重新求解时,便从下一个事实开始测试。PROLOG程序的运行过程2023/4/953​华北电力大学易见,当测试到程序中第三个事实时,第一个子目标便求解成功,且变量X被约束为mary。这样,第二个子目标也就变成了likes(mary,music).再对它进行求解。这次很快成功。由于两个子目标都求解成功,所以,原目标friend(john,Y)也成功,且变量Y被约束为mary(由Y与X的合一关系)。于是,系统回答:Y=mary程序运行结束。上面只给出了问题的一个解。如果需要和可能的话,系统还可把john的所有朋友都找出来。我们把上述程序的运行过程再用示意图描述如下:PROLOG程序的运行过程2023/4/954​华北电力大学图PROLOG程序运行机理示例PROLOG程序的运行过程②①③④⑤⑥⑦⑧⑨2023/4/955​华北电力大学循环Prolog可以实现计数循环。例:student(1,'张三',90.2).student(2,'李四',96.5).student(3,'王五',96.4).print:-student(Number,Name,Score),write(Number),write(Name),write(Score),nl,Number=3.print2:-student(Number,Name,Score),write(Number),write(Name),write(Score),nl,Number=2.Prolog可以实现不计数循环(Do循环)print1:-student(Number,Name,Score),write(Number),write(Name),write(Score),nl,fail.2023/4/956​华北电力大学表处理与递归表是有若干元素的有序序列,表中元素也可以为表PROLOG中采用一对方括号[]把表元素括起来,每个元素间用逗号或空格分开,例如:

[m,n,d,f]在PROLOG内引入“|”符号,如[H|T]表示一个以H为首,以T为尾的表例如表[m,n,d,f]中,表头为m表尾为[n,d,f][apple,orange,banana]apple[orange,banana][[a,b],[c],[d,e]][a,b][[c],[d,e]]['prolog']'prolog'

[][]无定义无定义

2023/4/957​华北电力大学表处理与递归例:设计一个能判断对象X是表L的成员的程序分析:(1)如果X与L的表头是同一个对象,则X是L的成员(2)如果X是L的表尾的成员,则X是L的成员程序:member(X,[X|Tail]).member(X,[Head|Tail]):-member(X,Tail).2023/4/958​华北电力大学表处理与递归表的拼接程序,即把两个表连接成一个表append([],L,L).append([H|T],L2,[H|Tn]):-append(T,L2,Tn).例::-?-append([1,2,3],[4,5],[1,2,3,4,5]).yes:-?-append([1,2,3],[4,5],[1,2,3,4,5,6]).no2023/4/959​华北电力大学表处理与递归表的输出 print([]). print([H|T]):-write(H),print(T).?-print([3|[4,5,6,7]]).?-print([1,2,3]).2023/4/960​华北电力大学表处理与递归例:表的倒置 reverse([],[]). reverse([H|T],L):-reverse(T,L1),append(L1,[H],L).:-?-reverse([1,2,3],X).X=[3,2,1]2023/4/961​华北电力大学截断直到目前为止,我们都一直在使用Prolog内建的回溯功能。使用此功能可以方便地写出结构紧凑的谓词来但是,并不是所有的回溯都是必须的,这时我们需要能够人工地控制回溯过程Prolog提供了完成此功能的谓词,叫做cut,使用符号!来表示,如果在cut处产生回溯,它会自动地失败,而不去进行其它的选择2023/4/962​华北电力大学截断—例子p(a).p(b).q(b).r1(X):-p(X),q(X).r1(c).?-r1(X).p(a).p(b).q(b).r2(X):-!,p(X),q(X).r2(c).?-r2(X).p(a).p(b).q(b).r3(X):-p(X),!,q(X).r3(c).?-r3(X).p(a).p(b).q(b).r4(X):-p(X),q(X),!.r4(c).?-r4(X).X=b,X=c.X=b.X=b.无解①程序调用cut总是成功;②当某个子目标失败回溯时,不允许越过!回溯2023/4/963​华北电力大学截断—例子cut是不符合纯逻辑学的,不过出于实用的考虑,它还是必须的过多地使用cut将降低程序的易读性和易维护性它就像是其它语言中的goto语句2023/4/964​华北电力大学例:Hanoi塔如图,目的是把左边的所有盘子移到右边的杆子上。一次只能移动一个盘子,你可以使用中间的杆子作为临时存放盘子的地方。小盘子必须放在大盘子之上2023/4/965​华北电力大学例:Hanoi塔如果要移动N个盘子,就要分三步走:把N-1个盘子移动到中间的杆子上(把中间的杆子作为临时存放盘子的位置)把最后一个盘子直接移到右边的杆子上最后把中间杆子上的盘子移到右边的杆子上(把左边的杆子作为临时存放盘子的位置)2023/4/966​华北电力大学例:Hanoi塔hanoi(N):-move(N,left,middle,right).move(1,A,_,C):-inform(A,C),!.move(N,A,B,C):-N1isN-1, move(N1,A,C,B),inform(A,C),move(N1,B,A,C).inform(Loc1,Loc2):-nl,write('Moveadiskfrom'-Loc1-'to'-Loc2).主程序为hanoi/1,它的参数为盘子的数目。它调用递归谓词move来完成任务。三个杆子的名字分别为left、middle、right2023/4/967​华北电力大学例:Hanoi塔第一个move/4子句是边界情况,即只有一个盘子时,直接调用inform/2显示移动盘子的方法。后面使用cut,是因为:如果只有一个盘子,就是边界条件,无需再对第二条子句进行匹配了第二个move/4子句为递归调用,首先把盘子数目减少一个,再递归调用move/4,把N-1个盘子从A杆通过C杆移到B杆,再把A杆上的最后一个盘子直接从A杆移到C杆上,最后再递归调用move/4,把B杆上的N-1个盘子通过A杆移到C杆上inform/2,把移动过程通过write/1谓词写出,由于write/1只能有一个参数,所以使用“-”操作符相连?-hanoi(3).2023/4/968​华北电力大学 TheEnd2023/4/969​华北电力大学演讲完毕,谢谢观看!附录资料:人工智能简介​AboutTeachingPlan基本要求:人工智能是计算机科学中涉及研究、设计和应用智能机器的一个分支,是目前迅速发展的一门新兴学科,新思想新方法层出不穷。其基本思想是利用机器来模仿和执行人脑的功能,如判断、推理、证明、识别、感知、理解、设计、思考、规划、学习和问题求解等思维活动。对于培养学生计算机技术的应用能力,开阔思路和视野,有重要意义。

​AboutTeachingPlan因此,要求学生掌握知识表示和问题求解的几种常用方法,尤其是不确定性推理;掌握机器学习基本概念,了解几种机器学习方法尤其是神经网络学习方法;掌握专家系统的概念,了解专家系统设计方法,掌握一些智能控制方法,了解国内外人工智能研究尤其是机器人的最新进展;具有一定的人工智能编程设计能力(利用Lisp或Prolog语言)。​AboutTeachingPlan课程内容以及学时分配人工智能引论(1) 人工智能概念及与计算机的关系,研究途径、内容和应用领域概况介绍,其他最新材料。符号主义、连接主义、行为主义三大流派人工智能数学基础(1)知识表示方法(2) 状态空间法、问题归约法,谓词逻辑法、产生式表示法(动物识别系统);CLIPS语言;语义网络法、框架法(这是结构化表示);剧本、过程、Petri网、面向对象的表示。​AboutTeachingPlan 搜索技术和策略(3-4)状态空间法,盲目搜索和启发式搜索,A*算法;海伯伦理论、消解原理和策略;与\或形推理和搜索策略;其他求解技术。 不确定推理技术(3-4)主观Bayes理论;可信度方法和证据理论;系统组织技术;非单调推理;Rete快速算法;模糊推理技术;基于语义网络和框架不确定推理; 专家系统(2)专家系统概念、结构和知识获取;黑板模型、知识组织、管理及系统建造和开发工具;专家系统举例及编程。

人工智能程序设计(1)人工智能语言基本机制:LISP和PROLOG。​AboutTeachingPlan 模式识别导论(3)模式识别专题:概率模式识别。模式识别专题:结构模式识别 机器学习(1):机械,解释经验,事例,归纳,概念,类比学习等;统计,结构,模糊模式识别。 专题讲座(3次) 1)神经网络基本理论和应用 (史奎凡课程:安排于人工智能理论与应用课程内); 2)智能体(Agent); 3)自然语言处理; 4)智能控制和机器人科学 智能控制的结构理论和研究领域,智能控制系统及应用示例;机器人规划、机器视觉和自然语言理解等。​AboutTeachingPlan 实践:1) 搜索技术和策略2) 不确定推理技术3) 专家系统:动物识别系统4) 模式识别技术5) 调研: 搜索技术和策略、不确定推理技术、统计模式识别、机器学习等四个领域进展报告。​ChapterOne:BriefIntroductiontoArtificialIntelligence1.WhatisAI?人工智能(ArtificialIntelligence,AI)是当前科学技发展的一门前沿学科,同时也是一门新思想,新观念,新理论,新技术不断出现的新兴学科以及正在发展的学科。它是在计算机科学,控制论,信息论,神经心理学,哲学,语言学等多种学科研究的基础发展起来的,因此又可把它看作是一门综合性的边缘学科。它的出现及所取得的成就引起了人们的高度重视,并取得了很高的评价。有的人把它与空间技术,原子能技术一起并誉为20世纪的三大科学技术成就。​Intelligence智能是知识与智力的总合。 知识——智能行为的基础; 智力——获取知识并运用知识求解问题的能力。智能具有以下特征:(1)具有感知能力——指人们通过视觉、听觉、触觉、味觉、嗅觉等感觉器官感知外部世界的能力;(2)具有记忆与思维的能力——这是人脑最重要的功能,亦是人之所以有智能的根本原因;(3)具有学习能力及自适应能力;(4)具有行为能力。ArtificialIntelligence人工智能——计算机科学的一个分支,是智能计算机系统,即人类智慧在机器上的模拟,或者说是人们使机器具有类似于人的智慧(对语言能理解、能学习、能推理)。​2.BriefHistoryofAI (1) 孕育(1956年前)古希腊的Aristotle(亚里士多德)(前384-322),给出了形式逻辑的基本规律。英国的哲学家、自然科学家Bacon(培根)(1561-1626),系统地给出了归纳法。“知识就是力量”德国数学家、哲学家Leibnitz(布莱尼茨)(1646-1716)。提出了关于数理逻辑的思想,把形式逻辑符号化,从而能对人的思维进行运算和推理。做出了能做四则运算的手摇计算机英国数学家、逻辑学家Boole(布尔)(1815-1864)实现了布莱尼茨的思维符号化和数学化的思想,提出了一种崭新的代数系统——布尔代数。​美籍奥地利数理逻辑学家Godel(哥德尔)(1906-1978),证明了一阶谓词的完备性定;任何包含初等数论的形式系统,如果它是无矛盾的,那么一定是不完备的。意义在于,人的思维形式化和机械化的某种极限,在理论上证明了有些事是做不到的。英国数学家Turing(图灵)(1912-1954),1936年提出了一种理想计算机的数学模型(图灵机),1950年提出了图灵试验,发表了“计算机与智能”的论文。图灵奖。美国数学家Mauchly,1946发明了电子数字计算机ENIAC美国神经生理学家McCulloch,建立了第一个神经网络数学模型。美国数学家Shannon(香农),1948年发表了《通讯的数学理论》,代表了“信息论”的诞生。​ (2) 形成(1956-1969)1956年提出了“ArtificialIntelligence(人工智能)”1956年夏由麻省理工学院的J.McCarthy、M.L.Minsky,IBM公司信息研究中心的N.Rochester,贝尔实验室的C.E.Shannon共同发起,邀请了Moore,Samuel,Selfridge,Solomonff,Simon,Newell等人,10位数学家、信息学家、心理学家、神经生理学家、计算机科学家,在Dartmouth大学召开了一次关于机器智能的研讨会,会上McCarthy提议正式采用了ArtificialIntelligence(人工智能)这一术语。这次会议,标志着人工智能作为一门新兴学科正式诞生了。 McCarthy(麦卡锡)——人工智能之父。这次会议之后的10年间,人工智能的研究取得了许多引人瞩目的成就.机器学习方面:塞缪尔于1956年研制出了跳棋程序,该程序能从棋谱中学习,也能从下棋实践中提高棋艺;​在定理证明方面:王浩于1958年在IBM机上证明了《数学原理》中有关命题演算的全部定理(220条),还证明了谓词演算中150条定理85%;1965年,鲁宾逊(Robinson)提出了消解原理;在模式识别方面:1959年塞尔夫里奇推出了一个模式识别程序;1965年罗伯特(Robert)编制出可辨别积木构造的程序;在问题求解方面:1960年纽厄尔等人通过心理学试验总结出了人们求解问题的思维规律,编制了通用问题求解程序GPS,可以用来求解11种不同类型的问题;在专家系统方面:斯坦福大学的费根鲍姆(E.A.Feigenbaum)自1965年开始进行专家系统DENDRAL(化学分析专家系统),1968年完成并投入使用;在人工智能语言方面:1960年McCarthy等人建立了人工智能程序设计语言Lisp,该语言至今仍是建造智能系统的重要工具;1969年成立了国际人工智能联合会议(InternationalJointConferencesOnArtificialIntelligence)​ (3) 发展(1970年以后)70年代,开始从理论走向实践,解决一些实际问题。同时很快就发现问题:归结法费时、下棋赢不了全国冠军、机器翻译一团糟。以Feigenbaum为首的一批年轻科学家改变了战略思想,1977年提出知识工程的概念,以知识为基础的专家咨询系统开始广泛的应用。著名专家系统的有:DENDRAL化学分析专家系统(斯坦福大学1968)MACSYMA符号数学专家系统(麻省理工1971)MYCIN诊断和治疗细菌感染性血液病的专家咨询系统(斯坦福大学1973)CASNET(CausalASsciationalNetwork)诊断和治疗青光眼的专家咨询系统(拉特格尔斯(Rutgers)大学70年代中)CADUCEUS(原名INTERNIST)医疗咨询系统(匹兹堡大学);HEARSAYI和II语音理解系统(卡内基-梅隆大学)PROSPECTOR地质勘探专家系统(斯坦福大学1976)XCON计算机配置专家系统(卡内基-梅隆大学1978)​•80年代,人工智能发展达到阶段性的顶峰。•87,89年世界大会有6-7千人参加。硬件公司有上千个。并进行Lisp硬件、Lisp机的研究。•在专家系统及其工具越来越商品化的过程中,国际软件市场上形成了一门旨在生产和加工知识的新产业——知识产业。应该说,知识工程和专家系统是近十余年来人工智能研究中最有成就的分支之一。•同年代,1986年Rumlhart领导的并行分布处理研究小组提出了神经元网络的反向传播学习算法,解决了神经网络的根本问题之一。从此,神经网络的研究进入新的高潮。•90年代,计算机发展趋势为小型化、并行化、网络化、智能化。•人工智能技术逐渐与数据库、多媒体等主流技术相结合,并融合在主流技术之中,旨在使计算机更聪明、更有效、与人更接近。•日本政府于1992年结束了为期十年的称为“知识信息处理体统”的第五代计算机系统研究开发计划。并开始了为期十年的实况计算(RealWordComputing)计划。​3.ResearchObjectsandMainContents

(1)人工智能的研究目标

人工智能的长期研究目标:构造智能计算机。

人工智能的近期研究目标:使现有的电子计算机更聪明,更有用,使它不仅能做一般的数值计算及非数值信息的数据处理,而且能运用知识处理问题,能模拟人类的部分智能行为。​(2)人工智能研究的基本内容

1.机器感知以机器视觉与机器听觉为主。机器感知是机器获取外部信息的基本途径,是使机器具有智能不可或缺的组成部分,对此人工智能中已形成两个专门的研究领域——

模式识别和自然语言理解。2.机器思维指通过感知的外部信息及机器内部的各种工作信息进行有目的的处理。主要开展以下几方面的研究:(1)知识表示(2)知识的组织,累计,管理技术(3)知识的推理(4)各种启发式搜索及控制策略(5)神经网络,人脑的结构及其工作原理​3.机器学习

使计算能自动获取知识,能直接向书本学习,能通过与人谈话学习,能通过对环境的观察学习,并能在实践中自我完善。4.机器行为机器行为主要指计算机的表达能力,即“说”、“写”、“画”等,对智能机器人,还应该有人的四肢功能,即能走路,能取物,能操作等。5.智能系统及智能计算机的构造技术​4.ResearchObjectsandMainContents人工智能面世以来,其研究途径存在两种不同的观点:以符号处理为核心的方法——主张通过运用计算机科学的方法进行研究,实现人工智能在计算机的模拟。以网络连接为主的连接机制方法——主张用生物学的方法进行研究,搞清楚人类智能的本质。(1)以符号处理为核心的方法该方法起源于纽厄尔等人的通用问题求解系统(GPS),用于模拟人类求解问题的心理过程,逐渐形成为物理符号系统,这种方法认为: 人类研究的目标是实现机器智能,而计算机自身具有符号处理能力,这种能力本身就蕴含着演绎推理的内涵,因而可通过运行相应的程序来体现某种基于逻辑思维的智能行为,达到模拟人类智能活动的效果。目前人工智能的大部

温馨提示

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

评论

0/150

提交评论