Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример 6.51. Преобразованное правило с условиями not перед test






 

(defrule example

(а? х)

(test (>? х 5))

(not (b? x))

=>)

Использование элемента not перед or

Если сразу перед условным элементом or использовался условный элемент not, то CLIPS автоматически заменяет комбинацию not/or на эквивалент­ную комбинацию and/not. Например, следующее правило (пример 6.52) будут изменено так, как показано в примере 6.53.

Пример 6.52. Правило с условиями not перед or

 

(defrule example

(а? х)

(not (or (b? x)

(с? x)))

=>)

Пример 6.53. Преобразованное правило с условиями not перед or

 

(defrule example

(a? x)

(and (not (b? x))

(not (c? x)))

=>)

Замечания об автоматическом добавлении и перегруппировке условных элементов

В завершение описания синтаксиса левой части правил CLIPS обратим внимание на следующие важные особенности:

1. Полная версия левой части правила содержит неявный условный элемент and.

2. Преобразование условных элементов forall и exists к эквивалентным выражениям с помощью not и and выполняется перед добавлением соот­ветствующих образцов в левую часть правила.

3. Условный элемент test обычно не используется в качестве первого элемента в условии and.

4. Команды, выводящие информацию об условных элементах в левой части правила, отображают информацию об определении правила в виде, в котором ее задал пользователь. Информация о перегруппировке и добавлении образцов initial-fact и initial-object не выводится.

Команды и функции для работы с правилами

После того как мы полностью разобрались с представлением правил в CLIPS, рассмотрели внутренние алгоритмы обработки правил, стратегии разрешения конфликтов и синтаксис левой части правил, можно смело пе­реходить к изучению функций и команд, предоставляемых CLIPS для рабо­ты с правилами. Полная спецификация этих функций будет дана в гл. 15 и 16, в данной главе мы рассмотрим лишь основные из них с примерами использования.

Просмотр и удаление существующих правил

После создания правил с помощью конструктора defrule вполне естествен­но возникает желание сделать что-нибудь с уже существующим правилом. CLIPS поддерживает множество различных команд, оперирующих с пра­вилами. В данном разделе мы рассмотрим наиболее часто используемые команды: ppdefrule, list-defrules и undefrule.

С помощью команды ppdefrule можно просмотреть определение правила в том виде, в котором оно было создано с помощью конструктора defrule.

Определение 6.25. Синтаксис команды ppdefrule

(ppdefrule < имя-правила>)

Для того чтобы получить полный список правил, присутствующих в CLIPS в данный момент, используется команда list-def rules.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2026 год. (0.166 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал