100 единиц модельного времени, и уничтожения этих транзактов. На-

чальное значение счетчика завершений равно 1000. Каждый транзакт,

проходящий через блок TERMINATE, вычитает из счетчика единицу, и

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

транзакт войдет в блок TERMINATE. При этом точное значение таймера

в момент завершения прогона непредсказуемо. Следовательно, в приве-

денном примере продолжительность прогона устанавливается не по мо-

дельному времени, а по количеству транзактов, прошедших через мо-

дель.

GENERATE 100,40

TERMINATE 1

START 1000

Если необходимо управлять продолжительностью прогона по мо-

дельному времени, то в модели используется специальный сегмент, на-

зываемый сегментом таймера.

GENERATE 100,40

TERMINATE

GENERATE 100000

TERMINATE 1

START 1

Например, в модели из двух сегментов, приведенной на рис. 2,

первый (основной) сегмент выполняет те же функции, что и в предыду-

щем примере. Заметим, однако, что поле A блока TERMINATE в первом

сегменте пусто, т.е. уничтожаемые транзакты не уменьшают содержимо-

го счетчика завершений. Во втором сегменте блок GENERATE создаст

первый транзакт в момент модельного времени, равный 100000. Но этот

транзакт окажется и последним в данном сегменте, так как, войдя в

блок TERMINATE, он обратит в 0 содержимое счетчика завершений,

установленное оператором START равным 1. Таким образом, в этой мо-

дели гарантируется завершение прогона в определенный момент модель-

ного времени, а точное количество транзактов, прошедших через мо-

дель, непредсказуемо.

В приведенных примерах транзакты, входящие в модель через блок

GENERATE, в тот же момент модельного времени уничтожались в блоке

TERMINATE. В моделях систем массового обслуживания заявки обслужи-

ваются приборами (каналами) СМО в течение некоторого промежутка

времени прежде, чем покинуть СМО. Для моделирования такого обслужи-

вания, т.е. для задержки транзактов на определенный отрезок модель-

ного времени, служит блок ADVANCE (задержать), имеющий следующий

формат:

 имя  ADVANCE A,B

 Операнды в полях A и B имеют тот же смысл, что и в соот-

ветствующих полях блока GENERATE. Следует отметить, что транзакты,

входящие в блок ADVANCE, переводятся из списка текущих событий в

список будущих событий, а по истечении вычисленного времени задерж-

ки возвращаются назад, в список текущих событий, и их продвижение

по блок-схеме продолжается. Если вычисленное время задержки равно

0, то транзакт в тот же момент модельного времени переходит в сле-

дующий блок, оставаясь в списке текущих событий.

Например, в сегменте, приведенном на рис. 3, транзакты, посту-

пающие в модель из блока GENERATE через случайные интервалы време-

ни, имеющие равномерное распределение на отрезке [60;140], попадают

в блок ADVANCE. Здесь определяется случайное время задержки тран-

закта, имеющее равномерное распределение на отрезке [30;130], и

транзакт переводится в список будущих событий. По истечении времени

задержки транзакт возвращается в список текущих событий и входит в

блок TERMINATE, где уничтожается. Заметим, что в списке будущих со-

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

произвольное количество транзактов.

GENERATE 100,40

ADVANCE 80,50

TERMINATE 1

В рассмотренных выше примерах случайные интервалы времени под-

чинялись равномерному закону распределения вероятностей. Для полу-

чения случайных величин с другими распределениями в GPSS/PC исполь-

зуются вычислительные объекты: переменные и функции.

Как известно, произвольная случайная величина связана со слу-

чайной величиной R, имеющей равномерное распределение на отрезке

[0;1], через свою обратную функцию распределения. Для некоторых

случайных величин уравнение связи имеет явное решение, и значение

случайной величины с заданным распределением вероятностей может

быть вычислено через R по формуле. Так, например, значение случай-

ной величины E с показательным (экспоненциальным) распределением с

параметром d вычисляется по формуле:

 

E= -(1/d) * ln(R)

Напомним, что параметр d имеет смысл величины, обратной математи-

ческому ожиданию E, а, следовательно, 1/d - математическое ожидание

(среднее значение) случайной величины E.

Для получения случайной величины R с равномерным распределени-

ем на отрезке [0;1] в GPSS/PC имеются встроенные генераторы случай-

