Stockfish

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Stockfish
Тип Шаховий рушій
Розробник Марко Костальба
Джуна Кііскі
Гарі Ліндскотт
Торд Ромстад[1]
Перший випуск 2 листопада 2008
Стабільний випуск 10 (29 листопада 2018; 5 років тому (2018-11-29))
Операційна система Microsoft Windows
macOS
Linux
iOS
Android
Мова програмування C++
Ліцензія GNU GPLv3
Репозиторій github.com/official-stockfish/Stockfish
Вебсайт stockfishchess.org

CMNS: Stockfish у Вікісховищі

Stockfish (Стокфіш) — це вільний і відкритий шаховий рушій[2] UCI, доступний для різних персональних і мобільних платформ. Він розроблений Марко Костальбою, Джуно Кійскі, Гарі Ліндскоттом і Тордом Ромстадом, з багатьма внесками від спільноти розробників.

Stockfish займає перші місця рейтингових списків шахових рушіїв і серед програм з відкритим початковим кодом є найсильнішою. Він виграв неофіційні чемпіонати світу з комп'ютерних шахів у 6 сезоні (2014), 9 (2016), 11 (2018), 12 (2018) та 13 (2018)). Також він посів другі місця на турнірах у 5 сезоні (2013), 7 (2014) та 8 (2015). Stockfish походить від Glaurung[3], рушія з відкритим вихідним кодом, написаним Тордом Ромстадом[4].

Особливості[ред. | ред. код]

Stockfish може використовувати до 512 потоків у багатопроцесорних системах. Максимальний розмір його таблиці транспозиції[en] — 128 Гб. Stockfish реалізує передовий альфа-бета-пошук і використовує бітові дошки[en]. Порівняно з іншими рушіями він характеризується великою глибиною пошуку, що частково обумовлено більш агресивним відсіченням та зниженням швидкості руху[куди?][5][6].

Stockfish підтримує Chess960, що є однією з функцій, успадкованих від Glaurung. Підтримка баз даних ендшпіля була інтегрована в Stockfish в 2014 році. У 2018 році була додана підтримка 7-ступінчастої бази даних ендшпілю, незабаром після того, як вона стала доступною.

Історія створення[ред. | ред. код]

Програма походить від Glaurung, шахового рушія з відкритим кодом, створеного Ромстадом і вперше випущеного в 2004 році. За чотири роки, Костальба, натхненний сильним рушієм з відкритим вихідним кодом, вирішив розгорнути цей проект. Він назвав його Stockfish, тому що він був «виготовлений в Норвегії та приготований в Італії» (Костальба — італієць, Ромстад — норвежець). Перша версія Stockfish 1.0 була випущена в листопаді 2008 року[7][8]. Деякий час нові ідеї та зміни коду були розподілені між двома програмами, аж до того, як Ромстад вирішив припинити Glaurung на користь Stockfish, який був тоді більш просунутим рушієм[9]. Останній Glaurung (версія 2.2) був випущений в грудні 2008 року.

Минуло близько року як Ромстад вирішив відмовитися від своєї участі в Stockfish і вважав за краще провести свій час над опрацюванням нового додатку для шахів в Інтернеті.

18 червня 2014 року Марко Костальба оголосив, що «вирішив піти у відставку», і запропонував спільноті створити розвилку поточної версії та продовжувати її розвиток[10]. Офіційне сховище, яким керує волонтерська група основних розробників Stockfish, була створена незабаром після цього і зараз керує розробкою проекту[11].

Тестування[ред. | ред. код]

З 2013 року Stockfish розроблено з використанням розподіленої системи обчислення «Fishtest», де волонтери можуть пожертвувати процесорний час для тестування вдосконалень програми[12][13][14].

Зміни до ігрового коду приймаються або відхиляються на підставі результатів відтворення десятків тисяч ігор на основі старої «референтної» версії програми, використовуючи тестування послідовного коефіцієнта ймовірності[en]. Тести на рамки перевіряються за допомогою хі-квадратного тесту, і тільки якщо результати є статистично-значимими, вони вважаються достовірними та використовуються для перегляду програмного коду.

Станом на червень 2018 року, система використала в загалом більш як 1200 років часу процесора, щоб зіграти більш ніж 840 мільйонів шахових ігор[15]. Після заснування FishTex, Stockfish зазнав вибухового зростання на 120 пунктів рейтингу ELO за останні 12 місяців, це вивело його на перше місце у всіх основних рейтингових списках[16][17]. Після релізу Stockfish 7, автор FishTest Гаррі Ліндскотт був доданий до офіційного списку авторів, підтверджуючи свій внесок у силу Stockfish.

