游戲編程中的人工智能技術

出版時間:2006-5  出版社:清華大學出版社  作者:布克蘭德  頁數(shù):296  字數(shù):447000  譯者:吳祖增  
Tag標簽:無  

前言

  智能和入工智能. 本書介紹游戲編程中的人工智能,簡稱“游戲人工智能”。所謂人工智能,就是由人工建立的硬件或軟件系統(tǒng)的智能,是無生命系統(tǒng)的智能。例如,一個機器人的智能,一個能與人下棋的軟件的智能。智能是人類(大腦)智力活動的能力。它的表現(xiàn)形式非常廣泛,例如,能利用各種知覺系統(tǒng)接受來自環(huán)境的各種信息,能形象思維,能邏輯推理,能理解事物之間的內(nèi)在聯(lián)系,能作歸納和推廣來發(fā)現(xiàn)規(guī)律;能承認真理,能使自己適應環(huán)境,能主動學習,能根據(jù)以往經(jīng)驗改進提高自己,不至于犯同樣的錯誤;能進行創(chuàng)新思維來從事各種創(chuàng)新等。智能是一個抽象的概念,一個軟件或硬件系統(tǒng)是否有智能,只能根據(jù)它所表現(xiàn)出來的行為..

內(nèi)容概要

本書是人工智能游戲編程的一本指南性讀物,介紹在游戲開發(fā)中怎樣應用遺傳算法和人工神經(jīng)網(wǎng)絡來創(chuàng)建電腦游戲中所需要的人工智能。書中包含了許多實用例子,所有例子的完整源碼和可執(zhí)行程序都能在隨書附帶的光盤上找到。光盤中還有不少其他方面的游戲開發(fā)資料和一個賽車游戲演示軟件。    本書講解的原理通俗易懂,介紹程序詳細周到,很適用于游戲編程者自學之用,也可以作為游戲培訓教材使用(本書實際已被國內(nèi)外許多游戲培訓單位用作指定教材)。 對于任何希望了解遺傳算法和人工神經(jīng)網(wǎng)絡等人工智能技術的各行業(yè)人員,特別是要實際動手做應用開發(fā)的人員,都是一本值得一讀的好書。

作者簡介

  Mat Buckland在倫敦大學學完計算機科學后,做過多年的風險管理咨詢顧問。終于他開始厭倦了所有的金錢游戲和公司制度,就一把火燒掉了他原有的公司禮服,跑到一家為Gremlin software開發(fā)游戲的公司工作。雖然薪水少得多,但是卻很有趣,而且他可以每天穿牛仔褲去上班了!現(xiàn)在Mat同時是一個自由程序員和人工智能咨詢顧問。自從20世紀80年代初第一次接觸到這些技術,他就對進化計算和AI尤感興趣。他是ai-iunkie.com網(wǎng)站(www.ai-junkie.com)的作者,該網(wǎng)站提供一些有關進化算法的教程和建議。

書籍目錄

