5. Распечатка программы

6. Обсуждение результатов моделирования. Логика моделирования. Обра­тим внимание на то, каким образом на рис. 5D.1 транзакт-таймер ожидает окончания обслуживания всех ждущих машин. Он ожидает в блоке TEST, работающем в режиме отказа во 2-м сегменте модели. Условие, которое должно быть выполнено для того, чтобы проверка была истинной, заключается в том чтобы N$GOIN было равно N$DONE. GOIN есть имя блока QUEUE 1-го сегмента модели, a DONE — имя блока LEAVE в этом же участке. Два рассматриваемых счетчика числа входов будут равны лишь тогда, когда послед­няя ожидающая машина обслужена и выйдет из модели.

В переменной NET (карта № 20 на рис. 5D.2) SC1 — счетчик числа занятий первого много­канального устройства. Это число равно числу машин, обслуженных за рассматриваемый день. При средней выручке в 1 доллар за машину это есть доход за данный день. Эта величина уменьшается на 75 долларов, составляющих расход не на заработную плату. Стоимость оплаты служащих вычисляется как 30* R1, где 30 — это 30 долларов, зарабатываемых каждым служащим в день (12 ч, помноженные на 2,5 доллара в час); R1 — число служащих, работающих на станции. Строго говоря, R1 равно оставшейся емкости первого многоканаль­ного устройства, однако в момент вычисления переменной NET многоканальное устройство пусто, это означает, что R1 равно его полной емкости.

Заметим, что на рис. 5D.2 в качестве аргу­мента как функции времени между прибытием, так и функции времени обслуживания исполь­зуется общий генератор случайных чисел RN1 (см. упражнение 8, б параграфа 5.24). Заметим также, что для обеспечения начальных условий RN1 для различных дней используют карты RMULT. Сначала это может показаться стран­ным, поскольку в примере 4D (сравнение альтернативных вариантов системы обслужива­ния в банке) при очень схожих модельных усло­виях не было необходимости использовать карты RMULT для повторения условий эксперимента. Однако в примере 4D транзакт-таймер прекра­щал моделирование в момент своего появления. В примере 5D транзакт-таймер в общем случае прекращает моделирование лишь по истечении некоторого времени после своего прибытия. В это время, пока таймер ждет освобождения станции, на пути к станции находится следую­щий транзакт-машина. Если этот транзакт-машина поступит в блок GENERATE перед тем, как прекратится моделирование, из RN1 будет взята величина, которая «пропадет» (см. параграф 3.22). Поскольку возникает такое изъятие из RN1 и неясно, как оно зависит от момента прекращения моделирования и вре­мени моделирования, то этот эффект будет зави­сеть от конфигурации модели. Это означает, что момент прекращения моделирования зави­сит от числа служащих, работающих на запра­вочной станции. Теперь предположим, что на третий день моделирования при двух служащих произойдет такое изъятие из RN1. Предполо­жим также, что на третий день при трех слу­жащих этого не произойдет. В результате, если оставить RN1 без изменения, то для двух различ­ных конфигураций модели начальные условия RN1 будут разными. Таким образом, в четвер­тый день не будет совпадения в условиях эксперимента. Такая проблема легко разре­шается введением карты RMULT между после­довательными днями. Это обеспечивает незави­симость начального отсчета RN1 от конфигура­ции модели.

НЕ нашли? Не то? Что вы ищете?

Распечатка результатов. (Общее время моде­лирования на ЭВМ IBM 360/67 составило 17,6 с.) В табл. 5D.4 указана дневная прибыль в дол­ларах для различных прогонов. Ясно, что слу­чай с двумя служащими миксимизирует днев­ную прибыль. Другие случаи в среднем также дают прибыль, однако в четвертый моделируе­мый день происходит даже потеря. (В четвертый день на станцию поступило всего 160 машин, тогда как число машин, поступивших на стан­цию в 1, 2, 3 и 5-й дни, равно соответственно 180, 189, 190 и 194. Этим объясняется, почему прибыль, указанная для четвертого дня, сравни­тельно низкая.)

