图书前言

人工智能自从1956年问世以来,已经经历了近50年的风风雨雨,其发展并非一帆风顺,历经几次大起大落。也正是在这样的起落中,人工智能这门学科得以逐步发展壮大起来。

实际上,从古代开始,人类就一直幻想着制造出具有智能的机器。很多古代的传说,无不体现了这样的思想。但是,只有在计算机出现以后,借助于计算机这种工具,人工智能才有可能从幻想走向现实。

究竟什么是人工智能?人工智能是否能够实现?一直是人们争议的问题。由于对智能本身研究得不够充分,人们往往将智能神秘化。当IBM的“深蓝”第一次战胜国际象棋世界冠军卡斯帕罗夫的时候,先是惊叹人工智能的发展,继而,当对“深蓝”的原理有所了解之后,又有很多人提出这样的疑问:这就是智能吗?人类下棋可不是这样的。

机器智能是对人类智能的一种模仿,是功能上的模仿,而不是机理上的模仿。由于对人类智能的了解还远远不够,因此,从机理上模仿人类的智能,至少在近期内是不可能实现的,而且即使实现也不一定就是成功的。当年莱特兄弟成功地制造了飞机,正是因为他们没有模仿鸟的飞行,他们制造的飞机不是像鸟那样依靠翅膀的煽动而飞行,才取得了成功。可以想象,如果当时人们制造的是翅膀可以煽动的飞机的话,也许到现在飞机也不能成为一种常用的交通工具。因此,在研究人工智能的过程中,不必追求其机理是否与人类一致,所追求的应该是人工智能的功能。

通俗地讲,人工智能就是一些方法,依靠这些方法,计算机可以比较好地求解问题,能够帮助人类做许多以前需要人类的智能才能完成的工作。

人工智能发展至今,已经形成了一整套的理论和方法,这些理论和方法已经在专家系统、自然语言处理、模式识别、人机交互、智能信息处理、信息检索、图像处理、数据挖掘和机器人技术等各个人工智能的应用领域发挥着巨大的作用。

目前,人工智能仍处于发展时期,很多问题解决得还不够好,甚至不能求解;很多问题的求解还需要一定的条件。人工智能毕竟是依靠机器实现的。与人类相比,机器相对呆板、不够灵活。因此,人工智能应该是一个人机协调的系统。为了机器处理的方便,人类应该做一些让步,为机器提供一定的条件,以便机器发挥其优势。就像火车一样,火车拉得多,跑得快,但火车离不开铁路,一旦离开了铁路,火车将一事无成。修建铁路就是人类对火车的让步。人工智能的应用,也许同样需要人类修建一条能让人工智能在其上面“跑”的“铁路”。

人工智能是多学科的交叉学科,涉及的内容广泛,而且一直在不断地发展,随时都在产生新的方法和理论。本书作为人工智能入门性的教材,主要介绍人工智能研究中最基本的、最经典的理论和方法,为计算机科学和技术人员以及其他学科领域中对人工智能感兴趣的科技工作者和学生提供最基本的人工智能技术和有关问题的入门知识。

前言人工智能全书共8章,第1至第7章每一章介绍人工智能的一种方法。

第0章绪论,首先介绍什么是人工智能,并阐述了图灵测试和中文屋子问题。这些问题的阐述将有助于理解什么是人工智能问题。然后介绍人工智能的研究目标、发展历史,以及人工智能所涉及的研究课题。这将有助于理解哪些问题属于人工智能领域。

第1章介绍搜索问题。搜索被认为是人工智能,尤其是传统的人工智能的两大支柱之一,很多人工智能问题的求解,最终都可以归结为搜索问题,或者与搜索问题有联系。本章主要介绍盲目搜索算法和启发式搜索算法,给出算法的描述和应用举例。

第2章介绍与或图的搜索问题,给出与或图的启发式搜索算法——AO*搜索算法和博弈树搜索算法——α\|β剪支算法。α\|β剪支算法是求解博弈问题最主要的算法。

第3章介绍一阶谓词逻辑及归结原理。一阶谓词逻辑是知识表示的方法之一,具有很好的数学基础。本章从命题逻辑入手,着重讨论逻辑运算在人工智能推理方法中的意义、谓词逻辑表示方法、归结原理推理方法及其理论基础。

第4章介绍知识表示方法。知识表示是支撑人工智能的两大支柱之一。人工智能问题的求解离不开知识,首先遇到的就是知识表示问题。本章主要介绍人工智能中最常用的产生式、语义网络和框架等知识表示方法及基于这些知识表示方法的推理方法。

第5章介绍不确定性推理方法。现实世界的问题,往往包含大量模糊性、随机性、不可靠性或不知道等不确定性因素,因此不确定性也是人工智能问题的主要特征之一。本章主要介绍人工智能中用于求解不确定性问题的推理方法,包括贝叶斯网络、主观贝叶斯方法、确定性方法和证据理论等。

第6章介绍机器学习方法。学习是人类最重要的能力,通过学习,人们可以解决过去不能解决的问题。因此机器学习在人工智能中起着举足轻重的作用。本章主要介绍机器学习的基本思想和基于实例的学习、基于解释的学习、决策树学习、人工神经网络学习等具体的机器学习方法。

第7章介绍高级搜索方法。高级搜索是近年发展起来的搜索方法,其特点是通过引入随机因素,把寻求最优解降低为求解满意解,从而达到降低算法复杂度的目的。本章主要介绍局部搜索方法、模拟退火算法和遗传算法。

学习人工智能,掌握方法固然重要,但更重要的是应用这些方法解决实际问题。这就涉及编程实现问题。与一般的程序设计相比,人工智能程序设计具有其特殊性。本书并不涉及人工智能程序设计问题,但并不是说这部分内容不重要。在学习本书的同时,一定要边学习边编程实现,通过程序的实现,进一步理解算法,了解算法是如何解决实际问题的。这一点在人工智能学习中是至关重要的。

本书每一章后面都附有习题,有些习题比较简单,有些习题是探讨性的,并没有“标准答案”。解答习题对于学习者来说,同样是重要的环节。

本书在写作过程中,参考了大量的国内外文献资料,在此一并表示感谢。

对于本书中出现的缺点和错误,欢迎读者给予批评指正。