Основные концепции моделирования на gpss

Вид материалаДокументы
ТЕМА № 15"Пример моделирования 2В. Расширение системы обслуживания с одним прибором и очередью"
Таблица определений. Единица времени: 1 мин. Таблица 2B.1.
Queue - depart
ТЕМА № 16 "Второй пример использования цепей текущих и будущих событий"
Seize - release
Интервалы времени прихода и времени обслуживания во втором примере использования цепей
Состояния цепей для второго примера их использования
Интервалы времени прихода и времени обслуживания запросов механиков для примера 2C
Average contents
Таблица определений
Total entries
ТЕМА № 18 "Третий пример использования цепей текущих и будущих событий"
Интервалы времени прихода и времени обслуживания в третьем примере использования цепей
Состояния цепей для третьего примера использования цепей текущих и будущих событий: ДФВ - до фазы; ПФВ - после фазы ввода
ТЕМА № 19 "Переход транзактов в блок, отличный от последующего. Блок ТRАNSFЕR (ПЕРЕДАТЬ)"
ТЕМА № 20 "Пример моделирования 2D. Система обслуживания с прибором, очередью и обратной связью"
Таблица определений.
Таблица определений примера моделирования 2D
SEIZE (ЗАНЯТЬ) не находится внутри пары блоков QUEUE
ТЕМА № 22"Использование параллельно работающих каналов. Блоки ЕNТЕR (ВОЙТИ) и LEAVE (ВЫЙТИ)"
...
Полное содержание
Подобный материал:
1   2   3   4   5   6   7   8   9   10   11
ТЕМА № 14

"Распечатка цепей текущих и будущих событий"


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

Даже если моделируемая система относится к системам средней сложности, разработчик обязательно задается вопросом: что далее должно произойти в модели? Поскольку одновременные события в GPSS выполняются последовательно, вопрос о том, что же происходит далее в модели, может иметь очень важные последствия. Ответ на этот вопрос должен быть всегда дан в терминах цепей событий. Разработчик, незнакомый с этими понятиями, должен либо удовлетвориться отсутствием ответа на вопрос о том, что же будет дальше, либо просто должен надеяться на то, что модель верна или почти что верна. Это, вообще говоря, недопустимо.

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

ТЕМА № 15

"Пример моделирования 2В.
Расширение системы обслуживания с одним прибором и очередью"


Постановка задачи. В парикмахерскую с одним креслом могут приходить клиенты двух типов. Клиенты первого типа желают только стричься. Распределение интервалов их прихода 35 ± 10 мин. Клиенты второго типа желают постричься и побриться. Распределение интервалов их прихода 60 ± 20 мин. Парикмахер обслуживает клиентов в порядке "первым пришел - первым обслужен".

Такая ситуация может быть изображена на рис.2В.1, на котором кружками представлены клиенты, желающие только стричься, а квадратами обозначены клиенты, желающие и постричься и побриться. В момент, который изображен на рис. 2В.1, в кресле парикмахера сидит клиент, который только стрижется, а в очереди сидят только стригущийся, стригущийся и бреющийся и снова только стригущийся клиенты. На стрижку уходит 18 ± 6 мин, а на бритье 10 ± 2 мин.


Рис.2В.1. Дисциплина обслуживания "первым пришел- первым обслужен"
при наличии клиентов 2-х типов.

Необходимо написать модель парикмахерской на GPSS вместе с картами, обеспечивающими сбор данных об очереди, образуемой ожидающими клиентами.

Метод построения модели. Сначала возникает желание попытаться построить такую модель с одним прибором и очередью в виде единственной последовательности блоков, но возникают вопросы: "Как один блок GENERATE можно использовать для моделирования двух типов приходов?" и "Как реализовать различие в обслуживании только стригущихся и бреющихся клиентов?" Довольно быстро можно прийти к выводу, что у нас пока нет средств для разработки такой модели в виде единственной последовательности блоков.

Однако такую систему легко промоделировать с помощью двух независимых сегментов или последовательностей. Одна из последовательностей моделирует обслуживание только стригущихся клиентов, а вторая - стригущихся и бреющихся. В каждой из двух последовательностей пара блоков QUEUE - DEPART описывает одну и ту же очередь, поэтому клиенты, проходящие в этих последовательностях, обеспечивают совместный сбор статистики. Таким же образом пара блоков SEIZE - RЕLEASE описывает в каждой из двух последовательностей один и тот же прибор и моделирует самого парикмахера. В сегменте только стригущихся блок ADVANCE используется для моделирования времени стрижки; в сегменте стригущихся и бреющихся пара последовательных блоков ADVANCE используется для моделирования затрат времени на бритье и далее на стрижку соответственно. При таком подходе моделировать систему довольно легко.

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

Таблица 2B.1.

Таблица определений примера моделирования 2B

Элементы GPSS

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

Транзакты:

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

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

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




 

Только стригущиеся клиенты

Стригущиеся и бреющиеся клиенты

Таймер




Приборы:

JOE




 

Парикмахер




Очереди:

JOEQ




 

Очередь, используемая для сбора статистики ожидания клиентов обоих типов




Обсуждение. Логика моделирования. Блок-схема, соответствующая разработанному подходу, представлена на рис.2В.2. Сегмент 1 моделирует обслуживание только стригущихся клиентов. Сегмент 2 моделирует обслуживание стригущихся и бреющихся клиентов. Сегмент 3 определяет логику для таймера.


