Каисса (программа)
«Каисса» — шахматная программа, разработанная в СССР в 1960-х годах[1], названа по имени богини шахмат Каиссы. В августе 1974 года программа стала первым чемпионом мира по шахматам среди компьютерных программ.
История
Непосредственным предшественником «Каиссы» была программа, созданная в Институте теоретической и экспериментальной физики (ИТЭФ) в 1966 году. Программа ИТЭФ была одной из первых полнофункциональных шахматных программ, написанных в СССР (ещё одна шахматная программа примерно в это же время была создана в Математическом институте имени Стеклова АН СССР под руководством Шуры-Буры[2]). Ранее в СССР уже создавались программы, способные разыгрывать определённые позиции из шахматных партий[3][4], но ни одна из них не являлась полноценной программой для игры в шахматы.
Разработка шахматной программы ИТЭФ для машины М-20 началась в 1960-х годах[5]. Созданием программы занимались Арлазаров, Адельсон-Вельский, Усков под общим руководством А. С. Кронрода. В 1967 году в матче из четырёх партий программа ИТЭФ обыграла шахматную программу Стэнфордского университета со счётом 3-1[6]. По оценкам гроссмейстеров, игравших с программой, она играла в силу третьего шахматного разряда[7]. В начале 1970-х годов на основе исходных текстов программы ИТЭФ началось создание новой шахматной программы, получившей название «Каисса».
Программа «Каисса» была создана в 1971 году сотрудниками Института проблем управления АН СССР Георгием Адельсон-Вельским, Владимиром Арлазаровым, и Михаилом Донским. Непосредственно над программой работали А. Битман, А. Бараев, А. Усков, А. Леман, М. Розенфельд. В 1972 году программа выступила в матче по переписке с читателями газеты «Комсомольская правда». Матч состоял из двух партий и был выигран читателями со счетом 1,5 на 0,5.
На 1-м Чемпионате мира по шахматам среди компьютерных программ в августе 1974 года в Стокгольме (Швеция) «Каисса» выиграла все четыре партии и стала первым чемпионом мира среди шахматных программ, обогнав программы «Chess 4», «Chaos» и «Ribbit», набравших по 3 очка[8]. В первенстве приняли участие 13 машин из 8 стран мира, передававшие свои ходы в зал проведения первенства оператору по телефону[9]. Турнир проводился пять вечеров в концертном зале отеля «Биргер яарл». Одновременно велось шесть партий. Разрешалось брать 30-минутный перерыв на устранение технических неполадок. Оператором по регламенту выступал автор программы или один из авторов, если их было несколько. Оператором в Стокгольме был Донской, а оператором в Москве — Арлазаров. «Каиссе» была вручена золотая медаль чемпиона мира среди шахматных программ. Медаль вручали президент ИФИП австралийский учёный Земанек и английский издатель Максвелл, на чьи деньги была сделана из чистого золота 110-граммовая медаль. Вручая медаль, Максвелл назвал авторов Каиссы первыми обладателями медали, из-за чего все корреспонденты сочли этот трофей переходящим. Однако потом Земанек официально объявил, что медаль вручена советским учёным навечно[10].
Организаторы турнира остались недовольны только тем, что лучшие программы турнира — «Каисса» и «Chess 4» — не сыграли друг с другом, поэтому после чемпионата «Каисса» и «Chess 4» сыграли партию, закончившуюся ничьей[11].
Успех «Каиссы» может быть объяснён многими заложенными в неё новшествами. В частности, программа имела дебютную книгу на 10000 ходов, использовала новый алгоритм отсечения позиций и впервые использовала побитовое представление доски. Также она могла производить анализ во время хода соперника, использовала эвристику нулевого хода и сложные алгоритмы для управления временем. В дальнейшем все эти новшества стали широко использоваться в шахматных программах. Программа была написана на ассемблере, работала на британской ЭВМ ICL System 4/70 (64-разрядный процессор, память — 24000 байт, быстродействие — 900 тыс. инструкций в секунду) и анализировала 200 позиций в секунду[12].
В августе 1968 года шотландский шахматист Дэвид Леви[13] поспорил на 1250 фунтов стерлингов с ведущими специалистами по искусственному интеллекту, что в течение десяти лет ни одна машина не сможет обыграть его в шахматы. 17 декабря 1977 года Дэвид играл с «Каиссой» и выиграл первую партию, после чего матч решили не продолжать[14].
2-й компьютерный шахматный чемпионат
Торонто, 1977
a | b | c | d | e | f | g | h | ||
8 | 8 | ||||||||
7 | 7 | ||||||||
6 | 6 | ||||||||
5 | 5 | ||||||||
4 | 4 | ||||||||
3 | 3 | ||||||||
2 | 2 | ||||||||
1 | 1 | ||||||||
a | b | c | d | e | f | g | h |
2-й Чемпионат мира прошёл в 1977 году в Торонто (Канада), и начался с неожиданного события. «Каисса», игравшая чёрными (см. диаграмму справа), отдала ладью ходом 34…Лe8? и проиграла. После того, как очевидный ход 34…Крg7 был введён в программу, «Каисса» объяснила свой «зевок» следующим вариантом: 34…Крg7 35.Фf8+!! Кр: f8 36.Сh6+ Сg7 37.Лc8+ и мат в два хода. Никто из шахматистов, присутствовавших на матче, эту комбинацию не обнаружил[15][16]. В результате проигрыша Каисса разделила 2—3 места с программой Duchess. Победила в чемпионате программа Chess 4.
На 3-м Чемпионате мира в сентябре 1980 года в Линце (Австрия) «Каисса» разделила с пятью другими программами 6—11 места[17], или, по версии одного из её авторов, 4—7 места[18]. Всего в чемпионате участвовали 18 программ. Правительство приняло решение прекратить работу над программой, поскольку время программистов лучше посвятить работе над практически полезными проектами[12].
В 1990 году версия программы «Каисса» для IBM PC заняла 4-е место на шахматной олимпиаде в Лондоне.
Примечания
- М. В. Донской «История Каиссы»
- В. Туманов. «Лучший ход» — за 58 секунд // Таль — Ботвинник: матч-реванш на первенство мира. Бюллетень Центрального шахматного клуба СССР. — 1961. — № 8. — С. 4—5.
- В. Смилга. Возможен ли шахматный автомат? // Шахматы в СССР. — 1956. — № 6. — С. 176—177.
- А. И. Китов, Н. А. Криницкий. Игра машин в различные игры // Электронные вычислительные машины. — М.: Академия наук СССР, 1958. — С. 60—62.
- Кронрод, 2004, с. 149.
- Адельсон-Вельский, 1970, с. 251—256.
- Кронрод, 2004, с. 154.
- Гик, 1983, p. 159.
- Гик, 1991, p. 36.
- Донской, 1974, p. 34.
- Донской, 1974, p. 38.
- Bill Wall, KAISSA Архивная копия от 24 сентября 2015 на Wayback Machine.
- Карпов, Гик, 1981, p. 151.
- David Levy, Monroe Newborn. More Chess and Computers: The Microcomputer Revolution, The Challenge Match. — Computer Science Press, 1980. — P. 6-8. — ISBN 0-914894-07-2.
- Карпов, Гик, 1981, p. 148.
- Гик, 1991, p. 39.
- 3rd World Computer Chess Championship — Linz 1980 (ICGA Tournaments) (недоступная ссылка). Дата обращения: 18 июня 2010. Архивировано 24 сентября 2015 года.
- QIP.RU (недоступная ссылка). Дата обращения: 18 июня 2010. Архивировано 11 декабря 2008 года.
Литература
- М. М. Ботвинник. Алгоритм игры в шахматы. — М.: Наука, 1968.
- Адельсон-Вельский Г. М., Арлазаров В. Л., Битман А. Р., А. А. Животовский и А. В. Усков. О программировании игры вычислительной машины в шахматы // Успехи математических наук. — Российская академия наук, 1970. — Т. XXV, вып. 2, № 152. — С. 221—260.
- Р. С. Гутер, М. В. Донской. Машина играет в шахматы // Квант. — 1974. — № 11. — С. 17—22.
- М. В. Донской. Чемпионат мира среди шахматных программ // Квант. — 1974. — № 12. — С. 34—38.
- мастер спорта В. Хенкин // Каисса — Чемпион Мира. Журнал «Наука и Жизнь», январь 1975, стр. 118—124
- А. Е. Карпов, Е. Гик. Часть вторая. ЭВМ за шахматной доской // Шахматный калейдоскоп. — М.: Наука, 1981. — (Библиотечка «Квант»).
- Е. Гик. Глава 15. ЭВМ и шахматы // Шахматы и математика. — М.: Наука, 1983. — (Библиотечка «Квант»).
- Адельсон-Вельский и др. Машина играет в шахматы. — М.: Наука, 1983.
- Е. Гик. Глава 2. Чемпионаты мира среди машин // Компьютер за шахматной доской. — М.: Просвещение, 1991.
- Кронрод. Беседа двенадцатая. Невычислительные задачи // Беседы о программировании. — М.: УРСС, 2004.
Ссылки
- Обнаружились исходные коды Каиссы для М-20 (PDF)
- Порт Каиссы на Turbo C
- The chess games of Kaissa
- «Шахматные программы перестали быть искусственным интеллектом, как только научились прилично играть». Интервью с Михаилом Донским, 8 августа 2008.
- Коллекция исторических фотографий на сайте Музея компьютерной истории
- Каисса на Chess Programming Wiki