- •Тема 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 Структурирование знаний.
Пример 4.1
Backtracking
% facts
m1.1 like(mary, food). %f1
m1.2 like(mary, wine). %f2
m2.1 like(john, wine). %f3
like(john, mary). %f3
? - like(mary, X), like(john, X).
Алгоритм поиска:
Шаг 1:
? - like(mary, X). X = food
Пролог устанавливает маркер m1.1.
Шаг 2:
? - like(john, food). false
Шаг 3:
Откат назад: Xfree
? - like(mary, X).
Поиск начинается от маркера m1.1.
X = wine
Предыдущий маркер стирается и устанавливается новый – m1.2.
Шаг 4:
? - like(john, wine).
Yes
Устанавливается новый маркер – m2.1.
Шаг 5
X = wine
Примечание: Если нужно найти другие варианты ответов, то должен использоваться предикат fail, который выполняет откат назад и повторный поиск, начиная с маркеров m1.2 и m2.1 до тех пор, пока не будет просмотрена вся БФ для каждого из составных предикатов.
Рассмотренный пример программы использовал программирование с помощью фактов.
Пример 4.2
Рассмотрим пример программирования с помощью правил.
Пусть стоит задача поиска родственных отношений между людьми:
Запишем базу фактов, где будем использовать 3 типа предикатов:
Predicates
родитель(symbol, symbol)
потомок(symbol, symbol)
мужчина(symbol)
женщина(symbol)
% facts
женщина (Нам).
мужчина (Том).
мужчина (Боб).
женщина (Лиз).
мужчина(Пат).
женщина (Энн).
мужчина (Джинн).
родитель(нам, боб);
родитель(том, боб);
родитель(том, лиз);
родитель(боб, энн);
родитель(боб, пат) ;
родитель(пат, джинн);
? – родитель(X, энн), родитель(X, пат).
X=боб.
потомок(X, Y) :– родитель(Y, X).
Исходя из дополнительной информации о поле родственников, можно определить новые отношения – “мать” и “сестра”:
Правило, задающее материнство:
мать(X,Y) :– женщина(X), родитель(X, Y).
Правило, определяющее термин «сестра»:
сестра (X,Y) :– родитель(Z, X), родитель (Z, Y),женщина(X).
? – сестра(X, пат).
X=энн.
Добавим предикат «предок» и зададим его рекурсивное определение. Будем говорить, что некто X и Z являются предком и потомком друг для друга, если между ними существует цепочка людей, связанных между собой отношениями «родитель».
предок (X, Y) :– родитель(X, Y).
предок (X, Z) :– родитель(X, Y), предок(Y, Z).
? – предок(нам, энн)
Yes.
4.2 Сравнение термов на равенство.
Существуют 4 оператора сравнения термов, работающих по-разному:
is;
=:=;
=;
= =.
-
Входные предикаты
Вызов
Результат
1) X
2) 7+2
X is 7+2
X =:= 7+2
X = 7+2
X = = 7+2
X = 9
Ошибка
X = 7+2
Ошибка
1) 8+1
2) 7+2
8+1 is 7+2
8+1 =:= 7+2
8+1 = 7+2
8+1 = = 7+2
Ошибка
9 = 9
Ошибка
Ошибка