Разработчики) | Марко Costalba Joona Kiiski Гэри Линскотт Торд Ромстад Stéphane Nicolet Стефан Geschwentner Joost VandeVondele |
---|---|
Первый выпуск | 2 ноября 2008 г . |
Стабильный выпуск | 14/2 июля 2021 г . |
Репозиторий | |
Написано в | C ++ |
Операционная система | Microsoft Windows macOS Linux iOS Android |
Тип | Шахматный двигатель |
Лицензия | GPL-3.0 или более поздняя [1] |
Веб-сайт | stockfishchess |
Эта статья является частью серии статей, посвященных |
Шахматное программирование |
---|
Представительства Совета |
Шахматные компьютеры |
Шахматные движки |
Stockfish - это бесплатный шахматный движок с открытым исходным кодом , доступный для различных настольных и мобильных платформ. Его разработали Марко Костальба, Джоона Кийски, Гэри Линскотт, Торд Ромстад, Стефан Николе, Стефан Гешвентнер и Йост ВандеВонделе при большом участии сообщества разработчиков открытого исходного кода. [2]
Stockfish постоянно занимает первое или почти верхнее место в большинстве рейтинговых списков шахматных движков и является самым мощным шахматным движком с процессором в мире. [3] Он выигрывал неофициальные чемпионаты мира по компьютерным шахматам в сезонах 6 (2014), 9 (2016), 11 (2018), 12 (2018), 13 (2018), 14 (2019), 16 (2019), 18 ( 2020), 19 (2020), 20 (2020-21) и 21 (2021). Он занял второе место в сезонах 5 (2013), 7 (2014), 8 (2015), 15 (2019) и 17 (2020).
Stockfish является производным от Glaurung, движка с открытым исходным кодом от Торда Ромстада, выпущенного в 2004 году.
Stockfish может использовать до 512 потоков ЦП в многопроцессорных системах. Максимальный размер его таблицы транспонирования - 32 ТБ. Stockfish реализует расширенный альфа-бета-поиск и использует битовые доски . По сравнению с другими движками, он отличается большой глубиной поиска, отчасти из-за более агрессивной обрезки и позднего сокращения перемещений . [4] По состоянию на сентябрь 2021 [Обновить]года Stockfish 14 (4-х ниточный) достигает рейтинга Эло 3550.+22
−22на тесте CCRL 40/15. [5]
Stockfish поддерживает Chess960 , что является одной из функций, унаследованных от Glaurung.
Поддержка Syzygy tablebase , ранее доступная в форке, поддерживаемом Рональдом де Маном, была интегрирована в Stockfish в 2014 году. [6] В 2018 году была добавлена поддержка Syzygy из 7 человек, вскоре после того, как она стала доступной.
Программа возникла на основе Glaurung , шахматного движка с открытым исходным кодом, созданного Ромстадом и впервые выпущенного в 2004 году. Четыре года спустя Костальба, вдохновленный сильным движком с открытым исходным кодом, решил разделить проект. Он назвал его 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]
С 2013 года Stockfish разрабатывается с использованием распределенной среды тестирования Fishtest , где добровольцы могут жертвовать процессорное время для тестирования улучшений программы. [18] [19] [20]
Изменения в игровом коде принимаются или отклоняются на основании результатов прохождения десятков тысяч игр на платформе против более старой «эталонной» версии программы с использованием последовательного тестирования отношения вероятностей . Тесты на платформе проверяются с помощью теста хи-квадрат , и только если результаты статистически значимы, они считаются надежными и используются для корректировки программного кода.
После создания Fishtest всего за 12 месяцев Stockfish испытала взрывной рост на 120 баллов Эло , подняв его на вершину всех основных рейтинговых списков. [21] В Stockfish 7 автор Fishtest Гэри Линскотт был добавлен в официальный список авторов в знак признания его вклада в силу Stockfish.
По состоянию на июнь 2021 года фреймворк использовал в общей сложности более 5400 лет процессорного времени, чтобы сыграть более 3,1 миллиарда шахматных партий. [22]
Сила Стокфиша по сравнению с лучшими шахматистами среди людей была наиболее очевидна в матче с гандикапом с гроссмейстером Хикару Накамурой (рейтинг 2798) в августе 2014 года. В первых двух партиях матча Накамуре помогала более старая версия Рыбки , и в следующих двух партиях он получил белых с пешечным перевесом, но без помощи. Накамура был пятым лучшим шахматистом в мире на момент матча, в то время как Stockfish было отказано в использовании его первой книги и таблицы эндшпиля. Штокфиш выигрывал каждую половину матча со счетом 1,5–0,5. Обе победы Stockfish возникли из позиций, в которых Накамура, что типично для его стиля игры, настаивал на победе вместо того, чтобы согласиться на ничью. [23]
Подход с искусственным интеллектом, разработанный Жан-Марком Аллиотом из Института исследований и информатики Тулузы (Тулузский научно-исследовательский институт компьютерных наук), который сравнивает ходы шахматных гроссмейстеров с ходами Стокфиша, оценил Магнуса Карлсена как лучшего игрока из всех. - время , так как у него была самая высокая вероятность из всех чемпионов мира по шахматам разыграть ходы, предложенные Стокфишем. [24]
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] В восьмом сезоне 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 сезоне и 56–44 в 21 сезоне . [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 и Leela оказались в одной половине. Лила выбила Stockfish в полуфинале. Однако в послетурнирном матче против проигравшего финала, Лиленштейна, Stockfish выиграл в том же формате, что и главное событие.
Мероприятие | Год | Контроль времени | Результат | Ссылка |
---|---|---|---|---|
CCC 1: Rapid Rumble (Ускоренная битва) | 2018 г. | 15 + 5 | 1-й | [35] |
CCC 2: Блиц-битва | 2018 г. | 5 + 2 | 1-й | [36] |
CCC 3: Быстрый Redux | 2019 г. | 30 + 5 | 1-й | [37] |
CCC 4: Bullet Brawl (драка с пулями) | 2019 г. | 1 + 2 | 1-й | [38] |
CCC 5: Эскалация | 2019 г. | 10 + 5 | 1-й | [39] |
CCC 6: Зимняя классика | 2019 г. | 10 + 10 | 1-й | [40] |
CCC 7: Blitz Bonanza | 2019 г. | 5 + 2 | 2-й | [41] |
CCC 8: Глубокое погружение | 2019 г. | 15 + 5 | 1-й | [42] |
CCC 9: Перчатка | 2019 г. | 5 + 2, 10 + 5 | 1-й | [43] |
CCC 10: двойные цифры | 2019 г. | 10 + 3 | 2-й | [44] |
CCC 11 | 2019 г. | 30 + 5 | 2-й | [45] |
CCC 12: Bullet Madness! | 2020 г. | 1 + 1 | 3-й | [46] |
CCC 13: семиугольник | 2020 г. | 5 + 5 | 2-й | [47] |
В декабре 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 и TCEC Season 20 , каждый раз с небольшим перевесом побеждая Лилу в суперфинале.
Релизные и разрабатываемые версии доступны как исходный код 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 предоставляют Stockfish в этой форме в дополнение к серверной программе. [58]
Stockfish использовался для создания программ для многих вариантов шахмат . Некоторые из вилок: