Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
tatra_v2.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
438.78 Кб
Скачать

4.2. Язык описания правил выбора решений (язык описания таблицы предикатов)

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

<таблица предикатов> ::= <справка><описание признаков> <тело условия>/<справка><описание признаков> (<данные о признаках>) <тело условия>/<справка><тело условия>/

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

Второй вариант задания таблицы предикатов используется для минимизации объема памяти, занимаемого правилами выбора решений после трансляции таблиц предикатов. Методика задания данных о признаках описана в разделе 5.2. Третий вариант позволяет связать предикат с заданием пространства признаков с помощью дополнительных возможностей системы программирования ТАТРА (см. разделы 5.1 и 5.3).

<справка>::= <имя системы><имя алгоритма><имя алгоритма><имя системы>

<имя системы>::= C=<текстовая константа, не превышающая 8 символов>;

<имя алгоритма> ::= А=<текстовая константа, не превышающая 8 символов>;

<описание признаков>::= <имя признака><имя признака><описание признаков>

<имя признака>::= <текстовая константа, не превышающая 8 символов>;

<тело условия >::= <правило><правило><тело условия>

<правило>::= <номер правила>; <система предложений>

<номер правила>::= <целое без знака>

<система предложений>::= <предложение><предложение><система предложений>

Предложение записывается в одну строку. Правило может состоять из нескольких предложений, тогда номер в графе "№ решения" ставится только перед первой строкой правила.

<предложение>::= <выражение><выражение> <предложение>

Выражение - это запись одноместного предиката QIJ. Нетрудно заметить, что предложение является совокупностью одноместных предикатов, соединенных операцией конъюнкции &; а правило, задающее закон, по которому выбирается решение, - это дизъюнкция конъюнкций одноместных предикатов QIJ.

<выражение>::= <пробел> ' <граница><перечисление><интервал>

Выражение равно пробелу тогда, когда значение признака в данном правиле безразлично. Апостроф (') ставится тогда, когда значение признака в правиле совпадает с его значением в предыдущей строке.

<граница>::= <знак границы><цифровая константа>;

<знак границы>::= < <= >= >

<перечисление>::=<знак перечисления><множество цифровых констант>;

<знак перечисления>::= <пусто> = #

Пусто - значит нет знака и в этом случае подразумевается знак "=".

<множество цифровых констант>::= <цифровая константа><цифровая константа>, <множество цифровых констант>

<интервал>::= <открытый интервал><закрытый интервал> <полуоткрытый интервал>

<открытый интервал>::= (<цифровая константа>,<цифровая константа>)

<закрытый интервал>::= [<цифровая константа>,<цифровая константа>]

<полуоткрытый интервал>::= (<цифровая константа>,<цифровая константа>] [<цифровая константа>,<цифровая константа>)

В соответствии с описанными правилами на рис.5 оформлена таблица предикатов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]