Для сбора статистических данных о работе очередей устройств обслуживания используются парные операторы очереди QUEUE (см. ЛР№4) и DEPART (см. ЛР№4). Помимо этого в GPSS может быть организован сбор любых статистических данных по желанию пользователя.
TABULATE – сбор данных в таблицу. Для получения плотности распределения, среднего и стандартного отклонения некоторых аргументов, которыми могут быть СЧА (например, времени нахождения заявки в модели или задержки в ее отдельных частях, длин очередей, содержимого накопителя и т. д.), используются статистические таблицы TABLE и QTABLE. Команда описания таблицы TABLE имеет следующий формат:
Name TABLE А,В,С,D
Команда определяет аргумент, а также число и ширину частотных интервалов (классов). Метка Name определяет имя таблицы. Операндом А задается аргумент таблицы – элемент данных, чье частотное распределение будет табулироваться. Операнд может быть именем, выражением в скобках или СЧА. Операндом В задается верхний предел первого интервала. Операнд С задает ширину частотного интервала – разницу между верхней и нижней границей каждого частотного класса. Операнды В и С могут быть числами или рядом. Операндом D задается число частотных интервалов (положительное целое число).
Для сбора данных заявка должна войти в оператор TABULATE с тем же именем таблицы, которое определено в операторе TABLE. Оператор помещается в ту точку модели, которая соответствует исследуемому объекту. Оператор TABULATE имеет следующий формат:
TABULATE А,[В]
Операндом А задается имя таблицы, в которую табулируется значение аргумента. Операндом В (весовой коэффициент) задается число единиц, которые должны быть занесены в тот частотный интервал, куда попало значение аргумента. Если операнд В отсутствует, то по умолчанию эта величина равна 1. Операнды А и В могут быть именем, выражением в скобках, СЧА или СЧА*параметр. Операнд А может быть только положительным целым числом, а операнд В – положительным числом. Например:
VrRem TABLE P$ReaLvs,8.2,5,5,10
. . .
TABULATE VrRem
Оператором TABLE описывается таблица с именем VrRem. Аргументом таблицы является СЧА P$ReaLvs с верхним пределом первого интервала 8,2; шириной 5,5 и числом интервалов 10. Каждое значение табулируемого аргумента P$ReaLvs, меньшее или равное 8,2, увеличивает частоту первого частотного класса таблицы на 1. Если аргумент таблицы не попадает в первый частотный класс, класс определяется делением значения аргумента на операнд С оператора TABLE. Например, значение P$ReaLvs равно 30,25. Тогда 30,25/5,5=5,5 и будет увеличена на 1 частота шестого класса. Если аргумент А таблицы больше B+C×D=8,2+5,5×10=63,2, то изменен будет на 1 последний (десятый) класс. Одновременно корректируются текущие значения СЧА таблицы: счетчик входов в таблицу ТС, среднее время ожидания ТВ и стандартное отклонение времени ожидания TD. Собранная в таблице статистика выводится в стандартный отчет.
При использовании в операнде В оператора TABULATE весового коэффициента, например:
TABULATE VrRem,3
последний будет добавляться к значению частоты частотного класса. Весовой коэффициент применяется также для среднего и стандартного отклонения, что равносильно нескольким входам в оператор TABULATE.
Таким образом, команда TABLE вместе с оператором TABULATE служат для табулирования любого СЧА.
Кроме таблиц TABLE могут использоваться Q-таблицы, являющиеся средством получения распределения только времени пребывания заявки в очереди. Формат команды описания Q-таблицы такой же, как и TABLE. Отличие состоит в том, что операндом А задается имя очереди. Назначение операндов В, С, D такое же, что и в команде описания TABLE. Операнд В может быть нулем или положительным числом. Для создания в модели такой таблицы ее нужно предварительно определить с помощью команды QTABLE формата:
Name QTABLE А,В,С,D
Например, в операторе формата:
VTime QTABLE Dlina,18.2,4.3,6
Dlina – это имя очереди к устройству, а не СЧА, как в случае использования TABLE.
При прохождении заявки через операторы QUEUE и DEPART ее время ожидания фиксируется, и к счетчику частотного интервала таблицы, в который попало это время, добавляется 1. Одновременно в таблице накапливается информация для вычисления среднего значения и среднеквадратического отклонения времени ожидания. Следует обратить внимание, что при использовании QTABLE информация в таблицу заносится автоматически при входе заявки в операторы QUEUE и DEPART и никаких специальных мер, т. е. оператора TABULATE, при этом не требуется (см. ЛР№4). По окончании моделирования собранная в таблице информация также выводится в стандартном отчете GPSS.