Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к экзамену.doc
Скачиваний:
69
Добавлен:
16.03.2015
Размер:
1.59 Mб
Скачать

Выражения в системе guru

Выражение должно быть вычислимым, состоит из констант, переменных и операторов. Выражение должно быть одного типа, смешивание типов в выражении недопустимо.

Различают арифметические выражения, в которых используют арифметические операторы +, -, *, /, mod, **-степень. Также есть тригонометрические, геометрические, алгебраические и т.д. Различают логические выражения, в которых используют логические операторы =, <>, >, <, >=, <= (или их эквиваленты EQ, LT, GT, NE, LE, GE), AND, OR, XOR, IN. Также в выражениях используются скобки.

Приоритет операций:

()

**

Унарный минус (-), NOT

*, /, MOD

+, -

IN

=, <>, <, >, >=, <=, EQ, LT, GT, NE, LE, GE

&, AND

OR, XOR

9. Синтаксис набора правил в guru и работа с правилами.

1. Работа с правилами в guru.

Количество правил неограниченно. Правила могут иметь приоритет, стоимость. Допускается четкая и нечеткая логика. 2 стратегии вывода: ПЦР и ОЦР. Правила можно запускать поодиночке и в любых сочетаниях. Количество стратегий посылок > 10, в том числе с учетом приоритетов или стоимости правил.

Любая ЭС обладает набором правил (НП), который имеет имя и целевую переменную. При создании ЭС можно создать новый НП или загрузить существующий (New Rule Set/ Existing Rule Set).

Rule Set Manager – менеджер набора правил, который создает специальный экран для просмотра и редактирования правил:

Общий экран редактирования правил:

Приоитет и стоимость

Приоритет – число от 1 до 100, присваиваемое каждому правилу (по умолчанию 50). При выводе решения в первую очередь рассматриваются правила с более высоким приоритетом. При возникновении конфликта возможны различные стратегии его решения.

Стоимость - число от 1 до 100. Какое правило более высокой стоимости отн правила, стоимость тестирования которого большая (количество конъюнктивных членов правила) не определяется автоматически, а определяется экспертом.

Стратегия тестирования по стоимости обычно обратна стратегии тестирования по приоритету. То есть стратегии являются противоречивыми между собой и, следовательно, одновременно не применяются. Выбор между стратегиями осуществляет эксперт.

2. Синтаксис набора правил

Синтаксис НП строится как набор предложений. Любое предложение начинается с ключегого слова, за которым следует «:». Для построения НП обычно используют ДПР. Все что может быть выполнено набором правил, должно быть выполнено набором правил, а не процедурным способом.

НП располагается в отдельном файле *.rss (после компиляции *.rsc) и может быть отредактирован в любом текстовом редакторе. В начале идут строки:

  1. RULESET:<Имя НП>

  2. GOAL:<Имя целевой переменной (ЦП)>

Все имена должны состоять из цифр, букв и «_», начинаться с букв или «_» и не совпадать с зарезервированными словами GURU.

  1. INITIAL: <Набор операторов>

Каждый оператор начинается с новой строки или после знака «;». Этот раздел исполняется до работы с правилами и содержит начальные установки правил, установки переменных среды (например, E.LSTR=80 – установка длины для поля ввода), устанавливаются исходные режимы, стратегии работы с правилами осуществляется подготовительная работа перед консультацией.

  1. RULE: <Имя правила>

IF: <Условие>

THEN: <Основная часть правила>

PRIORITY: <Число от 1 до 100>

COST: <Число от 1 до 100>

TEST: <>

REASON: <Текст объяснения правила>

Правило должно быть как можно проще. Приоритет особенно важен для ОЦР. Порядок правил имеет значение: при равенстве приоритетов (PRIORITY) правила выполняются в порядке записи.

Стоимость (COST) устанавливает эксперт. Правило считается более дорогим, если у него более сложная проверка в разделе «IF» (больше конъюнкций).

Стратегию срабатывания можно выбрать с помощью системной переменной E.SORD: «p» - по приоритету; «c» - по стоимости.

TEST представляет стратегию тестирования правила. Могут быть 3 случая для переменной E.TRYP:

  • «E» (по умолчанию) – энергичное тестирование: тестирование каждый раз после нахождения неизвестной переменной. OR.

  • «P» - предусмотренная стратегия: тестирование происходит только после попытки вычисления всех переменных выражения.

  • «S» - точная стратегия: все значение переменных определены. AND.

Текст объяснения правила описывает данное правило и выводится по команде WHY.

  1. VAR (=VARIABLE): <Название>

LABEL: <Метка>

FIND: <Оператор ввода>

Для списка переменных строки LABEL и FIND являются необязательными.

  1. GO (=COMPLETION):<Список операторов>

Этот раздел является необязательным. Здесь содержатся операторы, выполняемые после завершения работы с правилами, такие как вывод результата, переопределение системных переменных и другое.

  1. END:

Завершение набора правил.