Рис.2В.2. Блок-схема примера моделирования 2В.

Заметьте, что сегменты 1 и 2 содержат пару блоков QUEUE - DEPART, использующую одну и ту же очередь (JOEQ). Заметьте также, каким образом каждый из этих сегментов вклю- чает пару блоков SEIZE - RELEASE, использующую один и тот же прибор (JQE). Возможность ссылки на один и тот же прибор или очередь из нескольких пар блоков нами еще не была рассмотрена, но не существует причин, из-за которых этого нельзя было бы сделать. В самом деле, гибкость, достигаемая многократными ссылками на заданные элементы GPSS, становится из этого примера очевидной.

Распечатка результатов. (Полное время, необходимое для моделирования на IBM 360/67, равно 1,8 с. Обсуждение проблемы временных затрат при моделировании на GPSS смотри в гл. 4). Статистические данные, описывающие производительность прибора в модели, показаны на рис. 2В.4, б. Эти данные показывают суммарный эффект от обслуживания парикмахером клиентов обоих типов. Из NUMBER ENTRIES (ЧИСЛО ВХОДОВ) видно, что парикмахер был занят всего 20 раз. Не делается никаких указаний, сколько из этих 20 клиентов относятся к типу только стригущихся, а сколько к другому типу. Выходные данные показывают, что парикмахер был занят 89,7% времени, но не указано, какая часть этого времени потрачена на обслуживание только стригущихся, а какая на стригущихся и бреющихся клиентов.

Аналогичным образом, статистические данные, показанные на рис. 2В.4, в, описывают поведение очереди модели также в агрегированном виде. Не делается различия между только стригущимися и стригущимися и бреющимися клиентами. В модели ничего не предпринято, чтобы такое различие сделать. Для того чтобы можно было осуществить такое различие, необходимо соответствующим образом переделать модель.

Рис.2В.3. Распечатка программы примера моделирования 2В.

BLOCK

NUMBER *LOC OPERATION A,B,C,D,E,F.G COMMENTS

SIMULATE

*

* MODEL SEGMENT 1

*

1 GENERATE 35,10 HAIRCUT-ONLY CUSTOMERS ARRIVE

2 QUEUE JOEQ ENTER THE LINE

3 SEIZE JOE CAPTURE THE BARBER

4 DEPART JOEQ LEAVE THE LINE

5 ADVANCE 18,6 USE BARBER

6 RELEASE JOE FREE THE BARBER

7 TERMINATE LEAVE THE SHOP

*

* MODEL SEGMENT 2

*

8 GENERATE 60,20 SHAVE-AND-HAIRCUT CUSTOMERS ARRIVE

9 QUEUE JOEQ ENTER THE LINE

10 SEIZE JOE CAPTURE THE BARBER

11 DEPART JOEQ LEAVE THE LINE

12 ADVANCE 10,2 USE BARBER FOR SHAVE

13 ADVANCE 18,6 USE-BARBER FOR HAIRCUT

14 RELEASE JOE FREE THE BARBER

15 TERMINATE LEAVE THE SHOP

*

* MODEL SEGMENT 3

*

16 GENERATE 480 TlMER ARRIVES AT TIME 480

17 TERMINATE 1 SHUT OFF THE RUN

*

* CONTROL CARDS

*

START 1,,,1 START THE RUN: GET CHAIN PRINTOUT AT END

END RETURN CONTROL TO OPERATING SYSTEM

Рис. 2В.4. Часть распечатки выходных данных примера моделирования 2В:

а - значения времени и список блоков;

б - статистические данные по прибору;

в - статистические данные по очереди;

г - цепь текущих событий;

д - цепь будущих событий.

а)

RELATIVE CLOCK 480 ABSOLUTE CLOCK 4ВО

BLOCK COUNTS

BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL

1 0 13 11 0 8

2 1 13 12 0 8

3 0 12 13 1 8

4 0 12 14 0 7

5 0 12 15 0 7

6 0 12 16 0 1

7 0 12 17 0 1

8 0 8

9 0 8

10 0 8

б)

FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING

UTILIZATION ENTRIES TIME/TRAN TRANS. NO. TRANS. NO.

JOE .697 20 21.549 1

в)

QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT AVERAGE SAVERAGE

CONTENTS CONTENTS ENTRIES ENTRIES ZERGS TIME/TRANS TIME/TRANS

JOEQ 2 .524 21 4 19,0 12.000 14.823

SAVERAGE TIME/TRANS = AVERAGE TIME/TRANS EXCLUDING ZERO ENTRIES

г)

CURRENT EVENTS CHAIN

TRANS ВОТ BLOCK PR SP NBA SET MARK-TIME P1 Р2 P3 P4 SI TI CI...

6 457 2 3 6 457 0 0 0 0 1 1 2

0 0 0 0

0 0 0 0

д)

FUTURE EVENTS CHAIN

TRANS ВОТ BLOCK PR SP NOA SET МАRК-ТIМЕ P1 P2 P3 P4... CI...

1 490 13 14 1 457 0 0 0 0 4

0 0 0 0

0 0 0 0

4 502 1 4 -13 0 0 0 0 4

0 0 0 0

5 504 8 5 -9 0 0 0 0

0 0 0 0 4

6 960 16 2 -1 0 0 0 0

0 0 0 0

0 0 0 0 4

0 0 0 0

0 0 0 0

