Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Stockfish - это бесплатный шахматный движок с открытым исходным кодом , доступный для различных настольных и мобильных платформ. Его разработали Марко Костальба , Джоона Кийски , Гэри Линскотт, Торд Ромстад, Стефан Николе, Стефан Гешвентнер и Йост ВандеВонделе при большом участии сообщества разработчиков открытого исходного кода. [2]

Stockfish постоянно занимает первое или почти верхнее место в большинстве рейтинговых списков шахматных движков и является самым мощным шахматным движком с процессором в мире. [3] Он выигрывал неофициальные чемпионаты мира по компьютерным шахматам в сезонах 6 (2014), 9 (2016), 11 (2018), 12 (2018), 13 (2018), 14 (2019), 16 (2019), 18 ( 2020), 19 (2020 год) и 20 (2021 год). Он занял второе место в сезонах 5 (2013), 7 (2014), 8 (2015), 15 (2019) и 17 (2020).

Stockfish является производным от Glaurung, движка с открытым исходным кодом от Торда Ромстада, выпущенного в 2004 году.

Особенности [ править ]

Stockfish может использовать до 512 потоков ЦП в многопроцессорных системах. Максимальный размер его таблицы транспонирования - 32 ТБ. Stockfish реализует расширенный альфа-бета-поиск и использует битовые доски . По сравнению с другими движками, он отличается большой глубиной поиска, отчасти из-за более агрессивной обрезки и позднего сокращения перемещений . [4] По состоянию на ноябрь 2020 года Stockfish 12 (4-х поточный) получил рейтинг Эло 3516.+24
−20
на тесте CCRL 40/15. [5]

Stockfish поддерживает Chess960 , что является одной из функций, унаследованных от Glaurung.

Поддержка Syzygy tablebase , ранее доступная в форке, поддерживаемом Рональдом де Маном, была интегрирована в Stockfish в 2014 году. [6] В 2018 году была добавлена ​​поддержка Syzygy из 7 человек, вскоре после того, как она стала доступной.

История [ править ]

Визуализация NNUE Stockfish

Программа возникла из Глаурунга , шахматного движка с открытым исходным кодом , созданный Ромстад и первый выпущенный в 2004 году четыре года спустя, Costalba, вдохновленный сильным открытым исходным двигателем, решил раскошелиться проект. Он назвал его Stockfish, потому что он был «произведен в Норвегии и приготовлен в Италии» (Romstad - норвежский, Costalba - итальянский). Первая версия Stockfish 1.0 была выпущена в ноябре 2008 года. [7] [8] Некоторое время новые идеи и изменения кода передавались между двумя программами в обоих направлениях, пока Ромстад не решил прекратить выпуск Glaurung в пользу Stockfish. который был более совершенным двигателем в то время. [9] Последний Glaurung (версия 2.2) был выпущен в декабре 2008 года.

Примерно в 2011 году Ромстад решил отказаться от участия в Stockfish, чтобы больше времени уделять своему новому шахматному приложению для iOS. [ необходима цитата ]

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

В июне 2020 года разработчики обсудили форк эффективно обновляемой нейронной сети (NNUE), представленный компьютерными сёги- программистами под названием Stockfish NNUE. [12] [13] В июле 2020 года в шахматных новостях сообщалось, что Stockfish NNUE «открыл новые горизонты в компьютерных шахматах, включив нейронную сеть в и без того невероятно мощный шахматный движок Stockfish». [14] Затем было объявлено о слиянии NNUE с Stockfish, и стали доступны сборки для разработки. [15] [16]

«Ветвь NNUE, поддерживаемая @nodchip, продемонстрировала сильные результаты и предлагает большой потенциал, и мы продолжим слияние ... Это слияние представит в движке кодирование на основе машинного обучения, тем самым расширив сообщество разработчиков и привнеся новые навыки. Мы стремимся держать всех в курсе, включая всех разработчиков и пользователей различного оборудования, стремясь стать инклюзивным сообществом ... необходимые точные шаги станут более ясными по мере того, как мы продолжим, я с нетерпением жду работы с сообществом, чтобы это произошло ! "

