logo search

2.3.4. Язык спецификации блоков принятия решений

Исходные тексты на языке спецификации БПР хранятся в текстовых файлах с расширением “.BPR”. Блок принятия решений состоит из 3 частей (рис. 2.17):

Примеры блоков принятия решений приведены в приложениях.

Заголовок блока

Блок: <имя блока>

Разработчик:

Наименование:

Область применения:

Источник информации:

Таблица условий применения

-----------------------------------------------------

| Наименование атрибута | Значение | Имя |

-----------------------------------------------------

|1. | | |

|2. Описание входных атрибутов и | |

|... ограничений на допустимые значения | |

|N. | | |

-----------------------------------------------------

|N+1. Описание выходных атрибутов | |

|... | | |

-----------------------------------------------------

Таблица решений

-----------------------------------------------------

| | | | Наименование входного |

| | | | атрибута K |

| | | |-------------------------|

| | | | Интервалы значений |

| | | | входного атрибута K |

| Наимено- | Наимено- |...| | |

| вание | вание | |-------------------------|

| входного | входного | | Наименование входного |

| атрибута | атрибута | | атрибута L |

| i | j | |-------------------------|

| | | | Интервалы значений |

| | | | входного атрибута L |

| | | | | | | |

| | | |-------------------------|

| | | | . . . |

-----------------------------------------------------

| | | | | | | |

|----------|----------|---|-------------------------|

| Интервалы значений | | значения | |

|--- входных атрибутов --|------- выходных -----|

| | | атрибутов | |

|----------|----------|---|-------------------------|

| | | | | | | |

-----------------------------------------------------

Рис.2.17. Структура блока принятия решений

Заголовок блока содержит справочные сведения, которые включают имя блока, фамилию разработчика, развернутое наименование содержимого блока, область применения и источник информации для создания блока. Сведения из заголовка используются как комментарий. Заголовок начинается со слова "Блок:", за которым следует имя блока. Имя блока состоит из латинских букв и цифр и начинается с буквы. Имя блока должно совпадать с именем файла для этого блока. В настоящей версии имя блока не должно превышать 8 символов. Рекомендуется имя блока начинать с буквы ‘B’, за которой следует номер блока (например, B1, B2 и т.д.).

Таблица условий применения блока содержательно разделена четырьмя горизонталь­ными линиями на три части:

  1. Шапка таблицы;

  2. Определение входных атрибутов;

  3. Определение выходных атрибутов.

Число позиций, отводимых под эти линии, определяет ширину таблицы условий применения и не должно превышать 254 символа. Все четыре горизонтальные линии должны быть равны между собой. Обычно для горизонтального разделителя используется символ '-' (минус), а для вертикального - '|' (код 124). Содержимое шапки таблицы условий применения блока играет справочную роль при чтении БПР.

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

Вторая колонка может содержать ограничения на допустимую область определения значений для каждого из входных атрибутов блока принятия решений. Область определения входного атрибута может быть записана в виде последовательности констант или интервалов, разделенных запятыми. Константа может соответствовать целому, вещественному или символьному типу данных. Для атрибутов, имеющих целый или вещественный тип данных, могут использоваться цифры 0...9 (следует отличать букву О от цифры 0), а также специальные символы:

+ (плюс);

- (минус);

. (точка).

Символьные данные имеют тип 'A' (список значений) и допускают любые символы кроме символа ',' (запятая). Например, отдельные значения целого, вещественного или символьного типа:

8, 36.5, Быстрорежущая сталь.

Интервал допустимых значений записывается в виде двух чисел, разделенных между собой запятой и заключенных в круглые или квадратные скобки. При этом первое число соответствует нижней границе интервала, а второе - верхней. Квадратная скобка означает, что числовое значение включается в интервал, а круглая скобка указывает на то, что данное числовое значение в интервал не включается. Отсутствие значения на месте нижней или верхней границы интервала указывает на использование неограниченного с одной стороны интервала. Например:

  1. Ограниченные с двух сторон интервалы: [5.,20.6], (1,9), (15,100], [-2.,40.).

  2. Неограниченные с одной стороны интервалы: [10,), (,12], (6,).

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

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

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

