- •1 Общая характеристика дисциплины
- •1.1 Значение дисциплины ии
- •1.2 Понятие "искусственный интеллект"
- •1.3 Краткая история развития ии
- •1.4 Классификация систем ии
- •Представления знаний - центральная проблема ии.
- •Компьютерной лингвистики, решение которой обеспечивает процесс естественно- языкового общения с эвм и процесс автомтического перевода с иностранных языков.
- •Компьютерной логики, имеющей особо важное значение для развития экспертных систем, поскольку ее цель – моделирование человеческих рассуждений.
- •1.5 Основные направления развития ии
- •2Языки систем искусственного интеллекта
- •2.1 Общие сведения о языках сии
- •2.2 Язык лисп
- •2.2.1 Алфавит
- •2.2.2 Атомы и точечные пары
- •2.2.3 Списки
- •2.2.4 Арифметические функции языка лисп
- •2.2.5 Функции setq и quote
- •2.2.6 Функции car и cdr
- •2.2.7 Композиция функций саr и cdr.
- •2.2.8 Пустой список
- •2.2.9 Функция cons
- •2.2.10 Логические значения и предикаты
- •2.2.11 Предикаты атом и eq
- •2.2.12 Предикат null
- •2.2.13 Предикаты, классифицирующие атомы
- •2.2.14 Арифметические предикаты сравнения
- •2.2.15 Операции над строками битов
- •2.2.16 Функция cond
- •2.2.17 Определяющее выражение функции
- •2.2.18 Определяемые функции
- •2.2.19 Рекурсивные функции
- •2.2.20 Prog- механизм.
- •2.3 Обращение (инверсия) списков
- •2.4 Вычисление факториала числа
- •2.5 Вычисление длины списка
- •2.6 Вычисление длины списка и его подсписков
- •2.7 Соединение списков
- •2.8 Удаление элемента из списка
- •2.9 Функция, вычисляющая список общих элементов двух списков
- •2.10 Функция, объединяющая два списка и не включающая повторяющиеся элементы
- •2.11 Ассоциативные списки
- •2.12 Функции, изменяющие значения указателей
- •2.13 Функции read и print
- •2.14 Функция eval
- •3 Представление задач и поиск решений
- •3.1 Представление задач в пространстве состояний
- •3.2 Сведение задачи к подзадачам
- •3.3Представление задач в виде доказательства теорем
- •3.4 Поиск решения в пространстве состояний
- •3.5 Алгоритм поиска в ширину
- •3.6 Алгоритм поиска в глубину
- •3.7Алгоритм равных цен
- •3.8 Алгоритмы эвристического (упорядочного) поиска
- •3.9 Поиск решения задачи, при сведении задачи к подзадачам
- •3.10 Представление знаний
- •3.10.1 Продукционные системы
- •3.10.2Семантические сети
- •3.10.3 Представление знаний фреймами
- •3.11 Сопоставление с образцом
- •3.11.1 Функции Mapcad, Apply и Funcall
- •3.11.2 Свойства Атомов
- •3.11.3 Функция сопоставления с образцом
- •3.11.4 Присваивание значений при сопоставлении с образцом
- •3.11.5 Функции Explope, Compress, AtomCar, AtomCdr
- •3.11.6 Задание ограничений при сопоставлении с образцом
- •3.12 Программная реализация лисп - машин
- •3.12.1 Структура памяти лисп - машины
- •3.12.2 Диалекты языка лисп
- •3.12.3 Аппаратная реализация языка лисп
- •4 Математические основы логического вывода
- •4.1 Решение задач с помощью доказательства теорем
- •4.2 Тождественные преобразования при доказательстве теорем
- •4.3 Принцип резолюции
- •4.4Примеры применения принципа резолюции
- •4.5 Система управления роботом strips.
- •5Решение задач искусственного интеллекта на языке пролог
- •5.1 Применение метода доказательства теорем в системе пролог
- •5.2 Особенности программирования на пролоГе
- •5.4 Арифметические предикаты
- •5.5 Предикаты управления возвратом
- •5.6 Программа вычисления квадратного корня
- •5.7 Вычисление n!
- •5.8 Область действия предиката отсечения
- •5.9 Отрицание на пролоГе
- •5.10 Определение структур управления
- •5.11 Организация циклов в языке пролог
- •5.11.1 Цикл repeat-fail
- •5.11.2 Сопоставление цикла с возвратом и рекурсии
- •5.12 Операторная запись.
- •5.13 Ввод-вывод в системе пролог
- •5.13.1 Предикаты ввода-вывода символов
- •5.13.2 Предикаты ввода-вывода термов
- •5.13.3 Примеры применения предикатов ввода-вывода
- •5.14 Предикат name
- •5.15 Предикаты проверки типов термов
- •5.16 Создание и декомпозиция термов
- •5.17 Предикаты работы с базой данных .
- •5.18 Бинарные деревья
- •5.18.1 Построение бинарного дерева
- •5.18.2 Преобразование списка в упорядоченное дерево
- •5.18.3 Преобразование дерева в список
- •5.18.4 Удаление элемента из дерева
- •5.18.5 Поиск в глубину
- •5.18.6 Поиск в ширину
- •5.19 Поиск решений в игровых программах.
- •5.20 Обратное усечение дерева.
3.4 Поиск решения в пространстве состояний
Поиск решений сводится к определению последовательности операторов, отображающих начальное состояние в конечное. Т.к. такая последовательность может быть не одна, то при поиске часто решают побочную задачу поиска оптимальной последовательности.
При таком способе состояние задачи представляется в виде узлов графа, а операторы, как ребра или дуги.
Sg
Процесс решения задачи предполагает применение оператора к текущему состоянию. Для графа это означает, что оператор применяется к вершине графа. Процесс применения оператора к вершине графа называется раскрытием вершины. Операторы можно понимать как правила раскрытия вершины.
Порядок, по которому раскрываются вершины, называется стратегией поиска. Различают стратегии слепого поиска(перебора) и упорядоченного(эвристического) поиска.
Алгоритмы слепого поиска делятся на три группы:
1.Алгоритм поиска в ширину.
2.Алгоритм поиска в глубину.
3.Алгоритм равных цен.
Все эти методы не оценивают степень близости решения, полученного на каждом шаге, к тому решению, которое требуется получить. Методы перебора используют следующие определения:
В пространстве состояний применение некоторого оператора О к промежуточному состоянию Si приводит к тому, что получаем новое состояние Si+1, и этот процесс называется раскрытием вершины.
(т.е. этот процесс соответствует нахождению дочерних вершин)
Список открытых вершин- содержит идентификаторы вершин, которые предстоит раскрыть(ОТК).
Список закрытых вершин- содержит идентификаторы вешин, которые уже были раскрыты, за исключением одного элемента- текущей вершины, с которой работаем на данном этапе(ЗКР). Все методы перебора отличаются формированием списка ЗКР.
3.5 Алгоритм поиска в ширину
Всегда дает результат. При раскрытии исходной вершины,мы находим для нее все вершины 1-го подуровня, затем берем первую и находим для нее все вершины второго подуровня и т.д.
Алгоритм:
1.Поместить исходную вершину в список ОТК.
2.Если ОТК пустой, то завершить решение задачи, сообщить о неудаче.
3.Взять первую вершину из списка ОТК и переместить ее в список ЗКР. Проверить, является ли эта вершина целевой. Если вершина целевая, то возвратить пройденный путь на графе. В противном случае к п.4.
4.Раскрыть 1-ю вершину списка ЗКР и поместить все дочерние вершины, снабженные ссылками на родительскую вершину, которых нет в списке ЗКР в конец списка ОТК.
5.Перейти к п.2.
S0
S1 S2 S3 S4
S11 S12 S13 S14
Дерево растет вширь.
Пример:
Севастополь
Терновка Бахчисарай
Куйбошево
Ялта Симферополь
ОТК ЗКР
1.Севастополь ---> Сев
2.Терновка-Сев ---> Терновка-Сев
Бахчисарай-Сев Сев
3.Бахчисарай-Сев ---> Бахчисарай-Сев
Ялта- Терновка Терновка-Сев
Куйб.-Терновка Сев
4.Ялта- Терновка ---> Ялта- Терновка
Куйб.-Терновка Бахчисарай-Сев
Симф.-Бахчисарай Терновка-Сев
Сев
5.Куйб.-Терновка ---> Куйб.-Терновка
Симф.-Бахчисарай Ялта- Терновка
Симф.-Ялта Бахчисарай-Сев
Терновка-Сев
Сев
6.Симф.-Бахчисарай---> Симф.-Бахчисарай
Симф.-Ялта Куйб.-Терновка
Ялта-Куйбошево Ялта- Терновка
Бахчисарай-Сев
Терновка-Сев
Сев
Получили требуемый путь. Метод позволяет найти путь, имеющий минимальную длину, если он существует. Дуги могут быть не равноценны, следовательно, минимальный путь может не быть оптимальны.
Применяется, когда пространство поиска небольшое.