Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Представление знаний в информационных системах.doc
Скачиваний:
33
Добавлен:
08.11.2018
Размер:
865.28 Кб
Скачать

Работа № 4. Разработка классификационной экспертной системы на clips.

Добравшиеся до данного этапа уже в достаточной степени владеют CLIPS и представляют себе приблизительные способы структурирования систем на этом языке

Цель работы: применив полученные навыки разработать классификационную экспертную систему.

Задачи:

  1. разработать базу фактов;

  2. разработать базу правил;

  3. протестировать и объяснить работу системы при использовании различных стратегий логического вывода;

  4. сравнить структуры, использованные для организации ЭС в лабораторных работах 3 и 4, сделать вывод об эффективности систем и прозрачности отражения их структурами заданной предметной области.

Структура, приведённая в качестве примера, возможно, не будет достаточно удобна для Вашей предметной области, но это прозрачный и эффективный для предметных областей, образующих небольшое пространство состояний, вариант структурирования, и к тому же он ещё не был рассмотрен. Использовать именно его для разработки Вашей системы – не обязательно.

Рассмотрим создание системы классификации четырёхугольников.

  1. Разработать базу фактов.

Вариант классификации представлен на рисунке.

Каждый из элементов классификации – представляет собой экземпляр фрейма «Четырёхугольник», который можно представить следующим фреймом.

(deftemplate tetragon

(slot name (type STRING))

;все ли стороны равны – значение по умолчанию не установлено

(slot all-sides-equal (type SYMBOL) (allowed-values yes no unk) (default unk))

;количество пар параллельных сторон – значение по умолчанию -1,

;что соответствует отсутствию инициализации

(slot parallel-sides-pair-count (range -1 2) (default -1))

;наличие прямого угла

(slot right-angle (type SYMBOL) (allowed-values yes no unk) (default unk)))

  1. Разработать базу правил.

Правила системы могут быть разделены на четыре категории:

  1. стартовое правило, которое инициализирует базу фактов экземпляром фрейма «Четырёхугольник», о котором ничего не известно;

(defrule Start

=>

(assert (tetragon))

  1. правила, задающие вопросы и инициализирующие соответствующие слоты фрейма;

(defrule sides-equal

; если о четырехугольник неизвестно равны все стороны или нет

?f<-(tetragon (all-sides-equal unk))

=>

;задать вопрос

(printout t “Are all sides of your tetragon equal?” crlf)

; связать некую локальную переменную со ответом пользователя

(bind ?answer(read))

;отразить ответ пользователя в структуре

(modify ?f (all-sides-equal ?answer)))

  1. правила выполняющие классификацию.

(defrule rect

;если у четырехугольника две пары параллельных сторон

?f<-(tetragon (parallel-sides-pair-count 2)

;и есть прямой угол

(right-angle yes))

=>

(assert ?f (name “Rectangle”))

  1. правило, сообщающее пользователю результат классификации

(defrule Fin

(tetragon (name ?x&:(neq ?x “”)))

=>

(printout t ?x crlf)

(halt))

  1. Протестировать и объяснить работу системы при использовании различных стратегий логического вывода.

Между оценкой состояния базы фактов и применением правила существует специальный шаг составления списка правил, которые могут быть применены в данной ситуации, то есть при текущем состоянии базы фактов. Эти правила вступают в конфликт между собой, поскольку на следующем шаге выполнения программы может сработать только одно из них. Для выбора этого правила существуют стратегии разрешения конфликтов. Обычно в программных системах предусматривается выбор из нескольких стратегий, поскольку стратегия разрешения конфликтов во многом определяет производительность системы.

Свойства механизмов разрешения конфликтов, определяющие чувствительность (как быстро система реагирует на изменение среды) и стабильность (степень консерватизма в поведении системы) режима управления в экспертной системе это разнообразие, новизна и специфика.

Разнообразие означает неприменение правил уже использованных ранее. Новизна означает уделение большего внимания вновь поступившим данным. Специфика обозначает, что более «сложные» правила, содержащие большее число предпосылок имеют приоритет перед более простыми и общими (более подробно см. [7, c. 116–117])

В CLIPS существует специальная структура, похожая на стэк и содержащая список правил, для которых на текущем шаге выполнения программы удовлетворяются условия левой части. Эта структура называется agenda (в буквальном переводе, повестка дня последовательность операций) – список заявок. Положение правила в этом списке определяется назначением приоритета правила (salience): вновь активизируемые правила помещаются выше правил с низшим приоритетом, и ниже правил с более высоким приоритетом; или назначением специальной стратегии разрешения конфликтов. Если невозможно упорядочить правила этими двумя способами, то активизируемое правило произвольно выбирается из списка. В CLIPS реализованы 7 стратегий разрешения конфликтов: depth, breadth, simplicity, complexity, lex, mea, и random. Стратегия по умолчанию - depth. Различные стратегии обуславливают различное поведение системы, опробовать и объяснить которое предлагается самостоятельно.