银行 社区服务 每日签到 会员排行 网站地图
  • 2233阅读
  • 2回复

国际象棋引擎教程Arena GUI

楼层直达
级别: 上尉
[棋中红钻2级]发帖数量≥100篇 [棋中黄钻1级]金币数量≥100枚 [未点亮棋中蓝钻]乐币数量<10枚 [棋中粉钻2级]贡献值数量≥5点 [棋中彩钻2级]精华帖数量≥2篇
发帖
369
金币
508
威望
2
贡献值
5
乐币
0
主题
92

TCEC,即Thoresen Chess Engine Competition,网址为tcec.chessdom.com,是目前世界上水平最高的引擎竞赛。FIDE举办的电脑国际象棋世锦赛(World Computer Chess Championship,WCCC)由于没有最强的几个引擎,所以低了一个级别(冠军Junior在TCEC拿第五,而且和前四名差得很远,但是WCCC允许使用任意的硬件,而TCEC采用指定的硬件)。
第七届TCEC采用如下基本规则:1、时间控制:120分钟,每步棋加30秒。2、硬件配置:统一使用主办方的服务器,配置为双路E5 2689,共16核心;64GB内存,128GBSSD3、引擎设置:所有参赛引擎必须符合UCI(Universal Chess Interface,是一个国际象棋引擎的协议,起到提供接口的作用,本身是命令行,无图形界面);所有引擎最多使用16线程,16GB Hash;禁止使用自带Opening Book(开局书),禁止使用EGTB(EndGame TableBase,残局库),禁止使用Permanent Brain,其他一切设置默认。4、胜负平的判定:由于UCI本身禁止引擎认输,所以人为加上了判定规则,称为TCEC Win / Draw Rule:一旦双方引擎连续4步显示Evaluation(局面价值)大于6.5(白方胜势)或小于-6.5(黑方胜势),则立刻判胜/负;一旦双方引擎连续4步显示Evaluation绝对值小于等于0.05,则立刻判和。此外,采用50回合规则及3次重复局面规则(引擎竞赛里一方被将死几乎是不可能的,由于Win Rule的存在)。
5、开局:除了第二阶段不使用指定的开局库外,其余阶段均从主办方给定的开局中随机选择1个。开局为双方各走8步棋,比赛从第九步棋开始,第二阶段比赛从第一步棋开始。在最后2个阶段(4强,决赛),同一个开局双方各执白/黑一次以保证公平。某个开局一旦被使用,则从开局库中删除。
将从GUI开始,简单地介绍如何使用国际象棋引擎。本文并不是让大家完全依靠引擎,而是如何有效地运用这些工具,更不是教大家如何作弊。现在的引擎已经非常强大,甚至连人类最顶级的棋手也无法战胜,不向它们学习,从逻辑上就说不过去。
本文大致将分为:2个GUI界面介绍、GUI的设置、4大UCI引擎的介绍和设置、EGTB、Opening Book
在某个局面下的棋盘如下:红色的格子表示弱格,绿色的格子表示强格,黄色是争夺格。 如果不喜欢,可以到Option〉〉Oberfl?che〉〉chessboard里面调整棋盘,也能调整其他设置。
show attack piece可以设置颜色,下面将介绍4大GUI引擎。
常常看到有人问,什么棋软最强?这是个很难回答的问题。第七届TCEC四强为Komodo 8开发版(以下简称K8)、Stockfish 5开发版(以下简称SF)、Houdini 4 Pro(以下简称H4)和Gull 3(以下简称G3)。K8开发版是K8修正后的一系列版本。普通人拿不到。因此,K8正式版是目前唯一能找到的版本。正版要价60刀。SF开发版是SF5修正后的一系列版本。在这里:http://abrok.eu/stockfish/  可以找到最新版的下载。版本分为64位,32位。如果你的CPU是酷睿i5、i7 4系列以上的,可以选择Haswell版。如果CPU是酷睿2以上版本,可以选择modern computers版本。否则请选择普通版。
SF是开源引擎,因此它是免费的。开发版几乎每周都有更新。最新的开发版已经支持Syzygy EGTB(后面会讲到)。H4是商业引擎,比较老了。价格为30刀。G3是开源引擎,在http://sourceforge.net/projects/gullchess/  可以找到。
这4个引擎非常强大,各自擅长的也有不同。K8走法细腻,适合局面分析。残局功力不错,败着少。SF走法中规中矩,既能猛烈进攻,防守功力也不错。但是最新的版本处理象兵残棋有问题,有的开发版偏保守,容易走重复局面。H4进攻凶狠,但由于版本太老,在封闭局面中有时会突然走出败着,特别是接近50步规则的时候。G3崇尚武士道,中局进攻疯狂,不成功便成仁,残局功力差。其实G3是非常有潜力的引擎,但是残局实在是太差,限制了发挥。比如典型的车兵、双车兵残棋,SF稍好于K8,H4就没那么强了,而G3很容易就莫名其妙地输了,建议大家使用K8和SF进行局面分析。
下面将介绍在Arena GUI下这4种引擎的安装和参数调整。
引擎安装和使用1、K8在Arena GUI的Engine> >Install New Engine...>>选择komodo-8-64bit.exe(32位系统选择32bit)。在出现的UCI or Winboard里面选择UCI,然后Start  the engine。这时,你在界面下方的对话框中可以看到这些:
在橘黄色区域右键单击,出现如下对话框:这里就是每个引擎自己的设置面板。
选择第一个:configure K8 64bit,出现如下面板:
左上角Ponder,前面已经提到,就是人机或者是引擎对战的时候自己会在后台不停地思考,即使轮到对方走。这个功能完全没必要开,把勾去掉。Book File:默认是komodo.bin。如果你买的正版的K8,会附送你ChessBase和一本开局书。因为是D版,所以把这项留空。Log File:记录日志,没用的东西。Clear Hash:清空Hash。Use Lmr:当LMR开启的时候,K8会忽略一些它认为不重要的着法,通常开启后实力大幅增强。Null Move Pruning:当开启时,K8会忽略一些它认为没用的随手,通常开启后实力大幅增强。Best Book Line:只在Book File为komodo.bin时有用,关闭。Minimal Reporting:开启了以后不会显示主线的后续着法,关闭。Table Memory:EGTB的内存使用量,可默认,也可设为最大值256。Move Overhead Miliseconds:当你的GUI很慢(Arena不存在这个问题),把这个调大,否则默认。Drawscore:内置的一种和棋局面判断权重。默认就好。Time Usage Aggressiveness:越正,引擎用时越长,否则就走得快些。默认就好。Use Syzygy:使用EGTB。把下载到的Syzygy的所有文件放在一个文件夹里,然后把路径放在SyzygyPath里。其他3个选项默认就可以了。
4、G3G3能使用的选项不多:
PV Hash:开起这项以后允许走前面提到的Hash Move。有利有弊。一般还是开着吧。Aspiration Window:一种局面搜索方法,是G3的主力搜索方法,必须打开,否则G3会变傻。Large Memory Pages:勾上以后G3可以使用超过1GB的Hash,否则默认为64MB的Hash。
EGTB介绍在观看TCEC的时候Gaviota引擎的作者说,10年前大家都在讨论要不要用EGTB,而现在没人讨论了。因为答案是显而易见的——必须使用。国际象棋到了残局,子力开放,且很多情况下差一个格子能达到相同的结果,而引擎还没那么智能,必须每个变化都仔细计算,耗费大量时间和内存。一旦有了EGTB,简化到给定棋子数时,查表可立刻判断胜负平。EGTB生成使用穷举法。用一个生成器计算所有局面,并记录下来。在7子EGTB的生成过程中,发现一些残棋优势方有Force Win,但在50步规则下是和棋。因此去年世界冠军赛规定,采用75步规则。目前有多种EGTB,最为流行的是Syzygy。它的压缩率最高,访问速度也相对快。5子大小为1GB,6子大小为100GB。装在SSD中,便可较好地使用6子残局表(机械硬盘寻道时间长,不适合6子)。开局书 Opening Book简要介绍第七届TCEC的第二阶段首次实验性地不采用开局书。结果几乎所有引擎在第一步上花费超过5分钟。比赛专用服务器速度为30000KN/S,5分钟意味着9*10^9个局面。而结果多数引擎走d4。只有少数引擎走法兰西,走西班牙和西西里的只有几盘。因此,为了增加开局变化,必须使用开局书。
开局书和EGTB形式很类似。不过一般开局书不仅存放了着法,也存放了出现概率和对局结果以供引擎选择。有专门的开局书竞赛,好的开局书和能给引擎带来超过200elo的提升。第七届TCEC决赛里面,黑方没有一局胜利,这是非常值得注意的。要知道,决赛使用的开局是比较激烈的,或者说是稍有利于白方,就导致黑方一盘未胜。有专门的开局书竞赛,但是获胜RpC并不适合普通局面分析,因为它的e4开局压倒性地多数。
在Arena里打开Book>>Manage后如下
载入已经解压好的开局书,勾选Use Arena main book 和Arena Motorenbucher verwenden。是为了和引擎的设置对应。可以看到开局库的大小,步数和深度。Move Selection子选项卡如下:
这里是调节开局书的中心。Minimal number of games表示引擎能够使用局面的最少对局数。比如设为5,则引擎不选择出现5次以下的着法。Minimal won games:这个表示引擎能使用局面中白棋获胜的次数。设为0,则引擎可选择完全平先或者对黑方有利的开局。Win Percentage White/Black:设为0,则引擎可选择完全平先的变化。否则将会选择分出胜负的局面。Use book up to halfmove:使用开局书到第X半步。比如设为15,则按照开局书(双方走7步且白方走第8步),黑方从第8步开始独立走棋。Probability set by...:这个选项框内调节局面优先级为了方便起见,先来看看开局库运行的样子
可以看到,Prio一栏显示了开局书中给定的某步棋的优先级。因此,设置优先级为5,则不会走g3,b3等开局。Number of games是一个权重,权重越高,越容易走出现概率最大的那步棋。比如设为最大,则只会走d4和e4。Win Percentage:这个不是指胜率,而是指得分率。0表示允许走对黑棋有利的着法,大于0则只走有利于白棋的着法。Zuge mit...允许存在优先级为0的着法。开局书当然可以不断导入,Import子选项卡如下:
允许导入PGN。比如在2700chess.com下载到了对局,然后用这个导入。Import to halfmove:不要超过原来的数值,但可以小于。Zugpriorit ten durch annotation steuern:允许导入评注符号 ,如好棋,坏棋,有疑问的着法等等。Import drawn games:导入和棋。基本是必勾的。