Предположим, что необходимо собрать статистику и по каждому типу клиентов (т. е. дифференцированным образом), и по обоим типам клиентов (т. е. агрегированным образом). Для сбора дифференцированной статистики рис. 2В.2 модели должен быть дополнен введением дополнительной очереди в сегмент 1 и в сегмент 2. Когда это будет сделано, модель сможет одновременно обслуживать три раздельные множества записей характеристик ожидания.

На рис. 2В.5 показана блок-схема рис. 2В.2 после ее модификации в соответствии со сделанными предложениями. Дополнительные очереди, названные ТYРЕ1 и ТYРЕ2, введены соответственно в сегмент 1 и в сегмент 2. Заметим, что когда клиент входит в сегмент 1, он присоединяется к очереди JOEQ, затем к очереди TYPE1, а уже затем пытается занять прибор. Если попытка успешна, то клиент уходит из очередей ТYРЕ1 и JOEQ, и начинается обслуживание блоком ADVANCE.


Рис.2В.5.Пример моделирования 2В с раздельными и общей очередями для пользователей 2-х типов.

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

Важно отметить, что логика, присущая модели рис. 2В.5, не отличается от логики рис. 2В.2. Все равно существует только одна очередь клиентов, ожидающих парикмахера. Дисциплина выбора из очереди, реализуемая парикмахером, по-прежнему "первым пришел - первым обслужен". Хочет разработчик собирать статистику порознь или нет, не так важно. Как было показано в параграфе 2.15, присутствие в очереди - это не более чем простая запись.

Заметим, что на рис. 2В.3 в качестве операнда D карты START используется единица. В результате этого распечатались цепи текущих и будущих событий по завершении моделирования. Эти цепи показаны на рис. 2В.4, г, д.

ТЕМА № 16

"Второй пример использования цепей текущих и будущих событий"


Глядя на рис. 2В.2, можно подумать, что прибор JOE и очередь JOEQ использованы неверно. Хочется задать вопрос: "Каким образом можно использовать прибор в двух совершенно различных местах ?"
Вопрос этот возникает из-за существования в модели двух пар блоков SEIZE - RELEASE.

Число пар блоков SEIZE - RELEASE в модели вовсе не должно совпадать с числом обслуживающих приборов моделируемой системы. В примере моделирования 2В существует только один прибор, однако при этом можно использовать две или большее число пар блоков SEIZE - RELEASE.

Рис.2В.2.Блок-схема примера моделирования 2В.



Рассмотрим еще один пример использования интерпретатором GPSS цепей текущих и будущих событий в процессе моделирования.
На рис. 2.32 представлено повторение распечатки программы из примера моделирования 2В.
В табл. 2.16 даны последовательности интервалов времени прихода и времени обслуживания, которые имеют место в блоках GENERATE и ADVANCE модели.

Рис.2.32.

BLOCK

NUMBER *LOG OPERATION A,B,C,D,E.F,G COMMENTS

SIMULATE

*

* MODEL SEGMENT 1

*

1 GENERATE 35,10 HAIRCUT-ONLY CUSTOMERS ARRIVE

2 QUEUE JOEQ ENTER THE LINE

3 SEIZE JOE CAPTURE THE BARBER

4 DEPART JOEQ LEAVE THE LINE

5 ADVANCE 18,6 USE BARBER

6 RELEASE JOE FREE THE BARBER

7 TERMINATE LEAVE THE SHOP

*

* MODEL SEGMENT 2

*

8 GENERATE 60,20 SHAVE-AND-HAIRCUT CUSTOMERS ARRIVE

9 QUEUE JOEQ ENTER THE LINE

10 SEIZE JOE CAPTURE THE BARBER

11 DEPART JOEQ LEAVE THE LINE

12 ADVANCE 10,2 USE BARBER FOR SHAVE

13 ADVANCE 18,6 USE BARBER FOR HAIRCUT

14 RELEASE JOE FREE THE BARBER

15 TERMINATE LEAVE THE SHOP

*

* MODEL SEGMENT 3

*

l6 GENERATE 480 TIMER ARRIVES AT TIME <80

17 TERMINATE 1 SHUT OFF THE RUN

*

* CONTROL CARDS

*

START 1,,,1 START THE RUN; GET CHAIN PRINTOUT AT END

END RETURN CONTROL TO OPERATING SYSTEM

Таблица 2.16.

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

Номер строки

Тип блока

Моделируемое системное событие

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

1

GENERATE

Приход только стригущихся клиентов

44, 28, 35, 40, ...

5

ADVANCE

Обслуживание только стригущихся клиентов

20, 18, 22, 17, ...

8

GENERATE

Приход стригущихся и бреющихся клиентов

41, 72, 52, 60, ...

12

ADVANCE

Бритье стригущихся и бреющихся клиентов

9, 11, 10, 12, ...

13

ADVANCE

Стрижка стригущихся и бреющихся клиентов

14, 15, 20, 19, ...

16

GENERATE

Таймер

480

Вспомним вид пятипозиционной записи, используемой для обозначения информации о транзактах:
[Номер транзакта; Время движения; Текущий блок; Уровень приоритета; Номер следующего блока ].

На рис. 2.33 показаны состояния транзактов, находящихся в цепях текущих и будущих событий для нескольких первых значений таймера модельного времени.

Рис.2.33.

Состояния цепей для второго примера их использования

Номер строки

Модельное время

Цепь текущих событий к началу цепи

Цепь будущих событий к началу цепи

1

До фазы ввода

Пусто

Пусто

2

