- •Содержание
- •Введение
- •Работа № 1. Явные методы представления знаний
- •Работа № 2. Методы поиска
- •Работа № 3. Анализ работы эс, разработанных на clips
- •Работа № 4. Разработка классификационной экспертной системы на clips.
- •Задачи:
- •Варианты. Лабораторная работа № 1.
- •Лабораторная работа № 2.
- •Лабораторная работа №3, 4.
- •Рекомендуемая литература
Работа № 4. Разработка классификационной экспертной системы на clips.
Добравшиеся до данного этапа уже в достаточной степени владеют CLIPS и представляют себе приблизительные способы структурирования систем на этом языке
Цель работы: применив полученные навыки разработать классификационную экспертную систему.
Задачи:
-
разработать базу фактов;
-
разработать базу правил;
-
протестировать и объяснить работу системы при использовании различных стратегий логического вывода;
-
сравнить структуры, использованные для организации ЭС в лабораторных работах 3 и 4, сделать вывод об эффективности систем и прозрачности отражения их структурами заданной предметной области.
Структура, приведённая в качестве примера, возможно, не будет достаточно удобна для Вашей предметной области, но это прозрачный и эффективный для предметных областей, образующих небольшое пространство состояний, вариант структурирования, и к тому же он ещё не был рассмотрен. Использовать именно его для разработки Вашей системы – не обязательно.
Рассмотрим создание системы классификации четырёхугольников.
-
Разработать базу фактов.
Вариант классификации представлен на рисунке.
Каждый из элементов классификации – представляет собой экземпляр фрейма «Четырёхугольник», который можно представить следующим фреймом.
(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)))
-
Разработать базу правил.
Правила системы могут быть разделены на четыре категории:
-
стартовое правило, которое инициализирует базу фактов экземпляром фрейма «Четырёхугольник», о котором ничего не известно;
(defrule Start
=>
(assert (tetragon))
-
правила, задающие вопросы и инициализирующие соответствующие слоты фрейма;
(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)))
-
правила выполняющие классификацию.
(defrule rect
;если у четырехугольника две пары параллельных сторон
?f<-(tetragon (parallel-sides-pair-count 2)
;и есть прямой угол
(right-angle yes))
=>
(assert ?f (name “Rectangle”))
-
правило, сообщающее пользователю результат классификации
(defrule Fin
(tetragon (name ?x&:(neq ?x “”)))
=>
(printout t ?x crlf)
(halt))
-
Протестировать и объяснить работу системы при использовании различных стратегий логического вывода.
Между оценкой состояния базы фактов и применением правила существует специальный шаг составления списка правил, которые могут быть применены в данной ситуации, то есть при текущем состоянии базы фактов. Эти правила вступают в конфликт между собой, поскольку на следующем шаге выполнения программы может сработать только одно из них. Для выбора этого правила существуют стратегии разрешения конфликтов. Обычно в программных системах предусматривается выбор из нескольких стратегий, поскольку стратегия разрешения конфликтов во многом определяет производительность системы.
Свойства механизмов разрешения конфликтов, определяющие чувствительность (как быстро система реагирует на изменение среды) и стабильность (степень консерватизма в поведении системы) режима управления в экспертной системе это разнообразие, новизна и специфика.
Разнообразие означает неприменение правил уже использованных ранее. Новизна означает уделение большего внимания вновь поступившим данным. Специфика обозначает, что более «сложные» правила, содержащие большее число предпосылок имеют приоритет перед более простыми и общими (более подробно см. [7, c. 116–117])
В CLIPS существует специальная структура, похожая на стэк и содержащая список правил, для которых на текущем шаге выполнения программы удовлетворяются условия левой части. Эта структура называется agenda (в буквальном переводе, повестка дня последовательность операций) – список заявок. Положение правила в этом списке определяется назначением приоритета правила (salience): вновь активизируемые правила помещаются выше правил с низшим приоритетом, и ниже правил с более высоким приоритетом; или назначением специальной стратегии разрешения конфликтов. Если невозможно упорядочить правила этими двумя способами, то активизируемое правило произвольно выбирается из списка. В CLIPS реализованы 7 стратегий разрешения конфликтов: depth, breadth, simplicity, complexity, lex, mea, и random. Стратегия по умолчанию - depth. Различные стратегии обуславливают различное поведение системы, опробовать и объяснить которое предлагается самостоятельно.