- •Системы искуственного интеллекта.
- •Глава 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 Настоящее и будущее искусственного интеллекта.
Лекция 28.
10.2.3. Алгоритм поиска в глубину.
Опишем алгоритм поиска в глубину - упрощенный алгоритм поиска с возвратами, уже представленный в подразделе 10.2.1. В этом алгоритме состояния-потомки добавляются и удаляются с левого конца списка ореn, Т.е. список ореn реализован как стек магазинного типа или структура LIFO - "last-iп-first-out' ("последним пришел - первым обслужен"). При организации списка ореn в виде стека предпочтение отдается самым "молодым" (недавно сгенерированным состояниям), Т.е. осуществляется принцип поиска в глубину.
Ниже показан процесс реализации алгоритма depth_first_search для графа из рис. 10.10., при этом U - это желаемое целевое состояние.
После итерации |
Список open |
Список closed |
0 |
[А] |
[ ] |
1 |
[ В С D ] |
[А] |
2 |
[Е F С D ] |
[В А] |
3 |
[K L F С D ] |
[ Е В А] |
4 |
[ S L F С D] |
[ K Е В А] |
5 |
[L F С D] |
[ S K Е В А ] |
6 |
[ T F С D] |
[L S K Е В А ] |
7 |
[F С D ] |
[T L S K Е В А ] |
8 |
[ M С D] |
[F T L S K Е В А ] |
9 |
[С D] |
[M F T L S K Е В А] |
10 |
[G Н D] |
[С M F T L S K Е В А] |
11 |
[ N Н D ] |
[G M F T L S K Е В А] |
12 |
[Н D] |
[N G M F T L S K Е В А] |
13 |
[O P D] |
[Н N G M F T L S K Е В А] |
14 |
[P D] |
[ O Н N G M F T L S K Е В А ] |
15 |
[UD] |
[ P O Н N G M F T L S K Е В А] |
16 |
[D ] |
[UP O Н N G M F T L S K Е В А ] |
Таблица 10.3. Состояние списков после каждой итерации алгоритма поиска в глубину для графа на рис. 10.10.
0 итерация - Инициализируем списки. Список open =[A]; Список closed =[ ];
1 итерация – Выбираем первую вершину из списка open и определяем её как текущее состояние Х=А. Применяем процедуру определения потомков к Х=А, потомки есть, ими являются вершины В, С, D. Записываем слева направо эти вершины в список open, удаляя слева из этого списка вершину А и записывая эту вершину в список closed слева направо. Далее алгоритм переходит к следующей итерации.
2 итерация – Выбираем первую вершину из списка open и определяем её как текущее состояние Х=В. Применяем процедуру определения потомков к Х= В, потомки есть, ими являются вершины Е, F. Записываем слева направо эти вершины в список open, удаляя слева из этого списка вершину В и записывая эту вершину в список closed слева направо. Далее алгоритм переходит к следующей итерации. Эти итерации продолжаются до тех пор пока текущее состояние Х не будет равно целевому состоянию U, либо список open окажется пустым.
Как и при поиске в ширину breadth_first_search, в данном алгоритме можно сохранять для каждого состояния записи о родителях. Это позволит алгоритму восстановить путь, ведущий от начального состояния к целевому. В отличие от поиска в ширину, поиск в глубину не гарантирует нахождение оптимального пути к состоянию, если оно встретилось впервые. Позже в процессе поиска могут быть найдены различные пути к любому состоянию. Если длина пути имеет значение в решении задачи, то в случае нахождения алгоритмом некоторого состояния повторно необходимо сохранить именно тот путь, который оказался короче. Это можно сделать, сохраняя для каждого состояния тройку значений (состояние, родитель, длина пути) . При генерации дочерних элементов значение длины пути просто увеличивается на единицу и сохраняется вместе с потомками. Если дочернее состояние достигнуто по многим путям, эту информацию нужно использовать для
сохранения лучшей версии. 1
