人工智能原理与实践ArtificialIntelligence:PrinciplesandApplications杨丰yangf_2003@yahoo.com.cn本课程的安排CoursePlanning授课学时:30学时1-10周实验学时:18机时2-10周平时和实验成绩:20分考试:80分(在第十周随堂考)课程结构第一章绪论(1*3=3学时)-1人工智能的界定人工智能的学科范畴人工智能的研究方法与应用人工智能的发展简史与趋势第二章游戏软件的设计(2*3=9学时)人工智能与游戏追击与逃跑-2运动模式-3基本路径探索-4第三章搜索技术(5*3=15学时)A*搜索算法-5有限状态机-6模糊逻辑-7概率概论-8遗传算法-9第四章优化算法及产生式规则(1*3=3学时)-10最优化问题产生式规则第一章绪论Introduction第一节人工智能的界定第二节人工智能的学科范畴第三节人工智能的研究方法与应用第四节人工智能的发展简史与趋势第一节人工智能的界定DefiningAI(ArtificialIntelligence)人工智能(AI)是研究和设计具有智能行为的计算机程序,使其如同具有智能行为的人或动物一样去执行任务。定义1.1智能机器(Intelligentmachine)能够在各类环境中自主地或交互地执行各种拟人任务(anthropomorphictask)的机器。定义1.2人工智能学科是计算机科学中涉及研究、设计和应用智能机器的一个分支。定义1.3人工智能(能力)人工智能(能力)是智能机器所执行的通畅与人类智能有关的智能行为,如判断、推理、证明、识别、感知、理解、通信、设计、思考、规划、学习和问题求解等思维活动。定义1.4人工智能是一种使计算机能够思维、使机器具有智力的激动人心的新尝试。定义1.5人工智能是那些与人的思维、决策、问题求解和学习等有关活动的自动化。定义1.6人工智能是用计算模型进行研究的智力行为。定义1.7人工智能是研究那些使理解、推理和行为成为可能的计算。定义1.8人工智能是一种能够执行需要人的智能的创造性机器的技术。定义1.9人工智能研究如何通过使计算机做事而让人过得更好。定义1.10人工智能是一门通过计算过程力图理解和模仿智能行为的学科。定义1.11人工智能是计算机科学中与智能行为的自动化有关的一个分支。图灵测试当一个人与一个封闭房间里的人或者机器交谈时,如果他不能分辨自己问题的回答是计算机还是人给出时,则称该机器是具有智能的。以往该试验几乎是衡量机器人工智能的唯一标准,但是从九十年代开始,现代人工智能领域的科学家开始对此试验提出异议:反对封闭式的,机器完全自主的智能;提出与外界交流的,人机交互的智能。计算机需要的能力自然语言处理知识表示自动推理机器学习计算机视觉机器人技术第二节人工智能的学科范畴人工智能是一门新兴的边缘科学,是自然科学和社会科学的交叉学科,吸取了自然科学和社会科学的最新成就,以思维和智能为核心,形成具有自身研究特点的新的体系。人工智能及其相关学科人工智能推理、学习、规划、感知、知识获取、智能搜索、不确定性管理和推理、其他哲学和认知科学数学心理学计算机科学控制论博弈定理证明语言和图像理解机器人学专家系统人工智能的基础哲学-知识从哪里来?知识如何导致行动的?数学-如何用不确定的知识进行推理?经济学-如何决策获得最大利益?神经学-人脑如何处理信息?心理学-人类如何思考和行动的?计算机工程学-如何能够创造出能干的计算机?控制论-人工制品如何能在自己的控制下运转?语言学-语言和思维是怎么联系起来的?人工智能各学派的认知观符号主义(symbolicism)-逻辑主义(logicism)、心理学派(phychologism)或计算机学派,主要为物理符号系统假设和有限合理性原理。来源于-数理逻辑连接主义(connectionism)-仿生学派(bionicsism)、生物学派(physiologism),主要为神经网络及神经网络间的连接机制与学习算法。行为主义(actionism)-进化主义(evolutionism)或控制论学派(cyberneticsism)主要为控制论及感知-动作型控制系统。人工智能成功的实例1953年,美国乔治敦大学组织了第一次机器翻译的实际实验。1954年7月,IBM公司在701计算机上做了俄译英的公开表演。1956年,Newell(艾伦.纽厄尔)和Simon(西蒙)等人首先取得突破,他们编的程序LogicTheorist(应用启发式技术)证明了《数学原理》第二章中的三十八条定理,又于1963年证明了该章中的全部五十二条定理,走上了以计算机程序来模拟人类思维的道路,第一次把求解方法和问题的领域知识分离开。1958年定理证明方面取得新成就,美籍数理逻辑学家王浩在IBM704计算机上以3-5分钟证明了《数学原理》有关命题演算的全部220条定理,还用了几分钟证明了该书中带等式的谓词演算的150条定理中的85%,1959年再接再厉,仅用了8.4分钟就证明了以上全部定理。1959年,IBM公司的Gelernter(格伦特尔)研制出平面几何证明程序。智能体Agent智能体传感器执行器?环境感知行动第三节主要的应用领域1.自然语言理解(NaturalLanguageUnderstanding)自然语言是人类之间信息交流的主要媒介。,由于人类有很强的理解自然语言的能力,因此互相间的信息交流显得轻松自如。目前计算机系统和人类之间的交互几乎还只能使用严格限制的各种非自然语言,因此解决计算机系统能理解自然语言的问题,引起人们的兴趣和重视,一直是人工智能领域的重要研究课题之一。实现机器翻译过程中,如果计算机确实会理解一个句子的意义,那么就可能进行释义,从而能较通顺地给出译文。目前人工智能研究中,在理解有限范围的自然语言对话和理解用自然语言表达的小段文章或故事方面的程序系统已有一些进展,但由于理解自然语言涉及对上下文背景知识的处理以及根据这些知识进行推理的一些技术,因此实现功能较强的理解系统仍是一个比较艰巨的任务。主要的应用领域2.数据库的智能检索(IntelligentRetrievalfromDatabase)数据库系统是存储某个学科大量事实的计算机系统,随着应用的进一步发展,存储信息量愈来愈庞大,因此解决智能检索的问题便具有实际意义。智能信息检索系统应具有如下的功能:(1)能理解自然语言,允许用自然语言提出各种询问;(2)具有推理能力,能根据存储的事实,演绎出所需的答案;(3)系统拥有一定常识性知识,以补充学科范围的专业知识。系统根据这些常识,将能演绎出更一般询问的一些答案来。实现这些功能要应用人工智能的方法。主要的应用领域3.专家咨询系统(ExpertConsultingSystems)专家咨询系统就是一种智能的计算机程序系统,该系统存储有某个专门领域中经事先总结、并按某种格式表示的专家知识(构成知识库),以及拥有类似于专家解决实际问题的推理机制(组成推理系统)。系统能对输入信息进行处理,并运用知识进行推理,做出决策和判断,其解决问题的水平达到专家的水准,因此能起到专家的作用或成为专家的助手。专家系统的开发和研究是人工智能研究中面向实际应用的课题,受到人们的极大重视。已开发的系统数以百计,应用领域涉及化学、医疗、地质、气象、交通、教育、军事等,可以说只要有专家工作的场合,就可以开发专家系统。目前专家系统主要采用基于规则的演绎技术,开发专家系统的关键问题是知识表示、应用和获取技术,困难在于许多领域中专家的知识往往是琐碎的,不精确的或不确定的,因此目前研究仍集中在这一核心课题。对专家系统开发工具的研制发展也很迅速。主要的应用领域4.定理证明(TheoremProving)数学领域中对臆测的定理寻求一个证明,一直被认为是一项需要智能才能完成的任务。证明定理时,不仅需要有根据假设进行演绎的能力,而且需要有某些直觉的技巧。例如数学家在求证一个定理时,会熟练地运用他丰富的专业知识,猜测应当先证明哪一个引理,精确判断出已有的哪些定理将起作用,并把主问题分解为若干子问题,分别独立进行求解。因此人工智能研究中机器定理证明很早就受到注视,并取得不少成果。例如使用谓词逻辑语言,其演绎过程的形式体系研究,帮助人们更清楚地理解推理过程的各个组成部分。因此机器定理证明的研究具有普遍意义。主要的应用领域5.博弈(GamePlaying)博弈被认为是智能的活动,人工智能中主要是研究下棋程序,在六十年代就出现了很有名的西洋跳棋和国际象棋的程序,并达到了大师的水平。进入90年代,IBM公司以其雄厚硬件基础,支持开发后来被称之为“深蓝”的国际象棋系统,并为此开发了专用的芯片,以提高计算机的搜索速度。1996年2月,与国际象棋世界冠军卡斯帕罗夫进行了第一次比赛,经过六个回合的比赛之后,“深蓝”以2:4告负。1997年5月,系统经过改进以后,“深蓝”又第二次与卡斯帕罗夫交锋,并最终以3.5:2.5战胜了卡斯帕罗夫,在世界范围内引起了轰动。博弈问题为搜索策略、机器学习等问题的研究课题提供了很好的实际背景,所发展起来的一些概念和方法对其他人工智能问题也很有用。主要的应用领域6.机器人学(Robotics)由于自动装配、海洋开发、空间探索等实际问题的需要,对机器的智能水平提出了更高的要求。特别是危险环境,人们难以胜任的场合更迫切需要机器人,从而推动了智能机器的研究。机器人学的研究推动了许多人工智能思想的发展,有一些技术可在人工智能研究中用来建立世界状态模型和描述世界状态变化的过程。关于机器人动作规划生成和规划监督执行等问题的研究,推动了规划方法的发展。此外由于智能机器是一个综合性的课题,除机械手和步行机构外,还要研究机器视觉、触觉、听觉等传感技术,以及机器人语言和智能控制软件等。可以看出这是一个涉及精密机械、信息传感技术、人工智能方法、智能控制以及生物工程等学科的综合技术。主要的应用领域7.自动程序设计(AutomaticProgramming)自动程序设计的任务是设计一个程序系统,它接受关于所设计的程序要求实现某个目标的非常高级的描述作为其输入,然后自动生成一个能完成这个目标的具体程序。在某种意义上来说,编译程序实际就是去做自动程序设计的工作。编译程序接受一段有关干某件事情的源码说明(源程序),然后转换成一个目标码程序(目的程序)去完成这件事情。而这里所说的自动程序设计相当于一种超级编译程序,它要求能对高级描述进行处理,通过规划过程,生成得到所需的程序。因而自动程序设计所涉及的基本问题与定理证明和机器人学有关,要用到人工智能方法来实现,它也是软件工程和人工智能相结合的课题。自动编制出一份程序来获得某种指定结果的任务同论证一份给定的程序将获得某种指定结果的任务是紧密相关的,前者也称程序综合,后者称为程序验证。许多自动程序设计系统将产生一份输出程序的验证作为额外的收益。自动程序设计研究的重大贡献之一是把程序调试的概念作为问题求解的策略来使用。实践已经发现,对程序设计或机器人控制问题,先产生一个代价不太高的有错误的解,然后再进行修改的作法,要比坚持要求第一次得到的解就完全没有缺陷的作法,通常效率要高得多。主要的应用领域8.组合调度问题(CombinatorialandSchedulingProblems)有许多实际的问题是属于确定最佳调度或最佳组合的问题,例如旅行商问题就是其中之一。这个问题是要求给推销员确定一条最短的旅行路线,他的旅程是从某一个城市出发,然后遍访他所要访问的城市,而且每个城市只访问一次,然后回到出发城市。该问题的一般化提法是:对由几个节点组成的一个图的各条边,寻找一条最小耗费的路径,使得这条路径只对每一个节点穿行一次。在大多数的这类问题中,随着求解问题规模的增大,求解程序都面临着组合爆炸问题。这些问题中有几个(包括旅行商问题)是属于计算理论家称为NP-完全性一类的问题。用现在知道的最佳方法求解NP-