После фазы ввода

Пусто

[2,41,НЕТ,0,8] [1,44,НЕТ,0,1][3,480,НЕТ,0,16]

3

41

[2,KMP,НЕТ,0,8]

[1,44,НЕТ,0,1] [3,480,НЕТ,0,16]

4

41

Пусто

[1,44,НЕТ,0,1] [2,50,12,0,13] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16]

5

44

[1,KMP,НЕТ,0,1]

[2,50,12,0,13] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16]

6

44

[1,KMP,2,0,3]

[2,50,12,0,13] [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16]

7

50

[1,KMP,2,0,3] [2,KMP,12,0,13]

[5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16]

8

50

[1,KMP,2,0,3]

[2,64,13,0,14] [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16]

9

64

[1,KMP,2,0,3] [2,KMP,13,0,14]

[5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16]

10

64

Пусто

[5,72,НЕТ,0,1] [1,84,5,0,6] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16]

Фаза ввода (от строки 1 к строке 2). Как показано в первой строке рис. 2.33, в начале фазы ввода цепи пусты.
В процессе выполнения этой фазы оказывается, что блок 1 является блоком GENERATE.
Транзакт 1 выбирается из вершины пассивного буфера и помещается в цепь будущих событий; планируется вход в блок 1 в момент времени, равный 44 (см. табл. 2.16).

Далее карта GENERATE будет обнаружена в блоке номер 8.
Теперь транзакт 2 выбирается из буфера и помещается в цепь будущих событий; планируется его вход в блок 8 в момент времени 41, что соответствует табл. 2.16.

И, наконец, третья карта GENERATE обнаруживается в позиции 16,

Затем уже транзакт 3 помещается в ЦБС; планируется его вход в блок 16 в момент времени 480 в соответствии с табл. 2.16.

ТЕМА № 17

"Пример моделирования 2С.
Измененная дисциплина обслуживания в системе с одним прибором и очередью"


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

Таблица 2С.1. Интервалы времени прихода и времени обслуживания запросов механиков для примера 2С.

Интервалы времени прихода и времени обслуживания запросов механиков для примера 2C

Категория запроса

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

Время обслуживания, с

1

420+-360

300+-90

2

360+-240

100+-30

Кладовщик обслуживает механиков по принципу "первым пришел - первым обслужен" независимо от категории запроса. Такая дисциплина обслуживания очереди изображена на рис. 2С. 1, на котором кружки и треугольники изображают механиков, делающих запросы категории 1 и 2 соответственно. На рис. 2C.1 запрос категории 2 обслуживается, а один запрос категории 1 и два запроса категории 2 ждут своей очереди в указанном порядке.


Рис.2С.1. Дисциплина обслуживания "первым пришел- первым обслужен"
при наличии двух категорий запросов без приоритетов.

Поскольку сломанный станок ничего не производит, то простой механика в очереди приносит убыток 0,25 цента в секунду (9 долларов в час). Эта стоимость не зависит от того, за какой запасной частью ушел механик. Руководитель считает, что среднее число простаивающих механиков можно уменьшить, если запросы категории 2 в кладовой будут удовлетворяться быстрее запросов категории 1. (Среднее время обслуживания запроса категории 2 меньше, чем категории 1.

Если обслуживающий прибор выбирает запрос с наименьшим средним временем обслуживания, то говорят, что имеет место дисциплина обслуживания "ближайшая операция кратчайшая".) Только в том случае, когда в очереди нет ни одного запроса категории 2, обслуживаются запросы категории 1. Эта дисциплина обслуживания изображена на рис. 2С.2,на котором очередь состоит из двух сегментов. Сегмент, располагаемый в начале очереди, является высокоприоритетным, а находящийся в конце очереди - низкоприоритетным. Дисциплина обслуживания очереди на рис.2С.2 называется "первым пришел - первым обслужен внутри приоритетного класса".


Рис.2С.2. Дисциплина обслуживания "первым пришел - первым обслужен"
при наличии двух категорий запросов с приоритетами.

Ситуация ожидания механиками на рис.2С.2 аналогична ситуации на рис.2С.1. Кладовщик работает над удовлетворением заявки категории 2 (треугольник).Два других запроса категории 2 ожидают в очереди; кроме того, в очереди находится один запрос категории 1 (кружок). Только тогда, когда высокоприоритетный сегмент очереди пуст, обслуживаются заявки низкоприоритетного сегмента.

Необходимо coздать модель работы кладовой для обеих дисциплин обслуживания очереди и выполнить моделирование для каждой из них в течение восьмичасового рабочего дня. Уменьшится ли среднее число ожидающих механиков в очереди? Сколько денег ежедневно будет сэкономлено при использовании приоритетного обслуживания? В стоимость потерь не следует включать простои механиков во время обслуживания.

Метод построения модели. Система, которую необходимо промоделировать, очень напоминает систему из примера 2В. Есть два различных типа заявок, поступающих на обслуживание к единственному прибору. Различаются распределения интервалов прихода и времени обслуживания для этих типов заявок. Усложнение заключается в том, что один из типов имеет преимущество в обслуживании. Построить модель можно, используя тот же подход, что и в примере 2В. Но при этом надо найти средство задания существующей разницы в моделях, заключающейся в различных приоритетах обслуживания.