-  Joost VandeVondele, 25 июля 2020 г. [15]

2 сентября 2020 года была выпущена двенадцатая версия Stockfish, включающая вышеупомянутое усовершенствование нейронной сети. Согласно объявлению в блоге, эта новая версия «играет значительно сильнее, чем любая из ее предшественников», обычно выигрывая в десять раз больше игр, чем проигрывает в сравнении с одиннадцатой версией. [17]

Fishtest [ править ]

С 2013 года Stockfish разрабатывается с использованием среды распределенного тестирования Fishtest , где добровольцы могут жертвовать процессорное время для тестирования улучшений программы. [18] [19] [20]

Изменения в игровом коде принимаются или отклоняются на основании результатов прохождения десятков тысяч игр на фреймворке против более старой «эталонной» версии программы с использованием последовательного тестирования отношения вероятностей . Тесты на платформе проверяются с помощью теста хи-квадрат , и только в том случае, если результаты статистически значимы, они считаются надежными и используются для корректировки программного кода.

По состоянию на июнь 2018 года фреймворк использовал в общей сложности более 1200 лет процессорного времени, чтобы сыграть более 840 миллионов шахматных партий. [21] После создания Fishtest, Stockfish испытала взрывной рост на 120 баллов Эло всего за 12 месяцев, подняв его на вершину всех основных рейтинговых списков. [22] В Stockfish 7 автор Fishtest Гэри Линскотт был добавлен в официальный список авторов в знак признания его вклада в силу Stockfish.

Результаты конкурса [ править ]

Stockfish против Накамуры [ править ]

Сила Стокфиша по сравнению с лучшими шахматистами среди людей была наиболее очевидна в матче с гандикапом с гроссмейстером Хикару Накамурой (рейтинг 2798) в августе 2014 года. В первых двух партиях матча Накамуре помогала более старая версия Рыбки , и в следующих двух партиях он получил белых с пешечным перевесом, но без помощи. Накамура был пятым лучшим шахматистом в мире на момент матча, в то время как Stockfish было отказано в использовании его первой книги и таблицы эндшпиля. Штокфиш выигрывал каждую половину матча со счетом 1,5–0,5. Обе победы Stockfish возникли из позиций, в которых Накамура, что типично для его стиля игры, настаивал на победе вместо того, чтобы соглашаться на ничью. [23]

Подход с использованием искусственного интеллекта, разработанный Жан-Марком Аллиотом из Института исследований и информатики Тулузы (Тулузский научно-исследовательский институт компьютерных наук), который сравнивает ходы гроссмейстера по шахматам с ходами Стокфиша, оценил Магнуса Карлсена как лучшего игрока из всех - время , так как у него была самая высокая вероятность из всех чемпионов мира по шахматам сыграть ходы, предложенные Стокфишем. [24]

Участие в TCEC [ править ]

Stockfish - многократный чемпион TCEC и нынешний лидер по количеству трофеев. С момента перезапуска TCEC в 2013 году Stockfish финишировал первым или вторым в каждом сезоне, кроме одного. В сезонах 4 и 5 TCEC Stockfish занял второе место с результатом 23–25 в Суперфинале сначала против Houdini 3, а затем против Komodo 1142. Сезон 5 был отмечен победившей командой Komodo, поскольку они посмертно приняли награду за создателя программы Дона. Дейли , которая скончалась от болезни во время финального этапа соревнований. В его честь версия Stockfish, выпущенная вскоре после этого сезона, была названа "Stockfish DD". [25]

