棋盘代码_国际象棋程序Stockfish NNUE设计简介(二)棋盘表示

df643eda230e78865d780fe46e8b41e2.png

棋盘表示,即将一个静态的棋盘状态信息量化为一个向量表示,也就是问题形式化的过程。机器学习中也称这个步骤为“特征工程”。这里仅介绍在Stockfish 12中使用的网络结构,也就是HalfKP_256X2_32_32。

NNUE的棋盘表示并未用到任何需要复杂计算的高级信息,仅使用了朴素的棋子与所在格子的组合枚举。作为NNUE估值网络的输入,每一个棋盘局面被表示成为一个41024 x 2 = 82048维的二进制向量。其中41024维是两个棋手中某一方的棋盘表示,而2指棋手双方。注意,这里的x2指的并不是简单的”白方、黑方“,而是指“己方、对方”。

己方与对方

那么什么是“己方“与“对方”,以及为什么要这样区分呢?这就要从Min-Max搜索本身性质说起。

经典Min-Max搜索规定了,在二人有限零和博弈中,一方为“极大” 方,另一方为“极小”方。极大方与极小方轮流相互调用:极大方对每个子节点先调用极小搜索,然后在返回的极小值中选最大的返回;极小方则相反。而估值函数只需返回一个[-1.0,+1.0]之间的概率,以指示当前局面对极大方还是极小方更有利(由符号决定:+表示极大方占优,反之则极小方占优),以及有利的程度(由绝对值决定,越大优势程度越高)。但是稍加观察你就会发现,极小方搜索时做的事情和极大方几乎完全一样,只有符号相反。于是就有了将两方统一起来的Nega-Max搜索。

int NegaMax(int depth) {
    
    if (depth == 0) return evaluate(side_to_move);
    int max = -inf;
    for (all_moves) {
    
        score = -NegaMax(depth - 1);
        if (score > max)
            max = score;
    }
    return max;
}

在Nega-Max搜索中,每一方都是极大方。在搜索每个节点时

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Stockfish11是一款世界著名的开源国际象棋引擎,是目前最强大的国际象棋计算机程序之一。通过Stockfish11,您可以在电脑上运行并享受高水平的国际象棋游戏体验。 要下载Stockfish11,您可以按照以下步骤进行操作: 1. 打开您的互联网浏览器,例如Google Chrome或Mozilla Firefox。 2. 在搜索引擎中输入“Stockfish11下载”并按下Enter键。 3. 浏览器会显示与Stockfish11相关的搜索结果,您可以选择访问其中一个可靠和安全的网站。 4. 点击您选择的下载链接,开始下载Stockfish11安装包。请确保选择与您的操作系统兼容的安装包。 5. 下载完成后,找到下载的安装包文件,并双击打开。 6. 根据安装程序的指示,选择安装Stockfish11的路径和选项。您可以选择默认设置或自定义设置。 7. 等待安装过程完成,这可能需要几分钟的时间。 8. 安装完成后,您可以在计算机上找到Stockfish11的图标或快捷方式。 9. 双击该图标或快捷方式,打开Stockfish11引擎。 10. 现在您已经成功下载和安装了Stockfish11,可以开始使用该引擎进行国际象棋对战或作为分析工具来改进您的下棋技巧。 通过简单的几个步骤,您可以轻松地下载和安装Stockfish11。不仅是国际象棋爱好者,即使是专业的国际象棋选手也可以利用这个强大的引擎来提高棋艺。希望这篇简短的指南对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值