第1篇  Windows編程 第1章  Windows概述  1.1  歷史一瞥(A Little Bit of History)  1.2  Hello World!  1.3  第一個Windows程序 第2章  Windows編程進階  2.1  Windows圖形設備接口  2.2  文本  2.3  如何創(chuàng)建后備緩沖  2.4  使用資源  2.5  對話框  2.6  正確定時  2.7  總結第2篇  遺傳算法 第3章  遺傳算法入門  3.1  鳥和蜜蜂  3.2  二進制數(shù)速成  3.3  計算機內(nèi)的進化  3.4  幫助Bob回家  3.5  練習 第4章  置換碼與巡回銷售員問題  4.1  巡回銷售員問題  4.2  置換雜交操作  4.3  交換變異操作  4.4  選擇一個適應性函數(shù)  4.5  選擇  4.6  把一切組合在一起  4.7  總結  4.8  練習 第5章  遺傳算法優(yōu)化  5.1  TSP用的各種算子  5.2  各種處理工具  5.3  總結  5.4  練習 第6章  登月也不難  6.1  創(chuàng)建和處理矢量圖形  6.2  矢量  6.3  相關的物理知識  6.4  人工控制的登月工程  6.5  遺傳算法控制的登月飛船  6.6  總結  6.7  習題第3篇  神經(jīng)網(wǎng)絡 第7章  神經(jīng)網(wǎng)絡概述  7.1  神經(jīng)網(wǎng)絡介紹  7.2  一個生物學的神經(jīng)網(wǎng)絡——大腦  7.3  數(shù)字版的神經(jīng)網(wǎng)絡  7.4  掃雷機游戲	  7.5  總結  7.6  練習 第8章  為機器人提供知覺  8.1  回避障礙物  8.2  為機器人提供記憶器  8.3  總結  8.4  練習 第9章  有監(jiān)督的訓練方法  9.1  異或函數(shù)  反向傳播的工作原理  9.2  RecognizeIt——鼠標手勢的識別  9.3  一些有用的技術和技巧  9.4  監(jiān)督學習的應用  9.5  一個現(xiàn)代寓言  9.6  練習 第10章  實時演化  10.1  外星人游戲  10.2  練習 第11章  演化神經(jīng)網(wǎng)絡的拓撲  11.1  競爭約定問題  11.2  直接編碼  11.3  間接編碼  11.4  拓撲擴張的神經(jīng)演化  11.5  總結  11.6  練習 附錄A  WEB資源 附錄B  參考書目及推薦讀物 附錄C  光盤中的內(nèi)容  后記

章節(jié)摘錄

  迎閱讀《游戲編程中的人工智能技術》。我想你會發(fā)現(xiàn),這正是你所讀到的有關游戲. 編程的最有用的圖書之一。 Mat最先引起我的注意大概是在2000年的時候,那時,他開始在GameDev論壇(www.gamedev.net)發(fā)布各類關于游戲人工智能的帖子,并回答網(wǎng)友的各種相關問題。他很快就獲得了大家的關注,在跟貼中也不乏贊揚與認同,尤其是在貼出他為公眾消遣而制作的有關神經(jīng)網(wǎng)絡和遺傳算法的兩個教程之后。Mat發(fā)現(xiàn)游戲開發(fā)者需要獲得AI技術方面的知識以期運用在游戲制作中,而他的兩個教程以及在GameDev論壇里對提問的耐心答復無疑是滿足這一需要的一個途徑。我對能為這樣一個專題的書寫前言而感到榮幸,希望以后能..