30 мая 2014 года Stockfish 170514 (разрабатываемая версия Stockfish 5 с поддержкой tablebase) убедительно выиграл 6-й сезон TCEC, набрав 35,5–28,5 очков против Komodo 7x в Суперфинале. [26] Stockfish 5 был выпущен на следующий день. [27] В 7-м сезоне TCEC Stockfish снова вышел в Суперфинал, но проиграл Комодо со счетом 30,5–33,5. [26] В 8-м сезоне TCEC, несмотря на потери времени, вызванные ошибками в коде, Stockfish, тем не менее, снова квалифицировался на Суперфинал, но проиграл последовавший матч из 100 игр 46,5–53,5 Комодо. [26] В 9 сезоне Stockfish победил Houdini 5 со счетом 54,5 против 45,5. [26] [28]

Stockfish занял третье место в 10 сезоне TCEC, единственном сезоне с 2013 года, в котором Stockfish не прошел квалификацию в суперфинал. Он не проиграл ни одной игры, но все же выбыл, потому что не смог набрать достаточно побед против движков с более низким рейтингом. После этого технического исключения Stockfish продолжил длинную победную серию, выиграв 11 сезонов (59 против 41 против Houdini 6,03), [26] [29] 12 (60 против 40 против Komodo 12.1.1), [26] [30 ] и 13 (55 против 45 против 2155.00 Комодо) [26] [31] убедительно. [32] В сезоне 14 Stockfish столкнулся с новым претендентом в Leela Chess Zero , но сумел одержать победу в одной игре (50,5–49,5). [26][33] Его победная серия окончательно завершилась в 15 сезоне , когда Лила снова квалифицировалась и выиграла 53,5–46,5 [26], но Stockfish быстро выиграла 16 сезон , победив AllieStein 54,5–45,5 после того, как Лила не прошла квалификацию в суперфинал. [26] В 17 сезоне Стокфиш снова столкнулся с Лилой в суперфинале, проиграв 52,5–47,5. Однако Стокфиш убедительно победил Лилу в следующих трех суперфиналах: 53,5–46,5 в 18 сезоне , 54,5–45,5 в 19 сезоне и 53–47 в 20 сезоне . [26]

Stockfish также принял участие в кубке TCEC, выиграв первое издание, но был удивительно расстроен Гудини в полуфинале второго выпуска. [26] [34] Стокфиш оправился, чтобы обыграть Комодо в плей-офф за третье место. [26] В третьем выпуске Stockfish добрался до финала, но проиграл Лилу Chess Zero после грубого промаха в жеребьевке эндшпиля с 7 игроками . Он отомстил [ тон ] в четвертом издании, победив Лилу в финале 4.5–3.5. [26]

Компьютерный шахматный турнир [ править ]

С тех пор, как в 2018 году сайт chess.com провел свой первый чемпионат по компьютерным шахматам, Stockfish был самым успешным движком. Он доминировал в предыдущих чемпионатах, выиграв шесть титулов подряд, прежде чем финишировал вторым в CCC7. С тех пор его доминирование оказалось под угрозой со стороны нейросетевых движков Leelenstein и Leela Chess Zero , но оно продолжало хорошо работать, достигая как минимум суперфинала в каждом выпуске до CCC11. У CCC12 впервые был формат на выбывание, когда финалисты CCC11 Stockfish и Лила оказались в одной половине. Лила выбила Stockfish в полуфинале. Тем не менее, в матче после турнира против проигравшего финала, Лиленштейна, Stockfish выиграл в том же формате, что и главное событие.

Stockfish против AlphaZero [ править ]

В декабре 2017 года, вяленая 8 была использована в качестве ориентира для теста Google подразделения Deepmind «s AlphaZero , с каждым двигателем при поддержке различных аппаратных средств. AlphaZero был обучен через самостоятельную игру в течение девяти часов и достиг уровня Stockfish всего за четыре. [48] [49] [50] В 100 партиях из обычной стартовой позиции AlphaZero выиграла 25 партий белыми, 3 выиграла черными и сыграла вничью в оставшихся 72 партиях с 0 поражениями. [51] AlphaZero также сыграл двенадцать матчей из 100 игр против Stockfish, начиная с двенадцати популярных дебютов и набрав в итоге 290 побед, 886 ничьих и 24 поражения, набрав 733: 467 очков. [52] [примечание 1]