Аналогично тому, как это сделано и примере моделирования 2В, запросы категории 1 могут моделироваться одним сегментом, а запросы категории 2 - другим. Различие относительных приоритетов задается путем использования в качестве операнда Е блока GENERATE для запросов категории 2 большего значения, чем для запросов категории 1. Например, запросы категории 2 могут входить в модель через блок GENERATE с операндом Е, равным 2, а запросы категории 1 - через блок GENERATE с операндом Е, равным 1. Конечно, абсолютный уровень приоритетов не имеет значения. Важно лишь то, что транзакты, представляющие механиков категории 2, имеют больший приоритет, чем транзакты, представляющие механиков категории 1.

То, как влияет уровень приоритетов транзактов на обработку, видно при рассмотрении цепи текущих событий. Вспомним, что при перенесении транзактов из цепи будущих событий в цепь текущих событий транзакты в цепи текущих событий занимают положение, являющееся последним внутри соответствующего приоритетного класса. Более того, чем выше приоритетный класс, тем ближе к началу ЦТС располагается транзакт.

Поскольку интерпретатор GPSS просматривает цепь текущих событий сначала, он пытается двигать вначале высокоприоритетные транзакты. Позднее, при просмотре он пытается двигать и транзакты, которые имеют низкие приоритеты. Это означает, что любые механики категории 2, ожидающие обслуживания в очереди (у них уровень приоритета равен 2), скорее смогут занять прибор, чем механики категории 1 (у них уровень приоритета равен 1). Если прибор освобождается и в очереди стоит хотя бы один механик каждой категории, механик категории 2 следующим займет устройство просто потому, что он ближе стоит к началу ЦТС, чем механик категории 1.

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

O статистике. Среднее число ожидающих механиков интересует нас в первую очередь. Его мы получаем в колонке AVERAGE CONTENTS (СРЕДНЕЕ СОДЕРЖИМОЕ) очереди, в которой происходит ожидание. По- скольку стоимость простоя механиков не зависит от категории их запроса, то целесообразно иметь только одну очередь при моделировании системы. AVERAGE CONTENTS этой очереди потом может быть умножено на 0,25 цента в секунду, или на 9 долларов в час, или на 72 доллара в день для того, чтобы получить стоимость потерь в секунду, час или день соответственно.

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

Таблица определений примера моделирования 2C

Элементы GPSS

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

Транзакты:

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

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

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




 

Механики, делающие запрос категории 1

Механики, делающие запрос категории 2

Таймер




Приборы:

CLERK




 

Кладовщик




Очереди:

LINE




 

Очередь, используемая для сбора статистики о механиках, делающих запросы обеих категорий




Рис.2С.3. Блок-схема для примера моделирования 2С ( с приоритетами).



Обсуждение. Использование модели. Модель, показанная на рис.2С.4, была выполнена на ЭВМ первой. Затем операнды Е были удалены из карт GENERATE, и результирующая безприоритетная модель была еще раз пропущена через ЭВМ.

Рис.2С.4. Распечатка программы из примера моделирования 2С (с приоритетами).

BLOCK CARD

NUMBER *LOC OPERATION A,B,C,D,E,F,G COMMENTS

SIMULATE

*

* MODEL SEGMENT 1

*

1 GENERATE 420,360,,,1 CATEGORY 1 MECHANICS ARRIVE

2 QUEUE LINE ENTER "CATEGORY I SEGMENT" OF LINE

3 SEIZE CLERK CAPTURE ТHЕ CLERK

4 DEPART LINE LEAVE THE LINE

5 ADVANCE 300,90 USE THE CLERK

6 RELEASE CLERK FREE THE CLERK

7 TERMINATE LEAVE THE TOOL CRIB AREA

*

* MODEL SEGMENT 2

*

8 GENERATE 360,240,,,2 CATEGORY 2 MECHANICS ARRIVE

9 QUEUE LINE ENTER "CATEGORY 2 SEGMENT" OF LINE

10 SEIZE CLERK CAPTURE THE CLERK

11 DEPART LINE LEAVE THE LINE

12 ADVANCE 100,30 USE THE CLERK

13 RELEASE CLERK FREE THE CLERK

14 TERMINATE LEAVE THE TOOL CRIB AREA

* MODEL SEGMENT 3

*

15 GENERATE 28800 TIMER AHRIVES AFTER 8 HOURS

16 TERMINATE 1 SHUT OFF THE RUN

*

* CONTROL CARDS

*

START 1 START THE RUN

END RETURN CONTROL TO OPERATING SYSTEM

Рис.2С.5. Часть распечатки выходных данных примера моделирования 2С:

а - с приоритетами;

б - без приоритетов.

а)

FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING

UTILIZATION ENTRIES TIME/TRANS TRANS. NO. TRANS. NO.

CLERK .932 140 191.678 6

QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT AVERAGE ...

CONTENTS CONTENTS ENTRIES ENTRIES ZEROS TIME/TRANS ...

LINE 3 .770 140 20 14.2 158.500 ...

SAVERAGE TIME/TRANS = AVERAGE TIME/TRANS EXCLUDING ZERO ENTRIES

б)

FACILITY AVERAGE NUMBER AVERAGE SEIZING PREEMPTING

UTILIZATION ENTRIES TIME/TRAN TRANS. NO.TRANS. NO.

CLERK .959 142 194.605 1

OUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT AVERAGE ...

CONTENTS CONTENTS ENTRIES ENTRIES ZEROS TIME/TRANS ...

LINE 7 2.731 145 13 0.9 542.593 ...

