Stockfish

Stockfishは、オープンソースのUCIチェスエンジンであり、様々なデスクトップならびにモバイルプラットフォームで利用可能である。Tord Romstad、Marco Costalba、Joona Kiiski、オープンソース開発者コミュニティーからの多くの貢献者によって開発された。Stockfishは、ほとんどのチェスエンジンのレーティングリストの第一位あるいは最上位近辺に一貫して位置しており、世界最強のオープンソースチェスエンジンである。Stockfishは2013年の非公式世界コンピュータチェス選手権で優勝し、2014年大会では準優勝した。

StockfishはRomstadによるオープンソースエンジンGlaurungに由来する。「Stockfish」は英語で「干し魚」の意味。

特徴 
Stockfishはマルチプロセッシングシステムにおいて最大512CPUを使用することができる。局面表の最大サイズは32 TBである。Stockfishは改良アルファ・ベータ探索を実装し、ビットボードを使用する。その他のエンジンと比較して、大きな探索深度（部分的にはより積極的な枝刈りとLate Move Reductionsによる）が特徴である。

Stockfishはチェス960に対応しており、これはGlaurungから受け継がれる特徴の一つである。またSyzygyテーブルベースへの対応は、以前はRonald de Manが保守するフォークでのみ利用可能だったが、2014年にStockfishに統合された。

歴史 
Stockfishは、Romstadによって作られ2004年に最初にリリースされたオープンソースチェスエンジンである「Glaurung」を起源とする。4年後、Costalbaはこのプロジェクトをフォークすることを決めた。「ノルウェーで産まれ、イタリアで調理された」（Costalbaはイタリア人で、Romstadはノルウェー人）ため、Costalbaはこのプログラムを「Stockfish」（干し魚）と命名した。最初のバージョンであるStockfish 1.0は2008年11月にリリースされた。しばらくの間、新たなアイデアとコードの変更が2つのプログラム間で双方向で行き来したが、その後、Romstadは当時より先進的なエンジンであったStockfishを支持して、Glaurungの開発中止を決断した。Glaurungの最終バージョン2.2は2008年12月にリリースされた。

2011年頃、RomstadはStockfishの関与を中止することを決断し、新たなiOS向けチェスアプリに注力することにした。

2014年6月18日、Marco Costalbaは「Stockfishの保守管理者を辞めることを決断した」と発表し、コミュニティーに現バージョンのフォークを作り、開発を継続して欲しいと呼び掛けた。Stockfishの中心的な開発者のボランティアグループによって管理される公式レポジトリがすぐに作られ、プロジェクトの開発が現在運営されている。

2018年、Stockfishの開発に参加していたプログラマーのGary Linscottは、Leela Zeroのチェス版としてAlphaZeroを適用したLeela Chess Zeroを開発した。

2020年6月、Stockfish NNUEと呼ばれるefficiently updatable neural network（NNUE）フォークが開発者らによって議論された。 2020年7月、チェスニュースでは、Stockfish NNUEが 「すでに信じられないほど強力なStockfishチェスエンジンにニューラルネットワークを組み込むことで、コンピュータチェスの新境地を切り開いた」と報じられた。StockfishへのNNUEのマージが発表されており、開発版ビルドが利用可能である。

2021年2月、StockfishへNNUEが導入された。

Fishtest 
2013年以来、Stockfishは Fishtest と名付けられた分散テスト枠組みを用いて開発されている。この枠組みではボランティアがプログラムの改良をテストするためにCPU時間を提供することができる。

ゲームプレイングコードの変更は、逐次確率比検定を用いて、この枠組み上での旧バージョンのプログラムとの数万局の対局の結果に基づいて受け入れるか拒絶されるかが決定される。この枠組み上でのテストはカイ二乗検定を用いて検証され、統計的に有意である場合に限り、テストが信頼できると判断される。

2018年6月現在、この枠組みは8億4千万回以上の対局を行うために、CPU時間を総計1200年以上使用している。Fishtestの開始後、Stockfishはわずか12カ月でイロレーティングにして120ポイントの爆発的成長を見せ、全ての主要なレーティングリスト入りした。

大会結果

TCECへの参加 
2013年、StockfishはTCECシーズン4および5で準優勝した。SupefinalではHoudini 3とKomodo 1142にどちらも23-25のスコアで敗れた。

2014年5月30日、Stockfish 170514（テーブルベースをサポートしたStockfish 5の開発バージョン）はSupefinalでKomodo 7xを35.5-28.5で破り優勝した。翌日、Stockfish 5がリリースされた。TCECシーズン7で、Stockfishは再びSupefinalに進出したが、Komodoに30.5-33.5のスコアで敗れた。

Stockfish対ナカムラ 
最高峰の人間のチェスプレーヤーと比べたStockfishの強さは、2014年8月に行われたグランドマスターのヒカル・ナカムラ（レーティング2798）とのハンディキャップ対局で最もはっきり見られた。最初の2局では、ナカムラはRybkaの古いバージョンの助けを得て、続く2局はナカムラは先手番でポーン落ちのハンデを与えられたがRybkaの支援は受けなかった。当時世界のチェスプレーヤーの上位5位に入っていたナカムラは、コンピュータの助けとハンデにもかかわらず、4試合で2分2敗に終わった。

プラットフォーム

リリースバージョンと開発バージョンはC++ソースコードとして、またMicrosoft Windows、macOS、Linux 32-bit/64-bit、Androidのためのコンパイル済みバージョンとして入手可能である。

Stockfishは様々なプラットフォームで非常に人気のあるエンジンである。デスクトップ上では、インターネットチェスクラブのインターフェースプログラムであるBlitzInおよびDasherとセットになっているデフォルトチェスエンジンである。携帯プラットフォーム上では、Stockfish app、SmallFish、Droidfishに同梱されている。チェス対局サイトであるLichessやChess.comにおける棋譜解析、AI対局にも採用されている。

脚注

参考文献 
Interview with Tord Romstad (Norway), Joona Kiiski (Finland) and Marco Costalba (Italy) Programmers of Stockfish

外部リンク 

Official code repository
Development versions compiled for Windows and Linux
Developers forum
Stockfish Testing Framework

コンピュータチェス
オープンソースソフトウェア
分散コンピューティングプロジェクト
2008年のソフトウェア