Pull to refresh
2849.69
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

История компьютерных стратегий. Часть 1: «механический турок» и советско-американские шахматные киберматчи

Level of difficultyEasy
Reading time6 min
Views10K

Стратегии — один из самых давних и почтенных жанров компьютерных игр. Ценители жанра вроде вашего покорного слуги проводили в них тысячи и тысячи часов — и, судя по объёмам дофамина и эндорфинов, это время точно не было потрачено впустую (ну, и мозги это дело прокачивает неплохо, пожалуй). Но с чего всё началось? И какая компьютерная стратегия на самом деле была первой?

Как нетрудно догадаться, первой стратегической игрой, которой человек попытался обучить машину, были шахматы. Причём самая ранняя попытка ознаменовалась курьёзом вполне в духе авантюрного и ироничного XVIII столетия, когда вся просвещённая публика обожала хитроумные устройства, а возможности шестерёнок и часовых механизмов казались бесконечными. В 1769 году знаменитый изобретатель Вольфганг фон Кемпелен представил в Вене невероятную разработку «Механический турок» — автоматизированное устройство для игры в шахматы. Манекен в человеческий рост, одетый по османской моде того времени, рукой-манипулятором двигал фигуры на шахматной доске, установленной на солидных габаритов коробке. Внутри коробки вращались загадочные шестерни, а механизм приходилось периодически подзаводить ключом. Устройство произвело фурор при дворе австрийской императрицы Марии-Терезии, а затем отправилось в долгий тур по всей Европе.

«Механический турок» фон Кемпелена

Как считается, автомат играл в шахматы даже с монаршими особами, сумев победить таких великих стратегов и тактиков, как Фридрих II и Наполеон Бонапарт. Однако чуду техники было более чем прозаическое объяснение: внутри сидел скрытый системой зеркал вполне живой и очень толковый мастер игры, который с помощью воистину хитроумной механики фон Кемпелена видел ходы противника и двигал свои фигуры с помощью руки-манипулятора. Историки до сих пор гадают, кто именно играл за «пультом» — известно лишь с некоторой степенью вероятности, что в 1809 году Наполеона обыграл «турком» знаменитый шахматист Иоганн Баптист Альгайер. Никакого ИИ, само собой, в XVIII веке создать было нельзя. И всё же нельзя не отдать должное мастерству и изобретательности мастера Вольфганга.

Правда, не совсем понятно, как именно игрок туда помещался: оригинал механизма не сохранился

Однако идея о том, чтобы научить машину играть в шахматы, снова овладела научно-инженерными умами, как только уровень развития техники позволил хотя бы попытаться это сделать. Уже в 1912 году испанский изобретатель Леонардо Торрес-и-Кеведо создал шахматную машину El Ajedrecista, «шахматист». Она работала на реле, играла только за белые фигуры и могла выигрывать простейший эндшпиль, когда у белого игрока на доске оставались король и ладья, а у чёрных — только король. О ходах это порождение дизельпанка сигнализировало несколькими лампочками — фигуры двигал человек. А если игрок-человек нарушал правила игры, ходя фигурой короля не так, как ему полагается, машина возмущённо сигналила и при тройном нарушении прекращала игру.

Леонардо Торрес-и-Кеведо и его детище: в некотором смысле первая компьютерная игра

В 1920 году сын Леонардо Гонсало усовершенствовал устройство: теперь фигуры двигала сама машина с помощью магнитов, а при победе она объявляла сопернику шах и мат через громкоговоритель.

Испанские El Ajedrecista I и II — первые игровые ИИ в истории

В 1951 году начиналась эпоха полноценных компьютеров, и об их обучении игре в шахматы одновременно задумались уже Алан Тьюринг и один из основоположников кибернетики Норберт Винер. Впрочем, они не были первыми: Клод Шеннон ещё в 1950 году написал статью «Программирование компьютера для игры в шахматы», заложившую многие последующие успехи в этом направлении.

Передача эстафеты из рук в руки: Гонсало Торрес-и-Кеведо, сын Леонардо, демонстрирует усовершенствованный им шахматный автомат Норберту Винеру на Парижском кибернетическом конгрессе 1951 года

Уже в 1956 году в ядерной лаборатории Лос Аламоса написали программу для MANIAC I по игре в упрощённые шахматы на доске 6х6 без слонов и двойных ходов пешками: полноценную доску и полный набор правил один из первых фон-неймановских мейнфреймов ещё не тянул в принципе. Машина, конечно, тупила и тормозила, продула опытному шахматисту, но сумела-таки обыграть недавно научившуюся шахматам сотрудницу лаборатории. Естественно, никакого графического отображения не было: компьютер выдавал только ходы, а фигуры на вполне материальной доске двигали сами люди.

Один из авторов программы Пол Штейн и создатель MANIAC I Николас Метрополис с «лос-аламосскими шахматами»

В 1957 году американский компьютерщик из IBM (и шахматист в одном лице) Алекс Бернштейн при участии нескольких коллег написал первую в истории программу для полноценной игры в шахматы с компьютером для IBM 704. Правда, программа едва помещалась в невеликой памяти машины — зато для обдумывания хода ей требовалось всего лишь около восьми минут.

