棋局数据挖掘:探索带pgn-extract的bishop对的优势

简介

在国际象棋中,有许多被广泛接受的结构和物质特征可以影响游戏的结果,因此要么是理想的,要么是最好的避免。最基本的是,拥有比对手更多的材料通常会传达出显著的优势,但当材料平衡时,还有许多其他适用的情况。例如:一个孤立的兵通常代表一个弱点,因为它必须有一个棋子来防守,而让你的车在第七排可能很难让你的对手防守。

尽管国际象棋选手的经验证实了这些被广泛接受的智慧,但试图寻找经验证据来支持它们并没有坏处。所以在这篇文章中,我将探索人们挖掘国际象棋游戏数据库的一种方法,以证明特定功能在实践中的影响。在这个过程中,我还将谈到在准备数据和解释结果时必须注意的问题。

先前的研究

人们普遍认为,拥有两个主教的玩家比拥有两个骑士或一个主教和一个骑士的对手更有优势,以前的研究试图通过检查游戏结果来量化这一点。我所知道的最早的研究是由GM Gennady Timoshschenko进行的[1]他研究了不同的主教和骑士组合的相对优势。我还没有找到这项研究的原始文本,但拉里·考夫曼在《当心主教对》中给出了一些细节[2].他在报告中写道,季莫申科查看了15万场比赛,在其中一场比赛中发现,两名主教以70%比30%的优势击败了两名骑士。考夫曼还报告说,在比较一个主教和一个骑士时,棋盘上的兵的数量会影响平衡,兵的数量越多,主教的机动性就越差。不幸的是,考夫曼没有提供所研究的游戏的性质(如玩家评级水平),物质平衡的识别方式,或特定部件组合的游戏数量的细节。

1995年,马克·斯图曼[3]使用超过35万款游戏的数据库扩展了最初的研究,并指出他只提供了至少100款游戏的结果。他发现最大的优势是BB vs NN的情况,但只有三个数据点:4,5或6兵。从他的图表来看,主教组合的胜率在66%到70%之间。然而,目前还不清楚抽签在计算百分比方面发挥了什么作用。

1999年,考夫曼进行了进一步的研究[4]并提供了他的方法的有用细节:从大约92.5万款游戏的数据库中筛选出了大约30万款游戏,其中只选择了FIDE评级至少为2300的游戏。他要求感兴趣的物质平衡至少持续6层,每个数据点的样本量至少为200。考夫曼感兴趣的是用物质条件来解释优势,而不是胜率。总的来说,他得出的结论是,主教对的平均价值是半个卒子,但他也细化了这一点,“当大多数或所有的卒子都在棋盘上时,主教对的价值不到半个卒子,当一半或更多的卒子都没有了时,主教对的价值超过了一半。”

准备数据

在这次探索中,我不会试图重现之前研究的所有结果,而只是两个主教对两个骑士的案例,其余的材料完全平衡。然而,这些原则可以很容易地应用于任何其他实质性的利益平衡,如B对N, BBN对BNN, Q对RR等。

对于我将要使用的数据处理pgn-extract[5]一个程序处理游戏在PGN符号。早在1994年,我就开始编写这个程序,只是为了我个人使用,但后来作为免费的开源软件发布了它,我仍然继续维护和扩展它的功能,以响应用户的请求。

对于游戏的源代码,我使用了免费的PGN源代码KingBase(截至2018年1月,2018年没有任何更新)。这些都是1990年以来得分在2000分以上的玩家玩的游戏——没有考夫曼的数据集那么高[4]但仍有一定的力量。

这个过程的第一阶段是清理数据。虽然数据集包含超过200万款游戏,但其中超过10万款是重复游戏。我用了- d(删除重复)选项的pgn-extract删除他们,大约195万。其中,只有100多只结果与移动结束时记录的结果冲突的标记。这是免费数据的一个常见特征。典型的例子是一方用将军获胜的游戏结果Tag记录了获胜选手的平局或输球!这些被纠正使用——fixresulttagspgn-extract选项。

下一阶段是在所有其他材料相同的情况下,分离出其中一名玩家拥有主教对和另一名玩家拥有骑士对的游戏。考夫曼[4]需要六层的材料稳定性,这是一个重要的考虑因素。如果一场游戏中BB vs NN只持续了很短的时间,那么它不太可能对游戏结果产生重大影响。为了比较这与数据集大小的差异,当稳定性为2层时,我们的195万游戏减少到3.9万,而稳定性为4层时减少到3.1万,稳定性为6层时减少到2.5万。由于要分析的数据集的大小存在如此大的差异,结果显然可能存在显著差异。