传统的象棋软件虽然强,但已经到天花板要靠各种开局残局库,对于某些局面是解不了的。深度学习的软件参考谷歌阿尔法GO和阿尔法monster,可以凭算法生成自己的棋库自我学习。这种在围棋上已经实现,如果哪个公司有谷歌这技术肯定能弄出个象棋软件一定横扫市面所有传统软件。但我发现目前这种软件仅仅靠民间训练,资金和技术差谷歌很多量级,难成大事


传统引擎没到天花板啊,融合神经网络审局,将棋引擎和国象鳕鱼的nnue,鳕鱼nnue刚出几个月就强过当时的鳕鱼11近一百elo
纯蒙特卡洛算法的话,国际象棋的lc0最强,早就超越了当时的Alphazero,不
过传统引擎参考神经网络后也强了一大截,到现在lc0依然被鳕鱼压了一头。比如tcec上个赛季超级决赛,88核176线程鳕鱼对4卡v100的lc0依然取胜


上赛季鳕鱼还没有nnue,这个赛季的鳕鱼12进步超强,估计又能夺冠,估计也是和lc0决赛。中象引擎都使劲“借鉴”鳕鱼呢


中象引擎差远了,没有什么好的开源的引擎。stockfish之所以强,就是因为开源,一大批人在贡献力量。
关键词: 穷bb
级别: 二级士官
[棋中红钻1级]发帖数量≥10篇 [未点亮棋中黄钻]金币数量<100枚 [未点亮棋中蓝钻]乐币数量<10枚 [未点亮棋中粉钻]贡献值数量<1点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
35
金币
14
威望
0
贡献值
0
乐币
0
主题
1
只看该作者 一楼  发表于: 2020-11-09
可惜不玩国际象棋~~~~~~~~~~~~~~~
级别: 中尉
[棋中红钻2级]发帖数量≥100篇 [未点亮棋中黄钻]金币数量<100枚 [未点亮棋中蓝钻]乐币数量<10枚 [棋中粉钻2级]贡献值数量≥5点 [未点亮棋中彩钻]精华帖数量<1篇
发帖
370
金币
13
威望
0
贡献值
9
乐币
0
主题
1
只看该作者 二楼  发表于: 2021-02-26
对国际象棋蛮有兴趣的,最近在学习
快速回复

限56 字节
请不要在回贴只采用字母:“ PP、asdfhjkl、HAO、OK、ddddddd ......”。  请不要在回贴过于简单的内容:“不错、顶、支持、厉害、呵呵、靠、晕........”
 
验证问题: 我们论坛是一个什么棋类为主的论坛?
上一个 下一个