Стратегии — один из самых давних и почтенных жанров компьютерных игр. Ценители жанра вроде вашего покорного слуги проводили в них тысячи и тысячи часов — и, судя по объёмам дофамина и эндорфинов, это время точно не было потрачено впустую (ну, и мозги это дело прокачивает неплохо, пожалуй). Но с чего всё началось? И какая компьютерная стратегия на самом деле была первой?
Как нетрудно догадаться, первой стратегической игрой, которой человек попытался обучить машину, были шахматы. Причём самая ранняя попытка ознаменовалась курьёзом вполне в духе авантюрного и ироничного 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-х они стали уверенно побеждать топовых гроссмейстеров. Ну а ныне люди даже не берутся всерьёз противостоять мощным шахматным алгоритмам: дело это по определению проигрышное.
А вот в более комплексных и сложных стратегиях у ИИ пока что это не слишком получается, несмотря на усилия разработчиков. Почему так — тоже попробуем разобраться дальше.
Оставайтесь с нами!
Комментарии (11)
kox
24.06.2023 16:35+2Компьютер, играя в шахматы просто ищет оптимальный ход, в зависимости от расположения фигур на доске.
Человек же, играя с человеком учитывает не только шахматы на доске, но и просчитывает то, какой ход наиболее вероятно сделает соперник, смотрит на его поведение, эмоциональное состояние, невербальные жесты. Противник может ошибиться, не заметить что-то на доске, допустить ошибку.
Поэтому я думаю, что для компьютера шахматы- математика, для человека- стратегия.
vkomen
24.06.2023 16:35+2Это скорее верно про игру в покер))) Хотя психологические моменты тоже не стоит сбрасывать со счетов. Мне понравилось такое определение: стратегия - это действия в условиях неполной информации
vkomen
Берусь утверждать, что шахматы - не стратегическая игра ни разу. Есть такая бесплатная программа StockFish. При этом - одна из сильнейших в мире. Какое-то время назад я с ней игрался, и даже прикрутил ее к простому визуальному движку (можно посмотреть по ссылке http://vkchess.1gb.ru/ )
Так вот, программа работает так: ей дается на вход текущая конфигурация, и она выдает оптимальный следующий ход. После хода противника происходит новая оценка - и снова оптимальный ход. Просчитывать она может вперед на несколько ходов (говорят, что лучшие компьютеры это делают на 10 шагов вперед), но всяко, если оценка меняется после каждого хода - какая это стратегия??? Это сиюминутное реагирование, не более
Areso
у живого человека вполне может быть стратегия на партию.
то, что у ряда компьютерных "ИИ" нет стратегий на партию - это лишь особенность реализации.
vkomen
У человека - да. Это типа задуманной "многоходовки". Но получается, что подход компьютера в этой области бьет эту стратегию, просто принимая сиюминутно наиболее выгодное решение, разве нет
Areso
Да, но это лишь благодаря тому, что ему так "выгоднее" (он считает быстрее, только и всего, причем может себе позволить это делать каждый раз, а не раз 1-2-3 раза за партию).
klimkinMD
Компьютерные шахматы, это не совсем ИИ (по крайней мере, -- не второе "И"), это оценочная функция и метод перебора позиций за отведённое время (позиция с максимальным значением оценочной функции -- следующий ход, кстати оценочную функцию можно, мне кажется, называть стратегией). Мне кажется, это упражнение на подступах к ИИ.
Когда-то было популярно формулировать "интеллектуальные" задачи. Мне нравится такая: квадратное поле 8х8 клеток можно полностью закрыть костяшками домино, если вырезать две клетки на противоположных (по диагонали) углах поля, можно ли опять закрыть его полностью костяшками домино? Главное в объяснении ответа, полный перебор, ответ не "интеллектуальный".
Areso
Ну, не виноват я в том, что компьютерные игроки всю дорогу назывались "AI" (хотя интеллекта в них, конечно же, не было).
geher
Шахматы - это матричная игра с тграниченным числом состояний (как крестики-нолики 3х3). Гаверняка у нее есть решение, гарантирующее победу одной стороны или ничью.
Но есть маленькая проблема. Количество состояний хоть и конечно, но очень велико. В результате этого люди, играя между собой, вполне могут рассматривать как стратегическую, и играть ссоответствующим образом.
karabas_b
Все так называемые стратегические игры на самом деле скорее тактические.
TimID
В том то и дело, что стратегия - это ваш план игры в целом, например, уходить в сицилианскую защиту. А локальные "сиюминутные" ходы - это тактика.
И современные программы считают на все ходы вперед. Не полностью все возможные ходы - это не нужно при современных системах оценки позиций, но достаточное количество для успешного прогнозирования оптимальной последовательности ходов из текущей ситуации.