最新围棋博弈与算法研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
围棋博弈与算法研究
围棋博弈与算法研究
摘要
下完一局棋应有无数种供选择的方案,加上每个棋手的兴趣爱好、棋风、当时的心情、状态的差异,我们称它为“千古无同局”,从古至今没有一个人下棋的手法是一模一样的,在此我们对其进行讨论并分析。
文中首先讨论了围棋的起源,比如最早的围棋程序是由.A Zobrist作为他模式识别专业博士论文的一部分提出的,之后JonRyder将Zobrist的程序进行了深入的研究,并得出了自己的见解。然后将定式问题对象化,将对于每一个定式的出现方式,进行统一的处理,展示出棋盘坐标系统及其映射的一种实现方案。接着分析次序问题,因为棋局中整个布局过程往往是在多个定式之间交错进行的,因此可以建立容易进行检索及匹配操作的行棋步骤表,得出行棋步骤表字符串化的一种实现方式。从效果上来讲,棋子的影响模型当然是越精确越好,因此建立精细计算的影响模型,从力学模型、度量公式和棋子双方势力范围分别对其进行分析,了解到利用每个点计算得到的四个方向的力及合力的大小和方向,我们可以粗略的表示双方的势力范围,力量对比,棋势强弱等信息。因为计算各点的影响值所需的时间成为搜索总用时的最主要影响因素,要想实现计算时间可以接受的完全搜索,必须采用更简洁的影响模型,因此建立快速计算时使用的影响模型,得出了影响值与空点级别的关系。最后建立了棋盘模型,设计方形棋盘使三线围成的边部与四线围成的中腹具有相同的地位或最小的差异,利用数学知识中的三线点与四线点目效率相近的原则,得出了围 的网点是最佳的。
棋棋盘选择1919
关键字:行棋步骤表定式问题对象化精细计算的影响模型棋盘模型
一、问题重述
围棋是中华民族远古的祖先们流传下来的一项宝贵文化遗产。纵向看,这项国宝历经了从春秋战国到唐宋元明清几千年的历史,有盛有衰,有褒有贬,源远流长。横向看,当中国的文化往外辐射传播时,作为有悠久历史的“琴、棋、书、画”也随之传向了海外。在艺术领域中,与它的姊妹艺术“琴、书、画”相比,棋文化受关注的程度要少很多,郑重其事作研究探讨的文献、文章所见也不多。时至今日,恰如许多中国文化的其他方面一样,知其然而不知其所以然。
因为下完一局棋应有无数种供选择的方案(这是一个天文数字),加上每个棋手的兴趣爱好、棋风、当时的心情、状态的差异,我们称之为“千古无同局”文中主要讨论什么是围棋算法?如何进行面向对象的改造,建立对象模型?请收集材料建立其相应的匹配算法。
二、问题分析
围棋是一项智力性很强的智力性活动,它的起源说法很多,比如最早的围棋程序是由.AZobrist作为他模式识别专业博士论文的一部分提出的,之后JonRyder将Zobrist的程序进行了深入的研究,得出了自己的见解。然后将整个定式问题看作一个对象,定义为CGoFormulary类,对于每一个定式的8种出现方式,我们进行统一的处理,展示出了棋盘坐标系统及其映射的一种实现方案。围棋定式的展开次序具有很大的不确定性,所以整个布局过程往往是在多个定式之间交错进行的,因此建立易于进行检索及匹配操作的行棋步骤表,然后得出行棋步骤表字符串化的一种实现方式。接着建立精细计算的影响模型,从力学模型、度量公式和棋子双方势力范围求得结果,同时建立快速计算时使用的影
响模型,得出影响值与空点级别的关系。最后建立了棋盘模型,设计方形棋盘使三线围成的边部与四线围成的中具有相同的地位或最小的差异,应用搜集到的材料和所学的数学知识,解决其问题。
三、模型假设
假设一:假设下棋时不受外界的影响。
假设二:假设有足够多的黑白子围棋。
假设三:假设下棋的两人能力一样。
假设四:假设棋盘足够大能够容纳足够多的棋子。
四、符号说明
A总控制力
B平衡度
F黑子的扳位
E白子的扳位
m空交叉点
n遍历棋子
FB占有强度
SFB形势评估函数
∆下了某子之后形势改变的度量
SFB
(),x y默认坐标系
()
,,
,x y各定式区坐标系
五、模型的建立与求解
5.1布局研究
人类棋手在选择布局走法时,通常会使用定式,定式是经过几千年经验积累所得出的合理布局走法,精通定式变化是人类棋手棋力进阶的必由之路,事实上在围棋程序领域,引入了定式库的程序也会在布局阶段具有明显优势。
因此,如何识别并选择定式,是布局阶段的核心问题。
5.1.1围棋起源阶段
最早的围棋程序是由.AZobrist作为他模式识别专业博士论文的一部分提出的。Zobrist引入了影响函数的方法将棋盘分为黑方和白方地域。
+,白子Zobrist的影响函数计算棋盘上每一个交叉点的数值,黑子取值50
取值50
-而空白点为0;正数效果的点要给其邻接点加1
+,同样负数效果的点给邻点加1
-,这样的算法递归执行4次,将棋盘最终数值化,如图:
1
3 2 2
2 4 6 4 2
2 4 8 10 8 4 2
1 2 6 10 62 10 6 2 1
2 4 8 10 8 4 2
2 4 6 4 2
2 2 2
1
图1.根据Zobrist影响模型,一个黑子对其周围辐射的影响
而JonRyder的程序是Zobrist研究的深入,这也是他的博士论文内容。
像Zobrist一样,Ryder也使用了一个影响函数,用来将每个棋子对其周围产生的影响进行量化。他的影响函数与Zobrist的类似,也是黑方取正数,白方取负数,某点影响的取值由其邻点的影响传播累加形成。Ryder的影响函数较Zobrist的简单,传播系数是固定的。
1
1 2 5 2 1
1 6 13 6 1
1 5 13 60 13 5 1
1 6 13 6 1
1 2 5 2 1
图2.根据Ryder影响模型,一个黑子对其周围辐射的影响Ryder定义了两个术语:联络和强关联。某点对于某方联络,对于有子点而言,是指该点上是该方的非死子;对于空白点而言,是指该点至少有一个该方邻子且没有对方邻子。完全联络的一个延伸定义为半联络,指一个空白点至少有两个某方邻子及至少一个对方邻子,有三种情况被认为是强关联的。某点由某方子占据或与某方子连接,某点与某方子对角线连接且共有至少一个空白点,尖以及某两子之间只间隔一个空白点,棋块就是由一组联络或半联络的点组成的。
影响函数与联络度相结合来确定棋势。对于一组联络的点,如果其影响函数的值不小于程序预定义的一个阈值,则组成棋势。
5.1.2定式问题对象化
基本目标:将整个定式问题看作一个对象,并定义为CGoFormulary类,很显然,该类必然应具备的功能是:给定一个局血,根据定式知识,返回下一步应手,这