SAVERAGE TIME/TRANS < ENTRIES ZERO EXCLUDING TRANS TIME>

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

Выходные данные моделирования. (Полное время, потребовавшееся для моделирования на ЭВМ IBN360/67, равнялось 2,1 с.) Как отмечалось выше, наиболее интересной для нас является среднее содержимое очереди, т.е. поле AVERAGE CONTENTS. Рис.2С.5,б показывает, что среднее число ожидающих механиков при отсутствии различия уровней приоритетов при моделировании на интервале восьмичасового рабочего дня равно 2,731. Когда различие в приоритетах есть, среднее число уменьшается до 0,770, как это следует из рис.2С.5,а. Следовательно, если различие приоритетов реализуется, это ведет к увеличению производительности системы в том смысле, что среднее число ожидающих механиков уменьшается примерно на 70%.

Обратите внимание на то, что это различие определено на 140 и 145 входах в очередь TOTAL ENTRIES (ОБЩЕЕ ЧИСЛО BXOДОВ), рис.2С.5,а и 2С.5,б]. Из-за случайности процесса при моделировании без приоритеров получилось на пять приходов больше, чем при наличии приоритетов.

При отсутствии различия приоритетов стоимость потерь из-за простоя механиков в день составляет около 197 долларов (2,731 х 72 доллара в день = 196,6З доллара в день). В случае реализации различия уровней приоритетов стоимость потерь составила около 55 долларов в день (55,44). Разница таким образом составила 141 доллар (141,19).

Несмотря на полученное различие стоимости, период моделирования, использованный в нашем примере, так мал, что выводы, сделанные на основании полученных результатов, неправдоподобно хороши. После того, как мы изучим дополнительные возможности GPSS, мы еще раз промоделируем эту систему более тщательно.

ТЕМА № 18

"Третий пример использования цепей текущих и будущих событий"


В примере моделирования 2С делается различие между уровнями приоритетои транзактов в двух сегментах модели. Это приводит к реализации в модели дисциплины обслуживания "первым пришел - первым обслужен внутри приоритетного класса". Некоторые сомнения, которые могли остаться относительно того, почему эта дисциплина обслуживаия является результатом управления уровнями приоритетов транзактов, могут быть сняты при рассмотрении численного примера, показывающего метод использования интерпретатором GPSS цепей будущих и текущих событий при моделировании системы, изображенной на рис.2С.4. Начальные условия такого примера мы сейчас рассмотрим.

Рис.2С.4. Распечатка программы из примера моделирования 2С (с приоритетами).

BLOCK CARD

NUMBER *LOC OPERATION A,B,C,D,E,F,G COMMENTS

SIMULATE

*

* MODEL SEGMENT 1

*

1 GENERATE 420,360,,,1 CATEGORY 1 MECHANICS ARRIVE

2 QUEUE LINE ENTER "CATEGORY I SEGMENT" OF LINE

3 SEIZE CLERK CAPTURE ТHЕ CLERK

4 DEPART LINE LEAVE THE LINE

5 ADVANCE 300,90 USE THE CLERK

6 RELEASE CLERK FREE THE CLERK

7 TERMINATE LEAVE THE TOOL CRIB AREA

*

* MODEL SEGMENT 2

*

8 GENERATE 360,240,,,2 CATEGORY 2 MECHANICS ARRIVE

9 QUEUE LINE ENTER "CATEGORY 2 SEGMENT" OF LINE

10 SEIZE CLERK CAPTURE THE CLERK

11 DEPART LINE LEAVE THE LINE

12 ADVANCE 100,30 USE THE CLERK

13 RELEASE CLERK FREE THE CLERK

14 TERMINATE LEAVE THE TOOL CRIB AREA

* MODEL SEGMENT 3

*

15 GENERATE 28800 TIMER AHRIVES AFTER 8 HOURS

16 TERMINATE 1 SHUT OFF THE RUN

*

* CONTROL CARDS

*

START 1 START THE RUN

END RETURN CONTROL TO OPERATING SYSTEM

Рис.2.34 является повторением распечатки программы модели примера 2С. В табл.2.19 с использованием номеров блоков рис. 2.34 представлены интервалы времени прихода и времени обслуживания, которые возникают в различных блоках GENERATE и ADVANCE модели. И, наконец, на рис.2.35 представлены состояния транзактов, находящихся в цепях текущих и будущих событий.

Рис. 2.34. Повторение рис. 2С.4.

BLOCK

NUMBER *LOC OPERATION A,B,C,D,E,F,G COMMENTS

SIMULATE

*

* MODEL SEGMENT 1

*

1 GENERATE 420,360,,,1 CATEGORY I MECHANICS ARRIVE

2 QUEUE LINE ENTER "CATEGORY I SEGMENT" OF LINE

3 SEIZE CLERK CAPTURE THE CLERK

4 DEPART LINE LEAVE THE LINE

5 ADVANCE 300,90 USE THE CLERK

6 RELEASE CLERK FREE THE CLERK

7 TERMINATE LEAVE THE TOOL CRIB AREA

*

* MODEL SEGMENT 2

*

8 GENERATE 36O,240,,,2 CATEGORY 2 MECHANICS ARRIVE

9 QUEUE LINE ENTER "CATEGORY 2 SEGMENT" OF LINE

10 SEIZE CLERK CAPTURE THE CLERK

11 DEPART LINE LEAVE THE LINE

12 ADVANCE 100,30 USE THE CLERK

13 RELEASE CLERK FREE THE CLERK

