Stockfish
開発元 |
Tord Romstad Marco Costalba Joona Kiiski[1] |
---|---|
初版 | 2008年11月2日 |
最新版 | |
リポジトリ | |
プログラミング 言語 | C++ |
対応OS |
Microsoft Windows macOS Linux iOS Android |
種別 | チェス・エンジン |
ライセンス | GNU GPLv3[1] |
公式サイト |
stockfishchess |
Stockfishは、オープンソースのUCIチェスエンジンであり、様々なデスクトップならびにモバイルプラットフォームで利用可能である。Tord Romstad、Marco Costalba、Joona Kiiski、オープンソース開発者コミュニティーからの多くの貢献者によって開発された。Stockfishは、ほとんどのチェスエンジンのレーティングリストの第一位あるいは最上位近辺に一貫して位置しており、世界最強のオープンソースチェスエンジンである[3][4][5]。Stockfishは2013年の非公式世界コンピュータチェス選手権で優勝し、2014年大会では準優勝した。
StockfishはRomstadによるオープンソースエンジンGlaurungに由来する。「Stockfish」は英語で「干し魚」の意味。
特徴
[編集]Stockfishはマルチプロセッシングシステムにおいて最大512CPUを使用することができる。局面表の最大サイズは32 TBである。Stockfishは改良アルファ・ベータ探索を実装し、ビットボードを使用する。その他のエンジンと比較して、大きな探索深度(部分的にはより積極的な枝刈りとLate Move Reductionsによる)が特徴である[6][7]。
Stockfishはチェス960に対応しており、これはGlaurungから受け継がれる特徴の一つである。またSyzygyテーブルベースへの対応は、以前はRonald de Manが保守するフォークでのみ利用可能だったが、2014年にStockfishに統合された[8]。
歴史
[編集]Stockfishは、Romstadによって作られ2004年に最初にリリースされたオープンソースチェスエンジンである「Glaurung」を起源とする。4年後、Costalbaはこのプロジェクトをフォークすることを決めた。「ノルウェーで産まれ、イタリアで調理された」(Costalbaはイタリア人で、Romstadはノルウェー人)ため、Costalbaはこのプログラムを「Stockfish」(干し魚)と命名した。最初のバージョンであるStockfish 1.0は2008年11月にリリースされた[1][9]。しばらくの間、新たなアイデアとコードの変更が2つのプログラム間で双方向で行き来したが、その後、Romstadは当時より先進的なエンジンであったStockfishを支持して、Glaurungの開発中止を決断した[10]。Glaurungの最終バージョン2.2は2008年12月にリリースされた。
2011年頃、RomstadはStockfishの関与を中止することを決断し、新たなiOS向けチェスアプリに注力することにした。
2014年6月18日、Marco Costalbaは「Stockfishの保守管理者を辞めることを決断した」と発表し、コミュニティーに現バージョンのフォークを作り、開発を継続して欲しいと呼び掛けた[11]。Stockfishの中心的な開発者のボランティアグループによって管理される公式レポジトリがすぐに作られ、プロジェクトの開発が現在運営されている[12]。
2018年、Stockfishの開発に参加していたプログラマーのGary Linscottは、Leela Zeroのチェス版としてAlphaZeroを適用したLeela Chess Zeroを開発した。
2020年6月、Stockfish NNUEと呼ばれるefficiently updatable neural network(NNUE)フォークが開発者らによって議論された[13][14]。 2020年7月、チェスニュースでは、Stockfish NNUEが 「すでに信じられないほど強力なStockfishチェスエンジンにニューラルネットワークを組み込むことで、コンピュータチェスの新境地を切り開いた」と報じられた[15]。StockfishへのNNUEのマージが発表されており、開発版ビルドが利用可能である[16][17]。
" @nodchipがメンテナンスしていたNNUEブランチが強い結果を示しており、大きな潜在性をもたらしていることから、マージを進めていきます ... このマージにより、機械学習ベースのコーディングをエンジンに導入し、開発者のコミュニティを拡大し、新たなスキルを持ち込むことになります。私たちは、すべての開発者や多様なハードウェアのユーザを含め、すべての人が参加できるコミュニティを目指しています...必要とされる正確なステップは、私たちが進むにつれて明らかになるでしょう!"—Joost VandeVondele、2020年7月25日[16]
2021年2月、StockfishへNNUEが導入された[18]。
Fishtest
[編集]2013年以来、Stockfishは Fishtest と名付けられた分散テスト枠組みを用いて開発されている。この枠組みではボランティアがプログラムの改良をテストするためにCPU時間を提供することができる[19][20][21]。
ゲームプレイングコードの変更は、逐次確率比検定を用いて、この枠組み上での旧バージョンのプログラムとの数万局の対局の結果に基づいて受け入れるか拒絶されるかが決定される。この枠組み上でのテストはカイ二乗検定を用いて検証され、統計的に有意である場合に限り、テストが信頼できると判断される。
2018年6月現在、この枠組みは8億4千万回以上の対局を行うために、CPU時間を総計1200年以上使用している[22]。Fishtestの開始後、Stockfishはわずか12カ月でイロレーティングにして120ポイントの爆発的成長を見せ、全ての主要なレーティングリスト入りした[23]。
大会結果
[編集]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で破り優勝した[24]。翌日、Stockfish 5がリリースされた[25]。TCECシーズン7で、Stockfishは再びSupefinalに進出したが、Komodoに30.5-33.5のスコアで敗れた[24]。
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対局にも採用されている。
脚注
[編集]- ^ a b c “About”. stockfishchess.org. 5 March 2014閲覧。
- ^ a b https://stockfishchess.org/blog/2024/stockfish-17/
- ^ “CEGT Best Versions 40/20 (AMD 4200+)”. Chess Engines Grand Tournament (29 June 2014). 1 July 2014閲覧。
- ^ “CCRL 40/40”. Computer Chess Rating Lists (12 September 2016). 12 September 2016閲覧。
- ^ “IPON Rating List” (6 June 2014). 1 July 2014閲覧。
- ^ Kaufman, Larry (24 November 2013). “Stockfish depth vs. others; challenge”. talkchess.com. 8 March 2014閲覧。
- ^ Kislik, Erik (6 June 2014). “IM Erik Kislik analyzes the TCEC Superfinal in-depth”. susanpolgar.blogspot.hu. 7 June 2014閲覧。
- ^ “Stockfish development versions”. abrok.eu. 1 February 2015閲覧。
- ^ Costalba, Marco (2 November 2008). “Stockfish 1.0”. talkchess.com. 6 March 2014閲覧。
- ^ Romstad, Tord (5 September 2009). “Re: Stockfish - Glaurung”. wbec-ridderkerk.forumotion.com. 5 March 2014閲覧。
- ^ Costalba, Marco (18 June 2014). “Step down”. groups.google.com. 19 June 2014閲覧。
- ^ Linscott, Gary (18 June 2014). “New official repository”. groups.google.com. 19 June 2014閲覧。
- ^ nodchip. “Stockfish NNUE”. August 3, 2020閲覧。
- ^ “SF NNUE. Issue#2728 official-stockfish” (June 27, 2020). August 3, 2020閲覧。
- ^ Canary-Reed (the_real_greco), Wilhelm. “Stockfish+NNUE, Strongest Chess Engine Ever, To Compete In CCCC” (英語). Chess.com. 2020年7月24日閲覧。
- ^ a b Joost VandeVondele (July 25, 2020). “official-stockfish / Stockfish, NNUE merge”. August 3, 2020閲覧。
- ^ abrok.eu. “Stockfish NNUE Development Versions”. August 3, 2020閲覧。
- ^ “Stockfish 13”. Stockfish. 2021年2月22日閲覧。
- ^ “Stockfish Testing Framework”. tests.stockfishchess.org. 7 March 2014閲覧。
- ^ “Get Involved”. stockfishchess.org. 8 March 2014閲覧。
- ^ Costalba, Marco (1 May 2013). “Fishtest Distributed Testing Framework”. talkchess.com. 18 April 2014閲覧。
- ^ “Stockfish Testing Framework - Users”. test.stockfishchess.org. 14 June 2018閲覧。
- ^ “CCRL Rating List”. 2015年4月24日閲覧。
- ^ a b “TCEC Season Archive”. tcec.chessdom.com. 9 January 2015閲覧。
- ^ Costalba, Marco (31 May 2014). “Stockfish 5”. talkchess.com. 19 June 2014閲覧。