Результати змагань[ред. | ред. код]

Участь в TCEC[ред. | ред. код]

У 2013 році Stockfish закінчив другий турнір у TCEC сезону 4 і 5, і з фінальними оцінками 23-25 ​​ проти Houdini 3 і проти Komodo[en] 1142. 5 сезон був відомий виграшем команди Komodo, і вони взяли нагороду. На жаль, творець програми Дон Дайлі[en] отримав її посмертно. На його честь версія Stockfish, яка була випущена незабаром після цього сезону, була названа «Stockfish DD»[18].

30 травня 2014 року Stockfish 170514 (розробка версії Stockfish 5 з підтримкою database) переконливо виграла TCEC 6 сезону, набравши 35,5-28,5 проти Komodo 7x у Суперфіналі[19]. Stockfish 5 був випущений наступного дня[20]. У сезоні TCEC 7 Stockfish знову потрапив у Суперфінал, але поступився Komodo з рахунком 30.5-33.5[19]. У TCEC 8 сезоні, попри втрати в часі, спричинені багі-кодом, Stockfish все ж таки кваліфікувався ще раз для Суперфіналу, але втратив наступний 100-партійний матч з рахунком 46,5-53,5 — в результаті перемога для Komodo.[19]

Stockfish version 8 є переможцем сезону 9 сезону 2016 TCEC проти Houdini версії 5 з рахунком 54.5 — 45.5[21]. Stockfish завершив сезон 10 TCEC на 3 сходинці і виграв сезони 11 (59 — 41 проти Houdini 6,03)[22] , 12 (60 — 40 проти Комодо 12.1.1)[23] , і 13 (55 — 45 проти Комодо 2155.00)[24] переконливо[25].

Stockfish проти Накамури[ред. | ред. код]

Сила Stockfish по відношенню до кращих шахових гравців у світі була найбільш помітною у матчі з гросмейстером Хікару Накамурою (рейтинг 2798) у серпні 2014 року. У перших двох матчах Накамура мав допомогу старої версії Rybka, а у наступних двох іграх він не отримав допомоги. Накамура був найкращим шаховим гравцем у світі під час матчу, тоді як Stockfish було відмовлено у використанні його відкриваючої книги, а також на базі базових ігор. Stockfish виграв кожну половину матчу 1,5 — 0,5. Обидва виграші Stockfish виникли з позицій, в яких Накамура, як це характерно для його стилю гри, вимагає перемоги, а не погоджується на нічию[26].

Підхід штучного інтелекту, розроблений Жан-Марком Аліотом з Інституту інформаційних досліджень Тулузи («Тулузький науково-дослідний інститут інформатики»), в якому порівнюється шаховий гросмейстер із Stockfish, визнав Магнуса Карлсена найкращим гравцем всіх час, тому що він мав найвищу ймовірність того, що всі Чемпіони світу з шахів відіграють усі варіанти партій, які запропонував Stockfish[27].

Шаховий турнір серед комп'ютерів[ред. | ред. код]

У листопаді 2017 року chess.com провів відкритий турнір із десяти найсильніших шахових рушіїв, який веде до «Суперфіналу» турніру між двома фіналістами — Stockfish та Houdini. У 20-грі суперфіналу Stockfish переміг Houdini з рахунком 10.5-9.5. П'ять ігор були вирішальними. З вирішальних ігор, три гри були виграні Стокфішом (один за чорних), і дві гри виграв Гудіні (вигравши за чорних). Середня тривалість гри становила 100 ходів[28][29]. Турнір був організований за допомогою різноманітних контролів часу, а двигунам виділили однакову обчислювальну підтримку; кожен з яких має свій спеціальний віртуалізований екземпляр HyperThreaded Intel Xeon 2,90 ГГц (два процесори кожен із яких 18 ядер) з оперативною пам'яттю 60 Гб, що працює на сервері на базі Windows[28].

Stockfish також виграв версію цього чемпіонату 2018 року, знову здобувши перемогу у фіналі над Houdini — на цей раз з рахунком 120/200 (перемоги / кількість матчів). Під час бонусно-ігрового сегменту цього турніру Стокфіш програв партію проти рушія нейронної мережі Leela Chess Zero.

У внутрішніх тестах розробника Leela Chess Zero (який також є одним із розробників Stockfish), з обома рушіями, що працюють на такій самій апаратурі, Stockfish виграв 76 ігор, Leela Chess Zero виграв 16 ігор, і було 308 нічиїх[30].

