"Пример моделирования 2А.Система с одним прибором и очередью"
Для установления периода моделирования используется сегмент таймера из двух блоков. На рис.2.10 уже был представлен сегмент, требуемый в нашем случае, в предположении, что единицей времени выбрана 1 мин. Его мы и используем в модели.
Рис.2.10
Логика моделирования. В представленной модели не выполняется никаких дополнительных действий для вывода клиентов из парикмахерской, когда моделирование завершается при значении таймера 480. Если бы в модели был настоящий парикмахер, то он после восьмичасового рабочего дня ушел бы с работы. Если, наоборот, была бы настоящая модель, то моделировалось бы закрытие дверей через 8 ч работы, а моделирование не прерывалось пока все клиенты, находящиеся в парикмахерской в этот момент времени, не были бы обслужены. Как это записывается на GPSS, будет показано дальше.
Использование модели. Бланк, на котором записана перфокарточная версия модели, показан на рис.2А.2, а. Соответствующая ей распечатка программы показана на рис.2А.2, б.
Рис.2A.2. Пример моделирования 2A.
Модель и распечатка программы:
а - заполненный бланк для перфорации модели;
б - распечатка программы для модели, представленной в части а.
На банке показаны поля имени (LOCATION), операции (OPERATION) и операндов (помечено символами А,В,С,D,Е,F,G). На распечатке по- ле имени отмечено символами * LOC.
LOCATION |   | OPERATION | A,B,C,D,E,F ------------------------> | ||||||||||||||||||||||||||||||||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 1 0 | 1 1 | 1 2 | 1 3 | 1 4 | 1 5 | 1 6 | 1 7 | 1 8 | 1 9 | 2 0 | 2 1 | 2 2 | 2 3 | 2 4 | 2 5 | 2 6 | 2 7 | 2 8 | 2 9 | 3 0 | 3 1 | 3 2 | 3 3 | 3 4 | 3 5 | 3 6 | 3 7 | 3 8 | 3 9 | 4 0 | 4 1 | 4 2 | 4 3 | 4 4 | 4 5 | 4 6 |
  |   |   |   |   | S | I | M | U | L | A | T | E |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | M | O | D | E | L |   | S | E | G | M | E | N | T |   | 1 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | G | E | N | E | R | A | T | E |   | 1 | 8 | , | 6 |   | П | Р | И | Х | О | Д |   | К | Л | И | Е | Н | Т | О | В |   |   |   |   |   |   |   |   |   |   |   |   |
  |   |   |   |   | Q | U | E | U | E |   |   |   |   | J | O | E | Q |   | П | Р | И | С | О | Е | Д | И | Н | Е | Н | И | Е |   | К |   | О | Ч | Е | Р | Е | Д | И |   |   |   |   |
  |   |   |   |   | S | E | I | Z | E |   |   |   |   | J | O | E |   |   | П | Р | И | Х | О | Д |   | В |   | К | Р | Е | С | Л | О |   | П | А | Р | И | К | М | А | Х | Е | Р | А |
  |   |   |   |   | D | E | P | A | R | T |   |   |   | J | O | E | Q |   | У | Х | О | Д |   | И | З |   | О | Ч | Е | Р | Е | Д | И |   |   |   |   |   |   |   |   |   |   |   |   |
  |   |   |   |   | A | D | V | A | N | C | E |   |   | 1 | 6 | , | 4 |   | О | Б | С | Л | У | Ж | И | В | А | Н | И | Е |   | У |   | П | А | Р | И | К | М | А | Х | Е | Р | А |   |
  |   |   |   |   | R | E | L | E | A | S | E |   |   | J | O | E |   |   | О | С | В | О | Б | О | Ж | Д | Е | Н | И | Е |   | П | А | Р | И | К | М | А | Х | Е | Р | А |   |   |   |
  |   |   |   |   | T | E | R | M | I | N | A | T | E |   |   |   |   |   | У | Х | О | Д |   | И | З |   | П | А | Р | И | К | М | А | Х | Е | Р | С | К | О | Й |   |   |   |   |   |
* |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | M | O | D | E | L |   | S | E | G | M | E | N | T |   | 2 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
  |   |   |   |   | G | E | N | E | R | A | T | E |   | 4 | 8 | 0 | , | 1 |   | Т | А | Й | М | Е | Р |   | П | Р | И | Х | О | Д | И | Т |   | В |   | М | О | М | Е | Н | Т |   |   |
  |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   | В | Р | Е | М | Е | Н | И | , | Р | А | В | Н | Ы | Й |   | 4 | 8 | 0 |   |   |
  |   |   |   |   | T | E | R | M | I | N | A | T | E |   | 1 |   |   |   |   | З | А | В | Е | Р | Ш | Е | Н | И | Е |   | П | Р | О | Г | О | Н | А |   |   |   |   |   |   |   |   |
