- •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.10.1 Продукционные системы
Продукционные системы – наиболее широко используемая модель представления знаний. Продукционные системы были предложены в 1942г. Постом, впервые использованы в начале 70-х Мьюннем, Самюэлем.
Продукционные системы представляют собой правила из двух частей: “посылка-следствие”, ”ситуация-действие”. Часто такое правило записывают (если , то ). Продукционные правила отличаются от импликации, тем что в правой части может находиться не просто логическое следствие, а действие. Левая часть называется предпосылкой, а правая часть заключением. Предпосылка может состоять из нескольких условий
1 2 3 … n
1 n – некоторые части условия, которые обычно представляются, как предикаты. Имеются процедуры для вычисления предикатов.
Продукционная система, как программная система состоит из 3-х основных блоков:
Здесь: база данных - объекты и их состояния;
база знаний - набор правил - продукций.
Управляющему модулю известно конечное состояние БЗ, к которому необходимо привести БЗ.
Если представить решаемую задачу в пространстве состояний,то начальному состоянию задачи соответствует некоторое состояние S0. Управляющий модуль сравнивает S0 с целевым состоянием Sg. Если существуют различия, то ищется подходящее правило в базе знаний, которое сможет уменьшить расстояние между S0 и Sg. Когда оно найдено, оно применяется к базе данных, к состоянию S0 и получаем новое состояние Si и т.д. до тех пор, пока не приведет БД в состояние Sg. Достижение состояние Sg – решение задачи. Данные методы применяются на этапе взаимодействия управляющего модуля с базой данных. Поиск S0-> Sg - прямой, Sg -> S0 - обратный поиски. Оценочная функция h(n) применяется в части "если". "Если" условие выполняется, то переход к следующему состоянию.
В управляющем модуле заложены стратегии поиска решения, обычно, экспертные системы применяют поиск в глубину.
В продукционных системах используется два механизма вывода:
прямой, который называют выводом управляемым данными;
обратный, который называют выводом управляемым целью.
Правила записываются следующим образом FBC, если справедливо правила F и B, то справедливо C. Также могут применяться следующие правила:
ZPF
AP
В БД будут существовать следующие факты A, B, Z, которые справедливы и истинны.
В случае прямого вывода к БД применяют все правила, которые можно применить, при этом правила применяются однократно. Для применения правила применяется операция сопоставления БД с условиями правила. Вывод заканчивается, когда исчерпаны все правила, либо когда доказано требуемое утверждение.
В случае обратного вывода задается то целевое высказывание, которое требуется получить. Обратимся к рассмотренному выше примеру и зададим системе вопрос:
Справедливо С или ложно?
С всегда интерпритируется. Поиск начинается с того, что система ищет правило, вправой части которого содержится высказывание С. Чтобы вывести утверждение С, системе необходимо два факта F и B, выполняется проверка их наличия в БД. Выясняется, что факт F отсутствует, поэтому новая цепь поиска, это F, выполнение правила откладывается до получения значения F. Осуществляется поиск правила с фактом F в правой части.
Далее схема повторяется.
Одной из важных опций является поиск нужного правила. В качестве условия поиска задается некоторая логическая комбинация выссказываний и проверяется наличие этих высказываний в БД. Для ускорения поиска необходимо упорядочить БД; содержимое БД представляется триолетами объект-атрибут-значение
(пример: собака-кличка-мухтар). В этом случае выделяем родственные объекты.
Правила применяются однократно, но по отношению к объекту одного рода; это же правило можно применить к другому объекту.
Каждое правило в продукционной системе можно представить в виде графа:
С 1 … Сn – предпосылки (условия)
А - заключение.
Бывает так, что одно и тоже заключение может быть получено с помощью нескольких правил, тогда правила связываются между собой связкой “или”.
Наличие таких правил влечет конфликтную ситуацию, которую надо разрешать.
Если таких правил много, то
получаем дерево “и-или”; при поиске на таком дереве возникают две основные проблемы:
разрешение конфликтов;
минимизация запрашиваемых данных у пользователя.
Эти проблемы характерны как для прямого, так и для обратного поиска. При этом прямой поиск начинается от данных (снизу), и сводится к выполнению тех правил для которых предпосылки являются истинными. В ходе применения правил получаем вывод, но при этом получаем массу промежуточных утверждений, которые справедливы, но пользователя могут не интересовать. Когда пользователя интересует конкретный вывод, прямая цепочка является неэффективной.
При прямом выводе выполняется поиск, генерация конфликтного набора правил, разрешение конфликта, выполнение правил. При этом применяют два основных метода управления:
метод ограничения на генерацию конфликтного набора;
метод применения специальных алгоритмов разрешения конфликтов.
Метод ограничения на генерацию конфликтного набора сводится к тому, что производится упорядочивание объектов по атрибутам. Выбираются только те объекты, которые попали в соответствующую группу.
Метод применения специальных алгоритмов разрешения конфликтов заключается в том, что правила применяются ко всем отображаемым объектам по некоторой схеме. Самая простая схема – применять правила в порядке следования объектов. Более сложная схема основана на приоритете глубины.
Если П3 и П2 конфликтующие правила, то предпочтение отдается П3, как действую-щему на большую глубину.
Проблема возникает в том случае, если правила характери-зуются некоторыми неточнос-тями. В подобной ситуации, каждый элемент правилы, где бы он не находился, харак-теризуется 4-мя элементами:
Объект-атрибут-значение-коэффициент уверенности.
Коэффициент уверенности характеризует степень доверия к фактам (некоторое число от 01), которые находится в условии. Когда некоторое заключение может быть получено, как на основе достоверных фактов, так и на основе неточных фактов, желательно использование точного факта для их заключения.
Если для правила факт характризуется некоторым коэффициентом доверия (КД): правило само по себе тоже может характеризоваться некоторым коэффициентом доверия (КП); для коэффициента заключения – КЗ.
Имеем:
КЗ = min(КД) * КП
В случае обратного вывода все эти зависимости имеют место и применяются те же алгоритмы, но добавляется проблема рассмотрения очередности условий.