lichess.org
Donate

Beth Moon

#1 История компьютерных шахмат

Chess engine
история, анализы и немного философии...

Просьба поддержать мой труд, я много работал и проводил аналитическую работу для создания этого блога


Введение

Сегодня, мы поговорим о редкой и недооцененной, но от этого лишь более интересной теме - Компьютерных Шахматах. Для создания блога, я немного покопался в архивах, проанализировал несколько партий и изучал множество справочных материалов =)

***

Исторический экскурс

Первой шахматной машиной является разработанный XVIII веке Турок. Однако, это был не шахматный алгоритм, а карлик, спрятанный внутри специального ящика. По легенде, Турок даже обыграл Наполеона в 1809 году:

1. е4 е5 2. Фf3?! Kс6 3. Cc4 Кf6 4. Kе2 Cс5 5. а3 d6 6. 0-0 Cg4 7. Фd3 Кh5 8. h3 Ce2 9. Фe2 Kf4 10. Фe1 Kd4 (ещё проще 10...Фg5!) 11. Cb3 Kh3 12. Крh2 Фh4 13. g3 Kf3 14. Крg2 Ke1 15. Лe1 Фg4 16. d3 Cf2 17. Лh1 Фg3 18. Крf1 Cd4 19. Крe2. Чёрные объявляют мат в 6 ходов. 19... Фg2 20. Крd1 Фh1 21. Крd2 Фg2 22. Кре1 Кg1 23. KсЗ CсЗ 24. bc Фе2×.
— Юрий Авербах. Загадка трёх партий

Точкой отсчета для шахматных алгоритмов же может считаться MANIAC, победивший новичка в 1956 году всего за 23 хода. Тогда он играл на доске 6x6, но через год стал играть и в обычные шахматы.

В 1960-х годах, в Институте Теоретической и Экспериментальной Физики ИТЭФ в Москве вовсю кипела работа над одной из первых шахматных программ мира - названной в честь богини шахмат Каиссой. Над созданием программы трудились ученые Донской, Арлазаров, Адельсон-Вельский, Битман и Усков.

В 1967 году, программа победила компьютер Стэндфордского Университета со счетом 3-1. Еще через 3 года Каисса сыграла матч с читателями Комсомольской Правды, однако проиграла его со счетом 1.5-0.5.

В 1974 году Каисса отправилась на первый компьютерный чемпионат мира WCCC [1] в Стокгольм и уверенно победила.
Операторы во время партии,Стокгольм 1974

Уровень игры у компьютеров тогда, откровенно говоря был не очень, а оценить его вы можете ниже:

https://lichess.org/study/y7rN0HQp

В 1977 году в Торонто прошел второй чемпионат, однако там Каисса набрала лишь три очка из четырех, заняв 2-3 место. Единственное поражение Каиссы обернулось сенсацией, и отнюдь не из-за оппонента Каиссы.

https://lichess.org/study/y7rN0HQp/VnuHKJv3#67

В третий раз,Каисса сыграла неудачно - заняла лишь 6-11 места из 18. После этого отечественные движки навсегда (или нет?) ушли с поле боя...

и немного материалов по теме: [1,2,3]

***

Man—Machine

Как зародилось противостояние человека и машины?

На пороге нового тысячелетия компьютеры достигли весьма серьезного уровня и стали на равных играть с очень сильными игроками. Это серьезно повлияло на шахматную культуру 1990-х и 2000-х годов.и даже так...

Ставка Леви
В 1968 году шотландский мастер Дэвид Леви поставил £1250 на то,что в течении 10 лет ни один компьютер не сможет его обыграть. Он был прав - через 10 лет Леви выиграл матч против сильнейшего тогда Chess 4.7. Это событие стало началом шахматного противостояния человека и машины, которое позднее изменит мир.

HiTech
В 1988 году программа HiTech выиграла Чемпионат Штата Пенсильвания,при том обыграв мастера с рейтингом 2485... Так, движки стали подбираться к шахматной элите.

Chess Genius и поражение Каспарова
В 1994 году программа Chess Genius в рапид-турнире ПША обыграла и выбила чемпиона мира Каспарова, однако не устояла под натиском Ананда... Это стало первым поражением действующего Чемпиона Мира Машине.

Deep Blue
Deep Blue был глубоко усовершенствованной моделью другого компьютера IBM — Deep Thought. В 1996 году компания IBM [1] вызвала на матч с призовым фондом $500.000 Гарри Каспарова.

Каспаров оказался сильнее — матч уверенно завершился его победой со счетом 4-2, но Deep Blue удалось выиграть одну партию, которая стала первым поражением действующего Чемпиона Мира в партии с классическим контролем времени...

В 1997 году Deep Blue и Каспаров вышли на второй матч, который стал знаковым в противостоянии Человек — Машина.

Deep Blue выиграл, в решающей 6-й партии же он и вовсе разгромил Каспарова всего за 19 ходов... На пресс-конференциях у Каспарова даже стали возникать сомнения, в том что против него действительно играет машина...

Fritz и Deep Fritz
В 1991 году известной компанией ChessBase был разработан движок Fritz,через 4 года победивший в Компьютерном Чемпионате Мира... Однако, в первом матче с человеком против Гарри Каспарова, Fritz проиграл со счетом 5-1. В 2002 году движок сыграл вничью 4-4 против Владимира Крамника. Через год,версия Fritz с 3D-интерфейсом сыграла 2-2 с Гарри Каспаровым, а в 2006 году Крамнику не удалось даже нанести свой удар матче с Deep Fritz — машина победила 2 партии, свев оставшиеся 4 к ничьей.