14 TERMINATE LEAVE THE TOOL CRIB AREA

*

* MODEL SEGMENT 3

*

15 GENERATE 28800 TIMER ARRIVES AFTER 8 HOURS

16 TERMINATE 1 SHUT OFF THE RUN

*

* CONTROL CARDS

*

START 1 START THE RUN

END RETURN CONTROL TO OPERATING SYSTEM

Таблица 2.19.

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

Номер блока

Тип блока

Моделируемое событие

Последовательность интервалов

1

GENERATE

Приход механиков, делающих запросы категории 1

392, 223, 426, ...

5

ADVANCE

Обслуживание запросов категории 1

309, ...

8

GENERATE

Приход механиков, делающих запросы категории 2

403, 279, 352, ...

12

ADVANCE

Обслуживание запросов категории 2

В примере не используется

15

GENERATE

Таймер

28800

Рис.2.35


Состояния цепей для третьего примера использования цепей текущих и будущих событий: ДФВ - до фазы; ПФВ - после фазы ввода

Номер строки

Модельное время

Цепь текущих событий к началу цепи

Цепь будущих событий к началу цепи

1

ДФВ

Пусто

Пусто

2

ПФВ

Пусто

[1,392,HET,1,1] [2,403,HET,2,8] [3,28800,HET,0,15]

3

392

[1,KMP,HET,1,1]

[2,403,HET,2,8] [3,28800,HET,0,15]

4

392

Пусто

[2,403,HET,2,8] [4,615,HET,1,1] [1,701,5,1,6] [3,28800,HET,0,15]

5

403

[2,KMP,НЕТ,2,8]

[4,615,HET,1,1] [1,701,5,1,6] [3,28800,HET,0,15]

6

403

[2,KMP,9,2,10]

[4,615,HET,1,1] [5,682,HET,2,8] [1,701,5,1,6] [3,28800,HET,0,15]

7

615

[2,KMP,9,2,10] [4,KMP,HET,1,1]

[5,682,HET,2,8] [1,701,5,1,6] [3,28800,HET,0,15]

8

615

[2,KMP,9,2,10] [4,KMP,2,1,3]

[5,682,HET,2,8] [1,701,5,1,6] [6,1041,HET,1,1] [3,28800,HET,0,15]

9

682

[2,KMP,9,2,10] [5,KMP,HET,2,8] [4,KMP,2,1,3]

[1,701,5,1,6] [6,1041,HET,1,1] [3,28800,HET,0,15]

10

682

[2,KMP,9,2,10] [5,KMP,9,2,10] [4,KMP,2,1,3]

[1,701,5,1,6] [7,1034,HET,2,8] [6,1041,HET,1,1] [3,28800,HET,0,15]

Мы не будем тщательно пояснять каждую запись на рис. 2.35. Те, кому это интересно, могут сами построить состояния цепей в соответствии с процедурой, тщательно описанной в первом и втором примерах использования цепей. Для нас интересным являются лишь строки 6, 8 и 10, показывающие состояния цепей в конце фазы просмотра в моменты времени 403, 615 и 682 соответственно.

ТЕМА № 19

"Переход транзактов в блок, отличный от последующего.
Блок ТRАNSFЕR (ПЕРЕДАТЬ)"


Иногда возникает необходимость передать транзакт безусловным образом в блок, отличный от последующего. Это можно выполнить, используя блок ТRANSFER (ПЕРЕДАТЬ) в режиме безусловной передачи. Использование блока в этом режиме показано на рис. 19.1. Операнд A при таком использовании блока не участвует.



Рис.19.1

Блок TRANSFER (ПЕРЕДАТЬ) в режиме безусловной передачи

Операнд

Значение

Результат по умолчанию

A

Не используется

-----

B

Позиция блока, в который должен перейти транзакт

Ошибка

Это означает, что в колонке 19, от которой заполняются операнды, должна стоять запятая. Наличие запятой указывает на безусловный режим использования блока.

Операнд В указывает положение,занимаемое блоком, в который транзакт должен сделать попытку входа. Для краткости такой блок мы в дальнейшем просто будем именовать "В блоком". Положение блока может задаваться либо символически, либо в виде номера блока. Символическое имя использовать значительно более удобно.

На рис. 19.1 в скобках указан операнд В. Скобки используют только на блок-схеме модели; они не являются частью операнда и их не надо использовать в блоке ТRANSFER.

В режиме безусловной передачи блок ТRANSFER не может отказывать транзакту во входе. Когда транзакт входит в блок, он сразу же пытается войти в В блок.Если последний отказывает в этом, транзакт остается в блоке ТRANSFER и в цепи текущих событий. При каждом последующем просмотре цепи (либо при возобновлении просмотра в процессе выполнения фазы просмотра, либо в начале следующего выполнения фазы просмотра) снова делается попытка поместить транзакт в В блок.Возможно, что при каком-то просмотре попытка будет успешной.

Как уже было указано, такое использование блока ТRANSFER называется режимом безусловной передачи блока ТRANSFER. Существуют и альтернативные режимы использования блока ТRANSFER. Некоторые из них будут рассмотрены позднее. Использование блока ТRANSFER в режиме безусловной передачи проиллюстрировано в примере моделирования 2В.

ТЕМА № 20

"Пример моделирования 2D.
Система обслуживания с прибором, очередью и обратной связью"


Метод построения модели. Для моделирования на GPSS необходимо определить:
  1. условия работы моделируемой системы;
  2. какие элементы GPSS надо использовать для удовлетворения условий модели.