Победа AlphaZero над Stockfish вызвала волну активности в компьютерном шахматном сообществе, что привело к созданию нового движка с открытым исходным кодом, нацеленного на копирование AlphaZero, известного как Leela Chess Zero . К январю 2019 года Лила смогла победить версию Stockfish, которая играла в AlphaZero (Stockfish 8), в матче из 100 игр. Обновленная версия Stockfish едва победила Лилу Chess Zero в суперфинале 14-го сезона TCEC , 50,5–49,5 (+10 = 81–9), [26], но проиграла суперфинал следующего сезона Лиле 53,5–46,5 (+14 = 79-7). [26] [54] Два двигателя остаются очень близкими по силе друг к другу, даже несмотря на то, что они продолжают совершенствоваться: Лила победила Stockfish в суперфиналеTCEC Season 17 , но Stockfish выиграл TCEC Season 18 и TCEC Season 19 .

Платформы [ править ]

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

Stockfish был очень популярным движком для различных платформ. На настольном компьютере это шахматный движок по умолчанию, связанный с интерфейсными программами Интернет-шахматного клуба BlitzIn и Dasher. На мобильной платформе он был связан с приложением Stockfish, SmallFish и Droidfish . Другие графические пользовательские интерфейсы, совместимые с Stockfish, включают Fritz , Arena, Stockfish для Mac и PyChess . [55] [56] По состоянию на март 2014 года Stockfish - это шахматный движок, используемый Lichess , [57] популярным шахматным онлайн-сайтом.

Stockfish может быть скомпилирован в WebAssembly или JavaScript , что позволяет ему работать в браузере. И Chess.com, и Lichess предоставляют в этой форме вяленую рыбу в дополнение к серверной программе. [58]

Производные [ править ]

Stockfish использовался для создания программ для многих вариантов шахмат . Вот некоторые из вилок:

  • YaneuraOu, мощный движок сёги и начало NNUE. Говорит USI, вариант UCI для шахмат. [59]
  • Fairy Stockfish, версия, модифицированная для игры в сказочные шахматы . Забегает с региональными вариантами (шахматы, сёги, макрук и т. Д.), А также с другими вариантами, такими как антишах . [60]
  • Lichess Stockfish, версия для вариантов игры без сказочных фигур. [58]

См. Также [ править ]

  • Список пакетов бесплатного и открытого программного обеспечения

Примечания [ править ]

  1. ^ В академической статье об этой последовательности игр не указаны ресурсы компьютера, выделенные для каждого движка. [53]

