【国象AI】总结 + 参考资料

最后编辑于2018 / 6 / 4

总结以及一些参考资料

就这一年被催着写评估的情况总结一下……谢谢学长催我写代码并且帮我debug……

一开始是随便找资料看,然后这种情况下觉得比较好的资料是xqbase
因为是中文并且不用翻墙,写的比较详细。
然后参考着这个文章确定棋盘格式,确定棋子移动记录。mark
并且在这个基础上希望能够自己实现一个评估函数。mark

在这里用到的另一个参考是chessprogramming.wikispaces,他会比之前的全,但是是wiki的词条的形式如果刚开始看会比较晕,而且是英文,墙内网速很慢。

后来发现了Stockfish。一开始参考的是Fritz8,这之后学长发现Stockfish真的是吊打Fritz8。还不包括前者没有加入后台思考……
那个时候简直惊了。接下来就开始努力读Stockfish的代码,学长把已经完成大部分的搜索树整个结构都重写了。我觉得读这个代码的过程中对我的代码习惯都有很大的提高。
但是也有问题吧……就是最后评估基本都是模仿Stockfish的,并没有自己的创新。因为发现非常的难……而我投入的精力又远远不够(我甚至没怎么看过搜索树的代码……感谢学长的宽容orz)。
感觉计算机科学的很多方面似乎不像我们认为的那样在纷繁丛杂的现象之下蕴含着简单的规律,我们训练AI的工作也是重复于不断的赋值调参之中。此外一盘棋所占时间较长,而我们也很难直接的通过一两次的胜负来确定我们某次参数修改的合理性,也都增加了这个模块的难度。
此外,评估和棋盘表示关系非常的大,棋盘的结构(和对棋盘结构的理解)非常影响写评估的手感。而且对模板的数量应用可以减少很多的工作量。这点相比起来Stockfish就做的非常的优秀(结构真的非常的漂亮但是有的时候也会找不到要用的东西)。
最后的总结在这里mark

以及git库
https://github.com/Birdy-C/Chess_AI.git
不过建议还是看咸鱼吧……

提到的链接

www.xqbase.com/computer/outline.htm
这个网站有点早。比方说写完评估之后看到了它关于中局和残局用不同的评估值的想法,而这在stockfish中已经实现了。但是作为入门还是不错的。

https://chessprogramming.wikispaces.com/
很推荐这个网站,但是wikispaces好像马上要停用了不知道会以什么方式再出现。后面想试着稍微搬运一点东西过来(万一就这么没了呢……)。

其他

开局库

自己一开始做的时候以为也要自己构建开局库所以稍微整了一份(然后后来发现根本没有用上……)
https://blog.csdn.net/birdy_/article/details/77510872

开源引擎

https://stockfishchess.org/
然后关于Stockish的运行问题,他本身是不带GUI的。
所以附一个简单的运行说明。

Stockfish运行说明

你还得下个arena,作为GUI。
http://www.playwitharena.com/?Download

这里写图片描述
然后Engine-Install new engines,找到下载的stockfish文件。

其他开源引擎

转自 https://chessprogramming.wikispaces.com/Open%20Source%20Engines

Small and Easy

Just getting started? These engines are quite small, making them easy to understand.

FCP by Ian Osgood - a derivation of TSCP written in the Forth programming language
Micro-Max by Harm Geert Muller - just 100 lines of code with 34+ web pages of explanation!
p4wn by Douglas Bagnall - A smallish public domain chess engine.
pChess [1] by John Roland Penner - Original pedagogical engine written in FutureBasic with source code for Mac OSX
Pulse by Phokham Nonava - a didactic engine written in Java
SCP - Stanback Chess Program - base of GNU Chess 2-4
Sunfish by Thomas Dybdahl Ahle - a didactic engine written in Python
TSCP - Tom Kerrigan’s Simple Chess Program » TSCP - Tom Kerrigan’s Home Page

Middle tier

These are engines which are not necessarily strong, but they show implementation details of things like null move or transposition table :

CPW-Engine by Pawel Koziol and Edmund Moshammer
Faile by Adrien Regimbald (very clean search code)
Gerbil by Bruce Moreland
NG-play by George Georgopoulos - A small, open source engine (small memory usage), written in C
Vice - the Video Instructional Chess Engine by BlueFeverSoft, written in C

More advanced

More advanced? There are many stronger engines available which include the source. These include:

ChessV by Gregory Strong - plays over 50 chess variants as well as Orthodox Chess [2]
Crafty by Robert Hyatt
Daydreamer by Aaron Becker
Fruit by Fabien Letouzey
Glaurung by Tord Romstad [3]
GNU Chess
Scorpio by Daniel Shawul
Senpai by Fabien Letouzey
Stockfish by Tord Romstad, Marco Costalba, and Joona Kiiski

转载于:https://www.cnblogs.com/BirdCage/p/9974068.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值