Stockfish проти AlphaZero[ред. | ред. код]

У грудні 2017 року Stockfish 8 був використаний як еталон для оцінки підрозділу Google Deepmind's AlphaZero, при цьому кожен двигун підтримується різними апаратними засобами. AlphaZero навчався за допомогою самостійної гри на загальну суму дев'ять годин і досягав рівня Stockfish лише після чотирьох.[31][32] Stockfish було виділено 64 потоків та розмір хешу 1 Гб; AlphaZero підтримувався чотирма спеціальними TPU-програмами. Кожній програмі було надано одну хвилину часу на мислення.

У 100 матчах з нормальної стартової позиції AlphaZero виграв 25 ігор у білими, виграв 3 за чорних, та витягнув решту 72 з 0 втратами (ничиї).[33] AlphaZero також зіграв дванадцять 100 ігрових матчів проти Stockfish, для остаточного рахунку: 290 перемог, 886 ничиїх та 24 поразок, для точної оцінки 733 : 467.[34] Дослідження не було і Google відмовився коментувати до публікації[33].

У відповідь на це розробник Stockfish Торд Ромстад прокоментував: "Результати матчу самі по собі не є особливо значущими через досить дивний вибір часу контролю та налаштування параметрів Stockfish: ігри були відтворені в заданий час 1 хвилина / хід, що означає, що Stockfish не використовує свій час раціонально (багато сил було вжито, щоб визначити для Stockfish критичні точки в грі і вирішити, коли витратити додатковий час на хід). У версії Stockfish, що використовується, він грає з набагато більшою кількістю пошукових потоків, ніж коли-небудь отримував. Я вважаю, що відсоток нічиїх був би набагато вище в матчі з більш нормальними умовами "[35].

Хікару Накамура також проявив скептицизм, дивлячись на результати, заявивши: "Я не обов'язково ставлюсь з довірою до результатів просто тому, що я розумію, що AlphaZero в основному використовує суперкомп'ютер Google, а Stockfish не працює на цьому обладнанні, Stockfish в основному працює на тому, що й мій ноутбук. Якщо ви хочете, щоб був матч, який можна порівняти, ви повинні зробити, щоб Stockfish працював на суперкомп'ютері також "[35].

Платформи[ред. | ред. код]

Випуск версій та версії розробки доступні як вихідний код C++ і як попередньо скомпільовані версії для Microsoft Windows, macOS, Linux 32-розрядні / 64-розрядні та Android.

Stockfish був[коли?] дуже популярним рушієм для різних платформ. На робочому столі[якому?], це шаховий рушій за замовчуванням в комплекті з програмами інтерфейсу Internet Chess Club BlitzIn і Dasher. На мобільних платформах він був включений в додаток Stockfish, SmallFish і Droidfish. Інші графічні користувацькі інтерфейси, що підтримують Stockfish, включають Fritz, Arena, Stockfish для Mac та PyChess. Станом на березень 2017 року Stockfish — це AI, що використовується в Lichess, популярному шаховому сайті в Інтернеті.