ных чисел. Для получения случайного числа путем обращения к такому

генератору достаточно записать системный СЧА RN с номером генерато-

ра, например RN1. Правда, встроенные генераторы случайных чисел

GPSS/PC дают числа не на отрезке [0;1], а целые случайные числа,

равномерно распределенные от 0 до 999, но их нетрудно привести к

указанному отрезку делением на 1000.

 Проще всего описанные вычисления в GPSS/PC выполняются с

использованием арифметических переменных. Они могут быть целыми и

действительными. Целые переменные определяются перед началом моде-

лирования с помощью оператора определения VARIABLE  

(переменная), имеющего следующий формат:

  имя  VARIABLE выражение

Здесь  имя - имя переменной, используемое для ссылок на нее, а

выражение - арифметическое выражение, определяющее переменную.

Арифметическое выражение представляет собой комбинацию операндов,

в качестве которых могут выступать константы, СЧА и функции, зна-

ков арифметических операций и круглых скобок. Следует заметить,

 что знаком операции умножения в GPSS/PC является символ # (номер).

 Результат каждой промежуточной операции в целых переменных преобра-

зуется к целому типу путем отбрасывания дробной части, и, таким

образом, результатом операции деления является целая часть частного.

 Действительные переменные  0определяются перед началом модели-

рования с помощью оператора определения FVARIABLE, имеющего тот же

формат, что и оператор VARIABLE. Отличие действительных переменных

от целых заключается в том, что в действительных переменных все

промежуточные операции выполняются с сохранением дробной части

чисел, и лишь окончательный результат приводится к целому типу отб-

расыванием дробной части.

Арифметические переменные обоих типов имеют единственный СЧА с

названием V, значением которого является результат вычисления ариф-

метического выражения, определяющего переменную. Вычисление выраже-

ния производится при входе транзакта в блок, содержащий ссылку на

СЧА V с именем переменной.

Действительные переменные могут быть использованы для получе-

ния случайных интервалов времени с показательным законом распреде-

ления. Пусть в модели из примера на рис. 3 распределения времени

поступления транзактов и времени задержки должны иметь показатель-

ный закон. Это может быть сделано так, как показано на рис. 4.

TARR FVARIABLE -100#LOG((1+RN1)/1000)

TSRV FVARIABLE -80#LOG((1+RN1)/1000)

GENERATE V$TARR

ADVANCE V$TSRV

TERMINATE 1

Рис. 4

Переменная с именем TARR задает выражение для вычисления ин-

тервала поступления со средним значением 100, вторая переменная с

именем TSRV - для вычисления времени задержки со средним значением


Информация о работе «Моделирование на GPSS»
Раздел: Информатика, программирование
Количество знаков с пробелами: 117295
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
113808
0
0

... , как в моделируемой СМО перемещаются заявки, соответствующие транзактам. В начальный момент времени в GPSS-модели нет ни одного транзакта. В процессе моделирования симулятор генерирует транзакты в определенные моменты времени в соответствии с теми логическими потребностями, которые возникают в моделируемой системе. Подобным же образом транзакты покидают модель в определенные моменты времени в ...

Скачать
13405
0
2

... возвращаются на ввод и во всех очередях обслуживаются первыми. Смоделировать работу вычислительного центра в течение 30 ч. Определить необходимую емкость буферов и функцию распределения времени обслуживания заданий. 1.1 Построение концептуальной модели объекта На первом этапе проведения моделирования необходимо построить концептуальную модель (Рис. 1), т.е. концептуальная (содержательная) ...

Скачать
36862
2
13

... в результате входа транзактов в блоки и выполнения блоками своих функций. В данной работе требуется с помощью пакета моделирования систем GPSS/PC исследовать модель заданной СМО. Задание На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится на одном из двух станков. Первый станок обрабатывает деталь в среднем 40 мин и имеет до ...

Скачать
8426
5
5

... А При входе в блок RELEASE освобождается устройство, номер которого указан в поле А. Устройство становится доступным для других транзактов. При моделировании работы устройств, когда новое требование пытается прервать обслуживание предыдущего, используются блоки PREEMPT (захватить устройство) и RETURN (вернуть устройство ранее прерванному требованию). Блок PREEMPT имеет следующий формат: ...

0 комментариев


Наверх