- •Системы искуственного интеллекта.
- •Глава 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 Настоящее и будущее искусственного интеллекта.
14 16 Цель
Рисунок 10.11. Поиск в глубину для игры в "пятнашки" с 8 фишками, ограниченный 5 уровнями
На рис. 10.11. рассмотрен поиск в глубину на примере ГОЛОВОЛОМКИ с 8 фишками. Как отмечалось ранее, пустая клетка передвигается согласно одному из четырех возможных правил (вверх, вниз, влево и вправо). Числа рядом с состояниями указывают порядок, в котором они были рассмотрены и удалены из списка ореn. Не показаны состояния, находящиеся в ореn, когда цель уже найдена. Глубина поиска в данном случае была ограничена пятью уровнями, чтобы не "затеряться в глубинах" пространства состояний.
После выбора стратегии поиска (на основе данных или от цели), оценки графа и выбора метода поиска (в глубину или в ширину) дальнейший ход решения будет зависеть от конкретной задачи. Влиять на выбор стратегии поиска может необходимость обнаружения именно кротчайшего пути к цели, коэффициент ветвления пространства, доступное время вычислений и возможности пространства, средняя длина пути к целевой вершине графа, а также необходимость получения всех решений или только первого. При выборе метода поиска несложно убедиться, что у любого подхода всегда имеются определенные преимущества и недостатки.
Типичной проблемой, связанной с поиском, является комбинаторная сложность. При наличии нетривиальных проблемных областей количество вариантов, подлежащих рассмотрению, становится столь значительным, что наибольшее значение приобретает существенное увеличение затрат ресурсов на исследование данных вариантов. Можно легко проанализировать причины того, почему это происходит. Для упрощения такого анализа предположим, что пространство состояний представляет собой дерево с единообразным ветвлением b. Это означает, что каждый узел в дереве, за исключением листьев, имеет точно b преемников. Предположим, что кратчайший путь решения имеет длину d, и в дереве на глубине d или меньшей отсутствуют листья. Количество альтернативных путей длины d от начального узла равно bd. При поиске в ширину количество рассматриваемых путей пропорционально bd. Это обозначается как О (bd). Итак, количество возможных путей очень быстро возрастает при увеличении их длины, что приводит к так называемому "ком6инаторному взрыву ".
Поиск в ширину. Поскольку при таком подходе до перехода к уровню п+1 всегда исследуются все узлы на уровне п, поиск в ширину всегда находит самый короткий путь к целевой вершине. Если в задаче существует простое решение, это решение будет найдено. К сожалению, при большом коэффициенте ветвления, если состояния имеют высокое среднее число потомков, комбинаторный взрыв может помешать алгоритму найти решения. Это происходит потому, что все перспективные и неперспективные вершины
для каждого уровня поиска находятся в списке open для глубокого поиска (когда цель расположена глубоко) или для пространства состояний С высоким коэффициентом ветвления этот поиск может быть весьма громоздким.
Степень использования пространства при поиске в ширину измеряется в терминах числа состояний в списке open и является экспоненциальной функцией длины пути в любой момент времени. Если каждое состояние порождает в среднем В дочерних состояний, то общее число состояний на данном уровне определяется умножением В на число состояний предыдущего уровня. Значит, на уровне п число состояний составляет Вn. При исследовании уровня п методом поиска в ширину все состояния помещаются в
open, что может быть нежелательно, если путь к решению достаточно длинный.
Поиск в глубину быстро проникает в глубины пространства. Если известно, что путь решения будет длинным, то поиск в глубину не будет тратить время на поиск большого количества "поверхностных" состояний на графе. С другой стороны, поиск в глубину может "затеряться в глубинах" графа, пропуская более короткие пути к цели, или даже "застрять" на не ведущем к цели бесконечно длинном пути.
Поиск в глубину эффективен для областей поиска с высокой степенью связности, потому что ему не нужно помнить все узлы данного уровня в списке open. Степень использования пространства состояний в случае поиска в глубину - это линейная функция длины пути. На каждом уровне в open сохраняются только дочерние вершины единственного состояния. Если у каждой вершины графа имеется в среднем В дочерних вершин, и если поиск продвигается на п уровней вглубь пространства, то уровень использования пространства составляет Вхп.
Так что же лучше: поиск в глубину или поиск в ширину? На этот вопрос можно ответить так. Необходимо исследовать пространство состояний и проконсультироваться с экспертами в данной области. В шахматах, например, поиск в ширину просто невозможен. В более простых играх поиск в ширину не только возможен, но даже может оказаться единственным способом избежать проигрышей или потерь в игре.