Таблица 5D.4. Сводка результатов моделирования для примера 5D

День

Число служащих

1

2

3

1-й

1

36

15

2-й

2

50

24

3-й

3

46

25

4-й

-1

24

-5

5-й

2

52

29

Исследование работы морского порта методом имитационного моделирования

1. Постановка задачи. Порт в Африке ис­пользуют для заливки танкеров сырой нефтью для дальнейшей перевозки. Порт имеет возмож­ность заливать одновременно до трех танкеров. Танкеры, прибывающие в порт каждые 11 ± 7 ч, могут быть трех различных типов. Относитель­ная частота появления танкеров различных типов и требуемое время их заливки показаны в табл. 6А.1.

Таблица 6А.1. Характеристики танкеров для примера 6А

Тип

Относительная

частота

Время заливки, ч

1

0,25

18±2

2

0,55

24±3

3

0,20

36±4

В порту имеется один буксир. Танкерам любого типа для подхода к стоянке требуются услуги этого буксира. Далее, в этой части океа­на часто бывают штормы, и в период шторма для танкера невозможен ни подход к стоянке, ни отход от нее. Продолжительность шторма 4 ± 2 ч. Время между окончанием одного шторма и началом следующего подчиняется экспоненциальному распределению со средним значением, равным 48 ч. Если буксир свободен и нет шторма, время подхода к стоянке или отхода от нее занимает около 1 ч.

При наблюдении за работой порта устано­вили, что три якорные стоянки в порту заняты в течение примерно 80% времени. В среднем из-за задержек, возникающих в результате штормов, занятости стоянки или занятости буксира, время пребывания танкера в порту превышает среднее время принятия танкера примерно на 5 ч. Это справедливо для всех типов танкеров.

Грузоотправитель намеревается заключить контракт на перевозку нефти из этого порта в Великобританию. Он определил, что пять танкеров определенного типа могли бы пол­ностью удовлетворить условиям контракта. Этим танкерам требуется 21±3 ч для заливки нефти в танкер. После заливки и отхода от стоянки танкеры должны плыть в Великобри­танию, выгружать там нефть, возвращаться в порт для новой заправки и т. д. Их время пребывания в пути, включая выгрузку, должно составлять 240 ±24 ч.

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

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

В сегменте, моделирующем шторм, цирку­лирует единственный транзакт. Впервые попа­дая в сегмент, он входит в блок «ADVANCE 48,FN$XPDIS», где может быть рассмотрен как приближающийся шторм. Выходя из блока ADVANCE, он переводит логический переклю­чатель STORM в положение «установлено», что означает начало шторма в данный момент. Затем транзакт задерживается в другом блоке ADVANCE в течение 4 ± 2 ч, т. е. на время шторма. Когда шторм заканчивается, логиче­ский переключатель STORM переводится об­ратно в положение «сброшено», и транзакт направляется в первоначальный блок ADVAN­CE, имитируя тем самым следующий прибли­жающийся шторм.

В сегменте возникновения дополнительных танкеров в начале прогона в модель входят пять танкеров, которые помечают занесением в их первый параметр Р1 числа 4. (Остальные три типа танкеров будут иметь значения Р1, равные 1, 2 или 3.) Затем они входят в блок ADVANCE, где первый задерживается на 0 ч, второй на 48 ч, третий на 96 ч и т. д. Такое ступенчатое изменение времени задержки сде­лано для того, чтобы вводить эти пять танкеров в главный сегмент модели с промежутками. Время между входами танкеров, равное 48 ч, было получено из предположения, что время плавания туда и обратно для каждого из пяти танкеров равно 240 ч. После такой задержки каждый танкер предполагают только что прибывшим в порт (в первый раз). Время прибытия отмечается в третьем параметре, и танкер переводится в главный сегмент модели.

