Stockfish

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Stockfish
開発元 Tord Romstad
Marco Costalba
Joona Kiiski[1]
初版 2008年11月2日 (2008-11-02)
最新版
16.1[2] / 2024年2月24日 (2024-02-24)[2]
リポジトリ ウィキデータを編集
プログラミング
言語
C++
対応OS Microsoft Windows
macOS
Linux
iOS
Android
種別 チェス・エンジン
ライセンス GNU GPLv3[1]
公式サイト www.stockfishchess.org
テンプレートを表示

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敗に終わった。

プラットフォーム[編集]

DroidFishはStockfishエンジンを搭載したAndroid用のチェスプログラムである。

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

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

脚注[編集]

  1. ^ a b c About”. stockfishchess.org. 2014年3月5日閲覧。
  2. ^ a b https://stockfishchess.org/blog/2024/stockfish-16-1/
  3. ^ CEGT Best Versions 40/20 (AMD 4200+)”. Chess Engines Grand Tournament (2014年6月29日). 2014年7月1日閲覧。
  4. ^ CCRL 40/40”. Computer Chess Rating Lists (2016年9月12日). 2016年9月12日閲覧。
  5. ^ IPON Rating List” (2014年6月6日). 2014年7月1日閲覧。
  6. ^ Kaufman, Larry (2013年11月24日). “Stockfish depth vs. others; challenge”. talkchess.com. 2014年3月8日閲覧。
  7. ^ Kislik, Erik (2014年6月6日). “IM Erik Kislik analyzes the TCEC Superfinal in-depth”. susanpolgar.blogspot.hu. 2014年6月7日閲覧。
  8. ^ Stockfish development versions”. abrok.eu. 2015年2月1日閲覧。
  9. ^ Costalba, Marco (2008年11月2日). “Stockfish 1.0”. talkchess.com. 2014年3月6日閲覧。
  10. ^ Romstad, Tord (2009年9月5日). “Re: Stockfish - Glaurung”. wbec-ridderkerk.forumotion.com. 2014年3月5日閲覧。
  11. ^ Costalba, Marco (2014年6月18日). “Step down”. groups.google.com. 2014年6月19日閲覧。
  12. ^ Linscott, Gary (2014年6月18日). “New official repository”. groups.google.com. 2014年6月19日閲覧。
  13. ^ nodchip. “Stockfish NNUE”. 2020年8月3日閲覧。
  14. ^ SF NNUE. Issue#2728 official-stockfish” (2020年6月27日). 2020年8月3日閲覧。
  15. ^ Canary-Reed (the_real_greco), Wilhelm. “Stockfish+NNUE, Strongest Chess Engine Ever, To Compete In CCCC” (英語). Chess.com. 2020年7月24日閲覧。
  16. ^ a b Joost VandeVondele (2020年7月25日). “official-stockfish / Stockfish, NNUE merge”. 2020年8月3日閲覧。
  17. ^ abrok.eu. “Stockfish NNUE Development Versions”. 2020年8月3日閲覧。
  18. ^ Stockfish 13”. Stockfish. 2021年2月22日閲覧。
  19. ^ Stockfish Testing Framework”. tests.stockfishchess.org. 2014年3月7日閲覧。
  20. ^ Get Involved”. stockfishchess.org. 2014年3月8日閲覧。
  21. ^ Costalba, Marco (2013年5月1日). “Fishtest Distributed Testing Framework”. talkchess.com. 2014年4月18日閲覧。
  22. ^ Stockfish Testing Framework - Users”. test.stockfishchess.org. 2018年6月14日閲覧。
  23. ^ CCRL Rating List”. 2015年4月24日閲覧。
  24. ^ a b TCEC Season Archive”. tcec.chessdom.com. 2015年1月9日閲覧。
  25. ^ Costalba, Marco (2014年5月31日). “Stockfish 5”. talkchess.com. 2014年6月19日閲覧。

参考文献[編集]

外部リンク[編集]