1、第1章 人工智能概述1.1 人工智能的概念1.2 人工智能的研究目标1.3 人工智能研究的基本内容及特点1.4 人工智能的研究领域1.5 人工智能的基本技术1.6 人工智能的产生与发展本章小结习题2004.11.3AI程序设计1.1 人工智能的概念1.1.1 什么是人工智能?1.1.2 为什么要研究人工智能1.1.3 人类智能的计算机模拟2004.11.3AI程序设计1.1.1 什么是人工智能?所谓“人工智能”是指用计算机模拟或实现的智能。作为一个学科,人工智能研究的是如何使机器(计算机)具有智能的科学和技术,特别是人类智能如何在计算机上实现或再现的科学和技术。因此,从学科角度讲,当前的人工智
2、能是计算机科学的一个分支。人工智能虽然是计算机科学的一个分支,但它的研究却不仅涉及到计算机科学,而且还涉及到脑科学、神经生理学、心理学、语言学、逻辑学、认知(思维)科学、行为科学和数学,以及信息论、控制论和系统论等众多学科领域。因此,人工智能实际上是一门综合性的交叉学科和边缘学科。2004.11.3AI程序设计 广义的人工智能学科是模拟、延伸和扩展人的智能,研究与开发各种机器智能和智能机器的理论、方法与技术的综合性学科。人工智能是一个含义很广的词语,在其发展过程中,具有不同学科背景的人工智能学者对它有着不同的理解,提出了一些不同的观点,人们称这些观点为符号主义(Symbolism)、连接主义(
3、Connectionism)和行为主义(Actionism)等,或者叫做逻辑学派(Logicism)、仿生学派(Bionicsism)和生理学派(Physiologism)。此外还有计算机学派、心理学派和语言学派等。1.1.1 什么是人工智能?2004.11.3AI程序设计 斯坦福大学人工智能研究中心的尼尔逊(N.J.Nilsson)教授从处理的对象出发,认为“人工智能是关于知识的科学,即怎样表示知识、怎样获取知识和怎样使用知识的科学”。麻省理工学院温斯顿(P.H.Winston)教授则认为“人工智能就是研究如何使计算机去做过去只有人才能做的富有智能的工作”。斯坦福大学费很鲍姆(E.A.Fei
4、genbaum)教授从知识工程的角度出发,认为“人工智能是一个知识信息处理系统”。1.1.1 什么是人工智能?2004.11.3AI程序设计 综合各种不同的人工智能观点,可以从“能力”和“学科”两个方面对人工智能进行定义。从能力的角度来看,人工智能是相对于人的自然智能而言的,所谓人工智能是指用人工的方法在机器(计算机)上实现的智能;从学科的角度来看,人工智能是作为一个学科名称来使用的,所谓人工智能是一门研究如何构造智能机器或智能系统,使它能模拟、延伸和扩展人类智能的学科。总之,人工智能是一门综合性的边缘学科。它借助于计算机建造智能系统,完成诸如模式识别、自然语言理解、程序自动设计、自动定理证明
5、、机器人、专家系统等智能活动。它的最终目标是构造智能机。1.1.1 什么是人工智能?2004.11.3AI程序设计 我们知道,电子计算机是迄今为止最有效的信息处理工具,以至于人们称它为“电脑”。但现在的普通计算机系统的智能还相当低下,譬如缺乏自适应、自学习、自优化等能力,也缺乏社会常识或专业知识等,而只能是被动地按照人们为它事先安排好的工作步骤进行工作。因而它的功能和作用就受到很大的限制,难以满足越来越复杂和越来越广泛的社会需求。既然计算机和人脑一样都可进行信息处理,那么是否也能让计算机同人脑一样也具有智能呢?这正是人们研究人工智能的初衷。事实上,如果计算机自身也具有一定智能的话,那么,它的功
6、效将会发生质的飞跃,成为名副其实的电“脑”。这样的电脑将是人脑更为有效的扩展和延伸,也是人类智能的扩展和延伸,其作用将是不可估量的。例如,用这样的电脑武装起来的机器人就是智能机器人。智能机器人的出现,将标志着人类社会进入了一个新的时代。1.1.2 为什么要研究人工智能2004.11.3AI程序设计 研究人工智能也是当前信息化社会的迫切要求。我们知道,人类社会现在已经进入了信息化时代。但信息化的进一步发展,就必须有智能技术的支持。例如,当前迅速发展着的国际互联网Internet就强烈地需要智能技术。特别是当我们要在Internet上构筑信息高速公路时,其中有许多技术问题就要用人工智能的方法来解决
7、。这就是说,人工智能技术在Internet和未来的信息高速公路上将发挥重要作用。智能化也是自动化发展的必然趋势。自动化发展到一定水平,再向前发展就是智能化,即智能化是继机械化、自动化之后,人类生产和生活中的又一个技术特征。另外,研究人工智能,对探索人类自身智能的奥秘也可提供有益的帮助。因为我们可以通过电脑对人脑进行模拟,从而揭示人脑的工作原理,发现自然智能的渊源。1.1.2 为什么要研究人工智能2004.11.3AI程序设计1.1.3 人类智能的计算机模拟 人类的认知过程是个非常复杂的行为,至今仍未能被完全解释。人们从不同的角度对它进行研究,从而形成诸如认知生理学、认知心理学和认知工程学等相关
8、学科。对这些学科的深入研究已超出本书范围。这里仅讨论几个与人工智能有密切关系的问题。2004.11.3AI程序设计1研究认知过程的任务 人的心理活动具有不同的层次,它可与计算机的层次相比较(见图1.1)。心理活动的最高层级是思维策略,中间一层是初级信息处理,最低层级为生理过程,即中枢神经系统、神经元和大脑的活动。与此相应的是计算机的程序、语言和硬件。研究认知过程的主要任务是探求高层次思维决策与初级信息处理的关系,并用计算机程序来模拟人的思维策略水平,而用计算机语言模拟人的初级信息处理过程。令T表示时间变量,x表示认知操作(cognitive operation),x的变化x为当时机体状态S(机
9、体的生理和心理状态以及脑子里的记忆等)和外界刺激R的函数。当外界刺激作用到处于某特定状态的机体时,便发生变化,即语言和硬件。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计思维策略初级信息处理生理过程(a)人 类计算机程序计算机语言计算机硬件(b)计算机图1.1 人类认知活动与计算机的比较(a)人 类1.1.3 人类智能的计算机模拟2004.11.3AI程序设计 计算机也以类似的原理进行工作。在规定时间内,计算机存储的记忆相当于机体的状态;计算机的输入相当于机体施加的某种刺激。在得到输入后,计算机便进行操作,使得其内部状态随时间发生变化。我们可以从不同的层次来研究这种计算机系统。
10、这种系统以人的思维方式为模型进行智能信息处理(intelligent information processing)。显然,这是一种智能计算机系统。设计适用于特定领域的这种高水平智能信息处理系统(也称为专家系统)是研究认知过程的一个具体而又重要的目标。例如,一个具有智能信息处理能力的自动控制系统就是一个智能控制系统,它可以是专家控制系统,或者是智能决策系统等。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计2智能信息处理系统的假设 可以把人看成一个智能信息处理系统。信息处理系统又叫物理符号系统(Physical Symbol System)。所谓符号就是模式(pattern)。任
11、一模式,只要它能与其它模式相区别,它就是一个符号。不同的汉语拼音字母或英文字母就是不同的符号。对符号进行操作就是对符号进行比较,从中找出相同的和不同的符号。物理符号系统的基本任务和功能就是辨认相同的符号和区别不同的符号。为此,这种系统就必须能够辨别出不同符号之间的实质差别。符号既可以是物理符号,也可以是头脑中的抽象符号,或者是电子计算机中的电子运动模式,还可以是头脑中神经元的某些运动方式。一个完善的符号系统应具有下列6种基本功能:1.1.3 人类智能的计算机模拟2004.11.3AI程序设计(1)输入符号(input);(2)输出符号(output);(3)存储符号(store);(4)复制符
12、号(copy);(5)建立符号结构:通过找出各符号间的关系,在符号系统中形成符号结构;(6)条件性迁移(conditional transfer):根据已有符号,继续完成活动过程。如果一个物理符号系统具有上述全部6种功能,能够完成这个全过程,那么它就是一个完整的物理符号系统。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计 假设假设 任何一个系统,如果它能表现出智能,那么它就必定能够执行上述6种功能。反之,任何系统如果具有这6种功能,那么它就能够表现出智能;这种智能指的是人类所具有的那种智能。我们把这个假设称为物理符号系统的假设。物理符号系统的假设伴随有3个推论,或称为附带条件。
13、推论一推论一 既然人具有智能,那么他(她)就一定是个物理符号系统。推论二推论二 既然计算机是一个物理符号系统,它就一定能够表现出智能的基本条件。这是人工智能的基本条件。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计 推论三推论三 既然人是一个物理符号系统,计算机也是一个物理符号系统,那么我们就能够用计算机来模拟人的活动。值得指出,推论三并不一定是从推论一和推论二推导出来的必然结果。因为人是物理符号系统,具有智能;计算机也是一个物理符号系统,也具有智能,但它们可以用不同的原理和方式进行活动。所以,计算机并不一定都是模拟人活动的,它可以编制出一些复杂的程序来求解方程式,进行复杂的计
14、算。不过,计算机的这种运算过程未必就是人类的思维过程。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计3人类智能的计算机模拟 计算机的早期工作主要集中在数值计算方面。然而,人类最主要的智力活动并不是数值计算,而在逻辑推理方面。物理符号系统假设的推论一也告诉我们,人有智能,所以他是一个物理符号系统;推论三指出,可以编写出计算机程序去模拟人类的思维活动。这就是说,人和计算机这两个物理符号系统所使用的物理符号是相同的,因而计算机可以模拟人类的智能活动过程。计算机的确能够很好地执行许多智能功能,如下棋、证明定理、翻译语言文字和解决难题等。这些任务是通过编写与执行模拟人类智能的计算机程序来
15、完成的。当然,这些程序只能接近于人的行为,而不可能与人的行为完全相同。此外,这些程序所能模拟的智能问题,其水平还是很有限的。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计 作为例子,让我们考虑下棋的计算机程序。现有的国际象棋程序是十分熟练的、具有人类专家棋手水平的最好实验系统,但是下得没有像人类国际象棋大师那样好。该计算机程序对每个可能的走步空间进行搜索,它能够同时搜索几千种走步,进行有效搜索的技术是人工智能的核心思想之一。不过,计算机不一定是最好的棋手,其原因在于:向前看并不是下棋所必须具有的一切,需要彻底搜索的走步又太多;在寻找和估计替换走步时并不能确信能够导致博弈的胜利。
16、国际象棋大师们具有尚不能解释的能力。一些心理学家指出,当象棋大师们盯着一个棋位时,在他们的脑子里出现了几千盘重要的棋局;这大概能够帮助他们决定最好的走步。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计 近年来,智能计算机的研究取得许多重大进展。对神经型智能计算机的研究就是一个新的范例,它必将为模拟人类智能做出新的贡献。神经计算机(neural computer)能够以类似人类的方式进行“思考”,它力图重建人脑的形象。据日本通产省(MITI)报导,对神经计算机系统的可行性研究早于1989年4月底完成,并提出了该系统的长期研究计划的细节。在美国、英国、中国和其它一些国家,都有众多的
17、研究小组投入对“神经元网络”的研究。据预测,神经计算机在本世纪将进入实用阶段,并将有产品投放市场。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计 人脑这个神奇的器官能够复制大量的交互作用,快速处理极其大量的信息,同时执行几项任务。迄今为止的所有计算机,基本上都未能摆脱冯诺依曼机的体系结构,只能依次对单个问题进行“求解”。人们期望,对神经计算(neural computing)的研究将造出神经计算机,大大提高信息处理能力,达到更高的人工智能水平。1.1.3 人类智能的计算机模拟2004.11.3AI程序设计1.2 人工智能的研究目标 关于人工智能的研究目标,目前还没有一个统一的说
18、法。从研究的内容出发,李文特和费根鲍姆提出了人工智能的九个最终目标:1理解人类的认识 此目标研究人类如何进行思维,而不是研究机器如何工作。要尽量深入了解人的记忆、问题求解能力、学习的能力和一般的决策等过程。2有效的自动化 此目标是在需要智能的各种任务上用机器取代人,其结果是要建造执行起来和人一样好的程序。3有效的智能拓展 此目标是建造思维上的弥补物,有助于使我们的思维更富有成效、更快、更深刻、更清晰。2004.11.3AI程序设计4超人的智力 此目标是建造超过人的性能的程序。如果越过这一知识阈值,就可以导致进一步的增殖,如制造行业上的革新、理论上的突破、超人的教师和非凡的研究人员等。5通用问题
19、求解 此目标的研究可以使程序能够解决或至少能够尝试其范围之外的一系列问题,包括过去从未听说过的领域。6连贯性交谈 此目标类似于图灵测试,它可以令人满意地与人交谈。交谈使用完整的句子,而句子是用某一种人类的语言。1.2 人工智能的研究目标2004.11.3AI程序设计7自治 此目标是一系统,它能够主动地在现实世界中完成任务。8学习 该目标是建造一个程序,它能够选择收集什么数据和如何收集数据。然后再进行数据的收集工作。学习是将经验进行概括,成为有用的观念、方法、启发性知识,并能以类似方式进行推理。9储存信息 此目标就是要储存大量的知识,系统要有一个类似于百科词典式的,包含广泛范围知识的知识库。1.
20、2 人工智能的研究目标2004.11.3AI程序设计1.3 人工智能研究的基本内容及特点1.3.1 人工智能研究的基本内容1.3.2 人工智能的研究途径与方法1.3.3 人工智能研究的主要特点2004.11.3AI程序设计1.3.1 人工智能研究的基本内容 关于人工智能的研究内容,各种不同学派、不同研究领域以及人工智能发展的不同时期,对其有着一些不同的看法。下面根据人工智能的现状,给出几个对实现人工智能系统来说具有一般意义的基本内容。1认知建模 2机器感知 3机器思维 4机器学习 5机器行为 6智能系统与智能计算机所谓认知可一般地认为是和情感、动机、意志相对应的理智或认识过程,或者说是为了一定
21、目的,在一定的心理结构中进行的信息加工过程。所谓机器感知,就是要让计算机具有类似于人的感知能力,如视觉、听觉、触觉、嗅觉、味觉。在这些感知能力中,目前研究较多、较为成功的是机器视觉(或叫计算机视觉)和机器听觉(或叫计算机听觉)。计算机视觉就是给计算机配上能看的视觉器官,如摄像机等,使它可以识别并理解文字、图像、景物等;计算机听觉就是给计算配上能听的听觉器官,如话筒等,使计算机能够识别并理解语言、声音等。机器感知是计算机智能系统获取外部信息的最主要途径,也是机器智能不可缺少的重要组成部分。所谓机器思维,就是让计算机能够对感知到的外界信息和自己产生的内部信息进行思维性加工。所谓机器学习就是让计算机
22、能够像人那样自动地获取新知识,并在实践中不断地完善自我和增强能力。所谓机器行为就是让计算机能够具有像人那样的行动和表达能力,如走、跑、拿、说、唱、写、画等。2004.11.3AI程序设计1.3.2 人工智能的研究途径与方法 我们知道,智能是脑特别是人脑所具有的。那么,要实现人工智能,自然就离不开对人脑的借鉴,其中包括对人脑的结构、功能和人脑具有智能的原因、过程等的借鉴。于是,就产生了如下几种人工智能研究途径和方法。2004.11.3AI程序设计 1)基于结构模拟的神经计算 2)基于功能模拟的符号推演 3)基于行为模拟的控制进化结构模拟,就是根据人脑的生理结构和工作机理,实现计算机的智能。1.3
23、.2 人工智能的研究途径与方法功能模拟法就是以人脑的心理模型,将问题或知识表示成某种逻辑网络,采用符号推演的方法,实现搜索、推理、学习等功能,从宏观上来模拟人脑的思维,实现机器智能。它是一种基于“感知一行为”模型的研究途径和方法。我们称其为行为模拟法。这种方法是模拟人在控制过程中的智能活动和行为特性,如自寻优、自适应、自学习、自组织等,来研究和实现人工智能。2004.11.3AI程序设计1.3.3 人工智能研究的主要特点 目前的计算机系统仍未彻底突破传统的冯诺依曼结构,这种二进制表示的集中串行工作方式具有较强的逻辑运算功能和很快的算术运算速度,但与人脑的组织结构和思维功能有很大差别。研究表明,
24、人脑大约有1011个神经元,并按并行分布式方式工作,具有较强的演绎、推理、联想、学习功能和形象思维能力。例如,对图像、图形、景物等,人类可凭直觉、视觉,通过视网膜、脑神经对其进行快速响应与处理,而传统计算机却显得非常迟钝。如何缩小这种差距呢?要靠人工智能技术。从长远观点看,需要彻底改变冯诺依曼计算机的体系结构,研制智能计算机。但从目前条件看,还主要靠智能程序系统来提高现有计算机的智能化程度。智能程序系统和传统的程序系统相比,具有以下几个主要特点。2004.11.3AI程序设计1.3.3 人工智能研究的主要特点1基于知识 知识是一切智能系统的基础,任何智能系统的活动过程都是一个获取知识和运用知识
25、的过程,而要获取和运用知识,首先应该能够对知识进行表示。所谓知识表示就是用某种约定的方式对知识进行的描述。在知识表示方面目前有两种基本观点:一种是叙述性(Declarative)观点,另一种是过程性(Procedural)观点。叙述性知识表示观点是将知识的表示与知识的运用分开处理,在知识表示时不涉及如何运用知识的问题;过程性知识表示观点是将知识的表示与知识的运用结合起来,知识就包含在程序之中。两种观点各有利弊,目前人工智能程序采用较多的是叙述性观点。当然,也可根据具体问题的性质而定。2004.11.3AI程序设计1.3.3 人工智能研究的主要特点2运用推理 所谓推理(Reasoning)就是根
26、据已有知识运用某种策略推出新知识的过程。事实上,一个智能系统仅有知识是不够的,它还必须具有思维能力,即能够运用知识进行推理和解决问题。人工智能中的推理方法主要有经典逻辑推理、不确定性推理和非单调性推理。2004.11.3AI程序设计1.3.3 人工智能研究的主要特点3启发式搜索 所谓搜索就是根据问题的现状不断寻找可利用的知识,使问题能够得 以 解 决 的 过 程。人 工 智 能 中 的 搜 索 分 为 盲 目 搜 索 和 启 发 式(Heuristics)搜索两种。所谓盲目搜索是指仅按预定策略进行搜索,搜索中获得的信息不改变搜索过程的搜索方法。所谓启发式搜索则是指能够利用搜索中获得的问题本身的
27、一些特性信息(亦称启发信息)来指导搜索过程,使搜索朝着最有希望的方向前进。人工智能主要采用的是启发式搜索策略。2004.11.3AI程序设计1.3.3 人工智能研究的主要特点4数据驱动方式 所谓数据驱动(Data Driven)是指在系统处理的每一步,当考虑下一步该做什么时,需要根据此前所掌握的数据内容(亦称事实)来决定。与数据驱动方式对应的另一种方式是程序驱动(Program Driven),所谓程序驱动是指系统处理的每一步及下一步该做什么都是由程序事先预定好的。人类在解决问题时主要使用数据驱动方式,因此智能程序系统也应该使用数据驱动方式,这样会更接近于人类分析问题、解决问题的习惯。2004
28、.11.3AI程序设计1.3.3 人工智能研究的主要特点5用人工智能语言建造系统 人工智能语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序语言。它能够完成非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题的求解。人工智能语言和传统程序设计语言相比,具有以下主要特点:具有回溯和非确定性推理功能;能够进行符号形式的知识信息处理;能够动态使用知识和动态分配存储空间;具有模式匹配和模式调用功能;具有并行处理和并行分布式处理功能;具有信息隐蔽、抽象数据类型、继承、代码共享及软件重用等面向对象方面的特征;具有解释推理过程的说明功能;具有自学习、自适应的开放式软件
29、环境等。2004.11.3AI程序设计1.3.3 人工智能研究的主要特点 人工智能语言可从总体上划分为通用型和专用型两种。通用型人工智能语言主要是指以LISP为代表的函数型语言、以 Prolog为代表的逻辑性语言和以C+等为代表的面向对象语言。专用型人工智能语言主要是指那种由多种人工智能语言或过程语言相互结合而构成的,具有解决多种问题能力的专家系统开发工具和人工智能开发环境。2004.11.3AI程序设计1.4 人工智能的研究领域 在大多数学科中都存在着几个不同的研究领域,每个领域都有其特有的感兴趣的研究课题、研究技术和术语。由于智能的复杂性,人工智能实际上是一个大学科。经过40余年的发展,现
30、在其技术脉络已日趋清楚,理论体系已逐渐形成,应用范围不断扩展,人工智能学科现已分化出了许多的分支研究领域。下面我们从不同角度对其作一简介。2004.11.3AI程序设计 1.4.1 经典的人工智能研究领域1.4.2 基于脑功能模拟的领域划分1.4.3 基于实现技术的领域划分1.4.4 基于应用领域的领域划分1.4.5 基于应用系统的领域划分1.4.6 基于计算机系统结构的领域划分1.4.7 基于实现工具与环境的领域划分1.4 人工智能的研究领域 2004.11.3AI程序设计1.4.1 经典的人工智能研究领域 在经典的人工智能研究中,这样的领域包括逻辑推理与定理证明、博弈、自然语言处理、专家系
31、统、自动程序设计、机器学习、人工神经网络、机器人学、模式识别、计算机视觉、智能控制、智能检索、智能调度与指挥、智能决策支持系统、知识发现和数据挖掘,以及分布式人工智能等。值得指出的是,正如不同的人工智能子领域不是完全独立的一样,这里所要讨论的各种智能特性也完全不是互不相关的。把它们分开来介绍只是为了便于指出现有的人工智能程序能够做些什么和还不能做什么。2004.11.3AI程序设计1.4.1 经典的人工智能研究领域1逻辑推理与定理证明2博弈 3自然语言理解 4专家系统 5自动程序设计 6机器学习 7人工神经网络 8机器人学 9模式识别 10计算机视觉 11智能控制 12智能检索 13智能调度与
32、指挥 14智能决策支持系统 15知识发现和数据挖掘 16分布式人工智能 2004.11.3AI程序设计1逻辑推理与定理证明 早期的逻辑演绎研究工作与问题和难题的求解相当密切。已经开发出的程序能够借助于对事实数据库的操作来“证明”断定;其中每个事实由分立的数据结构表示,就像数学逻辑中由分立公式表示一样。与人工智能的其它技术的不同之处是,这些方法能够完整地和一致地加以表示。也就是说,只要本原事实是正确的,那么程序就能够证明这些从事实得出的定理,而且也仅仅是证明这些定理。逻辑推理是人工智能研究中最持久的子领域之一。其中特别重要的是要找到一些方法,只把注意力集中在一个大型数据库中的有关事实上,留意可信
33、的证明,并在出现新信息时适时修正这些证明。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 对数学中臆测的定理寻找一个证明或反证,确实称得上是一项智能任务。为此不仅需要有根据假设进行演绎的能力,而且需要某些直觉技巧。例如为了求证主要定理而猜测应当首先证明哪一个引理。一个熟练的数学家运用他的(以大量专门知识为基础的)判断力能够精确地推测出某个科目范围里哪些前已证明的定理在当前的证明中是有用的,并把他的主问题归结为若干子问题,以便独立地处理它们。有几个定理证明程序已在有限的程度上具有某些这样的技巧。1976年7月,美国的阿佩尔(KAppel)等人合作解决了长达124年之久的难题四色
34、定理。他们用三台大型计算机,花去1200小时CPU时间,并对中间结果进行人为反复修改500多处。四色定理的成功证明曾轰动计算机界。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 定理证明的研究在人工智能方法的发展中曾经产生过重要的影响。例如,采用谓词逻辑语言的演绎过程的形式化有助于我们更清楚地理解推理的某些子命题。许多非形式的工作,包括医疗诊断和信息检索都可以和定理证明问题一样加以形式化。因此,在人工智能方法的研究中定理证明是一个极其重要的论题。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计2博弈 博弈(Game Playing)是一个有关对策和斗智问题的研
35、究领域。例如,下棋、打牌、战争等这一类竞争性智能活动都属于博弃问题。博奔是人类社会和自然界中普遍存在的一种现象,博奔的双方可以是个人、群体,也可以是生物群或智能机器,各方都力图用自己的智力击败对方。人工智能的第一个大成就是发展了能够求解难题的下棋(如国际象棋)程序。在下棋程序中应用的某些技术,如向前看几步,并把困难的问题分成一些比较容易的子问题,发展成为搜索和问题归约这样的人工智能基本技术。今天的计算机程序能够下锦标赛水平的各种方盘棋、十五子棋和国际象棋。另一种问题求解程序把各种数学公式符号汇编在一起,其性能达到很高的水平,并正在为许多科学家和工程师所应用。有些程序甚至还能够用经验来改善其性能
36、。1993年美国出版了一个叫做MACSYMA的软件,就能进行比较复杂的数学公式符号运算。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 这个领域中未解决的问题包括人类棋手具有的但尚不能明确表达的能力,如国际象棋大师们洞察棋局的能力。另一个未解决的问题涉及问题的原概念,在人工智能中叫做问题表示的选择。人们常常能够找到某种思考问题的方法从而使求解变易而解决该问题。到目前为止,人工智能程序已经知道如何考虑它们要解决的问题,即搜索解答空间,寻找较优的解答。迄今为止,人工智能对博弈的研究多以下棋为对象,但其目的并不是为了让计算机与人下棋,而主要是为了给人工智能研究提供一个试验场地,对人
37、工智能的有关技术进行检验,从而也促进这些技术的发展。博弈研究的一个代表性成果是IBM公司研制的超级计算机“深蓝”。“深蓝”被称为世界上第一台超级国际象棋电脑,该机有32个独立运算器,其中每一个运算器的运算速度都在每秒200万次以上,机内还装了一个包含有200万个棋局的国际象棋程序。“深蓝”于1997年6月 3日至5月 11日在美国纽约曼哈顿同当时的国际象棋世界冠军苏联人卡斯帕罗夫对弈6局,结果“深蓝”获胜。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计3自然语言理解 自然语言处理也是人工智能的早期研究领域之一,并引起进一步的重视。已经编写出能够从内部数据库回答用英语提出的问题
38、的程序,这些程序通过阅读文本材料和建立内部数据库,能够把句子从一种语言翻译为另一种语言,执行用英语给出的指令和获取知识等。有些程序甚至能够在一定程度上翻译从话筒输入的口头指令(而不是从键盘打入计算机的指令)。尽管这些语言系统并不像人们在语言行为中所做的那样好,但是它们能够适合某些应用。那些能够回答一些简单询问的和遵循一些简单指示的程序是这方面的初期成就,它们与机器翻译初期出现的故障一起,促使整个人工智能语言方法的彻底变革。目前语言处理研究的主要课题是:在翻译句子时,以主题和对话情况为基础,注意大量的一般常识世界知识和期望作用的重要性。1.4.1 经典的人工智能研究领域2004.11.3AI程序
39、设计 实际语言系统的技术发展水平是用各种软件系统的有效“前端”来表示的。这些程序接收某些局部形式的输入,但不能处理英语语法的某些微小差别,而且只适用于翻译某个有限讲话范围内的句子。人工智能在语言翻译与语音理解程序方面已经取得的成就,发展为人类自然语言处理的新概念。当人们用语言互通信息时,他们几乎不费力地进行极其复杂却又只需要一点点理解的过程。然而要建立一个能够生成和“理解”哪怕是片断自然语言的计算机系统却是异常困难的。语言已经发展成为智能动物之间的一种通信媒介,它在某些环境条件下把一点“思维结构”从一个头脑传输到另一个头脑,而每个头脑都拥有庞大的高度相似的周围思维结构作为公共的文本。这些相似的
40、、前后有关的思维结构中的一部分允许每个参与者知道对方也拥有这种共同结构,并能够在通信“动作”中用它来执行某些处理。语言的发展显然为参与者使用他们巨大的计算资源和公共知识来生成和理解高度压缩和流畅的知识开拓了机会。语言的生成和理解是一个极为复杂的编码和解码问题。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 一个能理解自然语言信息的计算机系统看起来就像一个人一样需要有上下文知识以及根据这些上下文知识和信息用信息发生器进行推理的过程。理解口头的和书写的片断语言的计算机系统所取得的某些进展,其基础就是有关表示上下文知识结构的某些人工智能思想以及根据这些知识进行推理的某些技术。1.4
41、.1 经典的人工智能研究领域2004.11.3AI程序设计4专家系统 专家系统(Expert System,简称ES)是一种基于知识的智能系统,它将领域专家的经验用知识表示方法表示出来,并放入知识库中,供推理机使用。由于专家系统包含了大量的专家知识,并具有使用这些知识的能力,因此可用来解决该领域中需要专家才能解决的问题。专家系统目前尚无公认的定义,一种比较一致的解释是:专家系统是一个能在某特定领域内,以专家水平去解决该领域中困难问题的计算机程序。一般地说,专家系统是一个智能计算机程序系统,其内部具有大量专家水平的某个领域的知识与经验,能够利用人类专家的知识和解决问题的方法来解决该领域的问题。也
42、就是说,专家系统是一个具有大量专门知识与经验的程序系统,它应用人工智能技术,根据某个领域一个或多个人类专家提供的知识和经验进行推理和判断,模拟人类专家的决策过程,以解决那些需要专家决定的复杂问题。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 近年来,在专家系统或“知识工程”的研究中已经出现了成功和有效地应用人工智能技术的趋势。有代表性的是,用户与专家系统进行“咨询对话”,就像他与具有某方面经验的专家进行对话一样:解释他的问题,建议进行某些试验以及向专家系统提出询问以求得到有关解答等。目前的实验系统,在咨询任务如化学和地质数据分析、计算机系统结构、建筑工程以及医疗诊断等方面,
43、其质量已经达到很高的水平。可以把专家系统看做人类专家(他们用“知识获取模型”与专家系统进行人机对话)和人类用户(他们用“咨询模型”与专家系统进行人机对话)之间的媒介。在人工智能的这个领域里,还有许多研究集中在使专家系统具有解释它们的推理能力,从而使咨询更好地为用户所接受,又能帮助人类专家发现系统推理过程中出现的差错。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 当前的研究涉及有关专家系统设计的各种问题。这些系统是在某个领域的专家与系统设计者之间经过艰苦的反复交换意见之后建立起来的。现有的专家系统都局限在一定范围内,而且没有人类那种能够知道自己什么时候可能出错的感觉,新的研究
44、包括应用专家系统来教初学者以及请教有经验的专业人员。专家系统可以解决的问题一般包括解释、预测、诊断、设计、规划、监视、修理、指导和控制等。高性能的专家系统也已经从学术研究开始而进入实际应用研究。专家系统作为人工智能中最活跃、发展最快的一个分支,已广泛应用于工业、农业、医学、地质、气象、交通、军事、法律、空间技术、环境科学和信息管理等众多领域,并产生了巨大的经济效益和社会效益。随着人工智能整体水平的提高,专家系统也获得发展。正在开发的新一代专家系统有分布式专家系统和协同式专家系统等。在新一代专家系统中,不但采用基于规则的方法,而且采用基于模型的原理。1.4.1 经典的人工智能研究领域2004.1
45、1.3AI程序设计5自动程序设计 自动程序设计也许并不是人类知识的一个十分重要的方面,但是它本身却是人工智能的一个重要研究领域。已经研制出能够以各种不同的目的描述(例如输入输出对,高级语言描述,甚至英语描述算法)来编写计算机程序。这方面的进展局限于少数几个完全现成的例子。对自动程序设计的研究不仅可以促进半自动软件开发系统的发展,而且也使通过修正自身数码进行学习(即修正它们的性能)的人工智能系统得到发展。程序理论方面的有关研究工作对人工智能的所有研究工作都是很重要的。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 自动程序设计研究的重大贡献之一是作为问题求解策略的调整概念。已经
46、发现,对程序设计或机器人控制问题,先产生一个不费事的有错误的解,然后再修改它(使它正确工作),这种做法一般要比坚持要求第一个解就完全没有缺陷的做法有效得多。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 6机器学习 学习能力无疑是人工智能研究上最突出和最重要的一个方面。人工智能在这方面的研究近年来取得了一些进展。学习是人类智能的主要标志和获得知识的基本手段。机器学习(自动获取新的事实及新的推理算法)是使计算机具有智能的根本途径。正如香克(RShank)所说:“一台计算机若不会学习,就不能称为具有智能的。”此外,机器学习还有助于发现人类学习的机理和揭示人脑的奥秘。所以这是一个始
47、终得到重视,理论正在创立,方法日臻完善,但远未达到理想境地的研究领域。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 一个学习过程本质上是学习系统把导师(或专家)提供的信息转换成能被系统理解并应用的形式。按系统对导师的依赖程度可将学习方法分类为:(1)机械式学习(Rote learning)(2)讲授式学习(Learning from instruction)(3)类比学习(Learning by analogy)(4)归纳学习(Learning from induction)(5)观察发现式学习(Learning by observation&discovery)(6)基于
48、解释的学习。(7)基于事例的学习。(8)基于概念的学习。(9)基于神经网络的学习。(10)遗传学习等。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计7人工神经网络 由于冯诺依曼(Van Neumann)体系结构的局限性,数字计算机存在一些尚无法解决的问题。例如,基于逻辑思维的知识处理,在一些比较简单的知识范畴内能够建立比较清楚的理论框架,部分地表现出人的某些智能行为;但是,在视觉理解、直觉思维、常识与顿悟等问题上显得力不从心。这种做法与人类智能活动有许多重要差别。传统的计算机不具备学习能力,无法快速处理非数值计算的形象思维等问题,也无法求解那些信息不完整、不确定性和模糊性的问
49、题。人们一直在寻找新的信息处理机制,神经网络计算就是其中之一。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计8机器人学 人工智能研究日益受到重视的另一个分支是机器人学,其中包括对操作机器人装置程序的研究。这个领域所研究的问题,从机器人手臂的最佳移动到实现机器人目标的动作序列的规划方法,无所不包。尽管已经建立了一些比较复杂的机器人系统,不过现正在工业上运行的成千上万台机器人,都是一些按预先编好的程序执行某些重复作业的简单装置。大多数工业机器人是“盲人”,而某些机器人能够用电视摄像机来“看”。电视摄像机发送一组信息返回计算机。处理视觉信息是人工智能另一个十分活跃和十分困难的研究领
50、域。已经开发的程序能够识别可见景物的实体与阴影,甚至能够辨别出两幅图像间(例如在航空侦察中)的细小差别。1.4.1 经典的人工智能研究领域2004.11.3AI程序设计 机器人和机器人学的研究促进了许多人工智能思想的发展。它所导致的一些技术可用来模拟世界的状态,用来描述从一种世界状态转变为另一种世界状态的过程。它对于怎样产生动作序列的规划以及怎样监督这些规划的执行有了一种较好的理解。复杂的机器人控制问题迫使我们发展一些方法,先在抽象和忽略细节的高层进行规划,然后再逐步在细节越来越重要的低层进行规划。智能机器人的研究和应用体现出广泛的学科交叉,涉及众多的课题,如机器人体系结构、机构、控制、智能、