材料匹配- z) pgn-extract选项允许指定特定的材料组合以及稳定长度。例如:

:-z 6 b2n0q*r*p* b0n2q=r=p=

指定,对于6层的稳定性,一方必须有2个主教,0个骑士和任意数量的皇后,白嘴鸦和小兵,而对手必须有0个主教,2个骑士和完全相同数量的皇后,白嘴鸦和小兵。与- z选项此模式将同样适用于白和黑,匹配所有BB vs NN游戏,而不管玩家的颜色。然后,将这些混合游戏应用于第二阶段,将其分离为特定颜色的游戏可能是选项,该选项使用相同的材质模式语法,但将第一个模式应用于白色,将第二个模式应用于黑色。当黑棋有两个主教时,隔离游戏的模式是:

:-y 6 b0n2q*r*p* b2n0q=r=p=

分离的游戏被提取到两个文件bbnn.pgn(12744场)和nnbb.pgn(12369场)。然后将每个文件进一步分为White BB win, White BB loss, Black BB win等文件trpgn-extract选项只选择那些有特定结果的游戏。例如:

pgn-extract -Tr1-0 bbnn。pgn--output white-bb-win.pgn pgn-extract -Tr0-1 nnbb.pgn --output black-bb-win.pgn pgn-extract -Tr0-1 bbnn.pgn --output white-bb-loss.pgn etc.

这些赢/输/平局文件是下一节分析基本结果的基础。

基本结果

在2.5万场6层稳定的比赛中,赢:平:输的总比例为:0.45:0.28:0.27。显然,这证实了,平均而言,在其他条件相同的情况下,拥有两名主教比拥有两名骑士具有显著优势。

之前的研究也着眼于卒数对结果的影响。游戏可以通过为每一方指定明确数量的兵来进一步细分;例如:

:-y 6 b0n2q*r*p8 b2n0q=r=p=

只匹配那些黑棋有主教对的游戏,而棋盘上双方仍有8个兵。的bbnn.pgnnnbb.pgn分析文件中的0到8个棋子,并计算每个棋子的赢/平/输百分比。

下表结合了白棋和黑棋的结果,并显示了在考虑兵卒数量后,拥有主教对的一方的百分比。它只显示卒数至少100局的结果。

BB vs NN的百分比
棋子 赢得 损失 #游戏
8 0.416 0.311 0.274 2131
7 0.421 0.272 0.308 10061
6 0.461 0.280 0.259 10681
5 0.508 0.268 0.225 5178
4 0.522 0.303 0.175 1833
3. 0.510 0.355 0.135 602
2 0.455 0.497 0.049 143

在我们的数据集中,3兵、4兵和5兵的胜率差异相对较小,但损失率从7兵持续下降到2兵。与7兵相比,8兵的损失比例更低,这是一个有趣的异常现象,我们将在下一节中进一步讨论。

让我们更深入地看看结果

除了以类似的方式研究了更广泛的材料组合之外,这里引用的先前研究并没有真正超越这一基本分析水平。然而,在从表面上看上表中的百分比时,需要稍微注意一下。例如,请注意,表中记录的游戏数量实际上是30,629个,这比从原始数据集中分离出来的25,113个游戏要多。原因当然是,一对主教兴起的时候就有了N当棋盘上的棋子较少时,棋盘上的棋子很可能会保留,这种持久性是物质平衡的长期影响的一部分。这种不同数量的兵的重复说明了额外的5000个计数。

不太明显的是,当棋盘上每个棋子有6个时,一个主教对出现,并持续到有3个棋子时,当棋盘上每个棋子有5个和4个棋子时,每个主教对不一定对统计有贡献。原因在于材质匹配的稳定性约束。如果在游戏的5兵和4兵阶段,物质稳定性没有持续6层,那么游戏就不会因为这些兵的数量而被归类为BB vs NN,尽管这应该是为了统计分析的目的。开云体育网址

另一个要考虑的情况是,当主教对被识别时N每个兵卒都被交出,不再交换兵卒。对于所有的值N从第2到第7,大约有20%的游戏属于这一类别。这些比赛是否会影响BB对NN的胜率?这种影响几乎肯定取决于留存时间长短和游戏阶段。有趣的是,在8兵的情况下,损失仅占游戏的10%,这表明早期获得的主教对往往会保留更长时间,并对游戏结果产生更大的影响。这可能(至少在一定程度上)解释了上面提到的当一个主教对有8个兵时的异常损失率。不过,我还没有证实这一猜测。

总结

