Разработчики Rybka заявили, что их программа играла на кластере из пяти двухпроцессорных узлов по восемь ядер на узелВсего десять шахматных программ приняли участие в завершившемся в начале октября в Пекине чемпионате мира. Победителем стала программа Rybka, набравшая 8 очков из 9 возможных и не проигравшая ни одной партии.

После того как компьютерные программы не один раз доказали свое превосходство над лучшими гроссмейстерами мира, подобные чемпионаты приобретают все большее самостоятельное значение. Во всяком случае, в то время как дальнейший прогресс у человека незаметен, шахматные программы быстро развиваются, да и производительность компьютеров стремительно возрастает. Ряд программ-призеров прошедших всего несколько лет назад чемпионатов мира — например, Fritz и Diep3d — сегодня уступили дорогу программам нового поколения.

Участвовавшие в турнире программы разделялись на три категории: на любительские, полупрофессиональные и профессиональные. Любительские программы сделаны программистами, не являющимися профессиональными разработчиками игр и не имеющими коммерческого интереса относительно своих программ. Полупрофессиональные программы — это не являющиеся коммерческим продуктом разработки сотрудников компаний, создающих игры. А профессиональная программа — это коммерческий продукт.

В таблице представлены результаты турнира в Пекине вместе с данными об аппаратных средствах, использованных участниками. Вообще говоря, на чемпионатах мира среди компьютерных программ последние находятся в неравных условиях: те, у кого возможностей побольше, могут использовать более мощные компьютерные ресурсы и, следовательно, получают преимущество перед конкурентами. К сожалению, точные данные об использованных компьютерных средствах не приводятся, а те, что доступны, могут быть некорректными. Винсент Дипвин, автор Diep3d, предполагает, что только одна программа — Jonny — реально использовала кластер, поскольку распараллеливание шахматных программ в кластере — процесс сложный и не дающий заметного эффекта. Однако разработчики Rybka заявили, что их программа играла на кластере с процессорами Intel Harpertown (пять двухпроцессорных узлов по восемь ядер на узел) и что, напротив, современные SMP-серверы с многоядерными процессорами являются очень хорошей аппаратной базой для распараллеливания игры в шахматы.

Все программы-участники чемпионата были распараллелены. Исключением является единственный китайский участник чемпионата, Mobile Chess. Это программа для мобильного телефона, поэтому то, что она проиграла все партии, вполне естественно.

Большинство участников чемпионата использовали удаленный доступ к компьютерам, хотя Internet-соединение турнирного зала было относительно медленным. По правилам соревнований, партии проводились с контролем 2 часа на 60 ходов, а затем еще по полчаса до конца партии. Один из разработчиков каждой программы-участника выступал в качестве оператора. Исправление ошибок оператора (например, сделан невозможный ход) допускалось только с разрешения директора турнира. Для смены компьютера, на котором играла программа, или изменения параметров, влияющих на ее работу, также требовалось разрешение директора.

Программы и программисты

Про наиболее успешные шахматные программы стоит сказать особо. Немецкая Shredder — неоднократный чемпион мира, в том числе по быстрым шахматам — в последние несколько лет в тройку призеров не попадала. Она написана на языке Си, и поэтому относительно легко переносима на различные программно-аппаратные среды. Если разработчик «движка» Shredder указан только один, то в создании программы Cluster Toga, впервые вышедшей на международную арену в этом году, участвовало шесть человек. Занявшая третье место Junior — один из самых титулованных участников, многократный чемпион мира (последний раз — в 2006 году), в создании движка для нее участвовало два разработчика из Израиля. Эта программа обыгрывала и гроссмейстеров, в том числе Илью Смирина, Льва Псахиса и Юдит Полгар.

Также два главных разработчика указано и у серебряного призера чемпионата, программы Hiarcs. Гарри Каспаров как-то заявил, что в позиционной игре она гораздо сильнее победившей ее знаменитой Deep Blue. Она также неоднократно побеждала в матчах против гроссмейстеров. В новой версии Hiarcs играет в более агрессивном атакующем стиле.

Главный разработчик нынешнего чемпиона, программы Rybka (кстати, победившей и в прошлом году) — 36-летний венгр, международный мастер Васик Раджилич. В команду создателей Rybka кроме него входят мастер ФИДЕ Иветта Раджилич (она отвечала за тестирование программы), голландец Жероен Нумен (библиотека дебютов) и два немецких студента. В разработке алгоритмов для Rybka принимал участие американский международный мастер ФИДЕ Ларри Кауфман.

В нынешнем году у Rybka появилась специальная «человеческая» версия — для игры с гроссмейстерами, а не с другими программами. Среди побед Rybka можно упомянуть выигрыш против бывшего советского гроссмейстера Романа Джинджихашвили, в котором последний играл все партии белыми, имея фору в одну пешку.

Шахматные программы сложны для программирования, их сложно отлаживать, и в них частенько встречаются ошибки. В качестве курьеза можно привести сыгранную на этом чемпионате партию Rybka — Shredder. В окончании, где Rybka имела перевес — качество против пешки, будущий победитель турнира объявила сопернику мат в... 1942 хода! Впрочем, это не помешало ей выиграть партию всего на 66-м ходу.

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

Поделитесь материалом с коллегами и друзьями

Купить номер с этой статьей в PDF