* |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | C | O | N | T | R | O | L |   | C | A | R | D | S |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
* |   |   |   |   | S | T | A | R | T |   | 1 |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
  |   |   |   |   | E | N | D |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
BLOCK NUMBER *LOG OPERATION A,B,C,D,E,F,G COMMENTS SIMULATE * * MODEL SEGMENT 2 * 1 GENERATE 460 TIMER ARRIVES AT TIME 460 2 TERMINATE 1 SMUT OFF THE RUN * * MODEL SEGMENT 1 * 3 GENERATE 16,6 CUSTOMERS ARRIVE 4 QUEUE JOEQ ENTER THE LINE 5 SEIZE JOE CAPTURE THE BARBER 6 DEPART JOEQ LEAVE THE LINE 7 ADVANCE 16,4 USE THE BARBER 8 RELEASE JOE FREE THE BARBER 9 TERMINATE LEAVE THE SHOP * * CONTROL CARDS * START 1 START THE RUN END RETURN CONTROL TO OPERATING SYSTEM |
Это увеличение получено за счет номеров блоков и номеров карт, находящихся соответственно в левой и правой колонках рис.2А.2,б.Легко убедиться, что номера блоков присвоены в соответствии с порядком, в котором следуют строки, представляющие блоки. Отметим также, что карты пронумерованы в порядке расположения строк. Комментарии используют для документации модели.Карты 2,3,4,12,13,14,17,18 и 19 на рис.2А.2, б являются комментариями и не являются частью сегментов модели или управляющими картами. Символ * в первой колонке (см. рис.2А.2, а) указывает на то, что карта является комментарием. Карты-блоки также могут быть прокомментированы в поле операнда. Эти комментарии аналогичны тем, которые были рассмотрены ранее и стояли рядом с блоками на рис.2A.1. На рис.2А.2,б первой картой является карта SIMULATE (МОДЕЛИРОВАТЬ). Если разработчик намерен выполнить прогон модели, то обычно эта карта стоит в начале колоды. На карте записано одно слово SIMULATE, помещенное в поле операции. Если эта карта отсутствует, то интерпретатор проверяет правильность записи модели на языке GPSS, но прогона модели не выполняет. Моделирование начинается после того, как интерпретатором в модели найдена карта START. Это объясняет, почему карта должна стоять в конце программы-модели (карта 20). Цифра 1 должна быть помещена как операнд А карты START. После того, как прогон модели завершен, работа ЭВМ над моделью еще не заканчивается. У разработчика остается много возможностей для продолжения работы. Независимо от того, используются ли эти возможности, существует некоторая точка в модели, перед которой помещены все команды управления прогонами. Здесь должна быть размещена карта END (ЗАКОНЧИТЬ). Эта карта побуждает интерпретатор вернуть управление в операционную систему. Карта END следует после карты START на рис.2А.2, б. Она состоит из слова END, занесенного в поле операции. Для модели в целом очень важен порядок, в котором располагаются карты сегментов модели, но порядок расположения сегментов безразличен.
Например, сегмент таймера может располагаться до основного сегмента на рис.2А.2 без какого-либо влияния на результат моделирования. Распечатка программы в этом случае будет такой, как показано на рис. 2А.4. Распечатка результатов. Ни из блок-схемы, ни из распечатки программы не видно, откуда получаются те или иные выходные результаты. По завершении моделирования интерпретатор GPSS автоматически распечатывает некоторое количество информации о поведении модели. Эта информация включает статистические данные по каждому из элементов, используемых в модели,т.е. по каждому из приборов и очередей (и других видов элементов,пока еще не рассмотренных). Рис. 2A.3. Часть распечатки примера моделирования 2A: а - ассемблированная модель; б - словарь символов приборов; в - словарь символов для очереди; г - значения времени и счетчик блоков; д - статистические данные по приборам; е - статистические данные по очередям. Русские эквиваленты названий элементов статистик, распечатываемых
по-английски, приведены в описании результатов.
а)
* * MODEL SEGMENT 1 * 1 GENERATE 18 6 2 QUEUE 1 3 SEIZE 1 4 DEPART 1 5 ADVANCE 16 4 6 RELEASE 1 7 TERMINATE * * MODEL SEGMENT 2 * 8 GENERATE 480 9 TERMINATE 1 * * CONTROL CARDS * START 1 |
б)
FACILITI SIMBOLS AND CORRESPONDING NUMBERGS 1 JOE |
в)
QUEUE SYMBOLS AND CORRESPONDING NUMBERS 1 JOEQ |
г)
RELATIVE CLOCK 480 ABSOLUTE CLOCK 480 BLOCK COUNTS BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL 1 0 27 2 1 27 3 0 26 4 0 26 5 1 26 6 0 25 7 0 25 8 0 1 9 0 1 |
д)
FACILITI AVERAGE NUMBER AVERAGE SEIZING PREEMPTING UTILISATION ENTRIES TIME/TRAN TRANS. NO. TRANS. NO. JOE .860 26 15.884 3 |
е)
QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT AVERAGE SAVERAGE CONTENTS CONTENTS ENTRIES ENTRIES ZEROS TIME/TRANS TIME/TRANS JOEQ 1 .160 27 12 44.4 2.851 5.133 SAVERAGE TIME/TRANS = AVERAGE TIME/TRANS EXPLODING ZERO ENTRIES |
После ассемблирования все символические имена заменяются на числовые).Она обладает следующими четырьмя особенностями:
- Абсолютный номер блока, присвоенный интерпретатором, повторяется в объектном коде модели. Такими номерами являются номера 1 - 9 в левой колонке рис.2А.З,а.
- Операнды расположены не в смежных колонках и не разделены запятой. Они теперь расположены в полях по шесть колонок каждый и выровнены по левому краю (из рис. 2А.3, а пока явно не видно, что для операндов используют поля именно по шесть колонок).
- Все символические имена элементов в модели заменены на соответствующие им числовые эквиваленты, присвоенные интерпретатором. Например, операнд А блока QUEUE (блок 2) теперь равен 1, а не JOEQ,операнд А блока SEIZE (блок 3) теперь равен 1, а не JOE, и т.д.
- Комментарии, входящие в строки блоков модели, пропадают. Чистые карты - комментарии, т. е. карты, имеющие в первой колонке звездочку, не пропадают. Они целиком сохраняются в распечатке объектного кода модели.
Номера блоков соответствуют номерам, показанным на рис.2A.3,а. Счетчик текущего содержимого является счетчиком транзактов,находящихся в соответствующих блоках в момент завершения моделирования. Счетчик входов является счетчиком общего числа транзактов, которые вошли в соответствующие блоки в течение периода моделирования, включая также те из них, которые все еще находятся в блоке (если таковые имеются). Например, счетчик входов в блок 1 (рис.2А.З, г) равен 27. Это значит, что 27 транзактов вошло в модель через блок GENERATE, стоящий на первом месте. Аналогично, счетчик входов в блок 2 равен 27, это означает, что 27 транзактов вошло в блок QUEUE, стоящий на втором месте. Счетчик текущего содержимого в блоке 2 равен 1. Это означает, что только один транзакт все еще находится в блоке QUEUE,т.е. один клиент ждал обслуживания в момент завершения работы модели. В блоке 5,т.е. блоке ADVANCE, счетчик текущего содержимого равен 1, а счетчик входов равен 26. Это значит, что парикмахер обслуживал 26 клиентов, из этих 26 один все еще находится на обслуживании. Счетчики входов в блоках SEIZE и RELEASE равны 26 и 25 соответственно; это согласуется со значением счетчика блока ADVANCE. Рис.2А.4. Распечатка программы моделирования 2А с перестановкой сегментов модели.
BLOCK NUMBER *LOC OPERATION A,B,C,D,E,F,G COMMENTS SIMULATE * * MODEL SEGMENT 2 * 1 GENERATE 480 TIME ARRIVES AT TIME 480 2 TERMINATE 1 SHUT OFF THE RUN * * MODEL SEGMENT 1 * 3 GENERATE 18,6 CUSTOMERS ARRIVE 4 QUEUE JOEQ ENTERTHE LINE 5 SEIZE JOE CAPTURE THE BARBER 6 DEPERT JOEQ LEAVE THE LINE 7 ADVANCE 16,4 USE THE BARBER 8 RELEASE JOE FREE THE BARBER 9 TERMINATE LEAVE THE SHOP * * CONTROL CARDS * START 1 SRART THE RUN END RETURN CONTROL TO OPERATING SYSTEM |
В нижнейчасти рисунка указаны значения данных,располагаемых в колонках.Рассмотрим подробнее таблицы к рис.2А.5 и 2А.6 со ссылкой на распечатку результатов. Они выдают следующую информацию:
- Прибор JOE использовался в течение 86% времени, AVERAGE UTILIZATION (НАГРУЗКА) = 860.
- Прибор JOE был занят обслуживанием 26 раз, NUMBER ENTRIES (ЧИСЛО ВХОДОВ) = 26. Это соответствует ранее рассмотренному значению счетчика входов, равному 26 для блока SEIZE.
- Среднее время интервала обслуживания прибора JOE равно 15,884 мин, AVERAGE TIME/TRANS (СРЕДНЕЕ ВРЕМЯ/ТРАН) = 15.884.
- Транзакт номер 3 находился на обслуживании приборомJOEвмоментзавершения моделирования SEIZING TRANS.NO. (НОМЕР ОБСЛУЖИВ. ТРАНЗ.) = 3. Тот факт, что JOE был занят призавершении моделирования, соответствует ранее рассмотренному значению счетчика текущего содержимого, равного 1 для блока ADVANCE.
- В очереди JOE никогда не было более одного клиента,МАХIMUMCONTENTS (МАКСИМАЛЬНОЕ СОДЕРЖИМОЕ) = 1.
- Среднее число клиентов, находившихся в очереди, равно 0,160, AVERAGE CONTENTS (СРЕДНЕЕ СОДЕРЖИМОЕ) = 160.
- Числом входов в очередь является27, TOTAL ENTRIES (ОБЩЕЕ ЧИСЛО ВХОДОВ) = 27.
- Среди этих 27 входов в очередь было 12 нулевых, ZERO ENTRIES (НУЛЕВЫХ ВХОДОВ) = 12.
- Из общего числа входов в очередь 44,4% было нулевых, PERCENT ZEROS (ПРОЦЕНТ НУЛЕВЫХ) = 44,4.
- Среднее время нахождения в очереди на один вход (включая нулевые входы) равно 2,851 мин,AVERAGE TIME/TRANS (СРЕДНЕЕ ВРЕМЯ/ТРАНЗ.) = 2,851.
- Среднее время нахождения в очереди на один ненулевой вход равно5,133мин, $ AVERAGE TIME/ TRANS ($ СРЕДНЕЕ ВРЕМЯ/ТРАНЗ.) * = 5.133.
- В момент завершения моделирования один транзакт находился в очереди, CURRENT CONTENTS(ТЕКУЩЕЕ СОДЕРЖИМОЕ) = 1.Это соответствует рассмотренному ранее значению счетчика текущего содержимого для блока QUEUE (СТАТЬ В ОЧЕРЕДЬ), равного единице.
FACILITI | AVERAGE | NUMBER |
UTILIZATION | ENTRIES | |
JOE | .860 | 26 |
  |   |   |