Ссылки [ править ]

  1. ^ "Лицензия Stockfish GPLv3" . github.com/official-stockfish/Stockfish . Дата обращения 20 июля 2020 .
  2. ^ «Список авторов, опубликованный на Github» . GitHub . Проверено 29 июня 2020 .
  3. ^ "CCRL 40/15" . computerchess.org.uk . 11 января 2010 . Дата обращения 13 января 2020 .
  4. Кауфман, Ларри (24 ноября 2013 г.). «Глубина Stockfish по сравнению с другими; проблема» . talkchess.com . Проверено 8 марта 2014 года .
  5. ^ «CCRL 40/15 - Полный список» . computerchess.org.uk .
  6. ^ "Версии разработки Stockfish" . abrok.eu . Архивировано из оригинального 11 ноября 2014 года . Проверено 1 февраля 2015 года .
  7. ^ "О" . stockfishchess.org . Проверено 5 марта 2014 .
  8. ^ Costalba, Marco (2 ноября 2008). «Stockfish 1.0» . talkchess.com . Проверено 6 марта 2014 .
  9. ^ Ромстад, Торд (5 сентября 2009). "Re: Stockfish - Glaurung" . wbec-ridderkerk.forumotion.com . Проверено 5 марта 2014 .
  10. ^ Costalba, Marco (18 июня 2014). «Уйти» . groups.google.com . Проверено 19 июня 2014 года .
  11. ^ Линскотт, Гэри (18 июня 2014). «Новый официальный репозиторий» . groups.google.com . Проверено 19 июня 2014 года .
  12. ^ нодчип. «Штокфиш ННУЭ» . Проверено 3 августа 2020 года .
  13. ^ "СФ ННУЭ. Выпуск # 2728 официальный-вяленый" . 27 июня 2020 . Проверено 3 августа 2020 года .
  14. ^ Канарейка-Рид (the_real_greco), Вильгельм. «Stockfish + NNUE, сильнейший шахматный движок на свете, чтобы конкурировать в СССК» . Chess.com . Проверено 24 июля 2020 .
  15. ^ a b Joost VandeVondele (25 июля 2020 г.). "официальная-вяленая рыба / Stockfish, ННУЭ слияние" . Проверено 3 августа 2020 года .
  16. ^ abrok.eu. «Версии разработки Stockfish ННУЭ» . Проверено 3 августа 2020 года .
  17. ^ объявление в блоге о версии 12
  18. ^ "Структура тестирования Stockfish" . tests.stockfishchess.org . Проверено 7 марта 2014 .
  19. ^ «Примите участие» . stockfishchess.org . Проверено 8 марта 2014 года .
  20. ^ Costalba, Marco (1 мая 2013). «Фреймворк распределенного тестирования Fishtest» . talkchess.com . Проверено 18 апреля 2014 года .
  21. ^ «Stockfish Testing Framework - Пользователи» . test.stockfishchess.org . Проверено 14 июня 2018 .
  22. ^ «Рейтинг CCRL» . Архивировано из оригинального 30 мая 2014 года.
  23. ^ http://www.chess.com/news/stockfish-outlasts-nakamura-3634 .
  24. ^ «Когда искусственный интеллект оценивает шахматных чемпионов» . Science Daily . CNRS . 25 апреля 2017.
  25. ^ "Блог Stockfish на Stockfish DD" .
  26. ^ a b c d e f g h i j k l m n o p "Архив сезона TCEC" . tcec-chess.com . Проверено 9 января 2015 .
  27. ^ Costalba, Marco (31 мая 2014). «Stockfish 5» . talkchess.com . Проверено 19 июня 2014 года .
  28. ^ "Stockfish - Гранд Чемпион TCEC Season 9" . Шахматный дом . Дата обращения 5 декабря 2016 .
  29. ^ «TCEC Season 11 Superfinal 2018» . Chess24.com . Проверено 18 ноября 2018 .
  30. ^ «TCEC Season 12 Superfinal 2018» . Chess24.com . Проверено 18 ноября 2018 .
  31. ^ "TCEC Сезон 13 Суперфинал 2018" . Chess24.com . Проверено 18 ноября 2018 .
  32. ^ "Stockfish убедительно выигрывает 11-й сезон TCEC" . Шахматный дом . Проверено 18 апреля 2018 года .
  33. ^ «Stockfish продолжает доминировать в компьютерных шахматах, побеждает TCEC S14» . Шахматный дом . 1 марта 2019.
  34. ^ «Houdunit? Самая шокирующая игра на шахматном движке TCEC 2019» .
  35. Чиленто, Пит. «Stockfish выиграл чемпионат по компьютерным шахматам по быстрым шахматам; Lc0 занял третье место» . Chess.com . Проверено 20 июня 2019 .
  36. Чиленто, Пит. «Stockfish выигрывает чемпионат по компьютерным шахматам по блицу» . Chess.com . Проверено 20 июня 2019 .
  37. Чиленто, Пит. «Stockfish выигрывает чемпионат по быстрым компьютерным играм над Lc0; затем Bullet Chess» . Chess.com . Проверено 20 июня 2019 .
  38. Чиленто, Пит. «Stockfish выигрывает Bullet чемпионата по компьютерным шахматам; следующий« Escalation »» . Chess.com . Проверено 20 июня 2019 .
  39. ^ [1]
  40. Чиленто, Пит. «Чемпионат по компьютерным шахматам играет блиц после того, как Stockfish защищает титул» . Chess.com . Проверено 20 июня 2019 .
  41. Чиленто, Пит (17 апреля 2019 г.). «Lc0 выигрывает чемпионат по компьютерным шахматам, делает историю» . Chess.com . Проверено 18 апреля 2019 .
  42. ^ Пит (Пит). «Stockfish наносит ответный удар, возглавляет Lc0 в компьютерном чемпионате по шахматам» . Chess.com . Дата обращения 29 мая 2019 .
  43. ^ «Чемпионат по компьютерным шахматам» . Chess.com . Дата обращения 9 июля 2019 .
  44. ^ «Чемпионат по компьютерным шахматам» . Chess.com . Проверено 30 июля 2019 .
  45. ^ «Чемпионат по компьютерным шахматам» . Chess.com . Проверено 27 декабря 2019 .
  46. ^ «Чемпионат по компьютерным шахматам» . Chess.com . Проверено 28 января 2020 года .
  47. ^ «Чемпионат по компьютерным шахматам» . Chess.com . Проверено 30 апреля 2020 .
  48. ^ DeepMind (6 декабря 2018 г.). «AlphaZero: проливаем новый свет на шахматы, сёги и го» . deepmind.com . Дата обращения 20 июля 2020 .
  49. ^ Knapton, Сара; Уотсон, Леон (6 декабря 2017 г.). «Все человеческие шахматные знания были изучены и превзойдены DeepMind AlphaZero за четыре часа» . Telegraph.co.uk . Проверено 6 декабря +2017 .
  50. ^ Винсент, Джеймс (6 декабря 2017 г.). «Искусственный интеллект DeepMind за несколько часов превратился в сверхчеловеческого шахматиста, просто для удовольствия» . Грань . Проверено 6 декабря +2017 .
  51. ^ " ' Утверждает Superhuman' Google AI шахматную корону" . BBC News . 6 декабря 2017 . Проверено 7 декабря 2017 .
  52. ^ "DeepMind's AlphaZero сокрушает шахматы" . Chess.com . 6 декабря 2017 . Проверено 13 декабря 2017 года .
  53. Сильвер, Дэвид ; Хуберт, Томас; Шриттвизер, Джулиан; Антоноглоу, Иоаннис; Лай, Мэтью; Гез, Артур; Ланкто, Марк; Сифре, Лоран; Кумаран, Дхаршан; Грэпель, Тор; Лилликрап, Тимоти; Симонян, Карен; Хассабис, Демис (5 декабря 2017 г.). «Освоение шахмат и сёги путем самостоятельной игры с использованием общего алгоритма обучения с подкреплением». arXiv : 1712.01815 [ cs.AI ].
  54. ^ крем. «Lc0 выиграл 15 TCEC» . Проверено 20 июня 2019 .
  55. ^ Использование движка Stockfish, поддержка Stockfish.
  56. ^ ChessEngines , PyChess Github.
  57. ^ [2] Lichess использует объявление Stockfish.
  58. ^ a b Дугович, Даниэль (8 ноября 2020 г.). "ddugovic / Stockfish: Многовариантный форк популярного шахматного движка UCI" .
  59. ^ "янеурао"; Нода, Хисайори; Насу, Ю (8 ноября 2020 г.). «YaneuraOu: сильнейший в мире движок сёги (AI-игрок), 1-й победитель WCSC29, образовательный и совместимый с USI движок» . GitHub .
  60. ^ Fichter, Fabian (8 ноября 2020). «Fairy-Stockfish: шахматный вариант движка с поддержкой Xiangqi, Shogi, Janggi, Makruk, S-Chess, Crazyhouse, Bughouse и многих других» . GitHub .

Дальнейшее чтение [ править ]

  • Интервью с Tord Romstad (Норвегия), Joona Kiiski (Финляндия) и Marco Costalba (Италия) , программистами Stockfish

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Официальный репозиторий кода на GitHub
  • WebAssembly порт Stockfish
  • Версии для разработчиков, созданные для Linux и Windows
  • Форум разработчиков
  • Система тестирования Stockfish