Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METHOD-rdo.doc
Скачиваний:
55
Добавлен:
31.03.2015
Размер:
606.72 Кб
Скачать

2.5. Объект точек принятия решений

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

Объект точек принятия решений имеет формат:

{<описание_точки_принятия_решений> | <блок_активностей> }

Описание каждой точки принятия решений имеет формат:

$Decision_point<имя_точки> : <тип_точки> [<признак_трассировки>]

$Condition<условие_активизации_точки>

[$Term_condition<терминальное_условие>

$Evaluate_by<оценка_стоимости_оставшегося_пути_на_графе>

$Compare_tops = YES | NO ]

<блок_активностей>

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

В данной версии РДО-языка имеются два типа точек принятия решений:

  • some просмотреть все активности данной точки, проверить предусловия, выполнить ту активность, предусловия которой удовлетворяются;

  • search реализовать поиск на графе состояний.

Признак трассировки может быть одним из следующих:

  • no_trace не производить трассировку точки;

  • trace_stat выдавать в объект трассировки только статистическую информацию по процессу поиска на графе;

  • trace_tops выдавать в объект трассировки статистическую информацию по процессу поиска и информацию о всех вершинах графа поиска;

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

Значением признака трассировки по умолчанию является значение no_trace.Остальные значения признака трассировки имеют смысл только для точек типаsearch.

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

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

Эвристическая оценочная функция стоимости оставшегося пути до целевой вершины ($Evaluate_by) задается арифметическим выражением целого либо вещественного типа.

Признак сравнения вершин ($Compare_tops) задается зарезервированным словомYES, если необходимо сравнивать каждую вновь порожденную в процессе поиска вершину с вершинами, уже находящимися в графе, и зарезервированным словомN0, если сравнивать не нужно. Необходимость в сравнении вершин зависит от конкретной задачи, решаемой поиском на графе.

Блок активностей имеет формат:

$Activities

{ <описание активности> }

$End

Описание каждой активности похоже на описание операции и имеет формат:

<имя_активности> : <имя_образца> [<код_клавиши>] [<значения_параметров_образца> ] [value_before|value_after <стоимость_применения_правила> ]

Имя активности это любое допустимое в языке имя, не совпадающее с ранее определенными именами. Имя образцаэто имя одного из образцов, заданных в объекте образцов. Код клавиши указывают для образцов типаkeyboard. Значения параметров образца записываются таким же образом, как и для операций. Стоимость применения правил есть арифметическое выражение целого или вещественного типа, записанное в контексте данного образца, то есть в этом выражении можно использовать параметры образца и параметры релевантных ресурсов образца. Стоимость применения правила вместе с зарезервированными словамиvalue_beforeилиvalue_afterуказывают только для активностей, входящих в точку принятия решений типаsearch. Зарезервированное словоvalue_beforeозначает, что значение выражения должно быть вычислено до применения правила, то есть при состоянии системы перед преобразованием состояния в соответствии с правилом. Зарезервированное словоvalue_afterозначает, что значение выражения должно быть вычислено после применения правила, то есть с измененным состоянием системы.

Примечание. При написании блока активностей необходимо иметь в виду следующее. Для точки принятия решений типа search допустимо использование только образцов типа rule, при выполнении которых ресурсы не создаются и не уничтожаются, то есть статусы конверторов релевантных ресурсов которых не содержат Create или Erase. Использование образцов других типов не допускается. Для точки принятия решений типа some допустимо использование только образцов типа rule и operation. В свободных блоках активностей (блоках активностей, не входящих в состав точек принятия решений), допускается использование только образцов типа keyboard и irregular_event.

Пример объекта точек принятия решений:

$Decision_point Точка_1: search trace_stat

$Condition

Ресурс_1.Параметр_1=0 and

Exist(Тип_1 : Тип_1.Параметр_3 = Значение_2) and

Ресурс_5.Параметр_7 <> О

$Term_condition Ресурс_1.Параметр_1 = 1

$Evaluate_by 0

$Compare_tops = NO

$Activities

Правило_1 : Образец_12 6.25 *

value_after Ресурс_1.Параметр_4

Правило_2 : Образец_8 Константа_5

value_after Ресурс_1.Параметр_4

Правило_3 : Образец_9

value_before Ресурс_2.Параметр_4 * Функция(2)

$End

$Activities

Нерегулярное_событие_1 : Образец_3 10 20 *

Клавиатурная_операция_1 : Образец_6 "LEFT" 100

$End

$Decision_point Точка_2: some

$Condition NoCheck

$Activities

Операция_1 : Образец_14 25 *

Операция_2 : Образец_15 Константа_2

Правило_4 : Образец_16

$End

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

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

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

Активности, входящие в свободные блоки активностей, обрабатываются в соответствии с другими алгоритмами. Подробнее они рассмотрены при описании клавиатурных операций и нерегулярных событий.

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