- •Тема 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. Вычислительная модель Пролога.
4.1 Факты, запросы, переменные и правила.
4.1.1 Факты.
Факты характеризуют известные отношения между объектами, заданные в виде предикатов. При этом все объекты и отношения пишутся с маленькой буквы.
Например:
Джону нравится Мэри.
like(john, mary).
Следует соблюдать принятый порядок перечисления аргументов предикатов.
Например:
1) Джон и Мэри играют в бадминтон.
play(john, mary, badminton).
2) Джон дает книгу Мэри.
gives(john, book, mary).
Данные предикаты имеют различные порядки аргументов.
Набор фактов в Прологе – это база фактов (БФ).
4.1.2 Запросы.
Запросы – это целевые утверждения в форме предикатов, которые требуется подтвердить или опровергнуть в результате поиска по БФ.
Например:
1) ? – like(john, mary).
Yes
2) ? – like(john, ann).
No
Во втором случае ответ No, т.к. Пролог не нашел соответствующего факта в БФ, хотя в действительности ничего не известно о том, нравится ли Джону Анна.
Примечание: Ответ No означает, что Пролог не может доказать истинность цели, однако ответ No не тождественен значению False для логической переменной или высказывания.
4.1.3 Переменные.
Переменные используются в правилах и запросах с целью не конкретизировать объекты целевого утверждения, а заставить Пролог искать подходящие варианты.
Каждый объект, начинающийся с большой буквы, воспринимается как переменная, причем длина имени переменной может быть большой.
Например:
Что нравится Джону?
Есть ли что-либо, что нравится Джону?
like(john, X)
X = Is there
Пролог различает два типа переменных:
свободные (free);
связанные (instantiated).
Если переменная используется в предикате впервые, то ее значение не определено, и она считается свободной. Пролог ищет в БФ факт, соответствующий запросу и проводит унификацию, т.е. сопоставление свободной переменной какого-либо объекта, определенного из факта. Если такой факт найден, то переменная становится связанной, в том числе для всех последующих предикатов, в которых она встречается. В процессе унификации Пролог просматривает БФ сверху вниз в порядке следования фактов и маркирует первый найденный факт, соответствующий запросу.
Если требуется найти не один, а множество фактов, соответствующих цели, то используют предикат fail, который заставляет Пролог продолжить поиск, начиная с факта, отмеченного маркером, и далее до конца БФ. Если Пролог находит другой факт, соответствующий запросу, то он стирает предыдущий маркер и маркирует новый найденный факт.
4.1.4 Правила.
Правила – это обобщенные описания множества объектов и их отношений.
Правила используются для указания зависимостей (типа 1:М, М:М) между фактами, где множество допустимых аргументов задается свободными переменными. При этом правила можно представить в виде дерева поиска.
like(john, X) :- female(X), like(X, wine), !, … .
Это правило может быть представлено следующей структурой:
Составные цели в правилах образуются объединением нескольких предикатов подцели с помощью логических операторов and, or, not. Пролог последовательно старается подтвердить или опровергнуть составные подцели в порядке их указания. При этом каждая подцель маркируется своим маркером в процессе унификации. Пролог просматривает всю БФ для каждой подцели. Если 1-ая подцель подтверждена (маркер установлен), а 2-ая подцель – нет, то Пролог пытается переопределить 1-ую подцель.
Процесс поиска, в котором Пролог последовательно подтверждает или опровергает составные цели, называется обратным отслеживанием.