AVERAGE | SEIZIHG | PREEMPTING |
TIME/TRAN | TRANS.NO. | TRANS.NO |
15.884 | 3 | |
Колонка | Значение |
1 | Имена(символические или числовые) приборов, используемых в модели |
2 | Доля времени, в течении которого соответсвующие приборы были в состоянии занятости |
3 | Число обслуживаний |
4 | Средняя продолжительность одного обслуживания |
5 | Номер транзакта(если такой есть), который в настоящее время находится на обслуживании |
6 | Номер транзакта(если такой есть), который в настоящее время занял("захватил") прибор |
Это особенно справедливо для приборов. Так как только один транзакт в единицу времениможет использовать прибор, NUMBER ENTRIES берется непосредственно из счетчика числа транзактов,находившихся на приборе, а AVERAGE TINE/TRANS является средним временем обслуживания транзактов, находившихсянаприборе.Также просто все можно было бы описать, еслибыоперанд В блоков QUEUE и DEPART всегда был равен 1 (для примера моделирования 2А это справедливо, таккакоперанд В определен по умолчанию). Вспомним, чтоприописании очередей указывалось, что интерпретаторсчитает статистику в соответствии с элементами содержимого, а не транзактами. В примере моделирования2А (и в пособии вообще) каждый транзакт, входящий в очередь, указываетвточности на один элемент содержимого.Если бы это было не так, необходимо было бы описать статистические данные очереди следующим образом. Рис.2А.6 Описание элементов, показанных на рисунке 2А.3, е.
QUEUE | MAXIMUM | AVERAGE | TOTAL | ZERO |
CONTENTS | CONTENTS | ENTRIES | ENTRIES | |
JOEQ | 1 | .160 | 27 | 12 |
  |   |   | ||