Танкеры типов 1, 2 и 3 попадают в главный сегмент модели через блок GENERATE; их помечают занесением в параметр номера, соответствующего их типу; затем они стремятся использовать портовые средства обслуживания. Как только обслуживание танкеров заканчивается, они покидают модель. В противоположность им пять дополнительных танкеров не выходят из модели. Как и другие танкеры, в главном сегменте они вступают в соревнование за право использования портового оборудования. Однако в момент покидания порта, они выводятся из потока уходящих судов и вводятся в блок ADVANCE, имитирующий время, в течение которого совершается путь туда и обратно. По истечении времени их плавания туда и обратно, время их возвращения в порт заносится в третий параметр, и они вновь стремятся использовать портовые средства обслуживания.

Условия, требуемые для подхода и отхода от стоянки, проверяются в главном сегменте модели с помощью булевских переменных. Для того, чтобы осуществить подход к якорной стоянке, необходимо одновременное выполнение трех условий (стоянка свободна, буксир свободен, нет шторма). Для отхода от стоянки требуется выполнение двух условий (буксир свободен, нет шторма). Одновременное выполнение этих условий легко проверяется с помощью булевских переменных.

Время заливки танкера в порту определяется значением Р1 каждого транзакта. Значение Р1 используется в качестве аргумента функции MEAN, которая вырабатывает нужное среднее время заливки, а также в качестве аргумента функции SPRED, с помощью находится модификатор размаха времени заливки. Тем не менее, нельзя имитировать вpeмя заливки блоком “ADVANCE FN$MEAN, FN$SRED”. Если использовать такой блок, то интерпретатор сочтет поле В блока модификатором функции, и полученное значение будет использовано как число, на которое следует умножать среднее значение. Для получения желаемой модификации разброса во второй параметр каждого транзакта-танкера вначале заносится нужный разброс. Затем этот транзакт входит в блок “ADVANCE FN$MEAN, P2” для имитации времени заливки.

3. Таблица определений. Единица времени: 1 ч.

Элемент GPSS

Интерпретация

Транзакты:

1-й сегмент модели

Носитель возможного шторма

2-й сегмент модели

Один из дополнительных танкеров

3-й сегмент модели

Один из танкеров, используемых в порту:

P1 — код типа танкера:

Величина

Значение

1

Танкер типа 1

2

Танкер типа 2

3

Танкер типа 3

4

Дополнительный танкер

Р2 — половина размаха времени заправки;

РЗ — время прибытия в порт (используется только для транзактов, имитирующих дополнительные танкеры)

4-й сегмент модели

Таймер

Приборы (устройства):

TUG

Буксир

Функции:

MEAN

Описывает среднее время заливки, зависящее от типа танкера

SPRED

Описывает половину размаха времени заливки в за­висимости от типа танкера

ТУРЕ

Описывает распределение танкеров типов 1—3

Логические переключатели:

STORM

Находясь в положении «установлено», означает нали­чие шторма

Многоканальные устройства:

BERTH

Моделирует заливочные установки в порту

Таблицы:

1, 2, 3 и 4

Используют для оценки распределения времени пребывания в порту танкеров типов 1—3 и дополнительных танкеров

Переменные (арифметические):

SPACE

Принимает значение 0, 48, 96, 144 и 192 в указанном порядке; используется для задержки первоначаль­ного прибытия дополнительных танкеров

Переменные (булевские):

GOIN

Принимает значение «истина» при выполнении усло­вий, обеспечивающих подход к стоянке

GOOUT

Принимает значение «истина» при выполнении условий, обеспечивающих возможность отхода от стоянки

4. Блок-схема.



5. Распечатка программы.



6. Выходные данные программы.


7. Обсуждение. Логика моделирования. Обра­тим внимание, каким образом во втором сегмен­те модели осуществляется задержка первого прибытия предлагаемых дополнительных тан­керов. Время пребывания в блоке ADVANCE, осуществляющем задержку прибытия (блок 9 на рис. 6А.2), определяется посредством пере­менной SPACE, вычисляемой как 48*N$HERE. В свою очередь, HERE — есть имя самого блока ADVANCE. Когда первый транзакт-танкер поступает в этот блок, N$HERE равно нулю; таким образом, время пребывания в блоке также равно нулю. (Вспомним, что счетчик числа вхождений в блок подсчитывается в по­следнюю очередь при выполнении подпрограм­мы блока. Это означает, что при нахождении произведения 48*N$HERE значение N$HERE остается равным нулю.) При входе в этот блок второго транзакта-танкера N$HERE равно единице (благодаря первому транзакту-танкеру), время пребывания равно 48 ч и т. д. (см. упражнение 5,а параграфа 6.4).

