牛角棋博弈程序分析与设计.ppt
《牛角棋博弈程序分析与设计.ppt》由会员分享,可在线阅读,更多相关《牛角棋博弈程序分析与设计.ppt(48页珍藏版)》请在优知文库上搜索。
1、牛角棋博弈程序分析与设计牛角棋博弈程序分析与设计 主要内容主要内容 民间棋类计算机博弈民间棋类计算机博弈 计算机该如何实现博弈过程的?计算机该如何实现博弈过程的? 如何存储思维信息?如何存储思维信息? 如何判断局面的胜负?如何判断局面的胜负? 如何展开博弈树?如何展开博弈树? 如何选择当前的着法?如何选择当前的着法? 从极大极小搜索到负极大值从极大极小搜索到负极大值Alpha-bete搜索搜索 计算机引擎程序的编写(计算机引擎程序的编写(C) 用用C+编写牛角棋程序编写牛角棋程序 算法优化算法优化民间棋类计算机博弈民间棋类计算机博弈 民间棋类的特点民间棋类的特点 规则简单,很容易入门;规则简单
2、,很容易入门; 不受专业知识限制;不受专业知识限制; 棋盘小,棋子少,复杂度不高;棋盘小,棋子少,复杂度不高; 输赢容易识别,局面容易判断;输赢容易识别,局面容易判断; 完全信息,编程相对简单;完全信息,编程相对简单; 人工智能的人工智能的“果蝇果蝇”。 麻雀虽小,五脏俱全麻雀虽小,五脏俱全 从一个实例出发从一个实例出发牛角棋牛角棋 最简单的机器博弈项目最简单的机器博弈项目机器博弈入门课机器博弈入门课牛角棋牛角棋 牛角棋广泛见于各地,别名较牛角棋广泛见于各地,别名较多,如多,如憋死牛憋死牛、憋死井憋死井、娃娃娃娃下山下山、娘子下山娘子下山等。等。棋盘形状及棋位数目也稍有差棋盘形状及棋位数目也稍
3、有差异。但是棋子、棋规都相同。异。但是棋子、棋规都相同。牛角棋棋规牛角棋棋规红子红子可上可下,可左可右,一可上可下,可左可右,一次一步,只能走向空位,不得次一步,只能走向空位,不得重合与跳跃;重合与跳跃;蓝子蓝子只上不下,可左可右,一只上不下,可左可右,一次一步,只能走向空位,不得次一步,只能走向空位,不得重合与跳跃;重合与跳跃;胜负判断胜负判断:憋死憋不死?:憋死憋不死?红先红胜红先红胜 (7步步)红先蓝胜红先蓝胜(18步步)为什么输赢?需要不断地摸索经验,试验所有的局面。为什么输赢?需要不断地摸索经验,试验所有的局面。博弈思维过程博弈思维过程展开博弈树展开博弈树红方走红方走棋棋红方走棋红方
4、走棋蓝方走棋蓝方走棋红方先手红方先手现在要考虑的就是现在要考虑的就是计算机该如何实现这个博弈过程?计算机该如何实现这个博弈过程? 如何存储思维信息?棋盘、棋子、棋局、博弈树如何存储思维信息?棋盘、棋子、棋局、博弈树 如何判断局面的胜负?如何判断局面的胜负? 如何展开博弈树?如何展开博弈树? 如何选择当前的着法?如何选择当前的着法?如何存储思维信息?如何存储思维信息? 编码编码 数据结构数据结构 棋盘编码(棋位编码)棋盘编码(棋位编码) 棋子编码棋子编码 初始局面的表示初始局面的表示 棋位向量棋位向量:(100000023) 棋子向量棋子向量:(089)2034567891棋局演化的形式化描述棋
5、局演化的形式化描述 状态变量状态变量 棋子向量表示棋子向量表示 初始状态初始状态 状态演化方程状态演化方程 其中其中 为棋子为棋子i 第第n+1步的着法(算子)步的着法(算子) 着法规则着法规则: 红子可上可下红子可上可下,可左可右,一次一步,只能走向空位,可左可右,一次一步,只能走向空位,不得重合与跳跃;不得重合与跳跃; 蓝子只上不下蓝子只上不下,可左可右,一次一步,只能走向空位,可左可右,一次一步,只能走向空位,不得重合与跳跃;不得重合与跳跃;),(321nnnnPPPS )9 , 8 , 0(0S)9 , 8 , 0(0SinnnqSS11inq1着法的形式化描述着法的形式化描述9 ,
6、02, 1:1111111iiiiPPPPq9 , 02, 1:2212212iiiiPPPPqevenPPPiii22218 , 219 , 02, 1:3313313iiiiPPPPqevenPPPiii33318 , 21通过扫描棋盘,如果通过扫描棋盘,如果“落址落址”为空位,便是合法着法(算子)。为空位,便是合法着法(算子)。2034567891如何判断局面的胜负?如何判断局面的胜负? 红胜红胜:“逃出逃出” 蓝胜:蓝胜:“憋死憋死” 和棋和棋 局面的无限次重复局面的无限次重复3121iiiiPPorPP) 1 , 2 , 0()2 , 1 , 0(),(321eeeePPPS2034
7、567891如何展开博弈树?如何展开博弈树?红方走棋红方走棋红方走红方走棋棋蓝方走蓝方走棋棋红方先手红方先手牛角棋搜索引擎程序设计牛角棋搜索引擎程序设计深度优先搜索深度优先搜索 选择深度优先搜索方法,可以在搜索过程中的任何时候选择深度优先搜索方法,可以在搜索过程中的任何时候仅仅仅生成(仅生成(Make move)整棵树的一小部分,搜索过的部分)整棵树的一小部分,搜索过的部分被立即删去(被立即删去(Unmake move)。)。显然,这个算法对内存的显然,这个算法对内存的要求极低,往往在内存只有几千字节的机器上也可以实现。要求极低,往往在内存只有几千字节的机器上也可以实现。并且同其他的选择相比,
8、速度上也并不逊色。并且同其他的选择相比,速度上也并不逊色。如何选择当前的着法?如何选择当前的着法?在展开的博弈树中搜索在展开的博弈树中搜索博弈搜索引擎博弈搜索引擎基本原则基本原则:考虑到对手的存在:考虑到对手的存在 我们想到的内容,对手也一样能想到我们想到的内容,对手也一样能想到 对手会阻止我们达到目的对手会阻止我们达到目的 而且,对手会想尽方法使其利益最大化而且,对手会想尽方法使其利益最大化如果是我方(如果是我方(红方红方)走棋,那总要找到博弈树中最好的棋局,而)走棋,那总要找到博弈树中最好的棋局,而在考虑对方(在考虑对方(蓝方蓝方)走棋时,就要考虑最坏的局面,因为)走棋时,就要考虑最坏的局
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 牛角 博弈 程序 分析 设计
