Литмир - Электронная Библиотека
Содержание  
A
A

За время поездки Маккарти познакомился с Кронродом и узнал о советских усилиях в области шахматного программирования, тогда же и родилась идея об организации первого международного матча: программа ИТЭФ против детища Маккарти.

Позже Маккарти вспоминал крылатую фразу Кронрода: «Шахматы — это дрозофила искусственного интеллекта». Рассуждая об этой фразе, он заметил, что, с одной стороны, шахматы совершенно очевидно не являются «дрозофилой» для всех областей ИИ, но, с другой стороны, и дрозофила не является «дрозофилой» для всех исследований в области генетики[701].

Матч между советской и американской шахматными программами начался в ноябре 1966-го и продлился около года: четыре партии игрались одновременно, а ходы программ передавались по телеграфу. Программа ИТЭФ одержала победу в матче со счётом 3 : 1 (две победы и две ничьих).

По оценкам гроссмейстеров Бронштейна и Таля, программа ИТЭФ играла в силу третьего шахматного разряда[702].

До наших дней сохранился интереснейший документ — исходный код шахматной программы ИТЭФ для машины М-20[703]: 121 страница бланков, заполненных машинными кодами, снабжёнными загадочными комментариями типа «Таня не журись», «шлёп», «дребедень», «пуп» и даже «ухуду пешки», в полной мере даёт представление о секретных техниках советских программистов 1960-х. На самом деле за этими словами нередко скрывались аббревиатуры названий соответствующих подпрограмм. Например, УХУДУ — подпрограмма упорядочения ходов, удовлетворяющих данному условию, ПУП — подпрограмма переупорядочения ходов[704], [705].

Охота на электроовец. Большая книга искусственного интеллекта - image121.jpg

Команда Кронрода придерживалась подхода, который получил название «программирование в содержательных обозначениях». Этот метод, предложенный в 1953 г. Александром Брудно, предполагал использование для написания программ специальных бланков, в правой части которых записывались машинные коды, а в левой — соответствующие им команды в содержательной, удобной для чтения человеком форме[706]. Естественными противниками этого подхода были сторонники языков высокого уровня, таких как алгол, к числу которых относились уже знакомые нам академик Ершов, Владимир Курочкин (между прочим, автор знаменитой реализации Алгол-60 для машин БЭСМ, получившей прозвище «Алгол Курочкина»), а также Константин Семендяев, соавтор «Справочника по математике для инженеров и учащихся втузов», в народе называвшегося не иначе как «Бронштейн — Семендяев».

В 1960-е между сторонниками обоих лагерей разразилось эпическое сражение, выплеснувшееся на страницы периодических изданий в виде ряда писем, рецензий и статей[707]. Сторонники «программирования в содержательных обозначениях» настаивали на неэффективности кода, производимого компиляторами алгола, неудобстве отладки (важно понимать, что в 1960-е отладка программ, написанных на алголе, всё равно происходила в машинных кодах) и на том, что экономия, достигаемая за счёт автоматизации перевода программы из человеко-читаемой формы в машинный код, является эфемерной. Гораздо проще нанять кодировщиц, месячная заработная плата которых сопоставима с себестоимостью часа работы машины, которые будут переводить в машинный код «содержательные обозначения»[708]. В конечном счёте победа досталась сторонникам языков высокого уровня, хотя программирование в машинных кодах иногда применяется и в наши дни там, где важно добиться максимальной производительности программ. В частности, современные шахматные программы нередко содержат вставки на языке ассемблера[709] или напрямую в машинных кодах.

К сожалению, в развитие шахматного проекта ИТЭФ вмешалась политика, и в этот раз, увы, вовсе не в позитивном ключе. В 1968 г. Кронрод стал одним из подписантов «Письма девяноста девяти» — коллективного открытого письма советских математиков в защиту своего коллеги Александра Есенина-Вольпина, принудительно помещённого в психиатрическую больницу в связи с его диссидентской деятельностью. Вероятно, это и стало причиной увольнения Кронрода и ряда его коллег из ИТЭФ. Адельсон-Вельский, Арлазаров и Усков перешли в Институт проблем управления АН СССР, где спустя некоторое время стартовала работа над новой шахматной программой, основанной на исходных текстах программы ИТЭФ. В её разработке участвовали Михаил Донской, Александр Битман, Андрей Леман, А. М. Бараев и Марианна Розенфельд. Последняя и предложила рабочее название программы: КВО, то есть программа, которая всех обыгрывает[710].

Аппаратной платформой для новой программы стал один из британских мейнфреймов ICL 4/70, закупленных СССР в начале 1970-х. Эта машина была совместима с IBM 360, при этом на неё не распространялись экспортные торговые ограничения времён холодной войны[711]. В те годы активно обсуждалась возможность широкой программы кооперации с компанией ICL, которая предлагала передачу СССР технической документации на машины, совместную работу над программным обеспечением, а также общий проект по созданию ЭВМ четвёртого поколения[712].

В 1972 г. программа, разработанная сотрудниками Института проблем управления, играла уже весьма неплохо, и газета «Комсомольская правда» предложила организовать на своих страницах товарищеский матч машины против читателей. Именно в ходе подготовки к этому матчу шахматный обозреватель «Комсомолки» Виктор Хенкин предложил дать программе имя «Каисса» в честь богини-покровительницы шахмат[713].