Блок ASSIGN в 3-м сегменте модели (блок 19, рис. 6А.2) является в некотором смысле лиш­ним. Второй параметр транзактов дополни­тельно предлагаемых танкеров после их пер­вого захода в порт уже несет в себе правильную величину размаха времени заправки. В упраж­нении 5 в параграфе 6.4 предлагается умень­шить число выполняемых блоков.

Распечатка результатов. (Общее время за­нятости процессора при моделировании на ЭВМ IBM 360/67 составило 21,6 с.) На рис. 6А. З даны таблицы времени пребывания в порту различных танкеров. Среднее время пребыва­ния танкера типов 1—3 составляет соответ­ственно 48,7; 54,4 и 69,3ч (MEAN ARGUMENT в табл. рисунка 1, 2, 3). Сравнивая эти величины с их средними общими временами подхода к стоянке, заправки и ухода со стоянки, со­ставляющими соответственно 20, 26 и 38 ч (в предположении отсутствия каких-либо за­держек), можно сказать, что их задержки при заходе в порт возрастают примерно на 30 ч. Задержку на 30 ч можно сопоставить с задерж­кой на 5 ч, возникающей для этих танкеров при отсутствии соперничества со стороны допол­нительных танкеров (как было указано в по­становке задачи). В неприведенной в тексте части распечатки результатов указано, что занятость стоянки подскочила примерно до 97% при использовании дополнительных тан­керов против 80%, как это было раньше (что следует из постановки задачи).

Предлагаемые дополнительные танкеры про­водят в порту в среднем около 2 дней (50,6 ч, табл. 4 на рис. 6А. З). Без учета задержек время их подхода к стоянке, заправки и от­хода от стоянки должно было составлять в среднем 23 ч. Следовательно, по прибытии в порт они имеют задержку на 27 ч. В упражнении 6 параграфа 6.4 проведено дальнейшее исследование задержек танкеров.

Модель автобусной остановки

1. Постановка задачи. По расписанию автобус должен приходить на остановку каждые 30 мин, однако возможно его опоздание на 1,5±1,5 мин. Опоздание автобуса никак не зависит от опозда­ния предыдущего автобуса и не влияет на опоздание следующего. Приход людей на автобусную остановку подчиняется закону Пуассона с интенсивностью 12 человек каждые 30 мин. Автобус вмести­мостью 50 человек в момент своего прибытия везет 35±15 человек. После того, как от трех до семи пассажиров выйдут (распределение равномерное), в автобус входят столько ожи­дающих, сколько возможно. Те, кто не смог сесть после того, как автобус заполнился, уходят и больше не возвращаются.

Для высадки пассажира требуется 4±3 с, а для посадки — 8±4 с. Пассажиры выходят и входят один за другим. Ожидающие не начи­нают посадки до тех пор, пока из автобуса не выйдут все желающие. Посадка производится в соответствии с правилом «первым пришел — первым обслужен». Все пришедшие на остановку во время посадки имеют право войти при усло­вии, что для них есть место. В случае времен­ного узла между событиями «автобус закончил посадку» и «прибыл еще один пассажир» при­бывший пассажир садится в автобус (при усло­вии, конечно, что для него есть место).

Построить GPSS-модель, имитирующую со­бытия на автобусной остановке. Приспособить модель для сбора следующей информации.

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

2.  Найти распределение случайной перемен­ной «число необслуженных пассажиров на один прибывающий автобус».

Выполнить прогон модели до 25 прибытий и уходов автобуса.

