Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции заочникам формат.doc
Скачиваний:
25
Добавлен:
30.04.2015
Размер:
568.83 Кб
Скачать

3.3. Простейшие операторы gpss

3.3.1. Введение транзактов в модель

Для ввода транзактов в модель используется блок GENERATE (Создать). Он создает (генерирует) транзакты в модели согласно заданному закону распределения интервала времени между их поступлением. Этот блок может иметь 5 операндов, т.е. имеет вид:

GENERATE A,B,C,D,E

Операнды A,B,…,E указывают следующие характеристики входного потока (в скобках значение по умолчанию):

A – средний интервал времени между поступлением транзактов (0);

B – половина поля допуска (размах) интервала равномерного распределения (0);

C – время создание первого транзакта (0);

D – ограничитель количества создаваемых транзактов (бесконечность);

E – приоритет создаваемых транзактов (0). В GPSS возможно всего 128 уровней приоритета, они задаются числами от 0 до 127. Чем больше значение приоритета, тем больше преимуществ получает при продвижении по модели транзакт;

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

Примеры:

GENERATE 5,3

Генерируются транзакты с равномерным распределением интервала поступления 53. Планирование прихода первого транзакта происходит в момент времени, равный 0, путем розыгрыша случайного целочисленного значения от 2 до 8.

GENERATE 10

Поскольку размах (операнд B) по умолчанию равен 0, получаем детерминированный (определенный точно) интервал времени между транзактами, равный 10. Первый транзакт приходит в момент времени 10, второй – в момент 20 и т.д.

GENERATE 3,3,10,5

Первый транзакт приходит в момент времени 10. После этого интервалы прибытия находят из равномерного распределения 33, т.е. от 0 до 6 включительно. После прихода пяти транзактов работа блока заканчивается.

GENERATE 8,1,,,4

Транзакты создаются с интервалом 81. Приход первого транзакта рассчитывается в момент времени 0. Количество транзактов не ограничено. (Пропущены операнды С и D). Все создаваемые транзакты имеют приоритет, равный 4.

В системе GPSS World предполагается, что приходящий “извне” транзакт входит в блок GENERATE, и в момент его входа в этот блок планируется время прибытия следующего транзакта. Приход самого первого транзакта планируется до начала процесса моделирования.

3.3.2. Удаление транзактов из модели

Транзакты удаляются из модели (уничтожаются), попадая в блок TERMINATE. БлокиTERMINATE(Уничтожить) всегда позволяют выйти из модели всем транзактам, которые пытаются это сделать. БлокTERMINATEможет иметь один операнд, т.е. имеет вид

TERMINATEA

Операнд A(по умолчанию 0) указывает число, на которое уменьшается содержимое счетчика числа завершений.

Счетчик числа завершений– это переменная, которая используется для управления окончанием процесса моделирования. Счетчик завершений в модели только один, хотя блоковTERMINATEможет быть несколько. При достижении значения счетчика завершений, равного 0, моделирование завершается. Начальное значение счетчика завершений задается с помощью управляющего оператораSTART(Начать моделирование), имеющего следующий формат:

STARTA,B

Операнд A– начальное значение счетчика завершений (по умолчанию 0).

B– может иметь значениеNP, если после окончания моделирования не требуется выводить стандартный отчет. По умолчанию отчет требуется.

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

Счетчик завершений используется для того, чтобы:

  1. ограничить число транзактов, “прогоняемых” в модели;

  2. ограничить время, в течении которого исследуется объект.

Например, мы хотим закончить моделирование, когда 100-ый транзакт покинет модель. Тогда можно задать в операторе TERMINATE значение операнда A, равное 1:

TERMINATE 1

А начать моделирование командой (или оператором)

START 100

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

GENERATE 480

TERMINATE 1

При этом начальное значение счетчика завершений командой START должно быть задано равное 1, а все другие блоки TERMINATE (уничтожающие транзактов - клиентов) не должны содержать параметров. Тогда в момент модельного времени, равный 480, будет сгенерирован транзакт-таймер и сразу же уничтожен. При этом счетчик завершений станет равен 0, и моделирование прекратится.