Иллюстрированный самоучитель по введению в экспертные системы


Упражнения - часть 3


5. Ниже приведен фрагмент программы Wine Advisor (Советчик для любителей вин) на языке CLIPS (программа разработана Рандом Вальцманом для системы Teknowledge OPS5). В программу вводится название блюда, а она предлагает список вин, рекомендуемых к этому блюду. Программа работает по принципу эвристической классификации, поскольку построена на предположении о наличии прямого соответствия между основными характеристиками блюда (например, из мяса или рыбы, типа приправ и т.п.) и классом рекомендуемых вин (в характеристики класса входит цвет, крепость, сахаристость и т.п.).

I) Ваша задача состоит в том, чтобы проанализировать представленный набор правил и принять решение о том, как организовать базу знаний о блюдах и винах, как поступать с неопределенностью, как переходить от одной стадии процесса логического вывода к другой. Комментарии в тексте программы помогут вам понять ее суть и укажут способ расширения ее возможностей. В случае необходимости пользуйтесь описанием языка CLIPS, приведенном в Приложении.

;; Шаблоны

(def template wine

(field property (type SYMBOL))

(field is (type SYMBOL))

(field cert (type FLOAT))

)

(def template meal

(field property (type SYMBOL))

(field is (type SYMBOL))

)

(deftemplate decision

(field re (type SYMBOL)) (field is (type SYMBOL))

)

;; Факты

(deffacts the-facts

(task dish) )

;; Порождающие правила в формате

;; (defrule <наименование_правила> <прав часть>

;; =>

;; <лев_часть> ).

;; ПРАВИЛА, КАСАЮЩИЕСЯ БЛЮД.

Эти правила соответствуют этапу абстрагирования данных.

Правило dish-type вызывается первым, поскольку оно устанавливает модель среды в соответствии с имеющимися фактами при перезапуске исполнительной системы CLIPS,

(defrule dish-type (initial-fact) (task dish) =>

(printout t crlf

"Is the main dish of the meal MEAT, FISH or POULTRY?"

;; Блюдо приготовлено из МЯСА, РЫБЫ или ПТИЦЫ?

t crlf) (assert (meal (property dish-type)

(is read)))) )

;; Правило meat собирает дополнительные сведения




- Начало -  - Назад -  - Вперед -