- •Тема 1. Информационный процесс представления знаний.
- •1.1 Основные понятия дисциплины.
- •1.2 Классификация знаний.
- •I группа.
- •II группа.
- •III группа.
- •IV группа.
- •Тема 2.
- •2.1 Модели представления знаний в ис
- •2.2 Продукционная модель знаний.
- •Пример 2.1
- •2.3 Фреймы.
- •Пример 2.3.
- •2.4 Семантические сети
- •2.5 Формальные логические модели на основе исчисления предикатов
- •Пример 2.5
- •Пример 2.6
- •Пример 2.7
- •Пример 2.8
- •Тема 3. Язык Пролог.
- •3.1 Пролог с процедурной точки зрения.
- •Пример 3.1
- •Пример 3.2
- •Пример 3.3
- •3.2 Передача параметров и возврат значений в предикат.
- •Пример 3.4
- •Тема 4. Вычислительная модель Пролога.
- •4.1 Факты, запросы, переменные и правила.
- •4.1.1 Факты.
- •4.1.2 Запросы.
- •4.1.3 Переменные.
- •4.1.4 Правила.
- •Пример 4.1
- •Пример 4.2
- •4.2 Сравнение термов на равенство.
- •Тема 5. Дедуктивные системы. Логический вывод и логическое программирование.
- •5.1 Исчисления и дедуктивные системы.
- •5.2 Общая схема построения формальной системы.
- •5.3 Основные понятия логического программирования.
- •5.4 Простой абстрактный интерпретатор логических программ.
- •Пример 5.2
- •Пример 5.3
- •Тема 6. Экспертные системы (эс).
- •6.1 Понятие эс. Основные характеристики.
- •6.2 Области применения эс. Типы эс и подходы к их реализации.
- •6.3 Типы задач, решаемых эс.
- •6.4 Отличие эс от традиционных программ.
- •6.5 Типовая структура эс.
- •6.6 Инструментальные средства эс.
- •Тема 7. Технологии проектирования и разработки экспертных систем (эс).
- •1. Выбор проблемы.
- •2. Разработка прототипа эс.
- •3. Доработка коммерческой версии.
- •4. Оценка эс.
- •5. Стыковка системы.
- •6. Поддержка системы.
- •Тема 8. Вывод на знаниях.
- •8.1 Основные положения.
- •8.2 Стратегии управления выводом.
- •Пример 8.1
- •Тема 9. Представление нечетких знаний в ис.
- •Пример 9.1
- •Тема 10. Инженерия знаний.
- •10.1 Поле знаний.
- •10. 2 Стратегии получения знаний.
- •10.3 Теоретические аспекты извлечения знаний.
- •10.4 Структурирование знаний.
5.3 Основные понятия логического программирования.
Предикат – это отношение между объектами.
Атом – это имя конкретного объекта.
Логическая переменная обозначает неопределенные объекты. С помощью логических переменных можно определить в программах структуру логических данных, называемых термами. При этом терм может быть константой, переменной, либо составной структурой. Структура содержит функтор – последовательность из одного или более элементов, являющихся термами. Функтор задается именем и числом аргументов:
f(t1, … ,tn); t/n.
Примеры структур:
S(0).
not(milk).
name(john, dough).
foot(X).
list (a, list, (b, nd)).
tree(tree nd, 3, nit, 3, R).
вопросы, цели и термы, не содержащие переменных, называются основными. Термы, содержащие переменные, называются не основными.
Подстановкой называется некоторое множество пар вида: xi = tj, причем xi не входит в tj,
xi tj, i и j,
xi xj, i j.
Пример подстановки, состоящий из одной пары: X = milk.
Подстановка может применяться к термам. Результат применения подстановки Q к некоторому терму А обозначается QA и представляет собой терм, полученный заменой каждого вхождения некоторой переменной x терма A на значение терма t для каждой пары ( x = t в Q).
Терм А называется примером В, если существует такая подстановка Q, что A = QB.
Например, цель:
like(john, wine).
like(john, X).
sister(pat, list).
sister(X, Y).
В логических термах переменные-вопросы связаны квантором существования.
Универсальные факты содержат переменные-утверждения (Все любят цветы):
like(X, flowers).
mult(0, X, 0).
Из универсальных фактов можно вывести любой пример факта. Правило вывода называется конкретизацией.
Общим примером термов А и В называется терм С, если он является примером А и примером В одновременно, т.е. существуют такое подстановки E = AQ1 = BQ2.
Например, 2 терма:
add (0, Y, 3) Q1 = 3.
add (0, X, X) Q2 = 3.
Общим при поиске ответов на вопрос с использованием факта лежит общий пример вопроса и факта. Если такой пример существует, то он является ответом на вопрос. Составные вопросы являются конъюнкцией.
? – Q1, Q2, … , Qn.
Если каждая цель в вопросе независима, то ответ на вопрос – «да», если каждая цель выводится из программы, т.е. является следствием состояния, представленным вопросом, в котором существует одна или более общих переменных для разных целей:
? – p(x), q(x).
Эту запись интерпретируется следующим образом: Существует ли такое x, что истинны цели p(x), q(x) одновременно?
Переменные в составных вопросах связаны квантором существования. Общая переменная в этом случае используется для сокращения пространственного поиска значений переменных.
Правилом называется утверждение вида АВ1, … , Bn при n > 0.
Факт является частным случаем правила при n < 0. При n = 1 получаем рекурсию. В правилах переменные связаны квантором общности А, при этом область действия распространяется на все правила:
сын(X, Y) отец(Y, X), мужчина(X).
дочь(X, Y) отец(Y, X), женщина(X).
дед(X, Z) отец(Y, X), отец(Y, Z).
Возможны 2 варианта интерпретации правил:
Процедурный. Для ответа на вопрос: «Является ли некто X дедом Z?», - необходимо последовательно доказать истинность утверждения, что X является отцом Y, а Y является отцом Z.
Декларативный. С этой точки зрения правило истолковывается как логическая аксиома X, Y, Z. Если X – отец Y и Y – отец Z, то X – отец Y и Y – отец Z, тогда X – дед Z.
Для рассмотрения процедуры логического вывода используется закон, который в логике называется modus pones.
Из некоторого правила R = (AB1, … , Bn) и фактов B’1, … , B’n выводится следствие А, если оно является примером правила R.
Логическая программа Р – конечное множество правил.
Некоторая цель G с кванторами является логическим следствием программы Р, если в программе найдется такое предпочтение с основным примером: A B1, … , Bn, и Bi, 1< i <n, что высказывания Bi являются следствием программы, а следствие А является примером цели G.
Примечание: Цель в логике – программа существует, когда она может быть выведена с помощью конечного числа применений правила modus pones.
Процедура поиска ответа на вопрос отражает определенные логические следствия. Здесь угадывается основной пример цели и правила, затем рекурсивно ищется ответ на составной вопрос, соответствующий телу правила. Доказательство некоторой цели А в программе Р сводится к поиску правила: AiBi, … , Bn и указанию такой подстановки Q, что цель определяется как A = AiQ, а ВiQ – являются основными целями.
Затем рекурсивно доказывается каждая составная цель в порядке указания логической программы, которая может включать альтернативные определения одних и тех же термов, что формально эквивалентно дизъюнкции.
Например:
родитель(X, Y) отец(X, Y).
родитель(X, X) мать(X, Y).
родитель(X, Y) отец(X, Y) or мать(X, Y).
Указанная совокупность правил с одинаковым именем предиката называется процедурой.