Примітки[ред. | ред. код]

  1. Stockfish/src/uci.cpp. Архів оригіналу за 12 листопада 2020. Процитовано 18 березня 2016. 
  2. Chabris, Christopher. The Real Kings of Chess Are Computers. Wall Street Journal. Архів оригіналу за 24 вересня 2015. Процитовано 18 вересня 2015. 
  3. Glaurung – UCI chess engine. GitHub. tord@glaurungchess.com. Архів оригіналу за 11 червня 2018. 
  4. Eade, James. Chess For Dummies. Hoboken, New Jersey: John Wiley & Sons. p. 476. Архів оригіналу за 3 грудня 2018. Процитовано 2 січня 2017.. 
  5. Kaufman, Larry. Stockfish depth vs. others; challenge. talkchess.com (англ.). Архів оригіналу за 30 листопада 2018. Процитовано 24 листопада 2013. 
  6. Kislik, Erik. Analyze TCEC Superfinal. susanpolgar.blogspot.com. Архів оригіналу за 3 грудня 2018. Процитовано 7 червня 2014. 
  7. About. stockfishchess.org. Архів оригіналу за 17 лютого 2014. Процитовано 5 березня 2014.. 
  8. Costalba, Marco (2 листопада 2008.). Stockfish 1.0. talkchess.com. Архів оригіналу за 13 липня 2018. Процитовано 6 березня 2014.. 
  9. Romstad, Tord (5 вересня 2009.). Re: Stockfish - Glaurung. wbec-ridderkerk.forumotion.com. Архів оригіналу за 6 березня 2014. Процитовано 5 березня 2014.. 
  10. Costalba, Marco (18 червня 2014).). Step down. groups.google.com. Архів оригіналу за 2 серпня 2013. Процитовано 19 червня 2014.. 
  11. Linscott, Gary ((18 червня 2014)). New official repository. groups.google.com. Архів оригіналу за 2 серпня 2013. Процитовано 19 червня 2014.. 
  12. Stockfish Testing Queue. tests.stockfishchess.org. Архів оригіналу за 22 березня 2014. Процитовано 7 березня 2014.. 
  13. Get Involved. stockfishchess.org. Архів оригіналу за 27 лютого 2014. Процитовано 8 березня 2014. 
  14. Costalba, Marco (1 травня 2013.). Fishtest Distributed Testing Framework. talkchess.com. Архів оригіналу за 3 грудня 2018. Процитовано 18 квітня 2014.. 
  15. Stockfish Testing Framework - Users. test.stockfishchess.org. Архів оригіналу за 25 червня 2018. Процитовано 14 червня 2018.. 
  16. "Fast GM Rating List". Архів оригіналу за 1 липня 2014. 
  17. "CCRL Rating List". 2014-05-30. Архів оригіналу за 30 травня 2014. 
  18. "Stockfish Blog on Stockfish DD". Архів оригіналу за 27 липня 2015. 
  19. а б в "TCEC Season Archive". tcec.chessdom.com. Архів оригіналу за 20 лютого 2019. Процитовано 9 січня 2015.. 
  20. Costalba, Marco. "Stockfish 5". talkchess.com. Архів оригіналу за 13 липня 2018. Процитовано 19 червня 2014.. 
  21. "Stockfish is the TCEC Season 9 Grand Champion". Chessdom.com. Архів оригіналу за 6 грудня 2016. Процитовано 5 грудня 2016.. 
  22. "TCEC Season 11 Superfinal 2018". chess24.com. Архів оригіналу за 18 листопада 2018. Процитовано 2018-11-18.. 
  23. "TCEC Season 12 Superfinal 2018". chess24.com. Архів оригіналу за 2 серпня 2018. Процитовано 18 листопада 2018. 
  24. "TCEC Season 13 Superfinal 2018". chess24.com. Архів оригіналу за 18 листопада 2018. Процитовано 2018-11-18.. 
  25. "Stockfish convincingly wins TCEC Season 11". Chess.dom. Архів оригіналу за 17 квітня 2018. Процитовано 18 квітня 2018.. 
  26. Klein, Mike (24 серпня 2014). Stockfish Outlasts "Rybkamura". Архів оригіналу за 3 грудня 2018. 
  27. "When artificial intelligence evaluates chess champions". https://en.wikipedia.org/wiki/ScienceDaily. 25 квітня 2017. Архів оригіналу за 11 квітня 2020. 
  28. а б Chess.com announces computer chess championship.. Chess.com. Архів оригіналу за 12 листопада 2020. 
  29. Stockfish wins chess.com computer championship. Архів оригіналу за 9 листопада 2020. 
  30. LC0 vs. Stockfish. Архів оригіналу за 7 лютого 2020. 
  31. Knapton Sarah;, Watson Leon; (6 грудня 2017.). "Entire human chess knowledge learned and surpassed by DeepMind's AlphaZero in four hours". Telegraph.co.uk. Архів оригіналу за 2 грудня 2020. Процитовано 6 грудня 2017.. 
  32. Vincent, James (6 грудня 2017.). "DeepMind's AI became a superhuman chess player in a few hours, just for fun". https://en.wikipedia.org/wiki/The_Verge. Архів оригіналу за 2 грудня 2020. Процитовано 6 грудня 2017.. 
  33. а б "'Superhuman' Google AI claims chess crown". BBC News. 6 грудня 2017. Архів оригіналу за 2 грудня 2020. Процитовано 7 грудня 2017.. 
  34. "DeepMind's AlphaZero crushes chess". chess.com. 6 груденя 2017. Архів оригіналу за 12 грудня 2018. Процитовано 13 груденя 2017. 
  35. а б "AlphaZero: Reactions From Top GMs, Stockfish Author". Chess.com. 8 грудня 2017. Архів оригіналу за 14 грудня 2017. Процитовано 13 грудня 2017. 

Додаткові матеріали[ред. | ред. код]

Посилання[ред. | ред. код]