2. Метод построения модели. Модель состоит из двух сегментов: 1-й сегмент моделирует пассажиров, приходящих на автобусную оста­новку, ждущих автобуса и затем либо уезжаю­щих, либо уходящих; 2-й сегмент моделирует автобус и алгоритм, по которому происходит высадка из автобуса.

1-й сегмент модели. Каждый транзакт-пассажир, поступивший в модель, входит в блок «QUEUE WAIT», где остается до тех пор, пока не придет автобус и пока не подойдет очередь этого транзакта-пассажира попытаться сесть в автобус. Если эти условия выполнены, двери автобуса (BUS) открыты для транзакта-пассажира. Транзакт выходит из очереди и в блоке TEST, работающем в режиме передачи, проверяет, будет ли значение сохраняемой величины NOWON меньше 50. (Эта сохраняемая величина используется в качестве счетчика числа людей в автобусе, находящемся на остановке.) Если мест нет, транзакт-пассажир добавляет единицу к сохраняемой величине МAD и уходит из модели. (Сохраняемая величина MAD используется для подсчета числа людей, которым не удалось попасть в пришедший автобус.)

Если в автобусе есть место, транзакт-пассажир переходит в блок, следующий за блоком TEST, и закрывает вход в автобус (ВUS). (Это сделано для того, чтобы следующий пассажир не пытался совершить посадку до пор, пока не сел рассматриваемый.) После задержки в 8±4 с транзакт-пассажир подсчитывает значение сохраняемой величины NOVON, затем открывает BUS для следующего ожидающего транзакта-пассажира и уходит из модели.

2-й сегмент модели. Транзакт-автобус вводится в модель каждые 30 мин. Затем он переходит в блок ADVANCE, где моделируется задержка. (Время задержки в блоке ADVANCE может быть равно нулю, и в этом случае автобус прибывает во-время.) Выходя из блока ADVANCE, транзакт-автобус выбирает число из распределения числа пассажиров в автобусе и заносит результат в сохраняемую величину NOWON. Затем он производит выборку из распределения числа пассажиров, желающих выйти, и заносит этот результат в параметр 1. Используя затем параметр 1 в качестве параметра цикла, транзакт-автобус выпускает всех желающих, моделируя соответствующую задержку времени и корректируя при этом сохраняемую величину NOWON. После выхода из цикла транзакт-автобус открывает BUS и затем ждет до тех пор, пока последний пассажир из тех, кто может сесть в автобус, не закончит посадку. Затем транзакт-автобус записывает в GPSS-таблицу число необслуженных людей и обнуляет сохраняемую величину MAD (для того, чтобы назначить этому счетчику его начальное значение для следующего автобуса). Наконец, транзакт-автобус закрывает BUS и выходит из модели.

В качестве упражнения попытайте построить блок-схему этой модели. Затем посмотрите на блок-схему, приведенную на рис.5E.1, и сравните ее с построенной.

3. Таблица определений. Единица времени: 1 с.

Таблица 5Е.1. Таблица определений примера моделирования 5Е (модель автобусной остановки)

Элемент GPSS

Интерпретация

Транзакты:

1-й сегмент модели

2-й сегмент модели

Пассажир

Автобус:

Р1 — сначала число людей, желающих выйти; затем число людей в автобусе, которым еще необхо­димо выйти

Функции:

XPDIS

ONBUS

OFF

Экспоненциальная функция распределения

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

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

Логические переключатели:

BUS

Логический переключатель; в положении «сброшено» указывает на одновременное выполнение следующих условий: 1) автобус находится на остановке и 2) сле­дующему пассажиру можно попытаться произвести посадку

Очереди:

LINE

Очередь ожидающих автобуса

Сохраняемые величины:

MAD

NOWON

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

Счетчик для определения числа пассажиров в при­бывшем на остановку автобусе

Таблицы:

INQUE

MAD

Таблица для оценки распределения времени пребы­вания в очереди

Таблица для оценки распределения случайной пере­менной «необслуженные люди на один автобус»

4. Блок-схема

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5