智能五子棋博弈算法研究
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果某一点导致失败 , 则分值为 F A I L E D , 由于它足够小 , 所以无论任何棋型与它的组合都小于 0 , S K I P之 所 以给 它 2 0分 , 是 为 了避 免 电脑 出现 无 棋可 下 的情 况 , L E N G是 有 可能 发 生长 连 的点 , 这 有 可 能
导致禁手 , W O T 、 T H R E E 、 F O U R 、 WI N观名知意 , T F O U R和 S F O U R分别是弱四和强四。强四的点 比普通 的冲四重要的多 , 比如一个活 四, 意味着 即将判 出胜负。 弱四是为了提供更大的灵活 。 也许有某种冲四并
的, 比如对 于五 子棋 的 中盘 走法 中 , 如 果要 预测 四步 的局 面数 的话 可 以达 到 1 0 0万种可 能 的计 算 次数 。
本文拟对五子棋算法的设计原理和实现方法进行探讨 和研究 , 主要包括数据结构 、 搜索算法和优劣 评价函数组成 , 主要的特点包括快速的数据结构设计实现以及高效率的搜索算法和尽可能的模拟人类的 智能 。
五子棋起源于中国古代的传统黑 白棋种之一。 现代五子棋 日文称之为“ 连珠” , 英译为“ R e n - j u ” , 英文 称之 为 “ G o b a n g ” 或“ F I R ” ( F ’ i v e i n a R o w的缩 写) , 亦有“ 连 五子 ” 、 “ 五 子连 ” 、 “ 串珠 ” 、 “ 五 目” 、 “ 五 目碰 ” 、 “ 五 格” 等 多种称谓 。与其 他棋 类 相 比 , 五子 棋 每一层 搜索 节 点数 量 庞大 , 因此 , 盘 面预测 的计 算 量 是非 常 大
下 面列 出基 本 的棋 型优先顺 序 :
造一个二 < ……< 造四个二 < 冲三 < ……<冲两个二和一个三 <冲双三 <冲四 <冲四三。 之所 以这么设置是由于五子棋 的下法所致 , 只要构成 5 颗一线就赢了, 所 以说一条线上构成 的子越
多那么就越有优势 , 当然就是棋数越多 , 分越多。 那么为了让电脑明确地知道应该如何落子, 就给它一个标准 : 分值。用程序语言表示为 :
第 l 9卷第 2 期 2 0 1 3年 4 月
江 苏 技 术 师 范 学 院 学 报
J OURNAL OF J I ANGS U T EACHE RS UNI VERS I TY OF TECHNOL0GY
Vo 1 . 1 9 , N o . 2 Ap r . , 2 0 1 3
1 棋 局 的 数 据 结构 表 示
五子棋的走法中有优先和禁手 , 如连四肯定是没有三四优先 , 而如果是黑方 出现三三( 包括 “ 四、 三、 三” ) 、 四四( 包括“ 四、 四、 三” ) , 而黑方只能 以四三取胜, 如果黑方走出禁手则是输 ; 五连与禁手 同时形成 , 先五为胜 , 等规则。但是电脑毕竟不是人类, 可以类人但是却不可以自己思考 , 那么就需要给电脑一个它 可 以明 白的评 判标 准 。
移动的位置 , 称为 M I N节点“ 尊 弈树的顶节点深度为 0 ) 。 k 层包括深度为 2 和2 k + l 的节点。通常用层数
表示博弈树的搜索深度。他可以表示出向前预测的 M A X和 M I N交替运动 的回合数 。 用整个棋盘估值的函数 ^ ) 为静态估值 函数 。 设想 当前棋局 5为轮到计算机方下棋( 用方框表示) , 任 选一空点作为计算机方的下棋位置( 可有若干种选择) , 接着考虑在此情况下游戏者一方下棋的棋局( 用圆 圈表示) ; 从某一个圆圈棋局出发 , 任选一空点作为游戏者一方 的落子处( 又有若干种选择) 。依此类推 , 这 样可形成一棵以 s为根结点的博弈树 , 该树 以圆圈棋局为第 2 层子结点 , 以方框棋局为第 3 层子结点等 。 如果继续向前搜索 , 可形成多层子结点 , 现在以向前搜索 3 层子结点为例来说 明极大极小值的过程。 对第
收 稿 日期 : 2 0 1 2 — 1 1 — 0 4 ; 修 回 日期 : 2 0 1 3 — 0 4 — 2 0 作者简介 : 王云霞( 1 9 8 1 一 ) , 女, 江苏常州人 , 讲师, 研究方 向为人工智能技术。
第 2期
王云霞 : 智能五子棋博弈算法研究
6 3
e n u m V a l u e { F A I L E D = 一 9 9 9 9 9 , S K I P = 2 0 , L E N G = 1 0 , T WO= 1 0 0 , T HR E E= 1 0 wenku.baidu.com 0 , I F O U R= 1 0 0 0 0 , F O U R= 5 0 0 0 0 , S F O U R = 7 0 0 0 0 , WI N = 1 0 0 0 0 0 l ;
统, 实现人和计算机两方进行博弈 。 关键词 : 五子 棋;人工智能 ; 搜索 中图分类号 : T P 3 8 7 文献标识码 : A 文章编号 : 1 6 7 4 — 8 5 2 2 ( 2 0 1 3 ) 0 2 - 0 0 6 2 - 0 5
0 引 言
人工智能是一门综合性很强的边缘科学 , 它研究如何使计算机去做那些过去只能靠人的智力才能做 的工作。而博弈是人工智能研究的一个重要分支 , 它不仅存在于游戏 、 下棋之 中, 也存在于政治 、 经济 、 军 事和生物竞争中。
智能五子棋博弈算法研究
王 云 霞
2 1 3 0 0 1 )
( 江苏技术师范学院 计算机工程学院, 江苏 常州
摘 要: 人工智能是一 门正 在迅 速发展的新兴 的综合性很强 的边 缘科 学。博弈是人工智能 的主要研究领域 之
一
,
他涉及人工智能 中的推理技 术、 搜索方法和决策规划。将这些技术用于五子棋中 , 设计 了一个智能五子棋系
不一 定 比冲三重 要 , 在 这 里并 没有 使用 , 以后 可 以扩 充 。
2 五 子棋 算法介绍及初 步实现
2 . 1 五子棋博弈树中的极大极小搜索和 o c —B剪枝 为 了使谈论更有条理性【 l 】 , 将博弈 的双方分别命名为 M A X和 M I N 。而搜索 的任务是为 M A X找最佳 的移动 。 假设 M A X先移动( 此时暂时不考虑五子棋的禁手等规则) , 然后 2 个博弈者轮流移动。 因此 , 深度 为偶数 的节点 , 对应于 M A X下一步移动 的位置 , 称为 M A X节点 ; 深度为奇数的节点对应于 M I N下一步