
- •1. Основные понятия дисциплины.
- •2. Классификация знаний. Отличие знаний от данных.
- •I группа.
- •II группа.
- •III группа.
- •IV группа.
- •3. Модели представления знаний в ис. Продукционная модель. Модель на основе фреймов Модели представления знаний в ис
- •Продукционная модель знаний.
- •Модель на основе фреймов.
- •4. Модели представления знаний в ис. Семантические сети. Формально-логическая модель. Модели представления знаний в ис
- •Семантические сети
- •2.5 Формальные логические модели на основе исчисления предикатов
- •5. Экспертные системы. Понятие, назначение, области применения. Основные характеристики экспертных систем. Понятие эс. Основные характеристики.
- •Основные характеристики эс:
- •Области применения эс. Типы эс и подходы к их реализации.
- •Назначение
- •Критерий использования эс для решения задач.
- •6. Ограничения в применение экспертных систем. Преимущества экспертных систем перед человеком – экспертом. Ограничения в применение экспертных систем
- •Преимущества экспертных систем перед человеком – экспертом.
- •7. Отличие экспертных систем от традиционных программ. Структура экспертной системы. Назначение подсистем экспертной системы.
- •Назначение подсистем экспертной системы
- •8. Общие сведения о языке Пролог.
- •9. Вычислительная модель Пролога. Факты, запросы, переменные, домены и правила.
- •10. Работа со списками в языке Пролог.
- •1.4.5.2 Предикат может иметь несколько вариантов использования
- •Работа с деревьями в языке Пролог.
- •1.3 Создание дерева
- •11. Особенности ввода-вывода в языке Пролог.
- •12. Особенности написания экспертной системы на языке Пролог.
- •13. Стратегии получения знаний. Теоретические аспекты извлечения знаний. Стратегии получения знаний.
- •10.3 Теоретические аспекты извлечения знаний.
- •14. Представление нечетких знаний информационных системах.
- •Пример 9.1
- •15. Классификация методов практического извлечения знаний. Коммуникативные активные методы.
- •16. Классификация методов практического извлечения знаний. Коммуникативные пассивные и текстологические методы
9. Вычислительная модель Пролога. Факты, запросы, переменные, домены и правила.
Вычислительная модель Пролога
Выполнение программ на Прологе заключается в работе абстрактного интерпретатора, при которой вместо произвольной цели выбирается самая левая цель, а недетерминированный выбор предложения заменяется последовательным поиском унифицируемого правила и механизмом возврата.
Другими словами, в Прологе используется стековый метод расписания. В Прологе резольвента используется как стек-для редукции выбирается верхняя цель, производные цели помещаются в стек резольвенты.
В дополнение к методу стека Пролог моделирует недетерминированный выбор редуцирующего правила с помощью последовательного поиска и механизма возврата. При попытке редуцировать цель выбирается первое предложение, заголовок которого унифицируем с данной целью. Если не существует правила, унифицируемого с выбранной целью, то вычисление восстанавливается на стадии последнего сделанного выбора и выбирается следующее унифицируемое предложение.
Вычисление цели G относительно программы P, написанной на Прологе, состоит в порождении всех решений цели G относительно программы Р. В терминах логического программирования вычисление цели G в Прологе является полным обходом в глубину конкретного дерева поиска цели G, в котором всегда выбирается самая левая цель.
Рассмотрим вопрос сын(Х, аран)? относительно программы 1.2, упрощенной библейской базы данных, повторно записанной в верхней части рис. 6.1. Вычисление приведено в основной части рис. 6.1. Оно соответствует обходу в глубину первого дерева поиска на рис. 5.2. Данное вычисление является расширением первого протокола на рис. 4.4, так как поиск производится во всем дереве поиска.
Список обозначений, использовавшихся ранее в протоколах, следует расширить для описания отказов и возвратов. Символ f после цели означает, что цель недоказуема, т. е. в программе отсутствует предложение, заголовок которого унифицируем с целью. Встретив недоказуемую цель, вычисление переходит к цели, указанной механизмом возврата. Соответствующая цель уже появлялась в качестве предыдущей цели в протоколе на том же самом уровне и может быть идентифицирована именами переменной. В соответствии с правилами Edinburgh-Пролога символ «;» после решения означает, что вычисление продолжается для поиска
Факты характеризуют известные отношения между объектами, заданные в виде предикатов. При этом все объекты и отношения пишутся с маленькой буквы.
Например:
Джону нравится Мэри.
like(john, mary).
Следует соблюдать принятый порядок перечисления аргументов предикатов.
Например:
1) Джон и Мэри играют в бадминтон.
play(john, mary, badminton).
2) Джон дает книгу Мэри.
gives(john, book, mary).
Данные предикаты имеют различные порядки аргументов.
Набор фактов в Прологе – это база фактов (БФ).
Запросы.Запросы – это целевые утверждения в форме предикатов, которые требуется подтвердить или опровергнуть в результате поиска по БФ.
Например:
1) ? – like(john, mary).
Yes
2) ? – like(john, ann).
No
Во втором случае ответ No, т.к. Пролог не нашел соответствующего факта в БФ, хотя в действительности ничего не известно о том, нравится ли Джону Анна.
Примечание: Ответ No означает, что Пролог не может доказать истинность цели, однако ответ No не тождественен значению False для логической переменной или высказывания.
Переменные.Переменные используются в правилах и запросах с целью не конкретизировать объекты целевого утверждения, а заставить Пролог искать подходящие варианты.
Каждый объект, начинающийся с большой буквы, воспринимается как переменная, причем длина имени переменной может быть большой.
Например:
Что нравится Джону?
Есть ли что-либо, что нравится Джону?
like(john, X)
X = Is there
Пролог различает два типа переменных:
свободные (free);
связанные (instantiated).
Если переменная используется в предикате впервые, то ее значение не определено, и она считается свободной. Пролог ищет в БФ факт, соответствующий запросу и проводит унификацию, т.е. сопоставление свободной переменной какого-либо объекта, определенного из факта. Если такой факт найден, то переменная становится связанной, в том числе для всех последующих предикатов, в которых она встречается. В процессе унификации Пролог просматривает БФ сверху вниз в порядке следования фактов и маркирует первый найденный факт, соответствующий запросу.
Если требуется найти не один, а множество фактов, соответствующих цели, то используют предикат fail, который заставляет Пролог продолжить поиск, начиная с факта, отмеченного маркером, и далее до конца БФ. Если Пролог находит другой факт, соответствующий запросу, то он стирает предыдущий маркер и маркирует новый найденный факт.
Правила.Правила – это обобщенные описания множества объектов и их отношений.
Правила используются для указания зависимостей (типа 1:М, М:М) между фактами, где множество допустимых аргументов задается свободными переменными. При этом правила можно представить в виде дерева поиска.
like(john, X) :- female(X), like(X, wine), !, … .
Это правило может быть представлено следующей структурой:
Составные цели в правилах образуются объединением нескольких предикатов подцели с помощью логических операторов and, or, not. Пролог последовательно старается подтвердить или опровергнуть составные подцели в порядке их указания. При этом каждая подцель маркируется своим маркером в процессе унификации. Пролог просматривает всю БФ для каждой подцели. Если 1-ая подцель подтверждена (маркер установлен), а 2-ая подцель – нет, то Пролог пытается переопределить 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 до тех пор, пока не будет просмотрена вся БФ для каждого из составных предикатов.
Домены
Домены позволяют задавать разные имена различным видам данных, которые, в противном случае, будут выглядеть абсолютно одинаково. В Пролог-программах объекты в отношениях (аргументы предикатов) принадлежат доменам, причем это могут быть как стандартные, так и описанные вами специальные домены.