Таблица решений составляется пользователем на основе справочных сведений или на основе аналитических зависимостей, сложившихся в предметной области. Форма таблицы решений представляет собой прямоугольник, разделенный на четыре области горизонтальными и вертикальными линиями:

--------------------------

| 1 | 2 |

--------------------------

| 3 | 4 |

--------------------------

Длина горизонтальных линий определяет размер таблицы решений и не должна превышать 254 символа. Все три горизонтальные линии должны быть равны между собой.

Все входные атрибуты таблицы решений условно разбиты на две группы. Первая группа входных атрибутов записывается сверху от матрицы значений выходных атрибутов (область 2), а вторая группа - слева (области 1 и 3). Запись атрибутов включает их наименование и интервалы значений. Выходные значения таблицы решений записаны в виде матрицы и располагаются в правом нижнем углу таблицы решений (область 4).

Работа с таблицей решений построена по следующему алгоритму. Для нахождения значений выходных атрибутов необходимо проверить принадлежность значений двух групп входных атрибутов определенным интервалам, записанным в таблице решений сверху по горизонтали и слева по вертикали. Наименование и интервалы первой группы атрибутов расположены в верхних горизонтальных строках таблицы (область 2). Наименование и интервалы второй группы атрибутов расположены в левой части таблицы по вертикали (область 1 - для наименований, область 3 - для интервалов). Поиск значений выходных атрибутов по таблице решений предусматривает определение принадлежности значений входных атрибутов заданным интервалам и нахождение на пересечении соответствующего столбца и строки клетки со списком значений выходных атрибутов.

Пользователю следует помнить о том, что интервалы входных атрибутов не должны пересекаться. Так как при поиске решений значения будут выдаваться всегда из первого обнаруженного интервала. Например, если два интервала заданы следующим образом:

| [1., 10.] | (5., 25.] |,

то к первой колонке всегда будет обращение при задании входного параметра в интервале от 1 до 10. Ко второй колонке будет обращение при задании входного параметра от 10 до 25. Для данного примера правильно записанные интервалы должны иметь вид:

| [1., 10.] | (10., 25.] |.

Значения выходных атрибутов могут быть представлены в виде констант или выражений. Константы могут относиться к числовому или символьному типу данных. Операндами выражения являются целые, вещественные константы, имена атрибутов из таблицы условий и функции.

В выражениях допустимы следующие операции:

- - унарный минус;

* - умножение;

/ - деление;

+ - сложение;

- - вычитание;

== - равно;

!= - не равно;

> - больше;

>= - больше или равно;

< - меньше;

<= - меньше или равно;

! - отрицание;

&& - логическое "и" (конъюнкция);

|| - логическое "или" (дизъюнкция);

В выражениях допустимы следующие стандартные функции:

abs(x) – абсолютное значение числа;

acos(x) – arc-косинус;

asin(x) – arc-синус;

atan(x) – arc-тангенс;

ceil(x) – ближайшее большее целое;

cos(x) – косинус угла;

cosh(x) – гиперболический косинус;

exp(x) – экспонента (ex);

fabs(x) – абсолютное значение числа;

floor(x) – ближайшее меньшее целое;

fmod(x, y) – остаток от деления x/y;

hypot(x, y) – длина вектора;

int(x) – целая часть числа;

log(x) – логарифм по основанию 2;

log10(x) – десятичный логарифм;

max(a, b>) – максимум двух чисел;

min(a, b) – максимум двух чисел;

pow(x, y) – возведение в степень (xy);

sign(x) – знак числа

sin(x) – синус угла;

sinh(x) – гиперболический синус;

sqrt(x) – квадратный корень;

tan(x) – тангенс угла;

tanh(x) – гиперболический тангенс;

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

Число и порядок записи выходных значений в таблице решений определяется числом и порядком их записи в таблице условий применения блока. Разделителем отдельных выходных значений выступает символ ',' (запятая).

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