这篇文章强调了一些提取pgn的方法[5]可用于从大型国际象棋数据库中挖掘数据,以量化特定材料组合的影响。虽然我只关注主教对骑士对的单一情况,但这种方法广泛适用于其他情况。我还试图强调在准备数据和解释结果时必须注意的一些问题。

确认

2018年夏天,我指导了Joshua Cheah的硕士论文,他使用pgn-extract和他自己的程序探索了更广泛的物质平衡和位置特征,例如前哨站.虽然这里提出的具体分析是我自己的,但与约书亚一起工作是把这篇文章放在一起的动机,他追踪了以前的研究。

参考文献

  1. 蒂莫什琴科,根纳季,ICCA杂志,1993年12月。
  2. 考夫曼,拉里,棋子的相对价值,计算机国际象棋报告,4:2,第33-34页,1994。在线:http://www.chesscomputeruk.com/html/computer_chess_reports.html
  3. 斯图曼,马克,小心主教对,计算机象棋报告,5:2,58-59页,1995。在线:http://www.chesscomputeruk.com/html/computer_chess_reports.html
  4. 拉里·考夫曼,《物质失衡的评估》,《象棋生活》,1999年。在线:https://www.chess.com/article/view/the-evaluation-of-material-imbalances-by-im-larry-kaufman
  5. Barnes, David J., PGN -extract:国际象棋游戏的便携式游戏符号(PGN)操纵器,1994-2018。在线:https://www.cs.开云体育app客服kent.ac.uk/~djb/pgn-extract/

编程++:建立在以前的基础上

在学习编程时,最早的困难往往是生成有效代码的机制。这可能会让新手非常沮丧,因为编程语言翻译人员(编译器)在他们准备接受的东西上是坚定不移的,并将拒绝一切不符合他们要求的东西。但是,一旦掌握了这些语法基础知识,就可以创建以前从未有人编写过的令人兴奋的新程序。

程序员创建新程序的方法之一是注意别人过去写的东西。通过建立在别人已经写好的基础上,他们通常可以节省很多时间,从而将他们的创造性精力集中在他们自己特定程序中新颖的部分。作为一名教师,我很早就鼓励这种方法,例如,当我建议我的学生利用图书馆课程来存储数据集合时。虽然理解这些库类的工作方式当然很重要,但这并不意味着每次需要使用集合时都必须从头编写代码。关键是利用现有的东西,要么围绕它编写代码,要么调整它以适应您的需要。

最近,当我被要求向一个程序添加一些新功能时,我就应用了这个原则。过去20年里,我一直在断断续续地维护这个程序。这是一个用C语言编写的开源项目pgn-extract.它允许国际象棋玩家根据各种不同的标准搜索国际象棋游戏文件,如特定的玩家、开头、结尾等。该程序的一个用户(JS)问我是否有可能让它在游戏中寻找特定的棋盘位置。例如,寻找专家玩家在特定配置下如何玩出棘手的终局游戏的例子可能会很有趣。复杂的部分是JS不希望用户必须指定棋盘上每个棋子的确切位置。相反,他们只会对几件作品感兴趣,而其他的都不重要。

据我所知,还没有这样的东西存在,但这个任务让我想起了熟悉的计算机科学主题模式匹配.在这里,您需要寻找与模糊模式匹配的东西,而不是精确的东西,通常使用正则表达式符号。例如,使用模式"(cC)在*”匹配以“猫”或“猫”开头的单词,如“牛”和“捕手”。这种表示法在Unix命令的计算中很有名grep.虽然这种表示法通常用于匹配普通文本,但我认为它可能适用于匹配国际象棋棋盘——特别是如果棋盘可以用类似文本的形式表示的话。

我的出发点是一个很好的描述由Rob Pike编写的grep的实现(Brian Kernighan记录)。从文本上表示棋盘其实相当简单,国际象棋玩家经常这么做。例如P6r意思是:“白卒,六个空方格,然后一个黑车”。我修改了熟悉的grep符号,以更好地适应国际象棋上下文,以便能够区分黑白棋子,然后将其添加到我的程序中——当然,这承认了对Rob Pike的依赖!

令人高兴的是,最初的请求者JS对结果很满意,但随后他继续演示了我从未想到的新功能的一个很好的偶然使用。他给我发了一张前世界冠军米哈伊尔·塔尔(Mikhail Tal)盯着一个看不见的对手的照片。这张照片大家都知道了,但是Tal凶狠的眼神下的对手是谁呢?JS编码了在图片中可见的板的部分使用新的符号(*/*/*/*/???? b ? ? q / * / ? ? N ? ? P / R ? ?Q1BR1),让程序运行了米哈伊尔·塔尔玩过的所有游戏!结果就是1960年在莱比锡对阵尼古拉·帕德夫斯基的比赛。