Junior и Deep Junior
Программа Junior была одной из сильнейших шахматных программ в 2000-х годах, например, в 2004 году она уверенно сыграла в матче с Каспаровым, удержав ничью со счетом 3-3.

Последний рубеж
В 2005 году произошли одни из последних попыток свести в партии белковых и кремниевых шахматистов — был сыгран матч Hydra — Майкл Адамс, завершившийся разгромной победой «Гидры» со счетом 5.5 - 0.5 очков. В этом же году, в рамках матча Халифманов, Пономарьев и Касымджанов — Junior, Fritz, Hydra, человек одержал последнюю победу над машиной в партии Пономарьев — Fritz...

если Вы хотите посмотреть на эти матчи, то я рекомендую Вам анализы на канале «Шахматы для всех» [1]

а тем, кто ещё хочет потягаться с движками,могу предложить стать секундантами гроссмейстера Пьера Собаккина... [1,2]

***

После человека

Уже в 2009 году программы, работающие не на огромных компьютерах, а на обычном мобильном компьютере, официально достигли уровня прежних «гигантов»...

Сейчас, существует три Компьютерных Чемпионата Мира — WCCC World Chess Computer Championship; TCCC Top Chess Computer Championship и CCCC Chess.com Computer Championship.

Скандалы Rybka
В 2000-х годах, стремительное восхождение на Олимп компьютерных шахмат начала программа Rybka,разработанная ММ Васиком Райлихом в 2005 году. В 2007 году он официально стал сильнейшим движком и повторил это достижение в последующих 3 годах.

Однако, в 2011 году последовало обвинение в том,что код Рыбки содержит части кода другого сильного движка Crafty, Рыбку дисквалифицировали и отняли все заработанные награды...

Houdini
Был разработан в 2010 году программистом Робертом Хоудартом и до сих пор остается одним из сильнейших движков. Он обладает динамичным, основанным на точном расчете стилем, как и другие движки. Ниже Вы можете посмотреть на партию Rybka — Houdini:

https://lichess.org/study/y7rN0HQp/OwynQzeV

Stockfish или вяленная рыба

Был (а) впервые выпущена еще в 2008 году командой разработчиков (Торд Ромстад, Марко Костальба, Йона Кииски, Гэри Линскотт), и с самого начало являлся open - source проектом. При этом, «вяленая рыба» до сих пор остается лидирующей в мире. Из-за особенности политики официального чемпионата WCCC, open - source проект не может в нем участвовать, поэтому Stockfish является 14-кратным чемпионом мира в TCCC. Сейчас новейшей версией является Stockfish 16, также существует множество других версий движка, таких как адаптивный Fairy-Stockfish и Stockfish Multivariants для игры в шахматные варианты. И да, это та самая «рыба», которую Вы используете для анализа на lichess.

***

ИИ и open - source

Поговорим о двух главных трендах развития движков.

Обычные движки работают при помощи алгоритма альфа-бета, что проще говоря является линейным отсечением вариантов.

https://www.youtube.com/watch?v=PapnBKnPA8s

Но с массовым внедрением Machine Learning ( англ. Машинное обучение) в нашу жизнь это устоявшиеся «правило».

Первым общеизвестным движком с использованием ML стала разработанная в 2017 году подразделением Google DeepMind AlphaZero. Для этого, она играла сама с собой на протяжении 24 часов. Этот метод обучения крайне затратен, но эффективен. Тогда, она весьма уверенно победила Stockfish 8. Однако, этот матч является крайне спорным, ведь партия игралась со странным контролем времени «одна минута на ход» против оппонента без тех-поддержки. Сейчас, эта модель вероятно не является сильнейшей, т.к. она не обновлялась с 2017 года. Следующим подобным движком стала Lc0, в насотящее время конкурирующая со Stockfish. Также, недавно chess.com представило движок Torch (с англ. «факел»), сейчас являющийся 2-м - 3-м в мире.

Open - source - это известная в программировании концепция, основанная на полной доступности исходного кода продукта, с возможностью устранять баги у коммьюнити.

***

Отечественная обстановка

Хотелось бы в конце затронуть также отечественную разработку движков. Последними отечественными топ-движками были Strelka и берущая свои корни из России Rybka. После этого, отечественные движки больше не конкурировали за место под шахматным солнцем. Ходили слухи о разработке движка Mendeleev Chess, но последняя новость о нем была этим летом и, к сожалению, никак не связанная с разработкой...

Благодарю Вас за чтение, пишите в комментариях свои впечатления и отзывы, также обязательно сообщайте в них о орфографических / пунктуационных ошибках, до новых встреч =)

Для разработчиков

Обучение шахматных моделей обычно основано на базовой функции eval (evaluation - оценка позиции). Если Вы не хотите писать алгоритм с нуля, то можно использовать database.lichess.org с доступным анализом Stockfish и сверять оценку обучаемого движка с оценкой SF, при этом разница должна стремиться к 0.0 (это означает, что движок точно оценивает позицию => найдет ход, повышающий оценку). Гугл в помощь. 
Заметка

! во время создания блога я ставил перед собой задачу хронологически проследить развитие движков и сделать акцент на отечественных движках...так,я не стал уделять много времени Deep Blue,рассказав вместо этого о менее известных движках,вроде Каиссы.

! если Вам интересно,то Вы можете просмотреть материалы,на которые я ссылался в кавычках

! если Вам очень интересно,могу посоветовать крутейший сайт chessprogramming.org