摘要 | 第5-6页 |
Abstract | 第6-7页 |
目录 | 第8-11页 |
插图索引 | 第11-12页 |
附表索引 | 第12-13页 |
第1章 绪论 | 第13-20页 |
1.1 研究背景 | 第13-15页 |
1.2 国内外研究现状 | 第15-18页 |
1.3 研究内容与论文结构 | 第18-20页 |
1.3.1 本文的主要工作 | 第18页 |
1.3.2 本文的组织结构 | 第18-20页 |
第2章 博弈树搜索算法及其优化措施 | 第20-38页 |
2.1 博弈树 | 第20-21页 |
2.2 博弈树搜索算法与优化措施 | 第21-36页 |
2.2.1 极小极大值算法与负极大值算法 | 第21-22页 |
2.2.1.1 极小极大值算法 | 第21-22页 |
2.2.1.2 负极大值算法 | 第22页 |
2.2.2 α-β搜索/剪枝算法 | 第22-25页 |
2.2.3 极小树 | 第25-26页 |
2.2.4 置换表 | 第26-30页 |
2.2.5 启发式搜索策略 | 第30-32页 |
2.2.5.1 吃子启发 | 第30-31页 |
2.2.5.2 置换表启发 | 第31页 |
2.2.5.3 历史启发 | 第31-32页 |
2.2.5.4 杀手启发 | 第32页 |
2.2.5.5 各种启发策略的组合与顺序 | 第32页 |
2.2.6 PVS 算法 | 第32-34页 |
2.2.7 空着裁剪 | 第34-35页 |
2.2.8 MTD(f)算法 | 第35-36页 |
2.3 并行搜索策略 | 第36-37页 |
2.3.1 Tree Splitting 并行策略 | 第36页 |
2.3.2 PVSplitting 并行策略 | 第36-37页 |
2.3.3 DTS 并行策略 | 第37页 |
2.4 小结 | 第37-38页 |
第3章 OpenMP 并行模型介绍 | 第38-46页 |
3.1 OpenMP 并行编程标准 | 第38-40页 |
3.1.1 OpenMP 简介 | 第38页 |
3.1.2 OpenMP 并行执行模式 | 第38-40页 |
3.2 OpenMP 编程模型 | 第40-42页 |
3.2.1 OpenMP 的编译指导指令 | 第40-41页 |
3.2.2 OpenMP 的库函数 | 第41-42页 |
3.2.3 OpenMP 的环境变量 | 第42页 |
3.3 OpenMP 编程的关键问题 | 第42-44页 |
3.3.1 任务分解与循环并行化问题 | 第42-43页 |
3.3.2 线程过少或过多问题 | 第43页 |
3.3.3 数据竞争与锁操作问题 | 第43页 |
3.3.4 线程调度问题 | 第43-44页 |
3.3.5 伪共享问题 | 第44页 |
3.4 多核并行算法的性能评价 | 第44-45页 |
3.4.1 加速比 | 第44页 |
3.4.2 并行效率 | 第44-45页 |
3.4.3 可扩展性 | 第45页 |
3.5 小结 | 第45-46页 |
第4章 混合 PVS 算法及在 OpenMP 下的并行化 | 第46-73页 |
4.1 一种混合 PVS 算法 | 第46-54页 |
4.1.1 PVS 算法框架 | 第46-49页 |
4.1.2 置换表的设计 | 第49-51页 |
4.1.3 空着裁剪的设计 | 第51页 |
4.1.4 启发策略的设计 | 第51-53页 |
4.1.5 串行混合 PVS 算法描述 | 第53-54页 |
4.2 混合 PVS 算法的 OpenMP 并行化设计 | 第54-64页 |
4.2.1 基于 PVSplitting 的任务分解 | 第55-57页 |
4.2.2 线程数量的设置 | 第57页 |
4.2.3 数据分解与临界区的处理 | 第57-58页 |
4.2.4 调度策略 | 第58-59页 |
4.2.5 解决伪共享问题 | 第59页 |
4.2.6 并行混合 PVS 算法的描述 | 第59-64页 |
4.3 并行混合 PVS 算法的实验结果与分析 | 第64-72页 |
4.3.1 各种搜索策略比较的实验结果 | 第64-66页 |
4.3.2 并行混合 PVS 算法的实验结果 | 第66-70页 |
4.3.3 实验分析 | 第70-72页 |
4.4 小结 | 第72-73页 |
第5章 多核环境下中国象棋博弈程序设计 | 第73-95页 |
5.1 数据结构设计 | 第73-78页 |
5.1.1 棋子和棋盘的表示 | 第73-75页 |
5.1.2 类的设计与类图 | 第75-78页 |
5.2 着法生成模块设计 | 第78-80页 |
5.3 博弈树搜索模块设计 | 第80-81页 |
5.3.1 并行混合 PVS 算法的应用 | 第80页 |
5.3.2 搜索延伸 | 第80-81页 |
5.4 局面估值模块设计 | 第81-93页 |
5.4.1 静态估值函数 | 第82-87页 |
5.4.2 用遗传算法优化估值函数 | 第87-90页 |
5.4.3 遗传算法在 OpenMP 下的并行化 | 第90-92页 |
5.4.4 优化实验结果 | 第92-93页 |
5.5 界面与运行结果 | 第93-94页 |
5.6 小结 | 第94-95页 |
结论 | 第95-98页 |
参考文献 | 第98-101页 |
附录 A 攻读学位期间发表的学术论文 | 第101-102页 |
附录 B 攻读学位期间参与的科研项目 | 第102-103页 |
致谢 | 第103页 |