编程不仅仅是关于编写正确代码的机制,它是关于采用和适应现有的想法来创建一些新的东西,有时是一些有趣的东西!

依靠技术

上周末我做了一件不寻常的事,参加了国际棋联候选人国际象棋锦标赛在伦敦,八名参赛者正在相互竞争,争夺与现任世界象棋冠军争夺冠军头衔的权利。尽管大约15年前我在写我的第一本编程教科书时放弃了严肃的竞争性国际象棋,但从我的青少年时代起,国际象棋就已经成为我生活的一部分,比计算机的时间长了几年。我的朋友兼同事胡里奥邀请我一起去的,虽然我对当代国际象棋场景相当不了解,但当我们晚上回家的路上在街上经过他时,他很容易就能指出坐在星巴克角落里的两位大师,或者是锦标赛最受欢迎的“第二个”。

虽然看别人下国际象棋被认为就像看着油漆变干一样有趣,但我必须承认,尽管我在一个几乎没有交谈的黑暗房间里度过了六个小时的大部分时间,但我发现这一天非常愉快!但从计算机科学家的角度来看,这一天也是发人深省的,因为我再次意识到,在我们生活的几乎每个领域,我们是多么依赖基于计算机的技术。

在我年轻、自信地下国际象棋的那些年里,我曾对拥有一台能下国际象棋的电脑感到好笑,并认为买一台是浪费钱。当时的技术非常简陋,功能也非常有限,普通的俱乐部玩家很容易就能从开局就获得更好的位置,然后通过超越程序有限视野的适时进攻,或者更好的战略打法赢得胜利。然而,正如每个人现在都知道的那样,自从“深蓝”击败加里·卡斯帕罗夫后,局势发生了逆转,如果可以的话,会笑的是那些程序!任何一个真心想成为优秀棋手的人,如果不在学习中使用计算机分析和竞赛来提高自己,那他就是傻瓜。

但这其中存在一个问题。这与在玩“谁想成为百万富翁?”,国际象棋界现在正在努力应对这样一个事实,即棋手们可能不会把电脑支持留在训练室,而是在比赛中带着它,在比赛中依靠它.我们担心观众中有人可能会接触到计算机分析,并能够将其传达给球员,我们在候选赛场的观众不允许携带任何电子设备进入比赛大厅,必须通过机场安检门,并被手持魔杖进行全身搜查。这相当于国际象棋世界的兴奋剂管制;有趣的是,不是参与者,而是观众!

对科技的依赖已经让人上瘾;这些电脑太强大了,不受限制地使用它们被认为是有害的。

幸运的是,在游戏厅里有被认为是无害的技术。为了帮助观众跟上比赛进度,每块棋盘上都有一个大屏幕,上面显示着当前的比赛状态,并显示出每位选手还剩多少时间。游戏板和棋子包含电子传感器,以保持最新的显示。此外,比赛赞助商之一三星公司提供的Galaxy平板电脑显示了同样的董事会信息,并提供了视频解说。

假设你不是在油漆干燥阵营-从一开始就很明显,事情将变得相当令人兴奋,因为四名玩家对他们的对手有巨大的时间优势,他们可能很难在两个小时内完成所需的40步。

最绝望的情况是瓦西里·伊凡丘克,他只有20秒的时间来完成15步!但就在这时,技术故障出现了,主板停止更新,我的Galaxy平板电脑也死机了。尽管反复重启,它还是没有给我视频反馈,我只能看到Ivanchuk驼背遮住了板子。

现在我是一个依赖技术的人,当它失败时,我彻底完蛋了。我还不如坐在黑暗中呢。

当然,这种技术让你失望的情况再熟悉不过了——你的手机电池没电了,你感觉完全被孤立了。然而,这两种情况都不是完全的灾难。失败在这里真的只是一种不便。

但是,当依赖科技对生命至关重要时——比如在医疗状况或飞行中——会发生什么呢?随着技术控制进入我们生活中越来越多的领域(汽车、电子钱包等),单纯的不便变得更加严重的可能性急剧增加。

当我坐在技术的黑暗中,看着伊凡丘克拔着眉毛试图找到自己的出路时,我想起了我们这些教授计算机科学的人的责任,我们需要向我们的学生灌输一种强烈的责任感,对那些有一天可能会依赖于他们编写的程序质量的人。