- •Введение
- •1. Основные понятия системы рдо
- •2. Необходимые объекты модели
- •2.1. Объект типов ресурсов
- •2.2. Объект ресурсов
- •2.3. Объект образцов операций
- •2.4. Объект операций
- •2.5. Объект точек принятия решений
- •2.6. Объект прогона
- •3. Дополнительные объекты модели
- •3.1. Объект констант, функций и последовательностей
- •3.2. Объект кадров анимации
- •4. Объекты трассировки и сбора статистики
- •4.1. Объект трассировки
- •4.2. Объект требуемой статистики
- •4.3. Объект результатов
- •5. Работа в среде рдо
- •5.1. Окна редактора и имитатора исм рдо
- •5.2. Зарезервированные слова
- •5.3. Глобальные переменные и стандартные функции
- •6. Демонстрационные примеры
- •6.1. Моделирование экзамена
- •6.2. Моделирование игры
- •7. Содержимое каталога рдо
- •Литература
- •Оглавление
4. Объекты трассировки и сбора статистики
4.1. Объект трассировки
Этот объект создается РДО-имитатором, если в объекте прогона присутствует дескриптор, задающий имя объекта трассировки. Объект имеет расширение .trc и следующий формат:
Results_file = <имя_объекта_результатов>.pmv <дата_создания>
Run_file = <имя_прогона>.smr
Model_name = <имя_модели>
Resource_file = <имя_объекта_ресурсов>.rss
OprIev_file = <имя_объекта_операция>.opr
$Changes
<список_изменений>
$Watching
{ <описание_трассируемого_показателя> }
$Тrасing
<трассировка>
$Status = <статус_окончания_моделирования> <модельное_время_окончания>
{ <статистика_по_поиску_на_графе> }
DPS_MM <объем_использованной_памяти>
Имена модели, объекта ресурсов и объекта операций это имена, заданные в объекте прогона. Список изменений содержит имена и новые значения символьных констант, параметров ресурсов и баз генераторов последовательностей, заданные в объекте прогона. Описание трассируемого показателя приводится только для тех показателей, для которых в объекте описания показателей задан признак трассировки trace. Описание трассируемого показателя имеет формат:
<имя_показателя> <номер_показателя> <вид_показателя>
Имя показателя это одно из имен, заданных в объекте описания показателей. Номер показателя определяется порядком описания показателей в этом объекте, вид показателя также описан в этом объекте.
Трассировка содержит информацию четырех видов: трассировку событий, трассировку состояния ресурсов, трассировку показателей и трассировку точек принятия решений; и выдается при условии, что текущее модельное время больше или равно времени начала трассировки и меньше или равно времени окончания трассировки, а также если в соответствующем объекте (ресурсе, образце, показателе или точке принятия решений) явно указан признак трассировки trace.
Информация о событии располагается на отдельной строке, которая имеет следующий формат:
Е<тип_события> <время> <информация_о_событии>
Строка трассировки события начинается символом "Е". Второй символ строки определяет тип события. Возможны следующие типы и соответствующие им символы:
S служебное событие;
В начало действия;
Е окончание действия;
I нерегулярное событие;
R продукционное правило.
Поле <время> содержит время наступления события в формате вещественного числа. Далее следует информация о событии, которая зависит от типа события. Для служебных событий эта информация включает в себя только номер служебного события. В данной версии системы имеется только четыре служебных события:
1 начало трассировки;
2 конец трассировки;
3 начало моделирования;
4 завершение процесса поиска на графе состояний в точке принятия решений.
Для событий начала и окончания действий информация о событии имеет следующий формат:
<номер_действия> <номер_операции> <номер_образца> <число_релевантных_ресурсов> <список_номеров>
Номер действия это внутренний номер, который имеет место в имитаторе. Этот номер необходим, чтобы связать события начала и окончания одного и того же действия, другой полезной информации он не несет. Следующие два поля содержат номер операции, которая выполнялась в действии, и номер образца этой операции. Эти номера считаются по порядку описания в объектах операций и образцов операций. Далее следует число релевантных ресурсов действия и список их номеров.
Для нерегулярных событий информация о событии имеет следующий формат:
<номер_нерегулярного_события> <номер_образца> <число_релевантных_ресурсов> <список_номеров>
Для продукционных правил информация о событии имеет следующий формат:
<номер_действия> <номер_правила> <номер_образца> <число_релевантных_ресурсов> <список_номеров>
Трассировка состояния ресурсов включает в себя информацию обо всех изменениях состояния ресурсов. В момент изменения состояния трассируемого ресурса в объект трассировки выдается отдельная строка следующего формата:
R<символ_статуса> <время> <номер_типа> <номер_ресурса> <новые_значения_параметров>
Символ статуса показывает, что произошло с ресурсом в целом:
С ресурс создан;
Е ресурс уничтожен;
К значения параметров ресурса изменились.
Номер типа и номер ресурса определяются порядком следования типов и ресурсов в объекте описания типов и объекте ресурсов соответственно. Новые значения параметров выводятся в объект в порядке следования параметров при описании типов ресурсов. Для перечислимых параметров выводятся не имена значений, а их номера. При этом первому имени значения присваивается номер 0, второму 1 и так далее.
Трассировка состояния ресурсов производится только в том случае, если текущее модельное время больше или равно времени начала трассировки и меньше или равно времени окончания трассировки, и если для ресурса в объекте ресурсов указан признак трассировки trace. Для ресурсов, которые уничтожаются (символ статуса "Е"), новые значения параметров не выводятся.
Строка трассировки показателя имеет следующий формат:
V <время> <номер_показателя> <значение>
Номер показателя это номер, указанный для трассируемых показателей в секции $Watching объекта трассировки. Трассировка показателей производится в момент изменения значения параметра, числа временных ресурсов, значения логического выражения (для показателя вида watch_state) или в момент уничтожения ресурса (для показателя вида watch_value). Значение зависит от вида показателя. Ниже приведены значения для всех видов показателей:
watch_par – новое значение параметра постоянного ресурса;
watch_state – новое значение логического выражения;
watch_quant – новое значение количества временных ресурсов;
watch_value –значение арифметического выражения в момент уничтожения временного ресурса.
Трассировка показателя вида get_value не производится.
Пример трассировки показателей:
V 0.0000 1 FALSE
V 0.4300 22 6
V 0.5530 24 2.0000
Трассировка процесса поиска на графе в точке принятия решений типа search позволяет полностью восстановить картину поиска и полученный граф. Формат трассировки имеет вид:
<начало_поиска>
[ <информация_о_поиске> ]
[<решение>]
<окончание_поиска>
Трассировка начала и окончания поиска и трассировка решения присутствуют в объекте трассировки, если в описании точки принятия решений указан любой признак трассировки, кроме no_trace.
Формат информации о начале поиска:
SB <модельнюе_время> <номер_точки_принятия_решения>
Трассировка окончания поиска имеет формат:
SE<признак> <модельное_время> <время_счета> <обьем_памяти_для_поиска> <значение_стоимости_решения> <число_раскрытых_вершин> <число_вершин_в_графе> <число_включавшихся_в_граф_вершин> <число_порожденных_вершин>
Она содержит признак завершения процесса поиска и статистическую информацию о полученном графе и затраченных ресурсах. Признак завершения может быть одним из следующих:
S успешное завершение поиска с нахождением решения;
М не хватило памяти для поиска;
F произошла ошибка записи в файл трассировки;
U неизвестная ошибка.
Время счета выводится в секундах, а объем памяти, использованной для построения графа, в байтах. Стоимость решения есть сумма стоимостей применения всех правил, составляющих решение.
Трассировка решения имеет формат:
SD { <номер_вершины> <номер_активности> <номер_образца>
<число_релевантных_ресурсов> <номера_релевантных_ресурсов> }
Этот текст состоит из строк, содержащих информацию о том, какие правила были применены к исходной вершине графа (исходному состоянию системы) для перехода в целевое состояние. Правила указываются в порядке их применения. Номер вершины позволяет более подробно проанализировать решение на основе информации о поиске.
Пример результата трассировки точки принятия решений типа search (с признаком трассировки trace_stat):
SB 10.3451
SD
187 2 2 6 1 11 2 11 3 11
993 1 1 3 1 2 3
1009 4 4 6 1 11 2 11 3 11
1906 4 4 6 1 11 2 11 3 11
3252 4 4 6 1 11 2 11 3 11
SES 0 1207.8 327680 2.59395е+09 11632 15540 27934 96292
Информация о поиске включает данные о вершинах графа поиска, порожденных в процессе поиска. Она выводится в объект трассировки, если признак трассировки для данной точки принятия решений есть trace_tops или trace_all и состоит из блоков вида:
<трассировка_раскрываемой_вершины>
{ <порожденная_вершина> [ <трассировка_измененных_ресурсов> ] }
Трассировка раскрываемой вершины имеет формат:
SO <номер_вершины> <номер_родителя> <стоимость_пути> <значение_оценочной_функции>
Номер вершины и номер родителя это номера раскрываемой вершины и ее родителя в графе поиска. Далее указана стоимость пути от исходной вершины к данной и значение оценочной функции для данной вершины.
После информации о раскрываемой вершине следуют данные обо всех преемниках, полученных при раскрытии этой вершины.
Информация о преемнике имеет формат:
ST <признак_вершины> <номер_вершины> <номер_вершины_родителя> <стоимость_пути> <значение_оценки_стоимости_оставшегося_пути> <номер_правила> <номер_образца> <стоимость_применения_правила> <число_релевантных_ресурсов> <номера_релевантных_ресурсов>
Признак вершины имеет значение N, если вершина с таким состоянием системы не содержится в уже построенной части графа; значение D если вершина с таким состоянием уже есть, и она не включается в граф (вновь найденный путь имеет большую стоимость); значение R если вершина с таким состоянием уже есть в графе, и она перезаписывается, поскольку вновь найденный путь имеет меньшую стоимость.
Трассировка измененных ресурсов для порождаемых вершин происходит в том случае, если признак трассировки для данной точки принятия решений есть trace_all. Новое состояние ресурса выдается в формате, описанном ранее (трассировка состояния ресурсов). Отличие состоит в том, что строка, содержащая новое состояние ресурса, начинается с префикса "S".
Статус окончания моделирования указывает причину завершения моделирования и может быть одним из следующих:
NORMAL_TERMINATION нормальное завершение моделирования при выполнении условия окончания моделирования, заданного в прогоне;
NO_MORE_EVENTS нет больше событий в модели;
USER_BREAK моделирование завершилось из-за вмешательства пользователя, который завершил РДО-имитатор одной из возможных команд (см. главу 5);
RUN_TIME_ERROR — моделирование завершилось из-за ошибки во время счета (информация об ошибке выводится в окно диалога РДО-имитатора).
Статистика по поиску на графе для каждой точки принятия решений типа search имеет формат:
DPS_C <номер_точки> <число_активаций> <число_успешных>
DPS_TM <среднее_время_поиска> <минимальное_время_поиска> <максимальное_время_поиска>
DPS_ME <средний_объем_памяти> <минимальный_объем_памяти> <максимальный_объем_памяти>
DPS_CO <средняя_стоимость_решения> <минимальная_стоимость_решения> <максимальная_стоимость_решения>
DPS_ТО <среднее_число_раскрытых_вершин> <минимальное_число_раскрытых_вершин> <максимальное_число_раскрытых_вершин>
DPS_TT <среднее_число_вершин_в_графе> <минимальное_число_вершин_в_графе> <максимальное_число_вершин_в_графе>
DPS_ТI <среднее_число_включенных_в_граф_вершин> <минимальное_число_включенных_в_граф_вершин> <максимальное_число_включенных_в_граф_вершин>
DPS_TG <среднее_число_порожденных_вершин> <минимальное_число_порожденных_вершин> <максимальное_число_порожденных_вершин>
Статистика содержит номер точки принятия решений, число активации данной точки и число успешных завершений поиска с нахождением решения. Кроме этого выдаются средние значения по всем активациям поиска, минимальные и максимальные значения таких характеристик процесса поиска, как время поиска (в секундах), число использованной для построения графа поиска памяти (в байтах), стоимость найденного решения, число раскрытых вершин, число вершин в построенном графе, число включавшихся в граф вершин (вершины, соответствующие одному и тому же состоянию системы, могут включаться в граф неоднократно, если порождается вершина с меньшей стоимостью пути), общее число порожденных вершин-приемников в процессе поиска. Значения этих характеристик для каждой активации поиска отдельно находятся в трассировке окончания поиска.
Пример выдачи статистической информации по поиску на графе:
DPS_C 1 1 1
DPS_TM 193.816 193.816 193.816
DPS_ME 7458816 7458816 7458816
DPS_CO 1.28515e+09 1.28515e+09 1.28515e+09
DPS_TO 10204 10204 10204
DPS_TT 20261 20261 20261
DPS_TI 21109 21109 21109
DPS_TG 38894 38894 38894