Шахматная программа Бернштейна выбирала наиболее вероятные плодотворные ходы и тщательно их исследовала, сравнивая один с другим по ряду параметров (большая база данных позволяла обсчитывать возможные движения фигур по полям доски). Также программа проверяла ситуацию и возможности в порядке убывания важности: для начала, не находится ли король под шахом? Если да, нужно или съесть угрожающую ему фигуру, или вывести короля из-под удара. Если шаха не было, программа просчитывала: можно ли съесть вражескую фигуру, не находится ли своя фигура под возможным ударом и что в данном случае было бы полезнее. Так, для её алгоритма спасти или взять ладью было важнее, чем спасти или взять пешку.

Алекс Бернштейн играет в шахматы со своей программой на IBM 704

Чем умнее и доступнее становились компьютеры, тем больше программистов разрабатывали шахматные программы для них — в том числе потому, что шахматы считались важной и полезной для интеллекта игрой, а крупные шахматные чемпионаты с битвами великих гроссмейстеров завладевали вниманием мировых СМИ и болельщиков лишь немногим меньше, чем футбольные или хоккейные матчи. Сделать программу, способную уверенно обыгрывать гроссмейстера, не удавалось до самых 90-х годов — но сделать это пытались многие, и далеко не только в США. Советские компьютерщики тоже обожали шахматы, разрабатывали программы для советских ЭВМ и при этом опирались на сильнейшую советскую шахматную школу со множеством имён мирового уровня.

Советская ЭВМ М-20, для которой в середине 1960-х годов был написан алгоритм для игры в шахматы

Это нашло отражение даже в творчестве Стругацких:

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

Масла в огонь мировой популярности шахмат подливала конкуренция советской и западных шахматных школ. Уже в 1966 году состоялся первый в мире советско-американский шахматный матч между компьютерными программами. Идея о нём возникла во время визита в СССР у американского программиста Джона Маккарти, участвовавшего в разработке шахматного алгоритма Kotok-McCarthy 1962 года для IBM 7090. Американец из Стэнфорда встретился с Владимиром Арлазаровым из Института теоретической и экспериментальной физики — который, в свою очередь, вместе с Анатолием Усковым, Георгием Адельсоном-Вельским и другими коллегами в 1964 году сделали шахматный алгоритм для ЭВМ М-20.

Владимир Львович Арлазаров — ведущий советский разработчик игрового ИИ для шахмат

Арлазаров и Маккарти «забились» на матч своих программ и компьютеров буквально по переписке — ходы передавались между ИТЭФ и Стэнфордом по телеграфу. Алгоритмы были уже более-менее проработанными: по словам Маккарти, их детище играло на уровне «продвинутого новичка, сыгравшего около сотни партий», и на тот момент это была лучшая шахматная программа в США. IMB 7090 для обсчёта одного хода требовалось от 5 до 20 минут. Советская ЭВМ была гораздо более медлительной: ход она обсчитывала примерно за ночь. Но… зато советский алгоритм оказался более совершенным. И выиграл в четырёх партиях со счётом 3:1.

Джон Маккарти играет с компьютером в шахматы, 1966 год

Впрочем, игра 1966 года была самодеятельностью учёных поверх границ, а первый официальный в мире чемпионат между компьютерными программами состоялся только в 1974-м. За СССР выступала программа «Каисса», написанная Арлазаровым на ассемблере на основе его наработок середины 60-х для британской ЭВМ ICL System 4/70. Программа была крайне продвинутой, имела дебютную книгу на 10 000 ходов, использовала новый алгоритм отсечения позиций и впервые использовала побитовое представление доски. «Каисса» умела производить анализ во время хода соперника, использовала эвристику нулевого хода и сложные алгоритмы для управления временем. И убедительно выиграла чемпионат у программ-конкурентов, принеся своим разработчикам золотую медаль. Впрочем, хорошим шахматистам-людям, даже крепким любителям, «Каисса» и другие компьютерные шахматисты 70-х всё же чаще проигрывали.

Фотографии и статистика первого чемпионата между игровыми ИИ

Однако успехи этих программ показали, что машины в принципе можно научить играть в игры стратегического и тактического характера — и далеко не только в шахматы. Уже в 70-е в США существовало немалое количество любимых гиками настольных стратегий. Идея прикрутить к ним ИИ и сразиться с компьютером — особенно всё более доступным в виде ПК — буквально витала в воздухе. Самые первые игры в жанре компьютерной стратегии (к которым мы будем относить и тактические игры, которые в английской терминологии часто рассматриваются как отдельная категория) увидели свет в конце 70-х годов. С рассказа о них мы начнём нашу следующую часть.

Многие источники называют первой компьютерной стратегией Invasion 1972 года от Magnavox — но это мнение категорически ошибочно

Ну а компьютерные шахматы продолжали бурно развиваться. В 1990-х они стали уверенно побеждать топовых гроссмейстеров. Ну а ныне люди даже не берутся всерьёз противостоять мощным шахматным алгоритмам: дело это по определению проигрышное.

А вот в более комплексных и сложных стратегиях у ИИ пока что это не слишком получается, несмотря на усилия разработчиков. Почему так — тоже попробуем разобраться дальше.

Оставайтесь с нами!

Tags:
Hubs:
Total votes 33: ↑32 and ↓1+42
Comments11

Articles

Information

Website
ruvds.com
Registered
Founded
Employees
11–30 employees
Location
Россия
Representative
ruvds