媒體關注與評論

  引言  考慮一下有多少傻瓜能作微積分演算,要讓任何其他傻瓜去掌握看來是更困難或更繁瑣的微積分技巧就令人驚奇了?! ∮行┪⒎e分技巧是相當容易的,但有些則非常難。那些編寫了高等數(shù)學教課書的傻瓜——他們都是些最聰明的傻瓜——很少會勞神向你說明簡單的微積分有多么簡單。相反地,他們采用了最最艱難的方法來處理相關內(nèi)容,好像就是刻意要讓你牢記,他們那無比的  智慧?! ∮捎谖沂且粋€出名的傻家伙,我始終不學那些困難的技巧,我現(xiàn)在也要求為我的傻瓜讀者提供那些不難的部分。徹底地掌握這些以后,其余的也會隨之而來(follow)。我相信,一個傻瓜能干的,其他傻瓜也一定能干?! ilvanus P. Thompson,《簡易微積分》導言,1910年初版  家用電腦從Sinclair ZX80演變到現(xiàn)在已經(jīng)歷了很長的一段路程。硬件速度越來越快,而電腦組件的價格則越來越低。在短短幾年時間里,我們所看到的游戲的圖形質(zhì)量有了飛速的提高。不過,到目前為止,這幾乎就是游戲開發(fā)所有努力要解決的重點——提供更好的視覺享受,而在我們最喜愛的電腦對手的AI方面,卻改進甚微?! ∪欢瑫r代在改變。計算機的硬件現(xiàn)已到了這樣的轉(zhuǎn)折點,它已能為游戲開發(fā)者創(chuàng)建AI提供更多的時鐘周期。同時,游戲的玩家們的品位也愈來愈復雜。人們已經(jīng)不再希望在游戲中看到諸如Doom和Quake這些曾經(jīng)是最心愛的早期游戲中所看到的那種蠢笨怪獸了。他們也不希望再看到計算機控制的游戲角色在那里盲目地蹣跚著尋找根本不存在的路徑,不時地被卡在那些拐彎處,或是在沒有資源的地方開發(fā)礦藏,傻頭傻腦地撞在周圍的樹上。游戲玩家想要從游戲中獲得更多的樂趣。他們希望從電腦生成的對手(或盟友)那里看到合情合理的、有智能的行為?! 』谶@些原因,我堅定地認為,在未來的幾年里,AI技術將會大幅度起飛。像Black & White 和 Halo這樣的游戲已經(jīng)讓我們?yōu)槠銩I技術而傾心,游戲玩家們正期待更多的此類游戲。此外,基于AI技術和人造生命的全新游戲流派也在最近幾年里開始出現(xiàn),如Steve Grand的Creatures,這個游戲的銷售量超過100萬份的事實讓他本人和其他所有人都吃驚。但如果你認為這是很多了,那么你再看看由Electronic Arts 制作的Sims的銷售,到目前為止,Sims及其服務器軟件(add-on packs)的銷售已經(jīng)高達1300萬份!這是一個巨大的銷售收入,而同時也是一個重要指示:玩家對這類技術有多么濃厚的興趣。這個趨勢只可能繼續(xù)?! ?chuàng)造智能幻影(illusion)的技術有多種,本書主要探討兩個方面:遺傳算法和人工神經(jīng)網(wǎng)絡。這兩項技術討論的地方很多,它們無疑正是當前的熱點論題,但是被誤解的地方也相當多。就拿神經(jīng)系統(tǒng)網(wǎng)絡來說,經(jīng)常會發(fā)現(xiàn)游戲開發(fā)者誤認為神經(jīng)網(wǎng)絡是極其復雜的東西,因而會占用太多的處理器時間,導致游戲速度降低。或者相反,他們可能過度地追求神經(jīng)網(wǎng)絡的能力,企圖去創(chuàng)造一個有感覺的類似HAL的人工生命,其結果必然是以失敗而告終。我希望本書能幫助他們減少類似的曲解?! ∩厦嫖乙肧ilvanus Thompson所著的受到人們喝彩的《簡易微積分導言》中的那一段話可以成為本書的完美的開端(謝謝,Silvanus?。驗?,神經(jīng)網(wǎng)絡和遺傳算法和微積分一樣,對初學者來說,可能是非常難入門的,尤其對那些沒有接受過正規(guī)專業(yè)教育的人來說更是如此。而已有的所有此類著作都是由學院式專家為學院式讀者所寫,其中充斥著(非本專業(yè)人)看不習慣的數(shù)學公式和難于理解的術語。因此,我寫了一本是我剛開始對這些課題感興趣時所想要讀到的那種書:一本由傻瓜寫給傻瓜看的書。相信我,如果我剛開始涉足該領域時能夠得到這樣一本書,我就用不著為搞清那些學究們到底是在講什么而花那么多時間、受那么多挫折了!  經(jīng)過這些年,我已經(jīng)讀了有關這個課題方面的很多書和論文,它們幾乎都沒有能給出真實的例子,沒有東西可以讓你牢靠地掌握并對自己說“??!這就是我能拿來運用的東西!”。 比如,關于遺傳算法的書差不多總是向你提出這樣的問題:  最小化下面的函數(shù)  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  我的意思是說,這是一個完全可以用遺傳算法來解決的問題,但是上面的提法卻讓我們這些凡人實在難于理解其中的意義。除非你有一個很好的數(shù)學基礎,這樣的問題很可能會顯得過于抽象,會立即讓你感覺到不舒服,對繼續(xù)學下去也就沒有趣味。  但如果給你的問題是這樣:  請允許我向你介紹Bob。今天對Bob來說可不是什么好日子,他已深陷到一個迷宮中,而他的妻子正期待他能早點回家一起分享她花了整個下午制作的晚餐。我來告訴你如何使用遺傳算法幫助他找到迷宮出口,以挽救他的婚姻?! ∧愕拇竽X就有一個可以與之聯(lián)系的著落點(anchor point)。你也立即會對這樣的題目感到舒適。不僅如此,這也是一道有趣的題目。你一定很想知道我們怎樣來幫他呢?由此你就會打開書本,繼續(xù)學下去,在學習中感受到樂趣?! ∵@就是我在本書中用來闡明概念所使用的一種類型的題目。如果我的做法正確有效,如何把你的想法運用到你的游戲和項目里就會變得顯而易見。  對于我的讀者,我只作一個假設,那就是讀者了解如何編程。我不了解會有些什么樣的讀者,但是有時,當我買了一本書而發(fā)現(xiàn)其中僅有一部分我不了解,以至于必須去買另一本書來解釋第一本書里我所不懂的內(nèi)容,就會讓我感到失望。為了防止這樣的事情發(fā)生在讀者身上,我努力確保這本書能解釋代碼所說明的一切——從Windows GDI、矩陣和矢量數(shù)學的使用,直到物理學和2D圖像學。我知道事情通常都有其兩面性,很可能一些讀者已經(jīng)掌握了這些圖形學、物理學和GDI的相關知識,那么,你們可以跳過這部分而只閱讀那些你們更感興趣的部分?! ∽ⅲ簞?chuàng)建演示程序  演示程序是很容易編譯生成的。首先把你所需的源程序復制到你的硬盤里(譯注:因編譯一般需要用到其他的一些文件,你在復制源文件時,應把源程序所在文件夾中所有的文件整個地從光盤復制到硬盤)。如果你用微軟的Visual Studio來編譯,只要點擊工程的workspace文件(譯注:即以.ws為后綴的那個文件)就可以開始進行編譯并最后生成可執(zhí)行程序。如果使用其他的編譯器,你應該創(chuàng)建一個新的Win32 工程(確保winmm.lib在你的工程設置里),并在按編譯按鈕之前,先在工程文件夾里加上相關的源程序和資源文件。所有要做的就是這些。用不到添加額外的路徑、DirectX或OpenGL。  在所有的例子里,我盡量使代碼編寫得盡可能簡單。使用的是C++語言,但是我希望C語言程序員也能理解我的代碼。所以,出于這方面的考慮,我沒有使用C++所固有的諸如繼承、多態(tài)一類的東西(stuff)。我使用了很簡單的標準模板庫(standard Template Library,sTL)功能,但是在我引用sTL功能的地方,會在邊框里進行解釋。使用簡單代碼的一個出發(fā)點是不使我所要闡述的原理顯得晦澀。相信我,本書所涵蓋的有些內(nèi)容一開始并不容易掌握,所以我不想把因為在例子中使用了高級代碼而把事情弄得更復雜。我已盡我所能恪守老管理顧問的信條:K.I.S.S(Keep It Stupidly Simple),讓一切盡可能地簡單。  好了,不再羅嗦了,讓我們來開始冒險吧……

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    游戲編程中的人工智能技術 PDF格式下載


