Stockfish，是一個自由及開放原始碼軟體，可用於各種桌面和移動平臺。可透過在國際象棋軟體中使用。 Stockfish 持續在大多數國際象棋引擎排名中排在首位或接近首位。截至 2022 年 10 月，Stockfish 是世界上最強大的 CPU 象棋引擎。它共計贏得了 13 次以及 Chesscom 計算機象棋錦標賽 19 次。 Stockfish 由 Marco Costalba、Joona Kiiski、Gary Linscott、Tord Romstad、Stéphane Nicolet、Stefan Geschwentner 和 Joost VandeVondele 開發，此外開源社群開發者也作出了許多貢獻。它從 2004 年釋出的 Tord Romstad 開發的開源象棋引擎 Glaurung 派生而來。 特性 在多處理器系統中，Stockfish 可以使用至多 1024 個執行緒。它的的大小可達 32TB。Stockfish 透過實現了高階的 Alphabeta 剪枝。部分上由於進行了更激進的剪枝以及，與其它象棋引擎相比，Stockfish 可以進行更深的搜尋。，Stockfish 15 4 執行緒 在 CCRL 4015 評測中達到了 3540 的等級分。 由於其從 Glaurung 派生而來，Stockfish 支援 Chess960。曾在羅納德德曼維護的分叉中實現的 Syzygy 於 2014 年被併入 Stockfish 中。在 7 個棋子的 Syzygy 殘局資料庫釋出之後不久，Stockfish 於 2018 年增加了對其的支援。 Stockfish 在很多平臺上受歡迎。在桌面端，它是介面程式 BlitzIn 和 Dasher 預設的象棋引擎。在移動端，它是 Stockfish、SmallFish 和 DroidFish 等 APP 內建的象棋引擎。其它相容 Stockfish 的圖形使用者介面包括、Arena、Stockfish for Mac 以及 PyChessUsing the Stockfish Engine Stockfish SupportChessEngines PyChess Github。Stockfish 可以被編譯為 WebAssembly 或 JavaScript，從而在瀏覽器中執行。在伺服器端程式以外，Chesscom 和都以這種形式支援 Stockfish。Stockfish 的正式版本和開發版本均以在 Windows、macOS、Linux32 位 64 位和 Android 上的編譯版本和 C 原始碼的形式釋出。 歷史 Stockfish 起源於 Romstad 編寫並於 2004 年首次釋出的開源國際象棋引擎 Glaurung。四年之後，Costalba 受這一強大的開源引擎啟發，決定分叉此專案。他將其命名為 Stockfish 的原因是它 於挪威生產而於義大利被烹飪（Romstad 是挪威人，而 Costalba 是義大利人）。首個版本 Stockfish 10 於 2008 年 11 月釋出。有一陣子，新想法與程式碼變更在兩個程式之間雙向流動，直到 Romstad 考慮到 Stockfish 在當時更加先進而決定不再開發 Glaurung。Glaurung 的最終版本（22）於 2008 年 12 月釋出。 約於 2011 年，Romstad 決定不再參與 Stockfish 的開發以專注於開發他的新的 iOS 國際象棋應用。2014 年 6 月 18 日，Marco Costalba 宣佈他已經 決定不再維護 Stockfish 並讓開源社群建立其當前版本的分叉並繼續開發它。不久之後，一個由 Stockfish 的核心開發者組成的志願者團隊建立了一個官方程式碼庫並管理此專案至今。 Fishtest 自 2013 年以來，Stockfish 的開發運用了名為 Fishtest 的分散式測試框架，志願者可以捐贈 CPU 時間以測試對程式的改進。 對博弈演算法的修改會應用分析在 Fishtest 框架上與該程式的 對照 版本對弈數萬局的結果而被接受或拒絕。在框架上的測試會以卡方檢驗驗證，僅當結果在統計意義上顯著時才會被認為是可靠的並用於修改軟體程式碼。 Fishtest 出現後，Stockfish 的等級分在僅僅 12 個月內增加了 120，使其在所有主流象棋引擎排名中上升到頂部 。在 Stockfish 7 中，作為對 Fishtest 的作者 Gary Linscott 對 Stockfish 的棋力的貢獻的承認，他的名字被加入到正式的作者名單中。 ，Fishtest 框架總共用 9850 多年的 CPU 時間下了 57 億多局象棋。 可高效更新神經網路 2020 年 6 月，Stockfish 的開發者討論了一個由程式設計師編寫的名為 Stockfish NNUE 的可高效更新神經網路分叉。2020 年 7 月，國際象棋新聞報導說 Stockfish NNUE 透過將神經網路加入本就十分強大的 Stockfish 象棋引擎裡，在計算機象棋中開闢了新天地。之後，開發者宣佈將會把 NNUE 合併入 Stockfish 中併發布了開發版。 2020 年 9 月 2 日，實現了前述神經網路的 Stockfish 第 12 版釋出。根據發行公告，這一新版本 棋力明顯比它之前的任何一個版本更強，與第 11 版對弈時平均每贏 10 個回合才會輸掉 1 個回合。 比賽結果 最強象棋引擎錦標賽 主條目： Stockfish 曾多次獲得最強象棋引擎錦標賽（TCEC）冠軍，目前是獲得冠軍次數最多的。自 TCEC 於 2013 年重啟以來，Stockfish 僅在一個賽季中未能取得前兩名。在 TCEC 第 4 和第 5 賽季，Stockfish 均獲得第二名，其在總決賽中均以 2325 的成績先後負於和。值得注意的是，在第 5 賽季中，Komodo 的原作者在賽事的最後階段因病去世，因此獲勝的 Komodo 開發團隊是在他死後代他領獎的。為了紀念他，在賽季結束後不久釋出的 Stockfish 版本以 Stockfish DD 命名。 2014 年 5 月 30 日，Stockfish 170514（一個支援殘局資料庫的 Stockfish 5 開發版）在總決賽中以 355285 的比分擊敗了 Komodo 7x，從而決定性地贏得了 TCEC 第 6 季。Stockfish 5 的正式版於次日釋出。在 TCEC 第 7 季中，Stockfish 又一次晉級總決賽，但以 305335 的比分輸給了 Komodo。在 TCEC 第 8 季中，儘管程式碼缺陷使其損失了比賽時間，Stockfish 也再一次晉級總決賽，但在 100 個回合的總決賽中以 465535 的比分輸給了 Komodo。在第 9 季中，Stockfish 以 545455 的比分擊敗了 Houdini 5。 在 TCEC 第 10 季中，Stockfish 獲得第三名，是 2013 年以來其未能晉級總決賽的唯一賽季。Stockfish 沒有輸掉任何比賽，但仍然因為未能擊敗評級更低的引擎足夠多次而被淘汰。Stockfish 在這一程式性淘汰後的很長一段時間不斷獲勝，其贏得了第 11 季（以 5941 比分擊敗 Houdini 603）、第 12 季（以 6040 的比分擊敗 Komodo 1211）和第 13 季（以 5545 的比分擊敗 Komodo 215500）。在 TCEC 第 14 季中，Stockfish 面對新的競爭對手，以相差一局的比分（505495）險勝。它的連續獲勝終於在 TCEC 第 15 季中結束，因為 Leela 再次晉級總決賽並以 535465 的比分擊敗了 Stockfish，但不久之後，Leela 在 TCEC 第 16 季中未能晉級總決賽，而 Stockfish 以 545455 的比分擊敗了 AllieStein。在 TCEC 第 17 季中，Stockfish 再次於總決賽對戰 Leela，以 475525 的比分落敗。然而，在接下來的四次總決賽中，Stockfish 均決定性地擊敗了 Leela，比分分別為 535465（第 18 季）、545455（第 19 季）、5347（第 20 季）和 5644（第 21 季）。 Stockfish 也參加了 TCEC 杯的比賽。它贏得了第一次盃賽，但在第二次盃賽的半決賽出人意料地被 Houdini 擊敗。在三四名決賽中，Stockfish 棋力有所恢復，擊敗了 Komodo。在第三次盃賽中，Stockfish 晉級了決賽，但在 7 枚棋子的和局中失誤後被擊敗。在第四次盃賽中，Stockfish 逆轉了這一結局，在決賽中以 4535 的比分擊敗了 Leela。 錦標賽 賽季 年份 時間限制 排名 參考 1 2010 10010 第 3 名 2 2011 15030 第 5 名 4 2013 15060 第 2 名 5 2013 12030 第 2 名 6 2014 12030 第 1 名 7 2014 12030 第 2 名 8 2015 18030 第 2 名 9 2016 18015 第 1 名 10 2017 9010 第 2 名 11 2018 12015 第 1 名 12 2018 12015 第 1 名 13 2018 12015 第 1 名 14 2018 12015 第 1 名 15 2019 12010 第 2 名 16 2019 12010 第 1 名 17 2020 905 第 2 名 18 2020 9010 第 1 名 19 2020 12010 第 1 名 20 2020 12010 第 1 名 21 2021 12010 第 1 名 22 2022 12012 第 1 名 23 2022 12012 第 1 名 盃賽 場次 年份 時間限制 排名 參考 1 2018 3010 第 1 名 2 2019 305 第 2 名 3 2019 305 第 2 名 4 2019 305 第 1 名 5 2020 305 第 1 名 6 2020 305 第 3 名 7 2020 305 第 1 名 8 2021 305 第 1 名 9 2021 305 第 1 名 10 2022 303 第 1 名 菲舍爾任意制象棋（FRC） 場次 年份 時間限制 排名 參考 1 2019 305 第 1 名 2 2020 305 第 1 名 3 2021 305 第 2 名 4 2022 305 第 1 名 5 2022 303 第 1 名 瑞士制 場次 年份 時間限制 排名 參考 1 2021 457 第 2 名 2 2021 457 第 2 名 3 2022 4545 第 1 名 雙重菲舍爾任意制象棋（DFRC） 場次 年份 時間限制 排名 參考 1 2022 303 第 1 名 Chesscom 計算機國際象棋錦標賽 自從 Chesscom 於 2018 年首次舉辦（CCC）以來，Stockfish 是該比賽中最成功的引擎。它在早期比賽中佔有優勢，在前六次錦標賽中均取得勝利，而在第七次錦標賽中獲得第二名。自此以來，它的支配地位受到了基於神經網路的象棋引擎 Leelenstein 和的挑戰，但它仍然表現良好，在 CCC11 之前的每次比賽都能晉級總決賽。CCC12 改用了淘汰賽制，抽籤時 Stockfish 和 Leela 被分到了半決賽的同一組。Leela 在半決賽中將 Stockfish 淘汰。然而，在賽後相同形式的比賽中，Stockfish 戰勝了決賽的輸家 Leelenstein。 主賽事 場次 年份 時間限制 排名 參考 CCC 1：快速打群架 2018 155 第 1 名 CCC 2：閃電戰 2018 52 第 1 名 CCC 3：快速重現 2019 305 第 1 名 CCC 4：子彈喧鬧 2019 12 第 1 名 CCC 5：升級 2019 105 第 1 名 CCC 6：冬季經典 2019 1010 第 1 名 CCC 7：快速發達 2019 52 第 2 名 CCC 8：深潛 2019 155 第 1 名 CCC 9：嚴酷考驗 2019 52 105 第 1 名 CCC 10：兩位數 2019 103 第 2 名 CCC 11 2019 305 第 2 名 CCC 12：子彈瘋狂！ 2020 11 第 3 名 CCC 13：七邊形 2020 55 第 2 名 CCC 14 2020 155 52 11 第 4 名 CCC 閃電戰 2020 2020 55 第 1 名 CCC 速戰 2021 2021 153 第 1 名 CCC 閃電戰 2021 2021 55 第 1 名 CCC Chess960 閃電戰 2021 55 第 1 名 CCC 16：速戰 2021 153 第 1 名 CCC 16：子彈 2021 21 第 1 名 CCC 16：閃電戰 2022 55 第 1 名 CCC 17：速戰 2022 153 第 1 名 CCC 17：子彈 2022 21 第 1 名 CCC 17：閃電戰 2022 55 第 1 名 CCC 18：速戰 2022 153 第 1 名 CCC 19：閃電戰 2022 55 第 1 名 CCC 19：速戰 2022 153 第 1 名 Bonus Event Year Time Controls Result Ref CPU Blitz Madness 2020 32 1st TrillionNode Throwdown III 2020 1505 1st NoCastle II 2020 52 1st Bullet Chess is Fun 2020 21 1st Checkmate in 4 2020 32 1st Odds Ladder 2020 32 1st Merry Queen Sac 2020 21 1st Budapest Bullet 2020 21 2nd King Gambit Madness 2021 55 1st Drawkiller Update Party 2021 21 1st To Castle Or Not To Castle II 2021 32 1st Eco MegaMatch 2 part 1 2021 11 1st Eco MegaMatch 2 part 2 2021 11 1st CaroKann Special 2021 52 1st Kings Indian Defense Special 2021 102 2nd Dutch Defense Special 2021 102 1st Evans Gambit Madness 2021 102 2nd Sicilian Najdorf Special 2021 102 1st Belgian Stew 2021 21 1st Saragossa 2021 21 2nd Double Bongcloud Rapid 2021 102 2nd The Hillbilly Attack 2021 102 3rd Romantic Openings Danish Gambit Accepted 2021 32 1st Romantic Openings Evans Gambit Accepted 2021 32 1st Romantic Openings Urusov Gambit Accepted 2021 52 1st Romantic Openings BlackmarDiemer Gambit 2021 52 1st Romantic Openings Stafford Gambit 2021 12 2nd Romantic Openings Calabrese Countergambit 2021 52 1st Romantic Openings Traxler Counterattack 2021 52 2nd No Black Castling 2022 55 1st Draw Killer Bonus 2022 155 1st Romantic Openings Wing Gambit 2022 52 1st Chess 324 Bonus 2022 52 1st Stockfish 5 versus Nakamura Stockfishs strength relative to the best human chess players was most apparent in a handicap match with grandmaster Hikaru Nakamura 2798rated in August 2014 In the first two games of the match Nakamura had the assistance of an older version of Rybka and in the next two games he received White with pawn odds but no assistance Nakamura was the worlds fifthbest human chess player at the time of the match while Stockfish 5 was denied use of its opening book and endgame tablebase Stockfish won each half of the match 1505 Both of Stockfishs wins arose from positions in which Nakamura as is typical for his playing style pressed for a win instead of acquiescing to a draw Stockfish 8 versus AlphaZero In December 2017 Stockfish 8 was used as a benchmark to test Google division DeepMinds AlphaZero with each engine supported by different hardware AlphaZero was trained through selfplay for a total of nine hours and reached Stockfishs level after just four In 100 games from the normal starting position AlphaZero won 25 games as White won 3 as Black and drew the remaining 72 with 0 losses AlphaZero also played twelve 100game matches against Stockfish starting from twelve popular openings for a final score of 290 wins 886 draws and 24 losses for a point score of 733467 AlphaZeros victory over Stockfish sparked a flurry of activity in the computer chess community leading to a new opensource engine aimed at replicating AlphaZero known as Leela Chess Zero By January 2019 Leela was able to defeat the version of Stockfish that played AlphaZero Stockfish 8 in a 100game match An updated version of Stockfish narrowly defeated Leela Chess Zero in the superfinal of the 14th TCEC season 505495 10 81 9 but lost the superfinal of the next season to Leela 535465 14 79 7 The two engines remain very close in strength to each other even as they continue to improve Leela defeated Stockfish in the superfinal of TCEC Season 17 but Stockfish won TCEC Season 18 TCEC Season 19 TCEC Season 20 and TCEC Season 21 each time defeating Leela in the superfinal 衍生引擎 YaneuraOu，一個強大的將棋引擎，也是 NNUE 的起源。支援 USI，USI 是將棋的 UCI 協議變體。 Fairy Stockfish，一個 Stockfish 修改後的版本，可以執行象棋變體（國際象棋、將棋、antichess 等）。 Lichess Stockfish，一個用於玩無變體棋子的變體的版本。 Crystal，試圖解決國際象棋引擎的常見問題，例如由於過度簡化或過度剪枝造成的定位或戰術盲區。 Brainfish，包含 Cerebellum（一個國際象棋開局庫）的精簡版本。 BrainLearn，Brainfish 的衍生版本，但具有持久學習演算法。 ShashChess，一個衍生版本，目標是應用 Alexander Shashin 在《最佳玩法：發現最佳著法的新方法》一書中的理論。 Fat Titz，CFish 的一個分支，其名稱是 Fat Fritz 2 的雙關語，帶有 HalfKAv22048x264641 評估網路，包含 Stockfish 14 四倍的知識。它部分使用 Lc0 資料進行訓練，這賦予了它獨特的佈局風格，同時保留了 Stockfish 戰術犀利的特點。 Houdini 6，據稱是 Stockfish 8 的衍生版本，但在被要求提供原始碼時未提供，違反了 GPL 許可證。 Fat Fritz 2，據稱是 Stockfish 12 的衍生版本，但在被要求提供原始碼時未提供，違反了 GPL 許可證。 皮卡魚（Pikafish），一個修改自 Stockfish 的中國象棋引擎。 參見 自由及開放原始碼軟體列表 註釋 參考 延伸閱讀 Interview with Tord Romstad Norway Joona Kiiski Finland and Marco Costalba Italy programmers of Stockfish 外部連結 Stockfish 的 WebAssembly 版本 開發版本 開發者論壇 Fishtest Category 電腦西洋棋 Category2008 年軟體 Category 用 C 程式設計的自由軟體 Category 分散式計算計劃 Category 使用 GPL 許可證的軟體 Category 應用機器學習