Забавно, что в некоторых источниках Каиссу называют «древнегреческой богиней шахмат» или «древнегреческой музой шахмат». Разумеется, это нонсенс. Прототип современных шахмат — индийская игра чатуранга (санскр. चतुरङ्ग; caturaṅga, от названия боевого построения, упоминающегося в Махабхарате), она возникла в Индии во времена правления династии Гуптов примерно в V в., то есть спустя шесть веков после завершения древнегреческого периода. На территории Греции эта игра под названием «затрикион» (zατρίκιον) появляется в византийский период, ещё несколькими веками позже[714]. Каисса — героиня одноимённой поэмы английского писателя-востоковеда Уильяма Джонса, написанной в 1763 г. и опубликованной в 1772 г. Сюжет поэмы незатейлив: Марс, пленённый красотой дриады Каиссы, смог добиться её взаимности лишь благодаря изобретению шахмат[715]. Вполне вероятно, что имя Каисса восходит к имени нимфы Скаккии (Scacchia) — героини опубликованной в 1527 г. поэмы Марко Джироламо Виды «Игра в шахматы» (Scacchia, Ludus) (шахматы в средневековой латыни обозначались словом scacci)[716]. Так что, вероятно, «Каисса» — это всё та же многострадальная «чатуранга», совершившая полное приключений лингвистическое путешествие.

Но вернёмся к матчу на страницах «Комсомольской правды». Его регламент был прост: матч состоял из двух партий, игравшихся с переменой цвета. На совершение хода уходила одна неделя. Ходы читателей выбирались путём голосования. В субботу в газете публиковалась очередная позиция, до вторника редакция получала письма, в четверг ночью «Каисса» «обдумывала» свой ответ. Матч продлился почти год — с января по ноябрь 1972 г. — и завершился победой людей со счётом 1,5 : 0,5[717].

вернуться

701

McCarthy J. (2005). The History of Computer Chess: An AI Perspective (Video). Mountain View, CA, USA: Computer History Museum // https://www.youtube.com/watch?v=AvU_fnLWRRk

вернуться

702

Кронрод А.С. (2004) Беседы о программировании / Предисл. Л. А. Кронрод. Послесл. В. Л. Арлазарова. Изд. 2-е, стереотипное. — М.: Едиториал УРСС // https://nsu.ru/xmlui/handle/nsu/9050

вернуться

703

http://greko.su/m20-itef.pdf

вернуться

704

Рузайкин Г. И., Коновалов С. П. (2005). Рассказ «бабки-повитухи» / Мир ПК. № 10 // https://www.osp.ru/pcworld/2005/10/317270/

вернуться

705

Адельсон-Вельский Г. М., Арлазаров В. Л., Битман А. Р., Животовский А. А., Усков А. В. (1970). О программировании игры вычислительной машины в шахматы / Успехи математических наук. Т. 25, вып. 2 (152). С. 221—260 // http://mi.mathnet.ru/umn5324

вернуться

706

Гутер Р. С., Арлазаров В. Л., Усков А. В. (1965). Практика программирования: Справочник. — М.: Наука.

вернуться

707

Ершов А.П., Лавров С.С., Семендяев К.А. (1966). Письмо в «Литературную газету» / Архив академика А. П. Ершова // http://ershov.iis.nsk.su/node/806835

вернуться

708

Гутер Р. С., Арлазаров В. Л., Усков А. В. (1965). Практика программирования: Справочник. — М.: Наука.

вернуться

709

* Язык ассемблера (assembly language) — язык программирования низкого уровня. Он представляет собой систему обозначений, используемую для представления в удобочитаемой форме программ, записанных в машинном коде. Команды языка соответствуют отдельным командам, выполняемым процессором машины, или их коротким последовательностям. Поскольку наборы команд различаются в зависимости от используемой аппаратной платформы, в действительности мы имеем дело не с единым языком, а с классом аппаратно-специфичных языков, хотя и разделяющих обычно некоторые условные обозначения. Например, команда ADD, используемая для сложения чисел, почти во всех этих языках называется именно так.

вернуться

710

Костинский А. (2002). Компьютерные программы, как конец спортивных шахмат / Радио Свобода // https://www.svoboda.org/a/24203756.html

вернуться

711

Berenyi I. (1970). Computers in Eastern Europe / Scientific American, Vol. 223, Iss. 4.

вернуться

712

Малиновский Б. Н. (1995). История вычислительной техники в лицах. — К.: фирма «КИТ», ПТОО «А.С.К.» // http://lib.ru/MEMUARY/MALINOWSKIJ/0.txt

вернуться

713

Донской М. История «Каиссы» / Виртуальный компьютерный музей // http://www.computer-museum.ru/games/kaissa1.htm

вернуться

714

Chess: Ancient precursors and related games / Encyclopædia Britannica. 2002 // https://www.britannica.com/topic/chess

вернуться

715

Chalmers A., Johnson S. (1810). The Works of the English Poets, from Chaucer to Cowper: Including the Series Edited with Prefaces, Biographical and Critical. J. Johnson // https://books.google.ru/books?id=b0LVAAAAMAAJ

вернуться

716

Murray H. J. R. (2015). A History of Chess. Skyhorse Publishing // https://books.google.ru/books?id=dNSBCgAAQBAJ

вернуться

717

Донской М. История «Каиссы» / Виртуальный компьютерный музей // http://www.computer-museum.ru/games/kaissa1.htm

79
{"b":"936964","o":1}