用戶評論 (總計19條)

 
 

  •   不單單是游戲編程書中涉及的遺傳算法等其實應用到很多方面了翻譯也是牛人讀者最好有點點STL基礎
  •   前面7章講解仿人工智能,后面8章講解正在發(fā)展中的人工智能的基礎概念
  •   人工智能的內(nèi)容不可能在一本書里全部詮釋,但是很好的入門書
  •   對于剛剛踏入此領域但有著豐富編程經(jīng)驗的工程師而言,這本書是屬于那種即可以迅速豐富對AI的認識,又不會感到學習的負擔的難得的好書。盡管此書的理論方面遠遠稱不上完整。對于希望不僅僅為了寫論文或應付考試的AI愛好者來講是值得一看的。尤其對于希望上手研究一下AI,并對設計編寫自己的AI躍躍欲試的家伙們,這是很好的選擇。里面的程序例子可以給人以相當直接的感受。
  •   好書總要收藏,到手發(fā)現(xiàn)書不是很厚,內(nèi)容易懂,對我這個新手很合適
  •   有理論講解
    有實例代碼
    通俗易懂
    很好。
  •   通俗易懂。正如作者引用的《簡易微積分》的導言:“由于我是一個出名的傻家伙,我始終不學那些困難的技巧,我現(xiàn)在也要求為我的傻瓜讀者提供那些不難的部分。徹底的掌握了這些以后,其余的也會隨之而來。我相信,一個傻瓜能干的,其他傻瓜也一定能干?!背壙岬膶а浴T娇丛娇?。
  •   重點是這本書給出了代碼......是一部應該仔細看的書.....他解決了很多紙上談兵的問題.....很好....值得一看.....
  •   寫的好,翻譯的也很好,寫的簡單易懂,由淺入深,值得品讀。
  •   這一系列的書都不怎么樣,首先翻譯就不行,錯字,語義不通,內(nèi)容冗長,有點不切實際..
  •   這本書講遺傳算法和神經(jīng)網(wǎng)絡,是難得的一本能看得懂的又講得深入的佳作。書中有大量的例子,并且有光盤上有源碼和例程,讀者通過理解代碼、執(zhí)行和調(diào)試代碼,會更加容易理解遺傳算法和神經(jīng)網(wǎng)絡。書本中先介紹遺傳算法,然后介紹神經(jīng)網(wǎng)絡,介紹神經(jīng)網(wǎng)絡的時候會結合遺傳算法的知識來介紹。嚴格來說,兩種算法并沒有特別聯(lián)系,但遺傳算法和神經(jīng)網(wǎng)絡一結合起來,威力無比。書中后面介紹的神經(jīng)網(wǎng)絡演化,是比較深的并且價值有很大的內(nèi)容。本書的其它一些說明:1.開始有章節(jié)介紹windows編程,顯得有點不必要,有點讓本書厚度增加之嫌疑。2.本書比較強調(diào)對代碼的理解,在代碼之前缺乏對整體原理的介紹,讀者需要慢慢品味代碼,才能抓得住主要意思。3.書本部分章節(jié)需要懂相應的數(shù)學和物理知識才能讀懂,書中會有相應的數(shù)學及物理知識介紹??傮w來說,本書知識含量大,遺傳算法和神經(jīng)網(wǎng)絡都是很復雜的很有價值的算法,盡管書中的表達已經(jīng)盡量顯淺了,但還是對讀者的要求比較高。
  •   這本書的語言好通俗哇,竟然都有高中的物理知識!連你我這樣的傻瓜都能看懂啊。介紹人工智能的前沿正是不可多得的好書!
  •   很高深,要好好研究的技術
  •   書不錯,能看的懂。就是送貨有點慢啊
  •   我們老師說不錯。。。。。外國人寫的就是好。。。。。
  •   有些基礎知識講的好
  •   很容易上手送貨好快
  •   寫的內(nèi)容不多,去掉前面的一半,后面的排版壓壓,估計也就100頁就可以搞定了。內(nèi)容寫的比較容易理解,還是可以的。我覺得可以寫的再實例話多點算法跟應用在游戲中的方法和例子更好點。有點貴
  •   基礎性讀物。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7