本書是為計算機博弈競賽愛好者而撰寫,主要介紹了計算機博弈的基本原理,介紹了計算機博弈程序開發(fā)中常用的算法,包括極大極小算法、α-β算法、期望搜索算法、UCT算法和Q學(xué)習(xí)算法等,并介紹了以α-β算法為基礎(chǔ)的一些常用的變種算法和提高搜索效率的方法。
本書以目前我國開展的中國大學(xué)生計算機博弈大賽暨中國錦標賽為基礎(chǔ),給出了包括亞馬遜棋、點格棋、橋牌等7個博弈游戲的算法與實現(xiàn)案例,涵蓋了完備信息和非完備信息兩大部分計算機博弈的內(nèi)容,每個案例各有特色,對不同博弈游戲的估值均有詳細介紹。
閱讀本書的讀者應(yīng)具有一定C或C++基礎(chǔ)。本書可以作為人工智能或智能計算等相關(guān)專業(yè)的教材,也可以作為計算機博弈愛好者的參考用書。
前言
第1章概述
1.1計算機博弈概述
1.2國際計算機博弈錦標賽
1.3中國大學(xué)生計算機博弈大賽暨
中國錦標賽
第2章計算機博弈基礎(chǔ)
2.1計算機博弈的基本原理
2.1.1基本原理
2.1.2計算機博弈的搜索方法
2.1.3遞歸
2.1.4回溯
2.2常用搜索算法與示例
2.2.1極大極小算法
2.2.2用極大極小法實現(xiàn)井字棋游戲
2.2.3α-β剪枝算法
2.2.4期望搜索算法
2.2.5迭代加深
2.2.6PVS算法
2.3估值函數(shù)的設(shè)計
2.3.1估值函數(shù)設(shè)計概述
2.3.2估值函數(shù)設(shè)計示例
2.3.3布局與估值
2.3.4估值函數(shù)的調(diào)整方法
2.4置換表
2.5UCT算法
2.5.1Monte Carlo算法
2.5.2Monte Carlo樹搜索
2.5.3UCT算法概述
2.6Q學(xué)習(xí)算法
2.6.1強化學(xué)習(xí)
2.6.2Q學(xué)習(xí)算法與示例
第3章亞馬遜棋的設(shè)計與實現(xiàn)
3.1簡介
3.2規(guī)則
3.3搜索算法
3.4估值函數(shù)設(shè)計
3.4.1領(lǐng)地的估值
3.4.2棋子靈活度的估值
3.5程序的設(shè)計與實現(xiàn)
3.5.1棋盤表示與數(shù)據(jù)處理
3.5.2估值函數(shù)中的Dji(a)的實現(xiàn)
3.5.3搜索算法的實現(xiàn)
3.5.4走法生成器的實現(xiàn)
第4章點格棋的設(shè)計與實現(xiàn)
4.1簡介
4.2規(guī)則
4.3點格棋的基本原理
4.3.1基本概念
4.3.2基本理論
4.4搜索算法
4.5估值函數(shù)設(shè)計
4.6程序的設(shè)計與實現(xiàn)
4.6.1基本結(jié)構(gòu)
4.6.2點格棋的數(shù)據(jù)表示
4.6.3估值模塊和搜索模塊的實現(xiàn)
第5章六子棋的設(shè)計與實現(xiàn)
5.1簡介
5.2規(guī)則
5.3估值分析
5.3.1以棋型為基礎(chǔ)的分析方法
5.3.2以“路”為基礎(chǔ)的分析方法
5.4估值函數(shù)設(shè)計
5.4.1基于棋型的估值函數(shù)設(shè)計
5.4.2基于“路”的估值函數(shù)設(shè)計
5.5程序的設(shè)計與實現(xiàn)
5.5.1軟件的基本結(jié)構(gòu)
5.5.2棋盤數(shù)據(jù)表示
5.5.3走法生成器
5.5.4開局庫的使用
5.5.5估值函數(shù)的實現(xiàn)
5.5.6搜索算法的實現(xiàn)
5.5.7走法生成器的實現(xiàn)
5.5.8置換表與哈希表
第6章蘇拉卡爾塔棋的設(shè)計與實現(xiàn)
6.1簡介
6.2規(guī)則
6.3算法分析
6.4估值函數(shù)設(shè)計
6.4.1棋子位置分析
6.4.2吃子路徑分析
6.4.3棋子的靈活度分析
6.4.4棋局估值
6.5程序的設(shè)計與實現(xiàn)
6.5.1軟件的基本結(jié)構(gòu)
6.5.2棋盤數(shù)據(jù)與棋盤位置價值
6.5.3走法生成模塊的實現(xiàn)
第7章西洋跳棋的設(shè)計與實現(xiàn)
7.1簡介
7.2規(guī)則
7.3估值分析
7.4程序的設(shè)計與實現(xiàn)
7.4.1程序的基本結(jié)構(gòu)
7.4.2棋盤數(shù)據(jù)表示
7.4.3走法生成模塊的實現(xiàn)
7.4.4估值函數(shù)的實現(xiàn)
7.4.5搜索算法的實現(xiàn)
第8章橋牌的設(shè)計與實現(xiàn)
8.1簡介
8.2規(guī)則
8.3橋牌博弈程序的關(guān)鍵技術(shù)
8.3.1抽樣的設(shè)計
8.3.2雙明手求解器
8.3.3優(yōu)化抽樣的算法實現(xiàn)
8.4程序的設(shè)計與實現(xiàn)
8.4.1橋牌博弈系統(tǒng)架構(gòu)
8.4.2博弈平臺的設(shè)計與實現(xiàn)
8.4.3AI引擎的設(shè)計與實現(xiàn)
目錄
第9章德州撲克的設(shè)計與實現(xiàn)
9.1簡介
9.2規(guī)則
9.3博弈樹的設(shè)計
9.4估值函數(shù)的設(shè)計
9.5專家系統(tǒng)和專家知識庫的
設(shè)計
9.6程序的設(shè)計與實現(xiàn)
9.6.1德州撲克博弈系統(tǒng)架構(gòu)
9.6.2搜索模塊
9.6.3估值模塊
附錄
附錄A中國大學(xué)生計算機博弈
大賽
暨中國錦標賽部分
項目規(guī)則
附錄B橋牌AI引擎的核心
部分源碼
參考文獻