PERCENT | AVERAGE | SAVERAGE | TABLE | CURRENT |
ZEROS | TIME/TRANS | TIME/TRANS | CONTENS | |
44.4 | 2.851 | 5.133 | NUMBER | 1 |
Колонка | Значение |
1 | Имена(символические или числовые) очередей, используемых в модели |
2 | Наибольшее значение содержимого очереди, зарегистрированное в течение моделирования |
3 | Среднее значение содержимого очереди |
4 | Общее число входов в очередь |
5 | Общее число входов в очередь без последующего ожидания (нулевые входы) |
6 | Процент нулевых входов от общего числа входов |
7 | Среднее время, проведенное в очереди с учетом всех входов(нулевые входы также включаются в среднее) |
8 | Среднее время, проведенное в очереди(нулевые входы исключаются из среднего) |
9 | Имя (символическое или числовое) таблицы,GPSS, в которой представлено распределение времени ожидания для этой очереди |
10 | Текущее значение содержимого очереди |
TOTALENTRIES (ОБЩЕЕ ЧИСЛО ВХОДОВ) - это число элементов содержимого, вошедших в очередь. Более точно, TOTAL ENTRIES - зто значение счетчика, сброшенного в ноль в начале и модифицируемого назначение, равное значению операнда В блока QUEUE при каждом использовании блока. Исключением является случай, когда операнд В блока QUEUE равен 1; в общемслучае значение счетчика не равно общему числу транзактов, являющихся элементами очереди в течение моделирования. 2. ZERO ЕХТRIES (НУЛЕВЫЕ ВХОДЫ) - это число элементов содержимого,котороенаходилось в очереди нуль времени. Точнее, ZЕRО ENTRIES - это значение счетчика, в начале сброшенного в нуль, к которому добавлялось значение, равноезначению операнда В блока DEPART каждый раз при выполнении подпрограммы блока, если время нахождения транзакта в очереди равнялось нулю. Исключением является случай, когда операнд В блока DEPART равен 1;в общем случае значение счетчика не совпадает с числом транзактов, являющихся элементами очереди, проведшими нуль времени в очереди. 3. AVERAGE TIME/TRANS (СРЕДНЕЕ ВРЕМЯ/ТРАНЗ.) -это среднее время нахождения в очереди на единицу содержимого. Это значение совпадает со значением среднего времени нахождения транзактов в очереди, если предполагать, что каждый транзакт, проходя очередь, вычитает из счетчика текущего содержимого то же число,которое было прибавлено к счетчику текущего содержимого ранее. Если это не так,то величина AVERAGE TIME/TRANS означает нечто иное. 4. Аналогично МАХIMUM CONTENTS (МАКСИМАЛЬНОЕ СОДЕРЖИМОЕ), AVERAGE CONTENTS (СРЕДНЕЕ СОДЕРЖИМОЕ),PERCENT ZEROS (ПРОЦЕНТ НУЛЕВЫХ), $AVERAGE TIME/TRANS (СРЕДНЕЕ ВРЕМЯ/ТРАНЗ.) и CURRENT CONTENTS (ТЕКУЩЕЕ СОДЕРЖИМОЕ) должны интерпретироваться в соответствии с концепцией элементов содержимого,а не транзактов, за исключением использования операнда В блоков QUEUE и DEPART,равного единице. Уточним значение некоторых элементов статистических данных об очереди и приборе. Если прибор в момент завершения моделирования занят, то очевидно занижение данных, называемых AVERAGE TIME/TRANS.
Это возможно, посколькуAVERAGE TIME/TRANS вычисляется делением полного модельного времени занятости прибора на значение NUMBER ENTRIES (ЧИСЛО ВХОДОВ). Если существует транзакт, который еще не обслужен до завершения моделирования, то неполное время занятости включается в статистические данные AVERAGE TIME/TRANS. То же самое можно сказать относительно величиныAVERAGE TIME/ TRANS, рассчитанной для очереди делением общеговремени нахождения в очереди на значение TOTALENTRIES (ОБЩЕЕ ЧИСЛО ВХОДОВ). Если очередь имеет CURRENT C0NTENTS (ТЕКУЩЕЕ СОДЕРЖИМОЕ) в момент завершения моделирования, то еще не учтено полное время нахождения в очереди. В результате величины AVERAGE TIME/TRANS и $ AVERAGE TIME/TRANS занижены. И, наконец, самое раннее значение модельного времени, при котором может начаться движение транзактов, равно 1.Это означает, что на интервале времени 0 - 1 содержимое очередей в модели равно нулю, все приборы свободны и т.д.Поскольку такие данные статистики, как среднее содержимое очереди, нагрузка приборов и т.п. вычисляются от значения модельного времени,равного 0,существует незначительное отклонение этих данных от истинных. Главная Содержание главы 1