
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 переводится обратно в положение «сброшено», и транзакт направляется в первоначальный блок ADVANCE, имитируя тем самым следующий приближающийся шторм.
В сегменте возникновения дополнительных танкеров в начале прогона в модель входят пять танкеров, которые помечают занесением в их первый параметр Р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 |