В данном случае есть два вида ограничивающих условий. Во-первых, имеется лишь одна печь. Вовторых, существует некоторое фиксированное число сборщиков, работающих в системе. Естественно, для моделирования печи использовать понятие "прибор". Также естественно отождествить сборщиков с транзактами. Тогда можно считать, что сборщики циркулируют в системе. Аналогично тому, как они периодически осуществляют сборку и обжиг, транзакты циркулируют в GPSS-модели системы.

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

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

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

Таблица 2D.2

Элемент

Стоимость

Зарплата сборщика

3.75 $ в час

Стоимость печи

80 $ за восьмичасовой рабочий день (независимо от степени использования)

Цена материала

2 $ за одну деталь

Стоимость готового изделия

7 $ за деталь




Таблица определений примера моделирования 2D

Элемент GPSS

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

Транзакты:

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

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




 

Сборщики

Печь




Приборы:

OVEN




 

Печь




Обсуждение. Логика моделирования. Это первая модель, в которой представляется случай дать символическое имя блоку. На рис.2D.1 блок ADVANCE 30,5 получил имя ВАСК. На рис. 2D.2 это символическое имя появляется в поле имени (находится под пометкой *LOC) на карте блока ADVANCE. В колонке номера блока на этом рисунке видно, что символическое имя ВАСК эквивалентно номеру 2.

Рис.2D.1. Блок-схема пример моделирования 2D.



Рис.2D.2. Распечатка программы примера моделирования 2D.

BLOCK CARD

NUMBER *LOC OPERATION A,B,C,D,E,F,G COMMENTS NUMBER

SIMULATE 1

* 2

* MODEL SEGMENT 1 3

* 4

1 GENERATE ,,,4 PROVIDE 4 ASSEMBLERS 5

2 BACK ADVANCE 30,5 ASSEMBLE NEXT WIDGET 6

3 SEIZE OVEN CAPTURE THE OVEN 7

4 ADVANCE 8,2 USE THE OVEN 8

5 RELEASE OVEN FREE THE OVEN 9

6 TRANSFER ,BACK GO TO THE NEXT ASSEMBLY 10

* 11

* MODEL SEGMENT 2 12

* 13

7 GENERATE 2400 TIMER ARRIVES AFTER 5 DAYS 14

8 TERMINATE 1 SHUT OF THE RUN 15

* 16

* CONTROL CARDS 17

* 18

START 1 START THE RUN 19

END RETURN CONTROL TO OPERATING SYSTEM 20

На рис. 2D.1, несмотря на то, что сборщики ждут своей очереди использования печи, блок SEIZE (ЗАНЯТЬ) не находится внутри пары блоков QUEUE - DEPART (СТАТЬ В ОЧЕРЕДЬ - ПОКИНУТЬ ОЧЕРЕДЬ). Сбор статистических данных об очереди не требуется, поэтому не ставятся блоки для сбора данных об очереди в модели.

Сборщики, ожидающие в очереди использования печи, представляются транзактами, которые в цепи текущих событий ждут возможности войти в блок 3 (SEIZE) "как можно раньше". С точки зрения счетчиков блоков эти транзакты входят в число значений счетчика текущего содержимого блока 2 (ADVANCE). Это верно, даже если время задержки в блоке ADVANCE уже истекло.

Использование модели. Поведение модели исследовали при трех значениях соотношения сборщики - печь. Было выполнено три раздельных прогона модели на ЭВМ. При каждом новом прогоне менялся только операнд D блока GENERATE 1-го сегмента модели. Именно он задавал изменение соотношения сборщики - печь.

"Моделирование многоканальных устройств"

Два или более приборов часто работают рядом, выполняя аналогичное обслуживание. Такими приборами могут быть и люди и механизмы. Вот примеры того, как люди могут играть роль параллельно работающих приборов: парикмахеры; контролеры универсального магазина; косметички; служащие в конторе; контролеры в театре.

А вот несколько примеров использования механизмов, выполняющих аналогичные операции (таких механизмов может быть два и более); буксиры, вводящие и выводящие корабли в порту; подъемные краны, переносящие тяжелые отливки от литейных форм к станкам; места на стоянке автомобилей; транспортеры для подачи определенного вида запасных частей, находящихся на полках.

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

Очень часто, однако, различные параллельно работающие приборы являются однородными. Это, грубо говоря, тот случай, когда некоторые устройства обладают определенными общими свойствами. Например, интенсивность, с которой контролер обслуживает покупателей в универмаге, не зависит от конкретного контролера, а является некоторой общей характеристикой.

GРSS предоставляет для моделирования однородных параллельных приборов специальное средство (или элемент). Для этого элемента используют название "многоканальное устройство". В модели может быть несколько многобанальных устройств, это отражает тот факт, что в системе существует большое число групп параллельно работающих приборов. Для того чтобы между ними было различие, многоканыльным устройствам можно давать имена. Условия использования имен такие же, как и в случае приборов и очередей.

Число приборов, которое моделируется каждым из многоканальных устройств, определяется пользователем. В этом смысле употребляют термин "емкость многоканального устройства". В следующем параграфе описаны методы использования элемента "многоканальное устройство" и определения его емкости.

ТЕМА № 22

"Использование параллельно работающих каналов.
Блоки ЕNТЕR (ВОЙТИ) и LEAVE (ВЫЙТИ)"


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