摘要4-5
ABSTRACT5-9
第一章 引言9-13
1.1 探讨背景及作用9
1.2 探讨情况9-10
1.3 关键技术10-13
1.3.1 Monte Carlo策略10
1.3.2 UCT算法10-13
第二章 基于UCT的围棋引擎的概述13-19
2.1 围棋引擎的总体概述13
2.2 围棋引擎的总体功能模块13-15
2.3 交替下子流程模块15-16
2.4 棋步产生(UCT)模块16-17
2.5 棋步合法性判断模块17
2.6 算气模块17-18
2.7 更新棋盘(提子)模块18
2.8 胜负计算模块18-19
第三章 基于UCT的围棋引擎的设计19-31
3.1 UCT算法和公式推导19-21
3.2 围棋引擎的流程设计21-29
3.2.1 围棋引擎总体流程设计21-22
3.2.2 UCT算法具体流程设计22-25
3.2.3 棋步合法性判断模块设计25-26
3.2.4 算气模块设计26-27
3.2.5 更新棋盘(提子)模块设计27-28
3.2.6 胜负计算模块设计28-29
3.3 逻辑判断准则29-31
3.3.1 棋局结束的判别条件29
3.3.2 UCT模拟的选择准则29-30
3.3.3 UCT终止的判别准则30
3.3.4 棋步合法性判断30-31
第四章 基于UCT的围棋引擎的实现31-50
4.1 软硬件开发环境31
4.2 围棋引擎的数据结构31-32
4.2.1 棋局数据31-32
4.2.2 UCT TREE数据32
4.3 围棋引擎的UCT算法实现32-47
4.3.1 UCT算法的核心实现32-35
4.3.2 候选步的产生方式及管理机制35-37
4.3.3 选择节点(UCT选择)37-38
4.3.4 展开节点38-40
4.3.5 棋局模拟40-47
4.4 围棋引擎运转效果47-50
4.4.1 围棋协议对弈测试47-48
4.4.2 调试方式的SGF文件48-49
4.4.3 UCT模拟棋局数据统计49-50
第五章 工作总结及未来展望50-53
5.1 工作总结50-52
5.2 未来展望52-53
致谢53-54