«Рыбка» раздора

(Апрель 2012)

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

chess-rybka-dv

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

Фрукт против Рыбки

В июне 2011 года в мировых средствах массовой информации было широко объявлено, что Международная ассоциация компьютерных игр или ICGA (International Computer Games Association) очень жестко и с позором наказала одного из главных своих чемпионов.

В ходе расследования специальной комиссии, созданной по инициативе руководства Ассоциации, было установлено, что чешско-американский программист компьютерных шахмат Васик Райлих многократно нарушал одно из главных правил WCCC, то есть ежегодного чемпионата мира по компьютерным шахматам. Это правило касается оригинальности выставляемой на состязание программы.

В докладе, сопровождавшем заявление ICGA, было констатировано, что программа Райлиха Rybka (http://www.rybkachess.com/) содержала в себе «плагиат» – код из другой программы Fruit, созданной ранее французским разработчиком Фабьеном Летузье и распространяемой с открытыми исходниками.

За это нарушение правил Васик Райлих и его «Рыбка», добивавшиеся победы на четырех подряд чемпионатах мира 2007, 2008, 2009 и 2010 годов, были лишены всех завоеванных титулов, а в дополнение к этому наказанию программиста еще и пожизненно дисквалифицировали от участия во всех соревнованиях под эгидой ICGA.

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

Каждая программа должна быть оригинальной разработкой участников состязания. Те команды программистов, чьи коды были выведены из других программ или включают в себя игровые коды, написанные другими разработчиками, в документах заявки на участие должны назвать имена всех прочих разработчиков или указать на источник таких кодов. … [В спорных ситуациях для целей проверки] директору турнира по его требованию должна быть доступна распечатка всех кодов системы, относящихся к игре.

Именно это правило, собственно, и стало главной причиной жестких санкций, обрушившихся на «Рыбку» и ее создателя. По заключению следственной комиссии, во всех пяти случаях своего участия в чемпионатах мира, Васик Райлих злостно и умышленно нарушал Правило 2, выдавая чужую работу за свою собственную.

Райлих против всех

Программа Rybka, следует подчеркнуть, с самого начала распространялась ее автором как продукт с закрытым исходным кодом. И хотя глухие пересуды о том, что ранние версии «Рыбки» делали ходы, подозрительно похожие на игру более известных в ту пору программ Fruit и Crafty, начали звучать еще с 2007 года, подлинный скандал разразился лишь весной 2011.

Поводом же для него стали итоги большого состязания между Rybka и относительно новой, очень сильной программой Houdini бельгийского автора Роберта Гударта. Тот матч из 40 партий Rybka убедительно проиграла с разрывом в 7 очков, так что на начало 2011 Houdini обрела неофициальный статус сильнейшей шахматной программы в мире.

В ходе же эмоциональных обсуждений этого итога на сетевых форумах мало-помалу разгорелись споры об авторских приоритетах, о клонировании программ и о заимствуемых разработчиками друг у друга кодах.

Одни напирали на то, что «Гудини» – это переработка программ серии Ippolit (которую Райлих в свое время обозвал декомпилированным вариантом Rybka), а значит, Houdini следовало бы считать плагиаторской версией «Рыбки». Ну а оппоненты, соответственно, обратились к истории появления самой Rybka, призывая разобраться, наконец, не является ли она сама втайне построенной на кодах других движков.

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

Остудить накал страстей, впрочем, это заявление совершенно не помогло. Хуже того, вскоре в адрес ICGA появились и совершенно официальные призывы от видных членов сообщества – как следует, наконец, разобраться с темной историей вокруг происхождения Rybka.

В руководстве ICGA сочли эти выступления достаточно серьезными и создали для расследования кода «Рыбки» специальную комиссию, в работе которой сразу пригласили принять участие и самого автора программы. Однако Райлих полностью проигнорировал предложения заслушать его доводы в защиту себя и своего детища.

Когда же все 16 членов комиссии по окончании разбирательства единодушно вынесли вердикт о виновности программиста в плагиате, то Райлих расценил весь процесс расследования и его выводы как сделанные непрофессионально и с предубеждением, а выдвинутые против него обвинения назвал безосновательными…

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

ChessBase против ICGA

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

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

Хотя сам Васик Райлих и дальше предпочел сохранять молчание, в его защиту очень решительно и с развернутой аргументацией выступил доктор Серен Риис (Søren Riis), специалист по информатике из Лондона, много лет выполнявший функции модератора на одном из компьютерно-шахматных форумов. Иначе говоря, зная жизнь этого сообщества что называется изнутри, Риис собрал внушительный перечень критических свидетельств и претензий к тому, каким образом ICGA устроило «судилище» над Васиком Райлихом.

Этот документ в виде здоровенной статьи Рииса в январе 2012 был опубликован в четырех частях на известнейшем сайте ChessBase.com, что породило, естественно, еще одну волну горячих споров. Для тех, кто не в курсе, следует пояснить, что ChessBase – это наиболее заметный, вероятно, инфоресурс интернета, посвященный шахматам вообще и компьютерным шахматам в частности. Бизнесом германской компании ChessBase является продажа шахматных программ и баз данных, поддержка сайта шахматных новостей, а также крупного сервера онлайновых шахмат.

Поэтому когда критика расследования и наказания Райлиха стали доминировать на сайте ChessBase, руководство ICGA решило прореагировать по существу. В феврале 2012 президент Ассоциации доктор Дэвид Леви дал сайту обстоятельное интервью (http://chessbase.com/newsdetail.asp?newsid=7899), где в подробностях объяснил, как и почему все было сделано именно так, как сделано.

Как самое важное, Леви подчеркнул в заключение вот что.

Люди, выступающие в поддержку Райлиха, сильно критикуют различные аспекты процесса расследования, начиная с состава следственной комиссии и личностей в составе секретариата, далее переходят к критике собственно Правила 2, а затем жалуются на чрезмерную строгость санкций, наложенных на Райлиха после того, как в ICGA пришли к выводу о его виновности.

Но при этом, осознанно или нет, все критикующие упорно обходят стороной наиболее важный вопрос всей данной истории: нарушил он или же не нарушил базовое Правило № 2 для всех участников турниров ICGA, когда принимал участие в чемпионатах мира по компьютерным шахматам?

Фактически, никто так и не сумел опровергнуть вывод следственной комиссии и всерьез поставить под сомнение достоверность собранных ею свидетельств.

Васик Райлих действительно использовал код, заимствованный из программ Fruit и Crafty, он действительно не объявил об этом в заявках на участие в турнирах ICGA, и он действительно не пытался и не получал разрешения на использование кода от авторов этих программ.

Поэтому вряд ли удивительно, что в ICGA единодушно признали Райлиха виновным в нарушении базового правила турниров.

Именно в этом, уверен Леви, и заключается суть данного дела.

The END