Rybka Rybka (русск. Рыбка) — компьютерная шахматная программа, разработанная международным мастером по шахматам Васиком Райлихом. В мае 2008 Rybka стала сильнейшей шахматной программой во всех известных рейтинг-листах[2][3][4][5][6], превосходя следующую по силе в среднем на 100 пунктов Эло. Rybka выиграла множество официальных Компьютерных шахматных турниров, включая Чемпионат мира по шахматам среди компьютерных программ в 2007, 2008 и 2009 году. Программа поддерживает однопроцессорный и многопроцессорный (SMP) режим. Всего поддерживается до 2048 ядер. Существуют как 32-битные, так и 64-битные версии программы.
Название
Слово Rybka означает на чешском и польском языках то же самое, что и в русском: «рыбка». В интервью на вопрос Александра Шмидта: «Вы выбрали имя Rybka, потому что программа всегда выскальзывает из рук будто рыбка?», Васик Райлих ответил: «Что касается имени Rybka, я прошу прощения, но это останется моей маленькой тайной»[7]. Существует предположение, что «Rybka» — ласковое имя его жены.
Сила игры
Версия 2.2n2 (доступна для бесплатной загрузки) имела рейтинг 3110 Эло[8] на 4-х ядерном процессоре, а Rybka 3 примерно на 100 пунктов сильнее, чем 2.2n2[9]. Текущая версия Rybka использует мультипроцессорность, увеличивая рейтинг примерно на 50 пунктов Эло при удвоении количества процессоров[10].
Оценочная функция Rybka рассматривается разработчиками как одно из главных преимуществ среди конкурирующих программ[11][12].
Использование битбордного (англ. bitboard) представления позиций увеличивает эффективность на 60% при запуске в 64-битном режиме, что в свою очередь приводит к приблизительно 40 дополнительным пунктам рейтинга Эло[13].
26 сентября 2008 вышел рейтинг-лист SSDF, с Deep Rybka 3 на первом месте с рейтингом 3238.
Внутренние качества
Rybka — программа с закрытым исходным кодом, однако некоторые детали известны: Rybka использует битбордное представление шахматных позиций[15] и альфа-бета отсечение с относительно большим «окном стремления» (англ. aspiration search window)[16]. Она использует очень агрессивное сокращение возможных решений, что приводит к несбалансированным деревьям поиска[17]. Детали функции оценки неизвестны, но начиная с версии 2.3.1 в ней использованы идеи гроссмейстера Ларри Кауфмана, бо́льшая часть которых была предложена в его публикациях 90-х годов о материальном дисбалансе[13][18].
В 2007 году Rybka была обвинена в том, что была основана на программе Fruit, но Райлих категорически отверг это утверждение.
Создатели
Ивета и Васик Райлихи
Команда Рыбки необычна среди создателей компьютерных шахматных программ — среди её главных участников немало сильных шахматистов[13]. Васик Райлих, главный автор Рыбки, является международным мастером (IM)[20]. Международный гроссмейстер (GM) Ларри Кауфман[21], победивший в 2008 году на чемпионате мира для ветеранов (старше 60 лет), начиная с версии 2.3 отвечает за функцию оценки. Ивета Райлих, главный тестер и идейный вдохновитель программы Rybka, является женщиной-гроссмейстером (WGM) и международным мастером (IM)[22]. Йерун Номен[23] (использовавший в работе программу REBEL) и Даг Нильсен[24], авторы дебютных книг — сильнейшие игроки в продвинутые шахматы.
История
В. Райлих начал работу над созданием компьютерной шахматной программы в начале 2003 года. 2 декабря 2005 года была выпущена бета-версия Rybka 1.0.
Участие в турнирах
В 2005 году, с 27 декабря по 30 декабря, Rybka участвовала в 15-м Международном компьютерном шахматном чемпионате в Падерборне (IPCCC). Rybka выиграла турнир, набрав 5½ очков из 7 возможных, опередив такие программы как Gandalf, Zappa, Spike, Shredder и Fruit.
На Интернет-чемпионате по шахматам (CCT8), проходившем с 25 февраля по 26 февраля 2006 года, Rybka победила, набрав 8 очков из 9 возможных, сыграв без поражений. В апреле 2006 года в основном турнире PAL/CSS Freestyle, играя без помощи человека Rybka 1.1 заняла первое место. В финальном турнире Rybka 1.1 разделила второе и третье место, позади Hydra. В 6-м турнире ICT в Лейдене в мае 2006 Rybka победила, набрав 8½ из 9 и обыграв Sjeng, Gandalf и Shredder. В 14-м Чемпионате мира по шахматам в Турине, Италия, в мае 2006, Rybka , игравшая под названием Rajlich, разделила второе место с программой Shredder, с которой сыграла вничью, после программы Junior, выигравшей титул Чемпиона мира 2006. В июне 2006 в главном турнире PAL/CSS Freestyle команда Rybka, игравшая под именем Rajlich, разделила первое место с Intagrand. В финале же Rybka заняла чистое первое место. В 2006 на Открытом компьютерном чемпионате Нидерландов по шахматам (ODCCC) Rybka 2.2 стала первой с максимальной суммой очков — 9 из 9 возможных[25]. В декабре 2006 Rybka участвовала в 17-м IPCCC. Rybka выиграла турнир, набрав 6½ очков из 7 возможных[26].
В феврале 2007 года Rybka участвовала в турнире CCT9 и выиграла его с 6/7 очками[27]. В 7-м турнире ICT в Лейдене в мае 2007 Rybka победила, набрав 7½ из 9 очков, впереди Zappa и HIARCS[28]. Rybka выиграла 15-й Чемпионат мира по шахматам среди компьютерных программ в июне 2007 с 10 очками из 11 возможных. Команда Rybka, игравшая под именем Rajlich, выиграла в июне 2007 турнир PAL/CSS Freestyle, завершив его с 6/9 очками. Позже в том же году она снова победила на ODCCC, набрав 8/9 очков[29].
В январе 2008 года Rybka заняла первое место в CCT10, набрав 5.5/7 очков[30]. В октябре 2008 Rybka выиграла 16-й Чемпионат мира по шахматам среди компьютерных программ, проходивший в Пекине, Китай, набрав 8/9. Месяц спустя Rybka выиграла 28-й ODCCC, набрав максимальные 9/9 очков[31].
В марте 2009 года Rybka выиграла CCT11 с 7.5/9 очками[32] и 17-й Чемпионат мира по шахматам среди компьютерных программ (Памплона, Испания), набрав 8/9 очков[33]. В октябре 2009 Rybka выиграла 29-й ODCCC с результатом 7.5/9.
Гандикап-матчи Рыбки против гроссмейстеров
После того, как первой среди программ Rybka выиграла гандикап-матч с гроссмейстером (у Яана Эльвеста, которому было предложена фора в пешку), Ларри Кауфман из команды Rybka пообещал собственный денежный приз, если человек сможет выиграть у Рыбки в матче из шести партий без форы. Гроссмейстер Яан Эльвест позже повторно сыграл с Рыбкой, имея двойное преимущество во времени на обдумывание ходов и белый цвет в каждой партии, при этом Rybka имела трёхходовую дебютную книгу, ограниченный размер хэша (512 Мб) и не имела доступа к базе эндшпильных окончаний (матч назывался «Всё, кроме пешки»). Матч закончился со счётом 4.5-1.5 после трех побед Рыбки и трех ничьих[35].
В марте 2007 года Rybka играла гандикап-матч из восьми партий против гроссмейстера Романа Джинджихашвили чёрными «без пешки и хода», с 3 марта по 8 марта. Результат был 4—4, после 2 побед Рыбки, 4 ничьих и 2 поражений[36].
В сентябре 2008 года Rybka играла гандикап-матч против гроссмейстера Вадима Милова, своего сильнейшего соперника в подобных матчах (Милов на тот момент имел рейтинг Эло 2705, 28-й в мире). Результатом была победа человека, доставшаяся Милову с трудом. В двух партиях без форы Милов проиграл Рыбке белыми 1½-½. Имея преимущество «в пешку и ход» он выиграл 1½-½. Также он победил 2½-1½ (3 ничьи, 1 победа), играя черными без коня, а Rybka без ладьи.
Матч с Zappa
В сентябре 2007 года шахматная программа Zappa победила Рыбку в матче со счетом 5½-4½. Ключевой была 180-ходовая четвёртая партия[38], которая могла закончиться вничью при соблюдении правила 50 ходов. Однако, чтобы избежать ничьи на 109-м ходу вследствие данного правила, из-за особенности программы Рыбка пожертвовала свою пешку. Потеря пешки в конечном счете позволила Zappa свести на нет обороноспособность Рыбки и выиграть партию.
Версии
* 201x-xx-xx Rybka 4
* 2008-07-29 Rybka 3 UCI
* 2007-06-19 Rybka 2.3.2a UCI
* 2007-03-02 Rybka 2.3.1 UCI
* 2007-02-15 Rybka 2.3 и 2.3LK (Ларри Кауффман) UCI
* 2006-11-10 Rybka 2.2 UCI
* 2006-09-26 Rybka 2.1o UCI
* 2006-07-17 Rybka 2.1 UCI
* 2006-06-10 Rybka 2.0 Beta
* 2005-10 Rybka 1.0 Beta
Версия 3
В то время как предыдущие версии Rybka были выпущены исключительно компанией Convekta, Rybka 3 была выпущена совместно ChessBase и Convekta[40]. Хотя Rybka 3 остается шахматной программой с UCI графическим интерфейсом, она имеет дополнительные особенности, когда выполняется в пользовательской оболочке ChessBase или Convekta[1]. В интервью с Франком Куизинским Васик Райлих рассказал о планах относительно будущего графического интерфейса пользователя (GUI), который «должным образом отобразит шахматное знание пользователю»[11], наиболее вероятно в форме графической оценки фигур на доске. Графический интерфейс пользователя, названный Aquarium («Аквариум»), был выпущен компанией ChessOK, прежде известной как Convekta[41].
Поддержка Chess960 (шахмат Фишера) была осуществлена для шахматного турнира в Майнце 2007 года, где впоследствии Rybka выиграла компьютерный турнир по шахматам Фишера[42][43].
Было много общих усовершенствований силы игры, включая улучшение многопроцессорной производительности, увеличенную эффективность поиска и лучшую оценку позиции. Созданы три программных стиля: оптимальный, человеческий и динамический. Дебютная книга теперь продается как отдельный продукт[1]. Рейтинг-листы шахматных программ показали, что Rybka 3 превышает рейтинг предыдущей версии Rybka практически на 100 пунктов Эло.
Выпуск будущих дополнений
* Реальная поддержка Linux была подтверждена без указания определенной даты. План выпуска программы на не-Windows платформах ожидается после завершения Rybka версии 3.0. Однако Rybka работает под программным обеспечением Wine, а 64-битовая Rybka выполняется и под Linux, и под Mac OS X с использованием экспериментального, Rybka-определенного уровня трансляции, названного «microwine»[45].
* Поддержка Pocket PC и подобных мобильных устройств[46].
Райлих утверждал, что Rybka продолжит использовать открытые протоколы, как для нормального функционирования, так и для данных, представленных Rybka 3 GUI.
Конфликт со Strelka
В мае 2007 года появилась новая шахматная программа Strelka, предложенная Юрием Осиповым. Вскоре возникли утверждения, что Strelka была клоном Rybka 1.0 beta в том смысле, что это была перепроектированная и немного изменённая версия Rybka[47]. Некоторые из шахматистов нашли, что у Strelka идентичный с Rybka анализ во множестве различных ситуаций, в некоторых случаях даже те же самые ошибки и слабости. Осипов, однако, неоднократно заявлял на форумах, что Strelka была основана на Fruit, а не Rybka, и что любые общие черты были или потому, что Rybka также была основана на Fruit, или из-за настроек функции оценки, сделанными близкими к Rybka насколько возможно[48][49].
С выпуском Strelka 2.0 beta был включен исходный код. В. Райлих, создатель Rybka, заявил «очевидность» того, что Strelka 2.0 beta была клоном Rybka 1.0 beta, хотя не без некоторых усовершенствований определенных областей. На основе этого он назвал код своим собственным и намеревался повторно выпустить его под собственным названием[50], хотя позже он этого не сделал. Он также утверждал, что «Yuri Osipov» был псевдонимом.
Авторы рейтинга CCRL исключили Strelka из официального списка, посчитав её разновидностью программы Rybka[51]. Авторство Осипова поддерживают Bryan Hofmann, Dann Corbit и Сергей Марков (Sergei S. Markoff), которые имели возможность познакомиться с исходными файлами.
Конфликт с IPPOLIT
Шахматная программа IPPOLIT была выпущена в октябре 2009 года со своим исходным кодом. Некоторые тестеры утверждают, что IPPOLIT сильнее, чем Rybka 3[53][54], в то время как другие независимые источники утверждают, что Rybka и IPPOLIT имеют примерно одинаковую силу, работая на единственном основном центральном процессоре. Васик Райлих, автор Rybka, сослался, что IPPOLIT может быть декомпилированной версией Rybka, и что вовлечённые люди держали его в курсе своего продвижения через электронную почту[55]. На октябрь 2009 года нет никакого категорического доказательства относительно происхождения IPPOLIT, является ли она оригинальной работой или клоном. Несмотря на мнение Райлиха существует утверждение, что IPPOLIT не клон Rybka из-за значимых различий, таких как меньшая используемая область памяти и различное знание эндшпиля, особенно способность превращения пешки в слона, которое не поддерживается Rybka.
Ссылки:
Официальная Интернет-страница
Официальный форум
Игра Rybka на ChessGames.com
Игра против Rybka
Рейтинг-лист CCRL
Рейтинг-лист CEGT