- •Системы искуственного интеллекта.
- •Глава 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.2.4. Поиск в глубину с итерационным заглублением.
Хорошим решением проблем поиска в глубину является использование предельного значения глубины поиска. Предельная глубина позволяет ограничить поиск только заданным числом уровней. Это обеспечивает некоторое подобие "развертки" области поиска в ширину при поиске в глубину.
Ограниченный поиск в глубину наиболее полезен, если известно, что решение находится в пределах некоторой глубины, имеются ограничения во времени или пространство состояний чрезвычайно велико (как в шахматах). В таких задачах число рассматриваемых состояний ограничивают предельной глубиной поиска. На рис. 10.11. показан поиск в глубину для 8-головоломки, для которого предельная глубина ограничена пятью уровнями. Поэтому именно на этой глубине возникает поперечная развертка пространства.
Такая модификация позволяет исправить нсмало недостатков как поиска в глубину, так и поиска в ширину. Итерационным заглублением [Korf, 1987] называется поиск в глубину, первая итерация которого ограничена 1 уровнем. Если цель не найдена, выполняется еще один шаг с предельной глубиной 2. В процессе поиска предельная глубина увеличивается на 1 на каждой итерации. На каждой итерации алгоритм выполняет поиск в глубину с учетом текущего предельного числа уровней. При этом при переходе от одной итерации к другой информация о пространстве состояний не сохраняется.
Поскольку алгоритм исследует пространство "по уровням", он может гарантировать нахождение кратчайшего пути к цели. Поскольку на каждой итерации осуществляется только поиск в глубину, степень использования пространства на каждом уровне п составляет Вхп, где В - среднее число дочерних состояний вершины.
На первый взгляд кажется, что итерационное продвижение в глубину менее эффективно по времени, чем поиск глубину или в ширину. Однако временная сложность алгоритма (время выполнения алгоритма в зависимости от размерности задачи) в действительности имеет тот же самый порядок величины, что и каждый из этих алгоритмов О(Вn). Объяснение этого кажущегося парадокса приведено в [Korf, 1987].
«Поскольку число вершин на данном уровне дерева растет экспоненциально с увеличением глубины, почти все время вычислений тратится на самом глубоком уровне.»
К сожалению, можно показать, что в наихудшем случае все рассмотренные в этой главе стратегии поиска (поиск в глубину, в ширину и итерационное заглубление) обладают экспоненциальной сложностью. Это характерно для всех неинформированных алгоритмов поиска. Для снижения временной сложности алгоритмов поиска используют направляющие эвристики. Поиск по первому наилучшему совпадению - это алгоритм поиска, подобный представленным выше алгоритмам поиска в глубину и в ширину. Однако в процессе поиска по первому наилучшему совпадению состояния в списке ореп, определяющие текущую границу поиска, упорядочиваются согласно некоторому эвристическому показателю качества. На каждой итерации поиск рассматривает не самые глубокие, а самые "лучшие" состояния.
%инициализация
%есть
состояния
В [Polya, 1945] эвристика определяется как "изучение методов и правил открытий и изобретений". Это слово имеет греческий корень, глагол eurisco означает "исследовать". Когда Архимед выскочил из ванны, держа золотой венец, он закричал "Эврика!", что значит "Я нашел!". В пространстве состояний поиска эвристика определяется как набор правил для выбора тех ветвей из пространства состояний, которые с наибольшей вероятностью приведут к приемлемому решению проблемы.
Специалисты по искусственному интеллекту используют эвристику в двух ситуациях.
1. Проблема может не иметь точного решения из-за неопределенности в постановке задачи и/или в исходных данных. Медицинская диагностика – пример такой проблемы. Определенный набор признаков может иметь несколько причин; поэтому врачи используют эвристику, чтобы поставить наиболее точный диагноз и подобрать соответствующие методы лечения. Система технического зрения - другой пример задачи с неопределенностью. Визуальные сцены часто неоднозначны, вызывают различные (часто не связанные друг с другом) предположения относительно протяженности и ориентации объектов. Оптический обман - хорошая иллюстрация таких двусмысленностей. Системы технического зрения часто используют эвристику для выбора наиболее вероятной интерпретации из нескольких возможных.
2. Проблема может иметь точное решение, но стоимость его поиска может быть слишком высокой. Во многих задачах (например, игра в шахматы) рост пространства возможных состояний носит экспоненциальный характер, другими словами, число возможных состояний растет экспоненциально с увеличением глубины поиска. В этих случаях методы поиска решения "в лоб" типа поиска в глубину или в ширину могут занять слишком много времени. Эвристика позволяет избежать этой сложности и вести поиск по наиболее "перспективному" пути, исключая из рассмотрения неперспективные состояния и их потомки. Эвристические алгоритмы могут (как правило, на это надеются проектировщики) остановить этот комбинаторный рост и найти приемлемое решение.
К сожалению, подобно всем правилам открытия и изобретения, эвристика может ошибаться. Эвристика - это только предложение следующего шага, который будет сделан на пути решения проблемы. Такие предположения часто основываются на опыте или интуиции. Поскольку эвристика использует такую ограниченную информацию, как описание текущих состояний в списке open, то она редко способна предсказать дальнейшее поведение пространства состояний. Эвристика может привести алгоритм поиска к субоптимальному решению или не найти решение вообще. Это ограничение присуще эвристическому поиску и не может быть устранено "лучшей" эвристикой или более эффективным алгоритмом поиска [Garey и Johnson, 1979].
Эвристика и разработка алгоритмов для эвристического поиска в течение достаточно долгого времени остаются основным объектом исследования в проблемах искусственного интеллекта. Игра и доказательство теорем - два самых старых приложения в области искусственного интеллекта; оба они нуждаются в эвристике для сокращения числа состояний в пространстве поиска. Невозможно рассмотреть каждый вывод, который может быть сделан в той или иной области математики, или каждый возможный ход на шахматной доске. Эвристический поиск - часто единственный практический метод решения таких проблем.
Исследование в области экспертных систем подтвердило важность эвристики как основного компонента при решении задач. Эксперт-человек, решая проблему, анализирует доступную информацию и делает вывод. Интуитивные правила ("rules of thumb"), которые использует эксперт, чтобы эффективно решить ту или иную проблему, в значительной степени эвристичны по природе. Такие эвристики были созданы и формализованы разработчиками экспертных систем.
Эвристические алгоритмы состоят из двух частей: эвристической меры и алгоритма, который использует ее для поиска в пространстве состояний
