读书人

游戏编程中的人工智能技术(附光盘)

发布时间: 2010-02-03 13:18:05 作者:

 游戏编程中的人工智能技术(附光盘)

  • 市场价:¥39.00
  • 全场购物免配送费!
  • 目前无货,欢迎选购其他类似产品。 到货通知我。 3人 评论打分
  • 5 颗星:
  • (0)
  • 4 颗星:
  • (2)
  • 3 颗星:
  • (0)
  • 2 颗星:
  • (0)
  • 1 颗星:
  • (1)看全部3篇评论 (3篇用户评论 | 写评论) 关闭 Close this window商品缺货登记我们将在到货后及时通知您!
    商品促销和特殊优惠每购买由卓越亚马逊提供的1件图书产品合格购物商品,另外购买Office 2007 中文家庭和学生版可享受¥20.00 元的优惠。如何获得促销优惠
    为该商品打分以改善“为我推荐” 登录为该商品打分
    已经有了
    基本信息出版社:清华大学出版社
    页码:296 页
    出版日期:2006年05月
    ISBN:7302125996
    条形码:9787302125990
    版本:第1版
    装帧:平装
    开本:16开 Pages Per Sheet
    丛书名:游戏开发经典丛书

    内容简介 《游戏编程中的人工智能技术》是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑游戏中所需要的人工智能。书中包含了许多实用例子,所有例子的完整源码和可执行程序都能在随书附带的光盘上找到。光盘中还有不少其他方面的游戏开发资料和一个赛车游戏演示软件。《游戏编程中的人工智能技术》适合遗传算法和人工神经网络等人工智能技术的各行业人员,特别是要实际动手做应用开发的人员阅读参考。《游戏编程中的人工智能技术》是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑游戏中所需要的人工智能。书中包含了许多实用例子,所有例子的完整源码和可执行程序都能在随书附带的光盘上找到。光盘中还有不少其他方面的游戏开发资料和一个赛车游戏演示软件。《游戏编程中的人工智能技术》讲解的原理通俗易懂,介绍程序详细周到,很适用于游戏编程者自学之用,也可以作为游戏培训教材使用(《游戏编程中的人工智能技术》实际已被国内外许多游戏培训单位用作指定教材)。对于任何希望了解遗传算法和人工神经网络等人工智能技术的各行业人员,特别是要实际动手做应用开发的人员,都是一本值得一读的好书。
    作者简介 Mat Buckland在伦敦大学学完计算机科学后,做过多年的风险管理咨询顾问。终于他开始厌倦了所有的金钱游戏和公司制度,就一把火烧掉了他原有的公司礼服,跑到一家为Gremlin software开发游戏的公司工作。虽然薪水少得多,但是却很有趣,而且他可以每天穿牛仔裤去上班了!现在Mat同时是一个自由程序员和人工智能咨询顾问。自从20世纪80年代初第一次接触到这些技术,他就对进化计算和AI尤感兴趣。他是ai-iunkie.com网站(www.ai-junkie.com)的作者,该网站提供一些有关进化算法的教程和建议。
    媒体推荐 引言
    考虑一下有多少傻瓜能作微积分演算,要让任何其他傻瓜去掌握看来是更困难或更繁琐的微积分技巧就令人惊奇了。
    有些微积分技巧是相当容易的,但有些则非常难。那些编写了高等数学教课书的傻瓜——他们都是些最聪明的傻瓜——很少会劳神向你说明简单的微积分有多么简单。相反地,他们采用了最最艰难的方法来处理相关内容,好像就是刻意要让你牢记,他们那无比的 智慧。
    由于我是一个出名的傻家伙,我始终不学那些困难的技巧,我现在也要求为我的傻瓜读者提供那些不难的部分。彻底地掌握这些以后,其余的也会随之而来(follow)。我相信,一个傻瓜能干的,其他傻瓜也一定能干。
    Silvanus P. Thompson,《简易微积分》导言,1910年初版

    家用电脑从Sinclair ZX80演变到现在已经历了很长的一段路程。硬件速度越来越快,而电脑组件的价格则越来越低。在短短几年时间里,我们所看到的游戏的图形质量有了飞速的提高。不过,到目前为止,这几乎就是游戏开发所有努力要解决的重点——提供更好的视觉享受,而在我们最喜爱的电脑对手的AI方面,却改进甚微。
    然而,时代在改变。计算机的硬件现已到了这样的转折点,它已能为游戏开发者创建AI提供更多的时钟周期。同时,游戏的玩家们的品位也愈来愈复杂。人们已经不再希望在游戏中看到诸如Doom和Quake这些曾经是最心爱的早期游戏中所看到的那种蠢笨怪兽了。他们也不希望再看到计算机控制的游戏角色在那里盲目地蹒跚着寻找根本不存在的路径,不时地被卡在那些拐弯处,或是在没有资源的地方开发矿藏,傻头傻脑地撞在周围的树上。游戏玩家想要从游戏中获得更多的乐趣。他们希望从电脑生成的对手(或盟友)那里看到合情合理的、有智能的行为。
    基于这些原因,我坚定地认为,在未来的几年里,AI技术将会大幅度起飞。像Black & White 和 Halo这样的游戏已经让我们为其AI技术而倾心,游戏玩家们正期待更多的此类游戏。此外,基于AI技术和人造生命的全新游戏流派也在最近几年里开始出现,如Steve Grand的Creatures,这个游戏的销售量超过100万份的事实让他本人和其他所有人都吃惊。但如果你认为这是很多了,那么你再看看由Electronic Arts 制作的Sims的销售,到目前为止,Sims及其服务器软件(add-on packs)的销售已经高达1300万份!这是一个巨大的销售收入,而同时也是一个重要指示:玩家对这类技术有多么浓厚的兴趣。这个趋势只可能继续。
    创造智能幻影(illusion)的技术有多种,本书主要探讨两个方面:遗传算法和人工神经网络。这两项技术讨论的地方很多,它们无疑正是当前的热点论题,但是被误解的地方也相当多。就拿神经系统网络来说,经常会发现游戏开发者误认为神经网络是极其复杂的东西,因而会占用太多的处理器时间,导致游戏速度降低。或者相反,他们可能过度地追求神经网络的能力,企图去创造一个有感觉的类似HAL的人工生命,其结果必然是以失败而告终。我希望本书能帮助他们减少类似的曲解。
    上面我引用Silvanus Thompson所著的受到人们喝彩的《简易微积分导言》中的那一段话可以成为本书的完美的开端(谢谢,Silvanus!),因为,神经网络和遗传算法和微积分一样,对初学者来说,可能是非常难入门的,尤其对那些没有接受过正规专业教育的人来说更是如此。而已有的所有此类著作都是由学院式专家为学院式读者所写,其中充斥着(非本专业人)看不习惯的数学公式和难于理解的术语。因此,我写了一本是我刚开始对这些课题感兴趣时所想要读到的那种书:一本由傻瓜写给傻瓜看的书。相信我,如果我刚开始涉足该领域时能够得到这样一本书,我就用不着为搞清那些学究们到底是在讲什么而花那么多时间、受那么多挫折了!
    经过这些年,我已经读了有关这个课题方面的很多书和论文,它们几乎都没有能给出真实的例子,没有东西可以让你牢靠地掌握并对自己说“啊!这就是我能拿来运用的东西!”。 比如,关于遗传算法的书差不多总是向你提出这样的问题:
    最小化下面的函数
    f(x1,…,x5) = x1sin x1 + 1.7x2 sin x1 -1.5x3 - 0.1x4 cos(x4 + x5 - x1) + 0.2x52 - x2 1
    其中
    -100 ≤ x1,…,x5 ≤ 100
    我的意思是说,这是一个完全可以用遗传算法来解决的问题,但是上面的提法却让我们这些凡人实在难于理解其中的意义。除非你有一个很好的数学基础,这样的问题很可能会显得过于抽象,会立即让你感觉到不舒服,对继续学下去也就没有趣味。
    但如果给你的问题是这样:
    请允许我向你介绍Bob。今天对Bob来说可不是什么好日子,他已深陷到一个迷宫中,而他的妻子正期待他能早点回家一起分享她花了整个下午制作的晚餐。我来告诉你如何使用遗传算法帮助他找到迷宫出口,以挽救他的婚姻。
    你的大脑就有一个可以与之联系的着落点(anchor point)。你也立即会对这样的题目感到舒适。不仅如此,这也是一道有趣的题目。你一定很想知道我们怎样来帮他呢?由此你就会打开书本,继续学下去,在学习中感受到乐趣。
    这就是我在本书中用来阐明概念所使用的一种类型的题目。如果我的做法正确有效,如何把你的想法运用到你的游戏和项目里就会变得显而易见。
    对于我的读者,我只作一个假设,那就是读者了解如何编程。我不了解会有些什么样的读者,但是有时,当我买了一本书而发现其中仅有一部分我不了解,以至于必须去买另一本书来解释第一本书里我所不懂的内容,就会让我感到失望。为了防止这样的事情发生在读者身上,我努力确保这本书能解释代码所说明的一切——从Windows GDI、矩阵和矢量数学的使用,直到物理学和2D图像学。我知道事情通常都有其两面性,很可能一些读者已经掌握了这些图形学、物理学和GDI的相关知识,那么,你们可以跳过这部分而只阅读那些你们更感兴趣的部分。


    注:创建演示程序
    演示程序是很容易编译生成的。首先把你所需的源程序复制到你的硬盘里(译注:因编译一般需要用到其他的一些文件,你在复制源文件时,应把源程序所在文件夹中所有的文件整个地从光盘复制到硬盘)。如果你用微软的Visual Studio来编译,只要点击工程的workspace文件(译注:即以.ws为后缀的那个文件)就可以开始进行编译并最后生成可执行程序。如果使用其他的编译器,你应该创建一个新的Win32 工程(确保winmm.lib在你的工程设置里),并在按编译按钮之前,先在工程文件夹里加上相关的源程序和资源文件。所有要做的就是这些。用不到添加额外的路径、DirectX或OpenGL。
    在所有的例子里,我尽量使代码编写得尽可能简单。使用的是C++语言,但是我希望C语言程序员也能理解我的代码。所以,出于这方面的考虑,我没有使用C++所固有的诸如继承、多态一类的东西(stuff)。我使用了很简单的标准模板库(standard Template Library,sTL)功能,但是在我引用sTL功能的地方,会在边框里进行解释。使用简单代码的一个出发点是不使我所要阐述的原理显得晦涩。相信我,本书所涵盖的有些内容一开始并不容易掌握,所以我不想把因为在例子中使用了高级代码而把事情弄得更复杂。我已尽我所能恪守老管理顾问的信条:K.I.S.S(Keep It Stupidly Simple),让一切尽可能地简单。
    好了,不再罗嗦了,让我们来开始冒险吧……
    编辑推荐 《游戏编程中的人工智能技术》是人工智能游戏编程的一本指南性读物,介绍在游戏开发中怎样应用遗传算法和人工神经网络来创建电脑游戏中所需要的人工智能。书中包含了许多实用例子,所有例子的完整源码和可执行程序都能在随书附带的光盘上找到。光盘中还有不少其他方面的游戏开发资料和一个赛车游戏演示软件。 《游戏编程中的人工智能技术》适合遗传算法和人工神经网络等人工智能技术的各行业人员,特别是要实际动手做应用开发的人员阅读参考。
    目录
    第1篇Windows编程第1章Windows概述1.1历史一瞥(ALittle:BitofHistory)1.1.1Windows1.01.1.2Windows2.01.1.3Windows3.0和3.11.1.4Windows951.1.5Windows98及其后续版本1.2HelloWorld!1.3第一个Windows程序1.3.1匈牙利表示法1.3.2第一个窗口1.3.3Windows消息循环1.3.4Windows过程1.3.5键盘输入第2章Windows编程进阶2.1Windows图形设备接口2.1.1设备描述表2.1.2各种绘图工具:画笔、画刷、颜色、线和形状2.2文本2.2.1TextOut:2.2.2DrawText...................2.2.3加入颜色和透明度2.2.4实时消息抽取循环2.3如何创建后备缓冲2.3.1如何实现双缓冲2.3.2如何使用后备缓冲器2.3.3保持干净2.4使用资源2.4.1图标2.4.2光标2.4.3菜单2.4.4为菜单添加具体功能2.5对话框2.5.1一个简单的对话框2.5.2一些更有用的知识2.6正确定时2.7总结第2篇遗传算法第3章遗传算法入门3.1鸟和蜜蜂3.2二进制数速成3.3计算机内的进化3.3.1什么是赌轮选择法3.3.2杂交率3.3.3变异率3.3.4.建议的学习方法3.4.帮助Bob回家3.4.1为染色体编码3.4.2Epoch(时代)方法3.4.3参数值选择3.4.4算子函数3.4.5运行寻路人程序3.4.6二进制数转换3个问题的答案3.5练习第4章置换码与巡回销售员问题4.1巡回销售员问题4.1.1小心陷阱4.1.2CmapTSP,Sgenome,CgaTSP4.2置换杂交操作4.3交换变异操作4.4选择一个适应性函数4.5选择4.6把一切组合在一起4.7总结4.8练习第5章遗传算法优化5.1TSP用的各种算子5.1.1各种置换变异算子5.1.2各种置换杂交算子5.2各种处理工具5.2.1选择技术5.2.2变比技术5.2.3其他杂交算子5.2.4子群技术5.3总结5.4练习第6章登月也不难6.1创建和处理矢量图形6.1.1顶点和顶点缓冲6.1.2顶点变换6.1.3矩阵6.2矢量6.2.1矢量加、减法6.2.2计算矢量大小6.2.3矢量的数乘6.2.4矢量的规范化6.2.5矢量分解6.2.6矢量的点积6.2.7SVector2D实用工具类6.3相关的物理知识6.3.1时间6.3.2长度6.3.3质量6.3.4力6.3.5运动一速度6.3.6运动一加速度6.3.7力、质量、加速度三者的关系6.3.8引力6.4人工控制的登月工程6.4.1Ccontroller类的定义6.4.2CLander类的定义6.4.3UpdateShip函数6.5遗传算法控制的登月飞船6.5.1为基因组编码6.5.2杂交和变异操作6.5.3适应性函数6.5.4更新函数6.5.5运行程序6.6总结6.7习题第3篇神经网络第7章神经网络概述7.1神经网络介绍7.2一个生物学的神经网络——大脑7.3数字版的神经网络7.3.1相关的数学知识7.3.2神经细胞的用途7.4扫雷机游戏7.4..1选择输出7.4.2选择输入7.4.3确定隐藏的神经细胞数目7.4.4CNeuralNet.h(神经网络类的头文件)7.4.5神经网络的编码7.4.6遗传算法7.4.7扫雷机类7.4.8CControllerClass(控制器类)7.4.9运行此程序7.4.10功能的两个改进7.5总结7.6练习第8章为机器人提供知觉8.1回避障碍物8.1.1探测环境8.1.2适应性函数8.2为机器人提供记忆器8.3总结8.4练习第9章有监督的训练方法9.1异或函数反向传播的工作原理9.2Recognizelt——鼠标手势的识别9.2.1用向量表示一个手势9.2.2训练网络9.2.3记录并变换鼠标数据9.2.4.增加新手势9.2.5控制器类9.3一些有用的技术和技巧9.3.1增加动量9.3.2过拟合9.3.3柔性最大激励函数9.4监督学习的应用9.5一个现代寓言9.6练习第10章实时演化10.1外星人游戏10.1.1程序实现10.1.2运行BrainyAliens程序10.2练习第11章演化神经网络的拓扑11.1竞争约定问题11.2直接编码11.2.1基因子11.2.2二进制矩阵编码11.2.3基于节点的编码11.2.4.基于路径的编码11.3间接编码11.3.1基于语法的编码11.3.2二维生长编码11.4拓扑扩张的神经演化11.4.1NEAT基因组11.4.2算子和创新11.4.3物种形成11.4.4Cga换时代方法11.4.5将基因组转变为表现型11.4.6运行Demo程序11.5总结11.6练习附录AWEB资源附录B参考书目及推荐读物附录C光盘中的内容后记
    ……
    序言 智能和入工智能. 本书介绍游戏编程中的人工智能,简称“游戏人工智能”。所谓人工智能,就是由人工建立的硬件或软件系统的智能,是无生命系统的智能。例如,一个机器人的智能,一个能与人下棋的软件的智能。智能是人类(大脑)智力活动的能力。它的表现形式非常广泛,例如,能利用各种知觉系统接受来自环境的各种信息,能形象思维,能逻辑推理,能理解事物之间的内在联系,能作归纳和推广来发现规律;能承认真理,能使自己适应环境,能主动学习,能根据以往经验改进提高自己,不至于犯同样的错误;能进行创新思维来从事各种创新等。智能是一个抽象的概念,一个软件或硬件系统是否有智能,只能根据它所表现出来的行为..
    文摘 迎阅读《游戏编程中的人工智能技术》。我想你会发现,这正是你所读到的有关游戏. 编程的最有用的图书之一。 Mat最先引起我的注意大概是在2000年的时候,那时,他开始在GameDev论坛(www.gamedev.net)发布各类关于游戏人工智能的帖子,并回答网友的各种相关问题。他很快就获得了大家的关注,在跟贴中也不乏赞扬与认同,尤其是在贴出他为公众消遣而制作的有关神经网络和遗传算法的两个教程之后。Mat发现游戏开发者需要获得AI技术方面的知识以期运用在游戏制作中,而他的两个教程以及在GameDev论坛里对提问的耐心答复无疑是满足这一需要的一个途径。我对能为这样一个专题的书写前言而感到荣幸,希望以后能..
  • 读书人网 >软件工程

    热点推荐