15.1. Игры двух лиц с полной информацией
15.1. Игры двух лиц с полной информацией
Игры, которые мы собираемся обсуждать в данной главе, относятся к классу так называемых игр двух лиц с полной информацией. Примерами таких игр могут служить шахматы, шашки и т.п. В игре участвуют два игрока, которые ходят по очереди, причем оба они обладают полной информацией о текущей игровой ситуации (это определение исключает большинство карточных игр). Игра считается оконченной, если достигнута позиция, являющаяся согласно правилам игры "терминальной" (конечной), например матовая позиция в шахматах. Правилами игры также устанавливается, каков исход игры в этой терминальной позиции.
Для игр такого рода возможно представление в виде дерева игры (или игрового дерева). Вершины этого дерева соответствуют ситуациям, а дуги — ходам. Начальная ситуация игры — это корневая вершина; листьями дерева представлены терминальные позиции.
В большинстве игр этого типа возможны следующие исходы: выигрыш, проигрыш и ничья. Мы будем рассматривать здесь игры, имеющие только два возможных исхода — выигрыш и проигрыш. Игры, в которых возможна ничья, можно упрощенно считать играми с двумя исходами — выигрыш и не-выигрыш. Двух участников игры мы будем называть "игроком" и "противником". "Игрок" может выиграть в некоторой нетерминальной позиции с ходом игрока ("позиции игрока"), если в ней существует какой-нибудь разрешенный ход, приводящий к выигрышу. С другой стороны, некоторая нетерминальная позиция с ходом противника ("позиция противника") является выигранной для игрока, если все разрешенные ходы из этой позиции ведут к позициям, в которых возможен выигрыш. Эти правила находятся в полном соответствии с представлением задач в форме И/ИЛИ-дерева, которое мы обсуждали в гл. 13. Между понятиями, относящимися к И/ИЛИ-деревьям, и понятиями, используемыми в играх, можно установить взаимное соответствие следующим образом:
Очевидно, что аналогичным образом понятия, относящиеся к поиску в И/ИЛИ-деревьях, можно переосмыслить в терминах поиска в игровых деревьях.
Ниже приводится простая программа, которая определяет, является ли некоторая позиция игрока выигранной.
выигр( Поз) :-
терм_выигр( Поз).
% Терминальная выигранная позиция
выигр( Поз) :-
not терм_проигр( Поз),
ход( Поз, Поз1), % Разрешенный ход в Поз1
not ( ход( Поз1, Поз2),
not выигр( Поз2) ).
% Ни один из ходов противника не ведет к не-выигрышу
Здесь правила игры встроены в предикат ход( Поз, Поз1), который порождает все разрешенные ходы, а также в предикаты терм_выигр( Поз) и терм_проигр( Поз), которые распознают терминальные позиции, являющиеся, согласно правилам игры, выигранными или проигранными. В последнем из правил программы, содержащем двойное отрицание (not), говорится: не существует хода противника, ведущего к не выигранной позиции. Другими словами: все ходы противника приводят к позициям, выигранным с точки зрения игрока.
Рис. 15.1. Сложность игровых деревьев в шахматах. Оценки основаны на том, что в каждой шахматной позиции существуют приблизительно 30 разрешенных ходов я что терминальные позиции расположены на глубине 40 ходов. Один ход равен двум полуходам (по одному полуходу с каждой стороны).
Так же, как и аналогичная программа поиска в И/ИЛИ-графах, приведенная выше программа использует стратегию в глубину. Кроме того, в ней не исключается возможность зацикливания на одних и тех же позициях. Попытка устранить этот недостаток может привести к осложнениям, поскольку правила некоторых из игр допускают такое повторение позиций. Правда, разрешение повторять позиции часто носит условный характер, например по шахматным правилам после троекратного повторения позиции может быть объявлена ничья.
Программа, которую мы составили, демонстрирует основные принципы программирования игр. Но практически приемлемая реализация таких сложных игр, как шахматы или го, потребовала бы привлечения значительно более мощных методов. Огромная комбинаторная сложность этих игр делает наш наивный переборный алгоритм, просматривающий дерево вплоть до терминальных игровых позиций, абсолютно непригодным. Этот вывод иллюстрирует (на примере шахмат) рис. 15.1: пространство поиска имеет астрономические размеры — около 10120 позиций. Можно возразить, что в дереве на рис. 15.1 встречаются одинаковые позиции. Однако было показано, что число различных позиций дерева поиска находится далеко за пределами возможностей вычислительных машин обозримого будущего.
Проект
Напишите программу для какой-нибудь простой игры (такой, как ним), использующую упрощенный алгоритм войска в И/ИЛИ-дереве.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Виртуальные машины с полной эмуляцией гостевой ОС
Виртуальные машины с полной эмуляцией гостевой ОС Проекты, поддерживающие технологию полной эмуляции, работают по принципу интерпретации инструкций из системы команд гостевой ОС. Поскольку при этом полностью эмулируется поведение как процессора, так и всех внешних
11.1. Работа с информацией
11.1. Работа с информацией Любая программа или сценарий работают с информацией, то есть получают некие данные, обрабатывают их согласно своему алгоритму, а затем обычно возвращают результат в виде изображения на экране или бумаге, звука, файла, сигнала другой программе и
На полной скорости
На полной скорости Некоторые игроки Minecraft изучили скорость и факторы, влияющие на движение при использовании энергорельсов. Результаты исследований показали, что для достижения максимальной скорости на ровном участке пути (для вагонетки с пассажиром) нужно
Работа с информацией
Работа с информацией Любая информация как совокупность неких знаний, данных и сведений может быть подвергнута обработке и трансформации. Это в полной мере относится и к той информации, которую мы называем черным PR, вне зависимости от каналов ее распространения.Еще в 30-е
Глава 5. Наполните сайт полезной информацией
Глава 5. Наполните сайт полезной информацией Для эффективного продвижения бизнеса в Интернете недостаточно просто создать сайт, его необходимо наполнить продающими элементами, настроить рекламную кампанию, а также наполнить сайт полезной информацией.Но для начала
Программы-«администраторы» : управление информацией на диске
Программы-«администраторы» : управление информацией на диске Чаще всего мы работаем лишь с кусочками информации на нашем винчестере – отдельными файлами или папками. Но иногда возникает ситуация, когда жесткий диск для нас вновь становится монолитным, единым, а мы,
Этот будильник разбудит хозяина суровой и бодрящей информацией Николай Маслухин
Этот будильник разбудит хозяина суровой и бодрящей информацией Николай Маслухин Опубликовано 11 ноября 2013 Американские дизайнеры Алексис Бедорет, Раян Гури и Тод Сьюзмен считают, что современный будильник должен быть интерактивным и личностно
ИГРЫ: Ролевые игры: Жизнь офлайн
ИГРЫ: Ролевые игры: Жизнь офлайн Автор: Эмма Михейкина emma@goldeforests.ruКомпьютерная игра — это всегда имитация. Развитие технологий все сильнее приближает ее к реальности, но никакие пиксельные шейдеры и многомерный звук не способны свести это различие на нет. И если,
ИГРЫ: Маленькие убийцы: Простенькие компьютерные игры против дорогих блокбастеров
ИГРЫ: Маленькие убийцы: Простенькие компьютерные игры против дорогих блокбастеров Автор: Родион НасакинПричитания в прессе по поводу далекого от безоблачного положения индустрии компьютерных игр стали привычными. Рынок лихорадит уже второй год, потому что игры
Торговля – тоже обмен информацией
Торговля – тоже обмен информацией В настоящее время одним из самых дорогих ресурсов стал человеческий труд. Как следствие, важнейшее направление развития современной экономики – снижение трудозатрат на всех этапах производства и обслуживания. Одновременно стоит
Компьютер как инструмент для работы с информацией
Компьютер как инструмент для работы с информацией Как было сказано раньше, компьютер – устройство для работы с информацией. Исходя из этого он должен уметь выполнять следующие действия.? Вводить исходные данные и команды. Современный компьютер позволяет вводить
Предотвращение отказа от участия в обмене информацией
Предотвращение отказа от участия в обмене информацией Сервис предотвращения отказа от участия в обмене информацией генерирует электронные доказательства времени подписания или передачи данных и аутентификации источника данных, которые могут использоваться для того,
8 Кто владеет вашей информацией?
8 Кто владеет вашей информацией? В предыдущих семи главах мы увидели, как много различных способов сбора персональной информации, использования ее без нашего разрешения, а зачастую и против нас. В этих главах я показал, что самым лучшим решением по предотвращению
Центр обмена информацией о праве на приватность [Privacy Rights Clearinghouse]
Центр обмена информацией о праве на приватность [Privacy Rights Clearinghouse] Располагающийся в Калифорнии и возглавляемый Бет Гивенс [Beth Givens] Privacy Rights Clearinghouse обладает большим количеством информации для потребителей, столкнувшихся с нарушением приватности. В Центре функционирует