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