- •Системы искуственного интеллекта.
- •Глава 8 Моделирование структуры мозга с помощью нейронных сетей………… 4
- •Глава 9 Моделирование деятельности человеческого коллектива
- •Глава 10 Поиск альтернативных решений…………………………………………………
- •Контрольные вопросы и задание……………………………………………………
- •Глава 11 Моделирование общения, восприятия и осуществления действий человеком.
- •8.1. Биологический нейрон.
- •11.15. Контрольные вопросы и задание
- •Глава 12 Настоящее и будущее искусственного интеллекта………………
- •Лекция 18 Глава 8 Моделирование структуры мозга с помощью нейронных сетей.
- •8.2. Модель искусственного нейрона.
- •8.3. Классификация нейронных сетей и их свойства.
- •Лекция 19
- •8.4. Теоретические основы построения и обучения нейронных сетей.
- •8.5. Алгоритм «обучение с учителем».
- •8.6. Алгоритм «обучение без учителем».
- •Лекция 20
- •8.7. Способы реализации нейронных сетей.
- •Практическое применение нейросетевых технологий.
- •Выводы по 8-ой главе.
- •Контрольные вопросы и задание.
- •Лекция 21
- •Глава 9 Моделирование деятельности человеческого коллектива
- •9.1. Основные понятия теории агентов.
- •Агент Датчики
- •Исполнительные механизмы
- •9.2. Поведение агентов.
- •Лекция 22
- •9.3. Определение характера среды.
- •Лекция 23
- •9.4. Структура агентов
- •Лекция 24
- •9.5. Мультиагентные системы.
- •9.6. Коллективное поведение агентов.
- •Лекция 25
- •9.7. Примеры мультиагентных систем
- •9.8. Технологии проектирования мультиагентных систем
- •9.9. Перспективы мультиагентных технологий.
- •9.10. Выводы по 9-ой главе.
- •9.11. Контрольные вопросы и задание.
- •Лекция 26
- •Глава 10 Поиск альтернативных решений.
- •Поиск в пространстве состояний.
- •Лекция 27
- •10.2. Алгоритмы поиска в пространстве состояний.
- •10.2.1. Алгоритм поиска с возвратом.
- •10.2.2. Алгоритм поиска в ширину.
- •Лекция 28.
- •10.2.3. Алгоритм поиска в глубину.
- •14 16 Цель
- •10.2.4. Поиск в глубину с итерационным заглублением.
- •10.3.1. "Жадный" алгоритм поиска
- •Лекция 29
- •10.4. Поиск на графах «и-или»
- •Лекция 30
- •10.5. Игровые модели и их классификация.
- •10.6. Игры с полной информацией и двумя участниками.
- •10.6.1. Оптимальные стратегии.
- •Лекция 31
- •10.6.2.Минимаксный алгоритм.
- •30Х30≈ 1000 позиций
- •10.6.3. Альфа-бета алгоритм.
- •10.6.4. Программы игры в шахматы.
- •10.6.5.Современные игровые программы.
- •Лекция 32
- •Локальный поиск.
- •10.7.1. Алгоритм поиска с восхождением к вершине
- •Лекция 33
- •10.7.2.Алгоритм отжига.
- •Лекция 34
- •10.7.3. Генетический алгоритм.
- •Анализ начальной популяции на первом шаге простого генетического алгоритма.
- •Контрольные вопросы и задание
- •Глава 11 Моделирование общения, восприятия и осуществления действий человеком.
- •12.15. Контрольные вопросы и задание.
- •Глава 13 Настоящее и будущее искусственного интеллекта.
10.6. Игры с полной информацией и двумя участниками.
В данном разделе речь идет об играх с двумя игроками, которые будут именоваться МАХ и MIN по причинам, которые вскоре станут очевидными. Игрок МАХ ходит первым, после чего игроки делают ходы по очереди до тех пор, пока игра не закончится. В конце игры игроку-победителю присваиваются очки, а на побежденного налагается штраф. Игра может быть формально определена как своего рода задача поиска с описанными ниже компонентами.
Начальное состояние, которое включает позицию на доске и определяет игрока, который должен ходить.
Функция определения преемника, возвращающая список пар, каждая из которых указывает допустимый ход и результирующее состояние.
Проверка терминального состояния, которая определяет, что игра закончена.
Состояния, в которых игра закончена, называются терминальными состояниями.
Функция полезности (называемая также целевой функцией, или функцией вознаграждения), которая сообщает числовое значение терминальных состояний. В шахматах результатом является победа, поражение или ничья, со значениями + 1, -1 или 0. Некоторые игры имеют более широкий диапазон возможных результатов; например, количество очков в нардах может составлять от +192 до -192.
Начальное состояние и допустимые ходы каждой стороны определяют дерево игры для данной игры. На рис. 10.22 показана часть дерева игры в крестики-нолики. Из начального состояния игрок МАХ имеет девять возможных ходов. Ходы чередуются так, что МАХ ставит значок Х, а MIN значок О, до тех пор пока не будут достигнуты листовые узлы (вершины), соответствующие терминальным состояниям, таким, что один игрок поставил три своих значка в один ряд или заполнены все клетки. Число под каждым листовым узлом указывает значение полезности соответствующего терминального состояния с точки зрения игрока МАХ; предполагается, что высокие значения являются благоприятными для игрока МАХ и неблагоприятными для игрока MIN (именно поэтому в теории этим игрокам присвоены такие имена). Задача игрока МАХ состоит в использовании дерева поиска (особенно данных о полезности терминальных состояний) для определения наилучшего хода.
10.6.1. Оптимальные стратегии.
При решении обычных задач поиска оптимальное решение для игрока МАХ должно представлять собой последовательность ходов, ведущих к цели - к терминальному состоянию, которое соответствует выигрышу. С другой стороны, в игре участвует также игрок MIN, который имеет другое мнение по этому поводу. Это означает, что игрок МАХ должен найти надежную стратегию, позволяющую определить ход игрока МАХ в начальном состоянии, затем ходы игрока МАХ в состояниях, ставших результатом любого возможного ответа игрока MIN, а затем ходы МАХ в состояниях, ставших результатом любого возможного ответа MIN на те ходы, и т.д. Грубо говоря, оптимальная стратегия приводит к итогу, по меньшей мере, такому же благоприятному, как и любая другая стратегия, в тех условиях, когда приходится играть с противником, не допускающим ошибок. Прежде всего рассмотрим, как найти эту оптимальную стратегию, даже притом что для МАХ часто будет неосуществимой задача ее исчерпывающего вычисления в играх, более сложных, чем крестики-нолики.
|
|
|
|
|
|
|
|
|
МАХ(х)
MIN(0)
х |
|
|
|
|
|
|
|
|
|
х |
|
|
|
|
|
|
|
|
|
х |
|
|
|
|
|
|
|
|
|
|
|
х |
|
|
|
|
|
|
|
|
|
х |
|
|
|
|
|
|
|
|
|
х |
|
|
|
|
|
|
|
|
|
х |
|
|
|
х |
|
|
|
|
|
|
|
|
|
х |
|
|
|
|
х |
|
о |
|
|
|
|
|
|
х |
|
|
о |
|
|
|
|
|
х |
о |
|
|
|
|
|
|
|
х |
о |
х |
|
|
|
|
|
|
х |
о |
|
х |
|
|
|
|
|
х |
о |
|
|
х |
|
|
|
|
.......................... MIN(0)
....... ......... ....... .................
х |
о |
х |
|
о |
х |
|
о |
|
х |
о |
х |
о |
о |
х |
х |
х |
о |
х |
о |
х |
|
х |
|
х |
о |
о |
........ Заключительное состояние TERMINAL
-1 0 +1 Полезность
Рис. 10.21. (Частичное) дерево поиска для игры крестики-нолики. Верхний узел представляет собой начальное состояние, а первым ходит игрок МАХ, ставя значок Х в пустой клетке. На этом рисунке показана часть дерева поиска, в которой демонстрируются чередующиеся ходы игроков MIN (значок О) и МАХ (значок Х). Ходы выполняются до тех пор, пока в конечном итоге не будет достигнуто одно из терминальных состояний, которым могут быть назначены данные о полезности в соответствии с правилами игры
Даже такие простые игры, как крестики-нолики, являются слишком сложными, чтобы можно было привести здесь для них полное дерево игры, поэтому перейдем к описанию тривиальной игры, показанной на, рис: 10.22. Возможные коды игрока МАХ из корневого узла обозначены как а1, а2 и а3. Возможными ответами на ход а1 для игрока MIN являются b1, b2, b3 и т.д. Данная конкретная игра заканчивается после того, как каждый игрок, МАХ и MIN, сделают по одному ходу. (Согласно терминологии теории игр, это дерево имеет глубину в один ход и состоит из сделанных двумя участниками ходов, каждый из которых называется полуходом.) Полезности терминальных состояний в этой игре находятся в пределах от 2 до 14.
А
МАХ 3
а1
а2
а3
3
MIN
C
В
D
b3
c3
d3
c13
d1
b1
c2
b2
d2
2
3 12 8 2 4 6 14 5
Р
ис.
10.22. Дерево
игры с двумя полуходами. Узлы
представляют
собой "узлы
МАХ", в
которых очередь хода принадлежит игроку
МАХ,
а узлы ,
рассматриваются
как "узлы
MIN".
Терминальные узлы показывают значения
полезности для МАХ;
остальные узлы обозначены их минимаксными
значениями. Лучшим ходом игрока МАХ
от корня является а1,
поскольку
ведет к преемнику с наибольшим минимаксным
значением, а наилучшим ответом MIN
является b1
поскольку
ведет к преемнику с наименьшим
минимаксным значением.
При наличии дерева игры оптимальную стратегию можно определить, исследуя
минимаксное значение каждого узла, которое можно записать как Minimax-Value (п). Минuмаксным значением узла является полезность (для МАХ) пребывания в соответствующем состоянии, при условии, что оба игрока делают ходы оптимальным образом от этого узла и до узла, обозначающего конец игры. Очевидно, что минимаксным значением терминального состояния является просто его полезность.
Более того, если есть выбор, игрок МАХ должен предпочесть ход, ведущий в состояние с максимальным значением, а игрок MIN - ведущий в состояние с минимальным значением. Поэтому имеет место приведенное ниже соотношение.
Состояние (п), если п - терминальное состояние
Max Minimax-Value(s), если s- узел МАХ
Minimax-Value(п) = s € Преемник (п)
Min Minimax-Value(s), если s- узел MIN
s € Преемник (п)
Применим эти определения к дереву игры, показанному на рис. 10.22. Терминальные узлы на низшем уровне уже обозначены числами, которые указывают их полезность. Первый узел MIN, обозначенный как В, имеет трех преемников со значениями 3, 12 и 8, поэтому его минимаксное значение равно 3. Аналогичным образом, другие два узла MIN имеют минимаксное значение, равное 2. Корневым узлом является узел МАХ; его преемники имеют минимаксные значения 3, 2 и 2, поэтому сам корневой узел имеет минимаксное значение 3. Можно также определить понятие минимаксного решения, принимаемого в корне дерева: действие а1 является оптимальным выбором для игрока МАХ, поскольку ведет к преемнику с наивыcшим минимаксным значением.
В этом определении оптимальной игры для игрока МАХ предполагается, что игрок MIN также играет оптимальным образом: он максимизирует результат, соответствующий наихудшему исходу игры для МАХ. А что было бы, если игрок MIN не играл оптимальным образом? В таком случае можно легко показать, что игрок МАХ добился бы еще большего. Могут существовать другие стратегии игры против соперников, играющих неоптимальным образом, которые позволяют добиться большего, чем минимаксная стратегия; но эти стратегии обязательно действуют хуже против соперников, играющих оптимально.
