展会信息港展会大全

论文:计算机博弈之六子棋的主要技术分析 论文网
来源:互联网   发布日期:2011-09-16 10:47:57   浏览:5686次  

导读: 本文作者(刘雅靖),请您在阅读本文时尊重作者版权。 计算机博弈之六子棋的主要技术分析 摘要:该文主要介绍了六子棋博弈的四个主要部分:状态表示,走法生成,评估函数以及搜索算法,并分析了当前的主要技术及其优缺点。而且对搜索算法进行了一定的优化,为计...

本文作者(刘雅靖),请您在阅读本文时尊重作者版权。

计算机博弈之六子棋的主要技术分析

摘要:该文主要介绍了六子棋博弈的四个主要部分:状态表示,走法生成,评估函数以及搜索算法,并分析了当前的主要技术及其优缺点。而且对搜索算法进行了一定的优化,为计算机博弈研究提供了一定的参考。

关键词:计算机博弈;六子棋;数据结构;走法生成;搜索算法Main Technologies Analysis of Connect6 in Computer Game

LIU Ya-jing

(Dalian Jiaotong University, Software Colledge, Dalian 116021, China)

Abstrct: This article mainly introduced the four main parts of Connect6:state representation, move generation,evaluation function, searching algorithm, and analyzes the main teconology in current and their advantages and disadvantages. Also I optimized the searching algorithm, and provided a certain reference for the Computer Game.

Key words: computer game; connect6; data structure; move generation; searching algorithm

计算机博弈是智能性行为游戏,五六十年代,它一度是人工智能的带头领域,至今在人工智能界仍非常受重视。计算机博弈种类很多,像国际象棋,围棋,中国象棋等,研究相对成熟。而六子棋是2005年台湾交通大学资讯工程系的吴毅成教授提出的一系列K子棋中的一种。由于其特殊性,每次每方走两颗棋子,直观看,其状态空间复杂度及博弈树的复杂度会成倍提高,因此以六子棋作为研究平台,不仅能促进六子棋这项活动,而且能为计算机博弈技术带来新的发展。

六子棋( Connect6),规则是第一手黑方先下一颗子,第二手开始,双方轮流每次下两子,在横向,竖向,斜向先连成六子或六子以上为赢,若全部棋盘下完仍未分胜负,判和。

由于六子棋刚兴起不久,国内外研究相对较少,但是作为计算机博弈的一种,它与象棋围棋的研究有一定的相似处,因此它的主要技术要点也包括这些项:状态表示,走法生成,评估函数,博弈树搜索等,下面我就分析一下。

1 状态表示

我们在用计算机解决任何实际问题之前,必须要将具体问题表示成计算机能够处理的数据。在这里我们需要将六子棋的棋局状态,棋局的变化以及棋局局部特征低占用率高速度的表示出来。

下面有两种方法我们可以尝试来表示棋局状态:

1.1 矩阵表示法(又叫数组表示法)

六子棋棋盘通常为19×19,因此可以用二维数组Board[19][19]表示。当然也能用一维数组表示,占用空间361B。

1.2 比特棋盘表示法

在高性能的博弈程序里,比特棋盘 被广泛应用,在六子棋中,棋盘上每个交叉点用2个bit位来表示,即00为黑,01为白,10为空,11其他,每个横线上19个点共需38bit,用一个8B的长整型来表示,那19行就有19×8B,即152B,比数组表示法占的空间要小。

六子棋的局部特征表示方法也有很多种:

1.3 用字符串结构来表示特征

我们用”OO OO”来表示,其中“O”代表有棋,“ ”代表空位,采用字符串模式匹配算法来提取局部特征,这种方式很直观,但没有区分黑白棋,因此特征不明显,而且取一种特征需遍历整个棋盘,运行速率很低。

1.4 用一个状态数组来表示特征

我们以当前棋子位置为中心,分别向相反的方向定长扫描6个点,得到长度为13的状态数组,而每个数组元素有四个可能状态:黑,白,空或棋盘外,如图1。

这种方法棋型种类巨大,数据冗余严重,尽管简单直观。

1.5 一种新的6-8窗口法

经过对六子棋深入研究,有人提出6-8窗口法,如图2。

6窗口主要功能是提取棋型信息并判断是否同色, 8窗口主要功能用于辅助判断是否存在迫著点,取完一个棋型后,窗口向前移动,然后提取下一个,直到遍历完整个棋盘。该方法优点是遍历完一次可统计完一种棋型的数量,完成局面估值,而且棋型少很多。但是不够直观,代码编写也较困难。

所以一种好的状态表示方法对加快搜索效率非常重要。

2 走法生成

走法生成就是将所有可能的走法罗列出来,并告知下一步走哪。

走法生成过程中常伴随着搜索进行,因此好的走法生成,可以提高搜索效率。走法生成主要有这几种:棋盘扫描法,模板匹配法,预置表法以及这些方法的结合。

棋盘扫描法:就是在棋盘内反复搜索有效区域,制约条件以及落子状况,从而确定有哪些地方可以落子,这种方法时间开销巨大。

赞助本站

相关热词: 论文 计算机 博弈 技术分

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港