SlideShare a Scribd company logo
1 of 66
Download to read offline
С.П. Сарычев, Т.А. Никифорова
СИСТЕМА МОДЕЛИРОВАНИЯ GPSS
Методические указания к лабораторным работам
НОВОСИБИРСК
2012
СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ
УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ
004
C208
УДК 004.43 (076.5)
С208
Сарычев С.П., Никифорова Т.А. Система моделиро-
вания GPSS: Метод. указ. к лабораторным работам. – Новоси-
бирск: Изд-во СГУПСа, 2012. – 66 с.
GPSS World – мощная универсальная среда моделирования дискретных и
непрерывных процессов, широко использующаяся для профессионального моде-
лирования разнообразных технических процессов и систем. Особое распростра-
нение она получила при моделировании дискретно-событийных систем, к кото-
рым относятся и системы массового обслуживания.
В методических указанияхсодержится шесть лабораторных работ с описанием
среды моделирования GPSS World, основных элементов ее языка и приемов
использования при моделировании различных систем массового обслуживания.
Рекомендованы для студентов специальности «Информационные системы и
технологии» для курса «Моделирование систем».
Рассмотрены и рекомендованы к изданию на заседании кафед-
ры «Информационныетехнологии транспорта».
О т в е т с т в е н н ы й р е д а к т о р
д-р техн. наук, проф. В.И. Хабаров
Р е ц е н з е н т
канд. техн. наук, доц. Л.Ю. Соловьев
 Сарычев С.П., Никифорова Т.А., 2012
 Сибирский государственный
университет путей сообщения, 2012
3
ВВЕДЕНИЕ
Одним из эффективных методов исследования сложных сис-
тем, а зачастую и практически единственным методом, является
метод имитационного моделирования, когда модель имитирует
работу реальной системы, воспроизводя во времени процесс ее
функционирования. При этом адекватность модели достигается
имитацией процесса функционирования каждого отдельного эле-
мента системы с обязательным сохранением логики и правил их
взаимодействия и развития как во времени, так и в пространстве.
При построении имитационной модели и еереализации предпо-
лагается использование средств вычислительной техники и про-
граммирования. Использование традиционных языков програм-
мирования при этом вызывает значительные трудности, в связи с
чем возникла необходимость разработки специализированных язы-
ков имитационного моделирования.
Одним из наиболее эффективных и распространенных специа-
лизированных языков имитационного моделирования сложных
дискретных систем является в настоящее время язык GPSS
(General Purpose Simulation System – общецелевая система моде-
лирования), относящийся к классу проблемно-ориентированных
языков. Проблемной областью GPSS являются системы массо-
вого обслуживания (СМО). В качестве объектов этого языка
используются аналоги таких стандартных компонентов СМО, как
заявки, обслуживающие приборы, очереди и т.д. Достаточный
набор подобных компонентов позволяет строить сложные имита-
ционные модели, сохраняя привычную терминологию СМО.
4
Историю GPSS, которая начинается с 1961 г., можно условно
разделить на два больших этапа: 1) GPSS на «больших» ЭВМ
(мэйнфреймы) и 2) GPSS на персональных ЭВМ (ПЭВМ). Первые
версии системы были разработаны и поддерживались фирмой
IBM для ЭВМ типа IBM/360 и ЕС ЭВМ. Последняя версия GPSS
V (1971 г.) стала классической.
Появление ПЭВМ и новых идей и подходов взаимодействия
человека с ЭВМ не могло не отразиться на GPSS. В 1984 г. фирма
Minuteman Software разработала систему GPSS/PC – это была
первая GPSS-система, предназначавшаяся специально под новые
диалоговые возможности ПЭВМ и в которой к тому же сохрани-
лась «красота» классической GPSS. В нашей стране первые
версии GPSS/PC появились в конце 80-х гг.
Основной модуль пакета прикладных программ GPSS пред-
ставляет собой интегрированную среду, включающую, помимо
транслятора с входного языка, средства ввода и редактирования
текста модели, средства ее отладки и наблюдения за процессом
моделирования, графические средства отображения атрибутов
модели, а также средства накопления результатов моделирования
в базе данных и их статистической обработки.
Для выполнения лабораторных работ в курсе «Моделирование
систем» необходимо установить систему моделирования GPSS
World. Требования к персональному компьютеру: класс Pentium II
и выше, операционная система Windows 98 и выше, оперативная
память не менее 32 Mb и 10 Mb свободного пространства на
жестком диске.
Лабораторная работа № 1
ЗНАКОМСТВО С СИСТЕМОЙ GPSS
Цель работы: ознакомиться с основными приемами использо-
вания системы GPSS при моделировании систем.
Задачи работы:
– освоить способы ввода и редактирования программ, способы
просмотра результатов моделирования, задания моментов окон-
чания моделирования;
– выполнить моделирование типовой задачи;
– приобрести навыки работы с моделями.
5
Пример работы с моделью в системе GPSS World
1.1. Ввод и редактирование программы
Допустим, нам надо создать модель работы площадки для
складирования 100 строительных панелей с одним краном при
условии доставки панелей панелевозами с периодичностью
9 ± 6 мин. При этом время разгрузки каждого панелевоза состав-
ляет 10 ± 5 мин. Модель на языке GPSS может выглядеть так, как
на рис. 1.1 (значения операндов блоков GENERATE и TERMINATE
задавать в соответствии со своим вариантом).
Перед тем как вводить модель в соответствующее окно систе-
мы GPSS World, необходимо это окно создать. Для этого:
– щелкните по кнопке New (Новая) – первой слева на панели
инструментов «Стандартная». Появится диалоговое окно «Новый
документ»;
– щелкните в диалоговом окне «Новый документ» по пункту
Model (Модель). Появится окно модели – Untitled Model 1 (Неназ-
ванная модель 1);
– щелкните по кнопке Save (Сохранить) – третьей слева на
панели инструментов «Стандартная». Появится диалоговое окно
для сохранения файла;
– введите в нем имя программы, например, «Складская пло-
щадка» и щелкните по кнопке Сохранить. В верхней строке окна
модели вместоназванияUntitledModel1 появитсяназвание«Склад-
ская площадка». После создания нужного окна можно перейти к
этапу ввода программы в открытое окно. Это можно выполнить
несколькими способами.
Рис. 1.1. Программа моделирования складской площадки
6
Первый способ – с помощью, например, текстового редактора
Word:
1) наберите программу в текстовом редакторе Word так, как
она должна быть набрана в системе GPSS World, например, так,
как на рис. 1.1;
2) выделите всю программу с комментариями и скопируйте ее
в буфер обмена данными, нажав клавиши Ctrl+Ins или щелкнув по
кнопке Сохранить на панели инструментов «Стандартная»;
3) вставьте программу из буфера обмена данными в открытое
окно системы GPSS World, нажав клавиши Shift+Ins или щелкнув
по кнопке Paste (Вставка) на панели инструментов «Стандарт-
ная».
Второй способ – ввод программы непосредственно в системе
GPSS World в открытом окне с клавиатуры.
Третий способ – ввод программы, точнее, операторов GPSS
World и комментариев к ним с
помощьюспециальных шабло-
нов. Для этого:
– щелкните в главном меню
по пункту Edit. Появится вы-
падающее меню;
– щелкните в выпадающем
меню по пункту Insert GPSS
Blocks (Вставить блоки GPSS).
Появится диалоговое окно
Insert GPSS Block into Model
Object (Вставить блок GPSS в
модель),показанноенарис. 1.2;
– щелкните по блоку
GENERATE (Генерировать).
Появится шаблон блока Enter
Block Information –
GENERATE (Ввод параметров
блока – GENERATE). Мерца-
ющий курсор ввода данных
будет находиться в поле операнда А;
– введите в поле операнда А число 9 – среднее время между
поступлениями двух смежных требований – панелевозов;
Рис. 1.2. Панель блоков Insert
GPSS Block into Model Object
7
– щелкните левой
кнопкой мыши в поле
операнда В и введите
число 6 – время откло-
нения от среднего вре-
мени поступления двух
смежных требований –
панелевозов;
– щелкните левой
кнопкой мыши в тексто-
вом поле Comment
(Комментарии) и вве-
дите, например, текст
«Въезд панелевозов на
площадку» (рис. 1.3);
– щелкните по кноп-
ке ОК. Появится пер-
вая строка программы
с введенными операн-
дами и комментарием в
окнемодели. Аналогич-
ным образом заполня-
ются и другие шабло-
ны. Окончательно программа может выглядеть так, как пред-
ставлено на рис. 1.3.
1.2. Запуск программы на моделирование
Перед тем как начать моделирование любой системы, необхо-
димо оттранслировать исходную модель. Для этого выберите
пункт Create Simulation (Произвести моделирование) из выпадаю-
щего менюпункта Command главного меню. Появится окно Journal
(Журнал) с сообщением о выполнении трансляции (рис. 1.4).
Теперь можно переходить непосредственно к процессу моде-
лирования.
Снова выберем пункт Command главного меню и из него –
пункт Start (Начать). Появится диалоговое окно Start Command
(Команда начать). Введем число 100 – общее количество рейсов,
которые должны выполнить панелевозы (рис. 1.5).
Рис. 1.3. Диалоговое окно Enter Block
Information для блока GENERATE
8
После окончания моделирования появится окно с отчетом
(рис. 1.6).
Рис. 1.4. Окно Journal при моделировании работы складской площадки
Рис. 1.5. Диалоговое окно Start Command с заданным числом имитаций
9
1.3. Расшифровка результатов моделирования
В нашем примере первая строка заголовков расшифровывает-
ся следующим образом:
LABEL (метка) – алфавитно-цифровая метка блока (у нас их
нет);
LOC (местоположение) – числовая позиция блока, начинающа-
яся с номера 1;
BLOCK TYPE (тип блока) – название блока;
Рис. 1.6. Фрагмент отчета о результатах моделирования работы
складской площадки
10
ENTRY COUNT (число входов) – количество требований
(панелевозов), вошедших в данный блок, начиная с последней
команды RESET (Сбросить) или CLEAR (Очистить) или начиная
с последней трансляции;
CURRENT COUNT (текущее число требований) – количество
требований (панелевозов) в данном блоке в конце моделирования;
RETRY (повторное) – число требований, ожидающих опреде-
ленное условие в зависимости от состояния данного блока.
Вторая строка заголовков отображает результаты работы ка-
нала обслуживания (крана):
FACILITY (канал обслуживания) – имя канала обслуживания;
ENTRIES (входы) – число входов в канал обслуживания, начи-
ная с последней команды RESET (Сбросить), CLEAR (Очистить)
или с момента последней трансляции;
UTIL. (использование) – коэффициент использования канала
обслуживания (крана);
AVE.TIME (среднее время) – среднее время монопольного
использования требованиями канала обслуживания;
AVAIL. (доступность) – состояние доступности канала обслу-
живания в конце моделирования (1 – доступен, 0 – нет);
OWNER (владелец) – номер требования, занимавшего канал
обслуживания в конце моделирования;
PEND (ожидающие) – число требований, оставшихся в канале
обслуживания;
INTER (между) – число требований, покидающих канал
обслуживания (число требований в цепочке прерываний);
RETRY (повторный) – число повторных входов в канал обслу-
живания;
DELAY (задержка) – число требований, ожидающих освобож-
дения канала обслуживания.
Третья строка заголовков отображает информацию об очереди
требований (панелевозов), ожидавших обслуживания (разгрузки)
за время моделирования:
QUEUE (очередь) – имя очереди;
МАХ (максимальная) – максимальная длина (содержимое)
очереди;
CONT. (содержимое) – текущая длина очереди в конце моде-
лирования;
11
ENTRY (вход) – число входов в очередь;
ENTRY(0) – число входов с нулевой очередью;
AVE.CONT (среднее содержимое) – среднестатистическое
число требований в очереди;
AVE.TIME (среднее время) – среднее время пребывания тре-
бования в очереди;
AVE.(-0)– среднее время пребывания требования в очереди
без учета входов с нулевой очередью;
RETRY (повторный)– число повторных входов в очередь;
FEC – Future Events Chain – список будущих событий;
XN – номера всех транзактов, находящихся в списке будущих
событий (в данном примереэто единственный транзакт с номером
117); PRI – приоритет транзакта;
BDT – момент времени, когда транзакт должен покинуть блок,
а следовательно, и список будущих событий;
ASSEM – номер семейства данного транзакта;
CURRENT – номер блока, в котором находился транзакт на
момент завершения моделирования;
NEXT – номер следующего блока, в который будет передан
транзакт;
PARAMETER – имя или номер параметра транзакта;
VALUE – значение параметра.
1.4. Выборочный просмотр результатов моделирования
Система моделирования GPSS World обеспечивает возмож-
ность просмотра искомых параметров в окне Journal (Журнал) с
помощью команды Show (Показать) и в строке состояний в
нижней части главного окна системы. Для этого выберем пункт
Command главного меню системы. Появится выпадающее меню.
Выберем пункт Show (Показать). Появится диалоговое окно Show
Command. В текстовой строке после слова SHOW введем обра-
щение к искомому параметру с помощью стандартного числового
атрибута. Допустим, мы хотим знать максимальную длину очере-
ди панелевозов к крану. Эта информация содержится в стандарт-
ном числовом атрибуте QM$<имя очереди>. В нашем примере –
QM$Panelevoz (рис. 1.7).
Значение максимальной длины очереди по имени Panelevoz
появится в окне Journal и в строке состояний в нижней части
главного окна системы (рис. 1.8).
12
В нашем примере – 17.0000000 (17 панелевозов). Теперь в
диалоговом окне Show Command введем запрос на значение коэф-
фициента использования крана: SHOW FR$Kran (рис. 1.9).
Рис. 1.7. Задание выборочного просмотра очереди Panelevoz
Рис. 1.8. Фрагмент окна Journal со значением стандартного атрибута
QM$Panelevoz
.
13
Рис. 1.9. Фрагмент окна Journal со значением стандартного атрибута
FR$Kran:
а – ввод запроса; б – результат запроса
б)
а)
14
1.5. Пошаговое моделирование
Можно проводить моделирование шаг за шагом. Для этого
надо выбрать опцию Stepl (Одиночный шаг) из пункта Command
(Команда) главного меню. Появится окно Journal (Журнал) с
протоколом первого шага моделирования (рис. 1.10).
В левой части окна Journal определяется время начала выпол-
нения того или иного действия, а в правой части указывается,
какое действие начало выполняться:
Model Translation Begun – началось транслирование модели;
Ready – модель готова к выполнению; STEP 1 – шаг l;
Simulation in Progress – идет процесс моделирования; Halt. XN:
1. Block 2 Next – остановка требования № 1. Следующий блок – 2;
Clock: 13.108392. Next: QUEUE. Line 2 – время, через которое
требование появилось в системе – 13,10 мин. Следующий блок –
QUEUE, строка 2; QUEUE Panelevoz; Вход в очередь на разгрузку.
Для выполнения последующих шагов следует повторить все
действия, начиная со щелчка по пункту Command (Команда)
главного меню, и так далее. Пошаговое выполнение программы
облегчает поиск ошибок при отладке и предоставляет возмож-
ность детального изучения локальных процессов функционирова-
ния системы.
Рис. 1.10. Окно Journal с протоколом первого шага моделирования
15
Для пошагового запуска можно использовать функциональные
клавиши, которые можно задать с помощью команд меню Edit /
Settings, закладка Function Keys (рис. 1.11).
После нажатия клавиши F5 получаем (рис. 1.12):
Рис. 1.11. Окно задания функциональных клавиш
Рис. 1.12. Окно Journal с протоколом второго шага моделирования
16
1.6. Способы задания окончания моделирования
1.6.1. Задание окончания моделирования по числу
обработанных заявок
Для удаления транзактов из GPSS-модели (т.е. для моделиро-
вания процесса ухода заявок из СМО) служит блок TERMINATE
(завершить), который является безотказным блоком и имеет
следующий формат:
имя TERMINATE A
Значение единственного операнда A задает число, которое
вычитается из содержимого специального счетчика – счет-
чика завершений каждый раз, когда транзакт входит в данный
блок TERMINATE. Если операнд A не задан, то его значение
считается равным 0 и транзакты, удаляемые из модели
через такой блок, не уменьшают содержимого счетчика
завершений.
Счетчик завершений – это целое положительное число, ко-
торое задается в начале моделирования и предназначено для
управления продолжительностью моделирования. Начальноезна-
чение счетчика завершений устанавливается управляющим опе-
ратором START (начать), предназначенным для запуска прогона
модели. Поле A данного оператора и задает начальное значение
счетчика завершений. Прогон модели заканчивается, когда со-
держимое счетчика завершений становится меньше или равным
0. Таким образом, в модели должен быть хотя бы один блок
TERMINATE с ненулевым операндом A, иначе процесс моде-
лирования никогда не завершится (или завершится по реальному
времени оператора SIMULATE).
Текущее значение счетчика завершений доступно пользовате-
лю через системный атрибут TG1.
Фрагмент GPSS-модели, ограниченный парой блоков
GENERATE-ТERMINATE, называется сегментом. В общем слу-
чае модель может быть из нескольких сегментов и их взаимо-
расположение не имеет значения.
Ниже приведен простейший сегмент модели, состоящий всего
из двух блоков – GENERATE и TERMINATE, в совокупности с
управляющим оператором START:
GENERATE 70,20
TERMINATE 1
17
START 100
Этот сегмент отражает процессы поступления транзактов в
модель через случайные интервалы времени со средним значени-
ем в 70 ед. и удаления этих транзактов из модели. Начальное
значение счетчика завершений равно 100. Каждый транзакт, вхо-
дящий в блок TERMINATE, вычитает из счетчика завершений
единицу, и таким образом моделирование завершится, когда со-
тый по счету транзакт войдет в данный блок. При этом точное
значение таймера в момент завершения прогона модели непред-
сказуемо. Следовательно, в приведенном примере продолжитель-
ность моделирования устанавливается не по времени, а по количе-
ству транзактов, ушедших из модели. Подобным образом мы
поступали в примере (см. рис. 1.1, 1.5). Обратите внимание на
параметр END TIME на рис. 1.6, который равен 1048.331 мин.
1.6.2. Задание окончания моделирования по времени
Если необходимо управлять длительностью моделирования по
времени, то в модели используется специальный сегмент – сег-
мент таймера (рис. 1.13). В модели из двух сегментов, приведен-
ной выше, первый сегмент выполняет те же функции, что и в
примере (см. рис. 1.1). Однако в этом сегменте операнд A блока
TERMINATE не задан и удаляемые данным блоком транзакты не
уменьшают содержимого счетчика завершений. Во втором сег-
менте через блок GENERATE первый транзакт поступит в модель
в момент времени, равный 1000. Но этот транзакт в данном
сегменте окажется и последним, так как, войдя в блок
TERMINATE, он обратит в 0 содержимое счетчика завершений,
установленное исходно оператором START равным 1. Таким
образом, в этой модели гарантируется завершение моделирова-
ния в определенный момент модельного времени, а точное коли-
чество транзактов, прошедших при этом через модель, непред-
сказуемо (рис. 1.14)
18
Рис. 1.13. Двухсегментная программа с использованием сегмента
таймера модели
19
1.6.3. Визуальное наблюдение за результатами моделирования
Для визуального наблюдения за перемещениями панелевозов
на складской площадке:
– заблокируем команду управления START, т.е. перепишем ее
в виде комментария;
– выполним трансляцию программы;
– выберем пункт Blocks Window (Окно блоков) из подменю
Simulation Window (Окно моделирования) меню Window. Появится
диалоговое окно Block Entities (Блочные элементы);
– для визуального наблюдения перемещения панелевозов в
процессемоделирования выберем пункт Command главного меню.
Появится выпадающее меню;
Рис. 1.14. Результаты моделирования работы складской площадки
с использованием сегмента таймера модели
20
– выберем пункт Start (Начать). Появится диалоговое окно
Start Command;
– введем в нем поток панелевозов, например, равный 100.
Начнется процесс поступления и перемещения панелевозов в
моделируемой системе – на складской площадке. Каждое пере-
мещение требования по блокам системы фиксируется в правой
части окна;
– можно на некоторое время остановить процесс. Для этого
активизируем кнопку Halt (Остановить), расположенную на па-
нели кнопок управления, в верхней правой части окна Block
Entities;
– для продолжения моделирования активизируем кнопку
Continue (Продолжить) или кнопку Step (Шагнуть), чтобы
промоделировать и просмотреть изменения в системе в течение
одного шага. Кнопку Step можно использовать многократно для
подробного просмотра последовательных шагов моделирования
системы. Для ускорения процессов моделирования и получения
конечного результата целесообразно закрывать окно просмотра
Block Entities. В этом случае не тратится время на визуализацию
процесса моделирования;
– для упрощения анализа системы можно сократить количе-
ство параметров в окне визуализации. Для этого выберем пункт
View главного меню. Появится выпадающее меню;
– выберем пункт Entity Details (детальное представление эле-
мента) выпадающего меню. По умолчанию перед пунктом Entity
Details стоит галочка, что означает режим детального представ-
ления моделируемой системы. Если убрать галочку, то лишняя
информация исчезнет и окно Block Entities будет отображать
информацию в сокращенном виде. Аналогичным образом можно
наблюдать за функционированием каналов обслуживания, очере-
дей, логических переключателей, накопителей и других элементов
системы в процессе моделирования.
1.7. Мнемоническое обозначение СМО в символике Кендалла
В теории массового обслуживания приняты очень удобные
сокращенные обозначения для различных систем, позволяющие
легко их охарактеризовать. В основе этих обозначений лежит
трехбуквенная комбинация вида:
21
А /В /N,
где А – описывает распределение (или задает характер закона
распределения) интервалов поступления заявок; В – описывает
распределение длительностей обслуживания заявок; N – задает
количество обслуживающих приборов в СМО.
Иногда, когда СМО является системой с ограниченной емко-
стью накопителя (или с ограниченной очередью), приведенное
обозначение расширяется до четырех букв: А /В /N /K, – где
последняя буква (на самом деле число, как и N) K задает емкость
накопителя (количество мест ожидания).
Приведенные трех- или четырехбуквенные обозначения назы-
вают обозначениями Кендалла. В этих обозначениях А и В могут
принимать значения из следующего набора символов: {M, D, Ek,
Hk, G, U}. При этом:
а) А или В = M, если распределениеинтервалов поступления или
длительностей обслуживания заявок является экспоненциальным
(М – от слова Markovian– Марковский);
б) А или В = D, если интервалы поступления или длительности
обслуживания являются детерминированными (D– Determinate);
в) А или В = Ek, если соответствующие распределения являют-
ся Эрланговскими порядка k (E – Erlang);
г) А или В = Hk, в случае гиперэкспоненциальных распределе-
ний порядка k (H – Hyperexponential);
д) А или В = G, в случае распределений общего (произвольного)
вида (G – General – общий, общего вида);
е) А или В = U – при равномерных распределениях соответству-
ющих случайных величин (U – Uniform distribution – равномерное
распределение).
Так, например, обозначение вида:
М /М /1 означает СМО с простейшим потоком на входе и
экспоненциально распределенной длительностью обслуживания
заявок в приборе (один);
D /Е2 /3/5 – СМО с регулярным потоком на входе, длительно-
стью обслуживания, распределенной по закону Эрланга 2-го по-
рядка, тремя обслуживающими приборами и пятью местами ожи-
дания;
22
М /G /2 – СМО с простейшим потоком на входе, длительнос-
тью обслуживания, распределенной позаконупроизвольноговида,
и двумя обслуживающими приборами.
В случае СМО с неоднородной нагрузкой используются обо-
значения вида: ,// NBA HH

где символ вектора над буквами А и В
указывает на неоднородность нагрузки, а индекс Н задает количе-
ство классов заявок. Например, 1// 44 GM

– это обозначение
СМО с одним обслуживающим прибором, четырьмя классами зая-
вок, которые образуют на входе системы простейшие потоки и
имеют общие законы распределения длительностей обслуживания.
Контрольные вопросы
1. Назначение системы моделирования GPSS.
2. Методы ввода и редактирования программ.
3. Расшифровка стандартного отчета.
4. Просмотр контрольных параметров.
5. Визуальное наблюдение за результатами моделирования.
6. Способы реализации пошагового моделирования.
7. Способы задания моментов окончания моделирования.
8. Символика Кендалла вописании СМО.
Лабораторная работа № 2
МОДЕЛИРОВАНИЕ ПРОСТЕЙШИХ СМО
Цель работы: знакомство с основными приемами моделиро-
вания простейших СМО.
Задачи работы:
— ознакомиться с понятием модельного времени, режимами
работы моделей;
— показать на модельных примерах наличие переходного и
установившегося режимов работы.
ПРИМЕРЫ ЗАДАЧ МОДЕЛИРОВАНИЯ «СКЛАДСКАЯ ПЛОЩАДКА»
2.1. Модель с одним краном (U/U/1)
Допустим, нам надо создать модель работы площадки для
складирования строительных панелей с одним краном при условии
доставки панелей панелевозами с периодичностью 9 ± 6 мин. При
этом время разгрузки каждого панелевоза составляет 10 ± 5 мин.
23
В соответствии с постановкой задачи ее модель на языке GPSS
может быть представлена в виде рис. 2.1.
Чтобы при выполнении модели вычислялись статистические
характеристики очереди транзактов (панелевозов), в нее включе-
ны два блока – QUEUE (точка входа в очередь) и DEPART (точка
выхода). Эти блоки можно расставлять в моделях, в принципе,
произвольным образом. Все зависит от того, о каком участке
системы нам нужна статистика по движению потока транзактов.
В данной модели нас интересует очередь из панелевозов перед
краном, поэтому перед занятием крана (блок SEIZE) стоит блок
QUEUE, а после того, как кран начал разгружать очередной
панелевоз (транзакт прошел через блок SEIZE), очередь на едини-
цу уменьшается, что и моделирует блок DEPART.
Блок ADVANCE 10, 5 задерживает транзакт, который занял
устройство, на 10 ± 5 единиц времени, моделируя тем самым
задержку клиента на время его обслуживания.
По истечении этого времени транзакт переходит в блок
RELEASE Kran, в котором выполняется освобождение устрой-
ства номер 1, и далее поступает в блок TERMINATE, в котором
транзакты уничтожаются. Это означает, что панелевоз разгружен
Рис. 2.1. Модель системы U/U/1
24
и уехал. Мы уничтожаем транзакт, чтобы не нужно было описы-
вать его дальнейшее движение и чтобы освободить занимаемую
им память компьютера.
Заметим, что в тот момент, когда один транзакт освобождает
устройство, другой транзакт, стоящий в очереди, занимает это
устройство. Оба действия выполняются в один и тот же момент
модельного времени. Когда один транзакт находится в блоке
ADVANCE, другие транзакты время от времени появляются в
блоке GENERATE и становятся в очередь к устройству.
Сегмент таймера модели задает 50 мин работы площадки, а
десять операторов Start 1 позволяют получить десять стандарт-
ных статистических отчетов через каждые 50 мин работы пло-
щадки. Это сделано для того, чтобы было наглядно видно, как
меняются статистические характеристики во время переходного
процесса.
2.2. Пример задачи моделирования складской площадки с двумя
кранами (U/U/2)
Два крана на площадке можно изобразить в модели памятью
емкостью в две единицы, в которой каждый транзакт будет
занимать одну единицу. Модель принимает тогда вид, изображен-
ный на рис. 2.2.
Рис. 2.2. Модель системы U/U/2
В этой модели занятие и освобождение одного из кранов моде-
лируется блоками ENTER и LEAVE соответственно. Транзакты
ведут себя точно так же, как панелевозы на моделируемой пло-
25
щадке. Когда в памяти Kran заняты обе единицы, то приходящие
из блока GENERATE транзакты не могут войти в блок ENTER и
ожидают освобождения памяти, как панелевозы ожидают осво-
бождения одного из двух кранов.
Таймер задает 500 мин работы, т.е. примерно длительность
рабочего дня.
2.3. Пример задачи моделирования складской площадки с двумя
кранами и ограниченной очередью из панелевозов (U/U/2/3)
Усовершенствуем немного последнюю модель складской пло-
щадки, чтобы учесть в ней возможные отказы панелевозов от
разгрузки из-за большой очереди. Будем считать, что когда перед
кранами уже стоит очередь из трех панелевозов, то следующие
подъезжающие панелевозы уезжают на другой объект. Модель
для такого варианта функционирования может быть описана на
языке GPSS так, как показано на рис. 2.3.
Рис. 2.3. Модель системы U/U/2/3
В этой модели используется еще один блок памяти – с именем
OCH, моделирующий очередь из панелевозов.
Очередной появившийся транзакт сразу попадает в блок
TRANSFER, в котором проверяется, сколько транзактов уже
стоят в очереди. Если их меньше трех, то транзакт входит в
очередь (ENTER OCH), иначе он отправляется на уничтожение по
метке OUT.
26
Задания к лабораторной работе № 2
Перед описанием программы необходимо составить таблицу
определений в соответствии с приложением (см. в конце работы).
Задание 1. Модель U/U/1
Придумать свой пример для моделирования СМО U/U/1 (мага-
зин, парикмахерская, остановка и т.д.). Составить подробное
описание, нарисовать функциональную схему.
Задать параметры законов распределения поступления заявок
и обслуживания в соответствии свыбранной предметнойобластью.
Разработать программу на языке GPSS, провести моделирова-
ние СМО, показать графики переходных процессов основных
статистических параметров. Экспериментально определить ус-
тановившиеся их значения. (Если при увеличении показателя тай-
мера модели в два раза статистические характеристики практи-
чески не изменяются, то такой режим можно считать установив-
шимся.)
Задание 2. Модель U/U/N
Для той же предметной области описать многоканальную сис-
тему обслуживания. Разработать программу на языке GPSS,
провести моделирование СМО, экспериментально определить
установившиеся значения основных статистических характерис-
тик СМО. С помощью СЧА определить статистические характе-
ристики.
Задание 3. Модель U/U/N/K
Для той же предметной области описать многоканальную сис-
тему обслуживания с ограниченным накопителем. Разработать
программу на языке GPSS, провести моделирование СМО, экспе-
риментально определить установившиеся значения основных ста-
тистических характеристик СМО. С помощью СЧА определить
статистические характеристики.
Приложение
Таблица определений
Таблица определений является списком различных элементов
GPSS, используемых в модели, с краткой характеристикой тех
частей системы, которые описываются этими элементами.
27
Перед таблицей записывается принятая в модели единица
времени, затем представляются транзакты. Далее в алфавитном
порядке описываются части моделируемой системы (сегменты)
и затем все прочие элементы модели.
П р и м е р с о с т а в л е н и я т а б л и ц ы о п р е д е л е н и й
Единица времени – 1 с. Для установления периода моделирова-
ния используется сегмент таймера. С помощью транзакта в пер-
вом сегменте моделируется панелевоз, во втором сегменте время
появления первого транзакта совпадает со временем окончания
моделирования.
Контрольные вопросы
1. Что такое цепи (списки) событий?
2. Какие основные списки событий есть в GPSS?
3. Где создается транзакт?
4. Какой блок используется как счетчик транзактов?
5. Как моделируется многоканальное устройство?
6. Как моделируется накопитель?
Лабораторная работа № 3
МОДЕЛИРОВАНИЕ СКЛАДСКИХ ЗАПАСОВ И СМО
С ПОТОКАМИ РАЗНЫХ КЛАССОВ
Цель работы: знакомство с основными приемами моделиро-
вания потоков разных классов и складских запасов.
Задачи работы:
– ознакомиться с правилами описания и использования пере-
менных в GPSS;
– освоить моделирование СМО с потоками разных классов;
– освоить приемы моделирования складских запасов;
– освоить графическое представление результатов моделиро-
вания.
Элементы GPSS Назначение
1-й сегмент модели
2-й сегмент модели
Приборы:
…
Очереди:
…
Сборочный цех
Таймер
……
……
28
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ GPSS
3.1. СМО с неоднородной нагрузкой
Рассмотрим теперь СМО вида ,1// 22 MM

когда в систему
поступают заявки двух классов. В качестве параметров поступ-
ленияи обслуживания зададим значенияв секундах:a1 = 10, b1 = 4 с
(для первого класса) и a2 = 8, b2 = 2,8 с (для второго класса).
Соответствующая модель из двух сегментов (без сегмента вре-
мени) приведена на рис. 3.1 (в реальной модели эти сегменты на
самом деле должны располагаться друг за другом, причем их
взаиморасположение не имеет значения). Единицей модельного
времени выбрана величина 0,01 с.
Рис. 3.1. Модель СМО с двумя потоками
29
Сегмент 1 моделирует процессы поступления, обслуживания и
ухода заявок 1-го класса, а сегмент 2 – заявок 2-го класса.
Тот факт, что заявки обоих классов обслуживаются в одном
(единственном) приборе системы, в GPSS достигается путем
указания в операнде А блоков SEIZE и RELEASE в обоих сегмен-
тах модели одного и того же имени (в нашем случае PRIBOR) для
одноканального устройства.
Точно такой же подход применим и к объектам типа очередь.
Так, объект-очередь с именем OJID, который присутствует в
обоих сегментах модели, собирает статистику об ожидании тран-
зактов без учета их класса, тогда как, например, очередь с
именем OJID1 (присутствует только в сегменте 1) собирает
статистику об ожидании транзактов только 1-го класса (соответ-
ственно, очередь с именем OJID2 – транзактов только 2-го клас-
са). То же самое можно сказать относительно объектов типа
очередь с именами SYSTEM, SYSTEM1 и SYSTEM2. Только
собирают они статистику о пребывании транзактов в модели в
целом (без учета и с учетом их класса).
Блоки SEIZE и RELEASE, задающие устройство с именем
PRIBOR, в ходемоделирования определяют коэффициент исполь-
зования устройства, соответствующий суммарной загрузке при-
бора заявками обоих классов, и другие обобщенные характерис-
тики занятия устройства. А как же определить загрузку прибора
заявками отдельных классов?
Одним из возможных подходов для определения коэффициента
использования устройства, например, транзактами 1-го класса
является создание в сегменте 1 (и только) фиктивного устройства,
например, с именем PRIB1. При этом блок SEIZE PRIB1 должен
обязательно располагаться сразу после блока SEIZE PRIBOR, а
вот взаиморасположение блоков RELEASE PRIB1 и RELEASE
PRIBOR не имеет значения. Заданные таким образом блоки
SEIZE PRIB1 и RELEASE PRIB1 в ходемоделирования, очевидно,
определяют коэффициент использования устройства транзактами
1-го класса, т.е. загрузку прибора заявками 1-го класса. Такая
последовательность расположения SEIZE PRIB1 необходима по-
тому, что транзакт должен проходить в блок PRIB1 только тогда,
когда свободен PRIBOR, чтобы сумма транзактов, прошедших
30
через PRIB1 и PRIB2, была равна количеству транзактов, про-
шедших через PRIBOR.
Соответственно блоки SEIZE PRIB2 и RELEASE PRIB2 во
втором сегменте определяют загрузку прибора заявками 2-го
класса.
Другим подходом для определения загрузки прибора заявками
1-го класса является замена созданного выше фиктивного устрой-
ства с именем PRIB1 объектом типа очередь, например, с именем
OBSL1, т.е. блок SEIZE PRIB1 заменяется блоком QUEUE OBSL1,
а блок RELEASE PRIB1 – блоком DEPART OBSL1. Такая оче-
редь определяет среднее число транзактов 1-го класса в устрой-
стве PRIBOR, а оно как раз и соответствует искомой загрузке,
поскольку загрузка прибора характеризует среднее число заявок
в нем.
Аналогично для определения загрузки прибора заявками 2-го
класса с помощью объекта типа очередь можно поступить и во
втором сегменте.
До сих пор нагрузка системы М2 /М2 /1 считалась бесприори-
тетной. В случае приоритетной нагрузки, например, когда заявки
1-го класса имеют, скажем, относительный приоритет перед заяв-
ками 2-го класса, достаточно в сегменте 1 модели в операнде Е
блока GENERATE задать отличный от нуля уровень приоритета
транзактов. Если же этот приоритет абсолютный, то в сегменте 1
блоки SEIZE PRIBOR и RELEASE PRIBOR необходимо заменить
соответственно на блоки PREEMPT PRIBOR и RETURN PRIBOR
(значения операндов Е блоков GENERATE не учитываются).
3.2. Моделирование системы управления запасами
3.2.1. Постановка задачи
Допустим, нам надо промоделировать работу склада материа-
лов на предприятии. Вместимость склада составляет 2000 ед.
материала. Возможна поставка на склад с периодичностью пять
дней при снижении запаса ниже 1200 ед. материала. Начальный
запас материалов на складе составляет 1500 ед. Ежедневный
спрос материала изменяется в пределах от 35 до 50 ед. с равной
вероятностью. Требуется смоделировать работу склада матери-
алов в течение 200 дней.
31
3.2.2. Выявление основных особенностей
Для моделирования работы склада необходимо сформировать
входные потоки заказов материала на склад, определить спрос
материалов со склада и временной интервал моделирования рабо-
ты склада. Но перед этим нужно выбрать единицу измерения
времени. Для моделирования работы склада можно взять в каче-
стве единицы измерения времени день.
3.2.3. Создание имитационной модели процесса
В имитационной модели создадим четыре сектора:
– сектор определения входных данных;
– моделирования поставки материалов на склад;
– моделирования текущего запаса с учетом спроса;
– установления начального размера запаса.
3.2.4. Определение входных данных
Оператор EQU с меткой Nach_ur определяет начальный уро-
вень запасов, который в нашей задаче установлен в размере
1500 ед. Использование именованной величины облегчает прове-
дение экспериментов с ее различными значениями (рис. 3.2).
Оператор EQU с меткой Postavka определяет тот критический
уровень материалов на складе, который обуславливает необходи-
мость очередного заказа материалов. Этот размер в нашей зада-
че составляет 1200 ед.
Оператор STORAGE (Накопитель) с меткой Zapas определяет
вместимость склада – 2000 ед. Текущий уровень запаса опреде-
ляется с помощью стандартного числового атрибута накопителя
S$Zapas.
Оператор TABLE с меткой Zapas предназначен для формиро-
вания таблицы текущего (ежедневного) уровня запаса на складе.
Она может быть использована для построения соответствующей
гистограммы, если потребуется.
Оператор VARIABLE с меткой Zakaz определяет количество
заказываемого материала как разность начального и текущего
запаса.
Оператор VARIABLE с меткой Spros_m характеризует ежед-
невный спрос, который изменяется от 35 до 50 ед. с равной
вероятностью. Ежедневный спрос определяется так. Датчик слу-
чайных чисел, а точнее датчик псевдослучайных чисел, определя-
ет, используя равномерное распределение вероятностей, значение
32
вероятностей в интервале [0-1]. Допустим, это значение равно
0,150. Тогда величина спроса будет определяться так:
35 + (50 – 35) * 0,15 = 37,25.
Рассмотрим теперь второй сектор модели, который обеспечи-
вает моделирование процесса поставки материала на склад.
Оператор GENERATE генерирует очередной момент времени,
когда возможна поставка материала на склад. Этот интервал
времени составляет, например, пять дней, обеспечивая ежене-
дельную поставку материала на склад при пятидневной рабочей
неделе, и представляется в операнде А. В операнде Е определен
уровень приоритетности поставки материала на склад. Он в нашей
Рис. 3.2. Модель работы склада
33
задаче равен 1. По умолчанию уровень приоритетности для всех
требований (транзактов) равен 0. Чем больше число в поле опе-
ранда Е, тем выше уровень требования.
Оператор TEST L определяет необходимость очередной по-
ставки материала на склад. Очередная поставка материалов на
склад производится тогда, когда текущий запас, который опреде-
ляется с помощью стандартного числового атрибута S$Zapas,
меньше размера поставки, определенного оператором EQU с
меткой Postavka в предыдущем секторе. В противном случае
поставка отменяется – требование (транзакт) направляется к
оператору TERMINATE с меткой Out.
Если текущий запас меньше величины Postavka, то требование
переходит к следующему оператору – ASSIGN (Присвоить). В
операторе ASSIGN в параметре под номером 2 требования запо-
минается размер заказа, который определяется переменной под
именем Zakaz.
Оператор ADVANCE моделирует время ожидания требования
(поставки) в течение пяти дней.
Далее оператор ENTER моделирует поставку после истечения
пятидневного срока и увеличивает текущее содержание склада –
S$Zapas – на величину, содержащуюся в параметре требования
под номером 2.
Оператор TERMINATE с меткой Out удаляет требование из
системы. Этот оператор используется, чтобы определить оконча-
ние моделирования состояния.
Рассмотрим теперь третий сектор модели, который обеспечи-
вает моделирование текущего запаса с учетом ежедневного спро-
са на материал.
Оператор GENERATE генерирует очередной день работы склада.
Оператор ASSIGN присваивает параметру требования (оче-
редному дню) под номером 1 размер спроса.
Оператор TABULATE с меткой Zapas собирает информацию
для создания таблицы и гистограммы ежедневных уровней запа-
сов.
Оператор TEST GE проверяет возможность удовлетворения
спроса. Если текущий запас – S$Zapas – больше или равен вели-
чине спроса, то процесс моделирования переходит к следующему
оператору – LEAVE (Оставить):
34
LEAVE Zapas,P1
Если такой возможности нет, то требование направляется к
оператору с меткой Zapasout.
Оператор LEAVE уменьшает текущий запас – S$Zapas – на
величину спроса в данный день. Это делается так: требование
(очередной день), входя в блок LEAVE, несет в параметре требо-
вания под номером 1 величину спроса (операнд В). Эта величина
спроса и вычитается из величины текущего запаса S$Zapas.
Рассмотрим теперь четвертый сектор модели, который обес-
печивает установление начального размера запаса. Он будет
выглядеть так:
GENERATE,,,1,10 ; Начальный запас
ENTER Zapas,Nach_ur ; Установка нач. запаса
TERMINATE ; Завершение установки
Оператор GENERATE генерирует одно требование (транзакт)
с приоритетом, равным 10. Оно имеет наибольший приоритет
среди всех требований, генерируемых оператором GENERATE, и
поэтому становится первым активным требованием в системе.
Оператор ENTER определяет величину начального запаса,
чтобы установить величину S$Zapas в начале моделирования.
Оператор TERMINATE уничтожает начальное требование без
уменьшения индекса завершения.
GPSS позволяет многим требованиям одновременно суще-
ствовать в различных местах модели. В данной модели требова-
ния создаются в трех секторах.
Для проведения моделирования щелкните по пункту START
выпадающего меню. Появится диалоговое окно, в котором вмес-
то значения 1 введите 200.
Процесс функционирования данной системы управления запа-
сами выглядит следующим образом. Сначала в системе активи-
зируются требования, имеющие наибольший приоритет. В нашей
задаче таким является одно требование в четвертом секторе,
имеющее приоритет, равный 10. Это наибольший приоритет для
всех требований, генерируемых оператором GENERATE. Поэто-
му данное требование становится первым активным требованием
в системе. Оно входит в накопитель STORAGE под именем Zapas
с вместимостью 2000 ед. Во время входа в накопитель в нем
устанавливается начальный уровень запаса, величина которого
35
определяется с помощью оператора EQU. В нашей задаче он
равен 1500 ед.
Далее активизируются требования (недели), генерируемые
оператором GENERATE во втором секторе, так как на данный
момент они имеют наибольший приоритет, равный 1. В этом
секторе определяется время поставки материалов на склад. Если
нет поставки, то активное требование второго сектора задер-
живается в операторе ADVANCE на пять дней. В это время
активизируются требования, генерируемые оператором
GENERATE в третьем секторе, которые поступают в систему
каждый день. Они имеют нулевой приоритет – самый низкий в
системе.
3.3. Построение графиков отдельных параметров
функционирования системы
Перед началом моделирования, а точнее после появления окна
Journal, можнопостроить графики некоторых параметров функци-
онирования системы. Для этого:
– щелкните по пункту Window главного меню системы или
нажмите комбинацию клавиш Alt+W. Появится выпадающее
меню;
– щелкнитепо пункту Simulation Window(Окномоделирования)
выпадающего меню. Появится всплывающее меню;
– щелкните по пункту Plot Window (Окно графика) всплываю-
щего меню. Появится диалоговое окно Edit Plot Window (Окно
редактирования графика), которое необходимо соответствующим
образом заполнить.
Допустим, мы хотим графически представить на всем периоде
моделирования, как меняется размер запаса. Для нашей задачи
окно Edit Plot Window может быть заполнено так, как показано на
рис. 3.3.
После заполнения диалогового окна Edit Plot Window щелкните
по кнопкам Plot (График), Memorize (Запомнить), а затем – по
кнопке ОК. Появится заготовка графика.
После этого:
– щелкните по пункту Command главного меню системы или
нажмитекомбинациюклавишAlt+C. Появитсявыпадающееменю;
– щелкните по пункту Start. Появится диалоговое окно Start
Command;
36
– введите в диалоговом окне Start Command число 200 –
количество дней моделирования работы склада – и щелкните по
кнопке ОК. Появится окно REPORT (Отчет) с результатами
моделирования. На заднем плане будет размещаться график;
– щелкните по графику, расположенному на заднем плане, – он
выйдет на первый план;
– используя горизонтальную и вертикальную полосы прокрут-
ки, вы можете просмотреть построенный график.
Фрагмент графика для нашего примера представлен на рис. 3.4.
Можно также вывести соответствующую гистограмму. Для
этого:
– щелкните по пункту Window главного меню системы. По-
явится выпадающее меню;
Рис. 3.3. Диалоговое окно Edit Plot Window для имитационной модели
управления запасами
37
– щелкните по пункту Simulation Window выпадающего меню.
Появится всплывающее меню;
– щелкните по пункту Table Window (Окно гистограммы) во
всплывающем меню. Появится диалоговое окно Open Table
Window (Открыть окно гистограммы). В раскрывающемся спис-
ке Table щелкните по нужной гистограмме. Для нашей задачи она
выглядит так, как представлено на рис. 3.5.
Рис. 3.4. График изменения запаса на складе
38
Задания к работе
Перед описанием программы необходимо привести таблицу
определений в соответствии с приложением к лабораторной рабо-
те № 2.
Задание 1. Моделирование СМО с неоднородной нагрузкой
1. Набрать текст программы модели согласно рис. 3.1. При
этом использовать приведенный ниже текст:
EXPDIS FUNCTION RN3,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.85
.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9/.99,4.6
.995,5.3/.998,6.2/.999,7/.9998,8
2. Добавить в ней комментарии к каждой строке.
Рис. 3.5. Гистограмма наполняемости склада
39
3. Изменить параметры в соответствии со своим вариантом
(см. таблицу, параметры заданы в секундах).
4. Выполнить моделирование, привести стандартный отчет.
Задание 2. Моделирование системы управления запасами
1. Набрать текст программы модели согласно рис. 3.2.
2. Добавить в ней комментарии к каждой строке.
3. Изменить параметры (в ед.) в соответствии со своим вари-
антом (см. таблицу).
Вариант а1 в1 а2 в2
1 5 1.8 4 1.6
2 6 2.1 4.8 1.9
3 7 2.5 5.6 2.2
4 8 2.8 6.4 2.6
5 9 3.2 7.2 2.9
6 10 3.5 8 3.2
7 11 3.9 8.8 3.5
8 12 4.2 9.6 3.8
9 13 4.6 10.4 4.2
10 14 4.9 11.2 4.5
Спрос
Вариант Начальный запас Запас при поставке
от до
1 500 400 12 17
2 600 480 14 20
3 700 560 16 23
4 800 640 19 27
5 900 720 21 30
6 1000 800 23 33
7 1100 880 26 37
8 1200 960 28 40
9 1300 1040 30 43
10 1400 1120 33 47
4. Выполнить моделирование, привести график изменения запа-
са на складе, гистограмму наполняемости склада, стандартный
отчет.
Контрольные вопросы
1. Правила описания и использования переменных.
2. Понятия ячейки, матрицы ячеек, правила описания и использования.
3. Каким образом можно задавать значения параметров транзактов?
40
4. Как можно определить загрузку обслуживающего устройства по
заявкам разных классов?
5. Использование приоритетов транзактов при моделировании склада.
6. Графическое представление результатов моделирования.
7. Как построить гистограмму случайной величины?
Лабораторная работа № 4
ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ И ГЕНЕРАТОР СЛУЧАЙНЫХ ЧИСЕЛ
В МОДЕЛЯХ СМО
Цель работы: ознакомиться с основными приемами модели-
рования функций и случайных событий в GPSS.
Задачи работы:
– освоить моделирование СМО с использованием циклов;
– освоить моделирование с использованием генератора слу-
чайных чисел;
– освоить моделирование с использованием функций.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ GPSS
4.1. СМО с использованием цикла
На участке сборки некоторых электронных изделий работают
10 сборщиков. Изготовление изделия заключается в установке
восьми деталей на печатную плату. Установка одной детали
занимает от а1 = 1 до в1 = 3 мин. После того, как на плате
установлены все детали, выполняется измерение электрических
характеристик изделия, занимающее от а2 = 3 до в2 = 5 мин.
Составляющие комплекта для сборки, включающего печатную
плату и восемь деталей, поступают на участок с интервалом от
а3 = 2 до в3 = 4 мин.
Разработать GPSS-модель для анализа работы участка сборки
в течение 8 ч. Предусмотреть подсчет собранных изделий.
В данном случае изготовление изделия включает восемь опе-
раций установки деталей на платеи одну операциюизмерения. Для
имитации установки деталей на плате удобно использовать цикл
(рис. 4.1).
Здесь в операторе ASSIGN 1,8 первому параметру транзакта
присваивается значение 8. Первый параметр транзакта будет
затем использован в качестве счетчика циклов.
41
Операторы
SBORKA ADVANCE 2,1
LOOP 1,SBORKA
представляют собой цикл, имитирующий установку деталей на
плате. Цикл повторяется восемь раз (столько, сколько указано в
первом параметре транзакта). Следует еще раз обратить внима-
ние, что по окончании цикла (т.е. послеоператора LOOP) значение
первого параметра равно нулю.
Оператор ADVANCE 4,1 имитирует измерение электрических
характеристик изделия.
4.2. СМО с использованием генератора случайных чисел
Ворганизации, выполняющей заказына переводысиностранных
языков, работают 7 переводчиков. В среднем поступает пять
заказов в день; поток заказов можно считать пуассоновским.
Рис. 4.1. Модель СМО с использованием цикла
42
Размер перевода – случайная величина, распределенная по экспо-
ненциальному закону; средний размер перевода – 8 страниц.
Переводчик переводит в среднем 6 страниц в день. Прибыль органи-
зации от каждой переведенной страницы составляет 7,5 ден. ед.
Требуется разработать GPSS-модель для анализа работы органи-
зации в течение года (300 рабочих дней). Определить прибыль от
переводов, выполненных за это время.
Напомним, что в пуассоновском потоке заявок интервалы
времени между моментами поступления заявок представляют
собой случайныевеличины, распределенныепо экспоненциально-
му закону (экспоненциальные случайные величины). Такая слу-
чайная величина может принимать как очень малые, так и очень
большие значения. В данном примере это означает, что интерва-
лы времени между моментами поступления заказов могут быть
как очень короткими, так и очень длительными. Размер заказа –
также экспоненциальная случайная величина. Это означает, что
размеры заказов могут быть как очень малыми (например, если
заказчику требуется перевести на иностранный язык чек на по-
купку какого-либо товара), так и очень большими (если требуется
перевод книги).
Для имитации случайных величин, распределенных по экспо-
ненциальному закону, используется функция EXPONENTIAL
(рис. 4.2).
Первый аргумент этой функции – номер датчика (генератора)
случайных чисел, т.е. номер встроенной процедуры языка GPSS,
имитирующий случайные равномерно распределенные числа
(СРРЧ). Этот номер может представлять собой число от 1 до 999.
Если в модели имитируется несколько случайных величин, то
рекомендуется использовать для их имитации генераторы СРРЧ
с разными номерами, чтобы обеспечить независимость ими-
тируемых величин. Второй аргумент функции EXPONENTIAL –
смещение имитируемых случайных величин. Этот аргумент в
большинстве случаев равен нулю. Третий аргумент – среднее
значение имитируемой величины.
В данном примере оператор GENERATE (EXPONENTI-
AL(1,0,0.2)) имитирует поток заявок (заказов на переводы) с
интервалами, распределенными по экспоненциальному закону.
43
Средний интервал между заявками составляет 0,2 дня, так как
поступает в среднем пять заказов в день.
Рис. 4.2. Модель с использованием генератора случайных чисел
В операторе ASSIGN 1,(EXPONENTIAL(2,0,8)) первому пара-
метру транзакта, имитирующего заказ, присваивается значение,
представляющее собой экспоненциальную случайную величину
со средним значением, равным 8. Эта величина имитирует размер
заказа.
Примечание. Важно понимать, что величины, присваиваемые перво-
мупараметрутранзакта в операторе ASSIGN 1,(EXPONENTIAL (2,0,8)),
будут разными для каждогоиз них. Среднее значение этих величинравно8.
Операторы QUEUE ОСН... LEAVE PEREV имитируют работу
переводчиков. В операторе ADVANCE (Р1/6) имитируется время
выполнения заказа переводчиком (в днях). Это время определяет-
ся как отношение значения первого параметра (т.е. размера пере-
вода в страницах) к количеству страниц, переводимых пе-
реводчиком за день.
В операторе SAVEVALUE PRIВ+, (Р1#7.5) выполняется под-
счет прибыли. Прибыль от выполнения перевода вычисляется как
44
произведение прибыли oт одного листа (7,5 ден. ед.) на размер
перевода (первого параметра транзакта). Эта величина при-
бавляется к сохраняемой величине PRIB.
4.3. СМО с использованием функций
Требуется разработать модель для анализа работы организации,
выполняющей переводы с иностранных языков (см. пример в
п. 4.2). Известно, что из всех заказов на переводы примерно 40 %
составляют заказы на технические тексты, 30 % – экономичес-
кие, 20 % – юридические, 10 % – прочие. Прибыль организации от
одной страницы технического перевода – 6 ден. ед., экономическо-
го – 7,5, юридического – 8,5, прочих – 10 ден. ед.
По результатам моделирования требуется определить при-
быль, а также объем выполненных переводов каждого типа.
Здесь для имитации заявок четырех типов (технические, эконо-
мические, юридические и прочие переводы) используется диск-
ретная функция TIP (рис. 4.3). Она может принимать одно из
четырех значений: 1, 2, 3 или 4. Аргументом этой функции являет-
ся СРРЧ, разыгрываемое генератором случайных чисел RN1.
Функция TIP используется для имитации типа заявки (перево-
да) в операторе ASSIGN 2,FN$TIP. Значение функции TIP при
выполнении этого оператора определяется следующим образом.
Разыгрывается СРРЧ RN1, т.е. некоторое число из диапазона от
нуля до единицы. Если RN1< 0,4, то функция принимает значение
1 (TIP=1); если 0,4 < RN1 < 0,7, то TIP=2; если 0,7< RN1 < 0,9, то
TIP=3; если 0,9 < RN1 < 1, то TIP=4. ВоператореASSIGN2,FN$TIP
значение функции присваивается второму параметру транзакта.
Таким образом, примерно в 40 % случаев этот параметр будет
иметь значение 1, в 30 % случаев – значение 2, в 20 % – значение
3, в 10 % – значение 4. Транзакты, у которых Р2 = 1, используются
для имитации заявок на технические переводы. Транзакты, у
которых второй параметр равен 2, 3 или 4, используются для
имитации экономических, юридических и прочих переводов соот-
ветственно.
Функция PRIBYL используется для имитации прибыли от од-
ной страницы перевода. Эта прибыль зависит от типа переводимо-
го текста. Аргументом функции PRIBYL является значение вто-
рого параметра транзакта (Р2), обозначающего тип перевода.
45
В операторе SAVEVALUE PRIB+,(P1#FN$PRIBYL) значение
параметра P1 (т.е. размер перевода) умножается на значение
функции PRIBYL, определяемое в зависимости от значения Р2.
Если Р2=1 (т.е. имитируется технический перевод), то функция
PRIBYL принимает значение 6; если Р2=2 (экономический пере-
вод), то PRIBYL=7,5; если Р2=3 (юридический перевод), то
PRIBYL=8,5; если Р2=4 (другой тан перевода), то PRIBYL=10.
Таким образом, величина P1 #FN$PRIBYL – это прибыль от
выполнения перевода. Она прибавляется к сумме значений при-
были (сохраняемая величина PRIB).
В операторе SAVEVALUE Р2+,1 на единицу увеличивается
сохраняемая величина, номер которой указан в параметре Р2.
Например, если через этот оператор проходит транзакт, у которо-
го Р2 = 3 (т.е. транзакт, имитирующий юридический перевод), то
сохраняемая величина с номером 3 увеличивается на единицу.
Приведем фрагмент результатов моделирования:
SAVEVALUE RETRY VALUE
Рис. 4.3. Модель с использованием заданных функций
46
1 0 616.000
2 0 421.000
3 0 310.000
4 0 158.000
PRIB 0 89096.491
Это означает, что за время моделирования (300 дней) было
выполнено 616 технических переводов, 421 экономический, 310
юридических и 158 прочих. Прибыль организации составила
89096.491 ден.ед.
Задания к работе
Задание 1. Моделирование СМО с использованием цикла
1. Постановка задачи (детальное описание задачи, см. п. 4.1).
2. Составить таблицу определений (см. приложение к лаб.
работе № 2).
3. Набрать текст программы модели согласно рис. 4.1, время
задавать в секундах. Добавить в ней комментарии к каждой
строке.
4. Изменить параметры в соответствии со своим вариантом
(см. таблицу).
Вариант Кол-во деталей на плате а1 в1 а2 в2 а3 в3
1 4 0.5 1.5 1.5 2.5 1 2
2 5 0.6 1.8 1.6 2.6 1.2 2.2
3 6 0.7 2.1 1.7 2.7 1.4 2.4
4 7 0.8 2.4 1.8 2.8 1.6 2.6
5 8 0.9 2.7 1.9 2.9 1.8 2.8
6 9 1 3 2 3 2 3
7 10 1.1 3.3 2.1 3.1 2.2 3.2
8 11 1.2 3.6 2.2 3.2 2.4 3.4
9 12 1.3 3.9 2.3 3.3 2.6 3.6
10 13 1.4 4.2 2.4 3.4 2.8 3.8
5. Выполнить моделирование, определить количество сборщи-
ков, при котором коэффициент занятости каждого будет примерно
0.8–0.85.
6. Привести стандартный отчет с комментариями.
47
Задание 2. Моделирование СМО с использованием генератора
случайных чисел
1. Постановка задачи (детальное описание задачи, см. п. 4.2).
2. Составить таблицу определений (см. приложение к лаб.
работе № 2).
3. Набрать текст программы модели согласно рис. 4.2, время
задавать в часах, добавить в ней комментарии к каждой строке.
4. Изменить параметры в соответствии со своим вариантом
(см. таблицу).
5. Выполнить моделирование, определить, сколько нужно орга-
низации переводчиков, чтобы ожидание начала выполнения зака-
за длилось в пределах 0,5–1 день.
6. Привести стандартный отчет с комментариями.
Задание 3. Моделирование СМО с использованием функций
1. Постановка задачи (детальное описание задачи, см. п. 4.3).
2. Составить таблицу определений (см. приложение к лаб.
работе № 2).
3. Набрать текст программы модели согласно рис. 4.3, время
задавать в часах, добавить в ней комментарии к каждой строке.
4. Изменить параметры в соответствии со своим вариантом
(см. таблицу).
5. Выполнить моделирование, определить, сколько нужно орга-
низации переводчиков, чтобы коэффициент их загрузки был в
пределах 0,8–0,85.
6. Привести стандартный отчет с комментариями.
Вариант Кол-во переводчиков Кол-во заказов в день Кол-во стр. заказа
1 5 7 7
2 6 8 7
3 7 9 7
4 8 10 8
5 9 11 8
6 10 12 8
7 11 13 9
8 12 14 9
9 13 15 9
10 14 16 10
543
543
543
543
543
543
543
543
543
543
543
543
543
543
543
543
543
543
543

More Related Content

What's hot

Архитектура Операционных Систем
Архитектура Операционных СистемАрхитектура Операционных Систем
Архитектура Операционных Системkurbanovafaina
 
Основные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиОсновные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиkurbanovafaina
 
Программное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системПрограммное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системkurbanovafaina
 
Алгоритм работы в программе FotoMorph
Алгоритм работы в программе FotoMorphАлгоритм работы в программе FotoMorph
Алгоритм работы в программе FotoMorphНаташа Никифорова
 
Windows 7 and 8.1
 Windows 7 and 8.1 Windows 7 and 8.1
Windows 7 and 8.1fsad sdagres
 
Hpc visualization (itmo 2010)
Hpc visualization (itmo 2010)Hpc visualization (itmo 2010)
Hpc visualization (itmo 2010)Michael Karpov
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковGetDev.NET
 
История развития Операционных Систем
История развития Операционных СистемИстория развития Операционных Систем
История развития Операционных Системkurbanovafaina
 

What's hot (10)

лекция 1
лекция 1лекция 1
лекция 1
 
Архитектура Операционных Систем
Архитектура Операционных СистемАрхитектура Операционных Систем
Архитектура Операционных Систем
 
Основные принципы управления процессором и процессами
Основные принципы управления процессором и процессамиОсновные принципы управления процессором и процессами
Основные принципы управления процессором и процессами
 
рр
рррр
рр
 
Программное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных системПрограммное обеспечение, его классификация. Понятие операционных систем
Программное обеспечение, его классификация. Понятие операционных систем
 
Алгоритм работы в программе FotoMorph
Алгоритм работы в программе FotoMorphАлгоритм работы в программе FotoMorph
Алгоритм работы в программе FotoMorph
 
Windows 7 and 8.1
 Windows 7 and 8.1 Windows 7 and 8.1
Windows 7 and 8.1
 
Hpc visualization (itmo 2010)
Hpc visualization (itmo 2010)Hpc visualization (itmo 2010)
Hpc visualization (itmo 2010)
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиков
 
История развития Операционных Систем
История развития Операционных СистемИстория развития Операционных Систем
История развития Операционных Систем
 

Viewers also liked (18)

567
567567
567
 
507
507507
507
 
524
524524
524
 
6673
66736673
6673
 
28584ip
28584ip28584ip
28584ip
 
572
572572
572
 
563
563563
563
 
532
532532
532
 
553
553553
553
 
539
539539
539
 
527
527527
527
 
6765
67656765
6765
 
28570ip
28570ip28570ip
28570ip
 
511
511511
511
 
586
586586
586
 
595
595595
595
 
592
592592
592
 
579
579579
579
 

Similar to 543

Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdfssuser117705
 
Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Tatyanazaxarova
 
Симуляционное моделирование и семантические технологии
Симуляционное моделирование и семантические технологииСимуляционное моделирование и семантические технологии
Симуляционное моделирование и семантические технологииSergey Gorshkov
 
оп.05 основы программирования
оп.05 основы программированияоп.05 основы программирования
оп.05 основы программированияStepan1234
 
Операционная система Windows
Операционная система WindowsОперационная система Windows
Операционная система WindowsАнна Ефремова
 
Программное обеспечение современного компьютера
Программное обеспечение современного компьютераПрограммное обеспечение современного компьютера
Программное обеспечение современного компьютераZiminDan
 
Операционная система
Операционная системаОперационная система
Операционная системаkyky1234
 
диплом гаврилов
диплом гавриловдиплом гаврилов
диплом гавриловkyky1234
 
линукс
линукслинукс
линуксlekiya
 
Современна Программная инженерия. Системная инженерия
Современна Программная инженерия. Системная инженерияСовременна Программная инженерия. Системная инженерия
Современна Программная инженерия. Системная инженерияMarcus Akoev
 
сравнение Windows 7 и windows 8.1(заварницын)
сравнение Windows 7 и windows 8.1(заварницын)сравнение Windows 7 и windows 8.1(заварницын)
сравнение Windows 7 и windows 8.1(заварницын)Evgeniy Zavarnitsin
 
11 по общего назначения, интегрир и мультимедиа
11 по общего назначения, интегрир и мультимедиа11 по общего назначения, интегрир и мультимедиа
11 по общего назначения, интегрир и мультимедиаSergey Lomakin
 
сравнительный анализ
сравнительный анализсравнительный анализ
сравнительный анализOlesya Malova
 
Статья «Формирование универсальных требований к пользовательским программам п...
Статья «Формирование универсальных требований к пользовательским программам п...Статья «Формирование универсальных требований к пользовательским программам п...
Статья «Формирование универсальных требований к пользовательским программам п...ph.d. Dmitry Stepanov
 
Budgeting Software //BSAnalytics.com
Budgeting Software //BSAnalytics.comBudgeting Software //BSAnalytics.com
Budgeting Software //BSAnalytics.comBrain Storm Analytics
 
создание модели в программном комплексе Scad
создание модели в программном комплексе Scadсоздание модели в программном комплексе Scad
создание модели в программном комплексе ScadКирилл Кисляков
 

Similar to 543 (20)

Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdf
 
Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++
 
Windows3.1
Windows3.1Windows3.1
Windows3.1
 
Симуляционное моделирование и семантические технологии
Симуляционное моделирование и семантические технологииСимуляционное моделирование и семантические технологии
Симуляционное моделирование и семантические технологии
 
оп.05 основы программирования
оп.05 основы программированияоп.05 основы программирования
оп.05 основы программирования
 
Операционная система Windows
Операционная система WindowsОперационная система Windows
Операционная система Windows
 
Программное обеспечение современного компьютера
Программное обеспечение современного компьютераПрограммное обеспечение современного компьютера
Программное обеспечение современного компьютера
 
Операционная система
Операционная системаОперационная система
Операционная система
 
диплом гаврилов
диплом гавриловдиплом гаврилов
диплом гаврилов
 
линукс
линукслинукс
линукс
 
Современна Программная инженерия. Системная инженерия
Современна Программная инженерия. Системная инженерияСовременна Программная инженерия. Системная инженерия
Современна Программная инженерия. Системная инженерия
 
190
190190
190
 
сравнение Windows 7 и windows 8.1(заварницын)
сравнение Windows 7 и windows 8.1(заварницын)сравнение Windows 7 и windows 8.1(заварницын)
сравнение Windows 7 и windows 8.1(заварницын)
 
11 по общего назначения, интегрир и мультимедиа
11 по общего назначения, интегрир и мультимедиа11 по общего назначения, интегрир и мультимедиа
11 по общего назначения, интегрир и мультимедиа
 
сравнительный анализ
сравнительный анализсравнительный анализ
сравнительный анализ
 
13 14
13 1413 14
13 14
 
Статья «Формирование универсальных требований к пользовательским программам п...
Статья «Формирование универсальных требований к пользовательским программам п...Статья «Формирование универсальных требований к пользовательским программам п...
Статья «Формирование универсальных требований к пользовательским программам п...
 
Budgeting Software //BSAnalytics.com
Budgeting Software //BSAnalytics.comBudgeting Software //BSAnalytics.com
Budgeting Software //BSAnalytics.com
 
ISO 15288 + ISO 15926
ISO 15288 + ISO 15926ISO 15288 + ISO 15926
ISO 15288 + ISO 15926
 
создание модели в программном комплексе Scad
создание модели в программном комплексе Scadсоздание модели в программном комплексе Scad
создание модели в программном комплексе Scad
 

More from ivanov156w2w221q (20)

588
588588
588
 
596
596596
596
 
594
594594
594
 
593
593593
593
 
584
584584
584
 
589
589589
589
 
591
591591
591
 
590
590590
590
 
585
585585
585
 
587
587587
587
 
582
582582
582
 
583
583583
583
 
580
580580
580
 
581
581581
581
 
578
578578
578
 
512
512512
512
 
514
514514
514
 
513
513513
513
 
510
510510
510
 
509
509509
509
 

543

  • 1. С.П. Сарычев, Т.А. Никифорова СИСТЕМА МОДЕЛИРОВАНИЯ GPSS Методические указания к лабораторным работам НОВОСИБИРСК 2012 СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ 004 C208
  • 2. УДК 004.43 (076.5) С208 Сарычев С.П., Никифорова Т.А. Система моделиро- вания GPSS: Метод. указ. к лабораторным работам. – Новоси- бирск: Изд-во СГУПСа, 2012. – 66 с. GPSS World – мощная универсальная среда моделирования дискретных и непрерывных процессов, широко использующаяся для профессионального моде- лирования разнообразных технических процессов и систем. Особое распростра- нение она получила при моделировании дискретно-событийных систем, к кото- рым относятся и системы массового обслуживания. В методических указанияхсодержится шесть лабораторных работ с описанием среды моделирования GPSS World, основных элементов ее языка и приемов использования при моделировании различных систем массового обслуживания. Рекомендованы для студентов специальности «Информационные системы и технологии» для курса «Моделирование систем». Рассмотрены и рекомендованы к изданию на заседании кафед- ры «Информационныетехнологии транспорта». О т в е т с т в е н н ы й р е д а к т о р д-р техн. наук, проф. В.И. Хабаров Р е ц е н з е н т канд. техн. наук, доц. Л.Ю. Соловьев  Сарычев С.П., Никифорова Т.А., 2012  Сибирский государственный университет путей сообщения, 2012
  • 3. 3 ВВЕДЕНИЕ Одним из эффективных методов исследования сложных сис- тем, а зачастую и практически единственным методом, является метод имитационного моделирования, когда модель имитирует работу реальной системы, воспроизводя во времени процесс ее функционирования. При этом адекватность модели достигается имитацией процесса функционирования каждого отдельного эле- мента системы с обязательным сохранением логики и правил их взаимодействия и развития как во времени, так и в пространстве. При построении имитационной модели и еереализации предпо- лагается использование средств вычислительной техники и про- граммирования. Использование традиционных языков програм- мирования при этом вызывает значительные трудности, в связи с чем возникла необходимость разработки специализированных язы- ков имитационного моделирования. Одним из наиболее эффективных и распространенных специа- лизированных языков имитационного моделирования сложных дискретных систем является в настоящее время язык GPSS (General Purpose Simulation System – общецелевая система моде- лирования), относящийся к классу проблемно-ориентированных языков. Проблемной областью GPSS являются системы массо- вого обслуживания (СМО). В качестве объектов этого языка используются аналоги таких стандартных компонентов СМО, как заявки, обслуживающие приборы, очереди и т.д. Достаточный набор подобных компонентов позволяет строить сложные имита- ционные модели, сохраняя привычную терминологию СМО.
  • 4. 4 Историю GPSS, которая начинается с 1961 г., можно условно разделить на два больших этапа: 1) GPSS на «больших» ЭВМ (мэйнфреймы) и 2) GPSS на персональных ЭВМ (ПЭВМ). Первые версии системы были разработаны и поддерживались фирмой IBM для ЭВМ типа IBM/360 и ЕС ЭВМ. Последняя версия GPSS V (1971 г.) стала классической. Появление ПЭВМ и новых идей и подходов взаимодействия человека с ЭВМ не могло не отразиться на GPSS. В 1984 г. фирма Minuteman Software разработала систему GPSS/PC – это была первая GPSS-система, предназначавшаяся специально под новые диалоговые возможности ПЭВМ и в которой к тому же сохрани- лась «красота» классической GPSS. В нашей стране первые версии GPSS/PC появились в конце 80-х гг. Основной модуль пакета прикладных программ GPSS пред- ставляет собой интегрированную среду, включающую, помимо транслятора с входного языка, средства ввода и редактирования текста модели, средства ее отладки и наблюдения за процессом моделирования, графические средства отображения атрибутов модели, а также средства накопления результатов моделирования в базе данных и их статистической обработки. Для выполнения лабораторных работ в курсе «Моделирование систем» необходимо установить систему моделирования GPSS World. Требования к персональному компьютеру: класс Pentium II и выше, операционная система Windows 98 и выше, оперативная память не менее 32 Mb и 10 Mb свободного пространства на жестком диске. Лабораторная работа № 1 ЗНАКОМСТВО С СИСТЕМОЙ GPSS Цель работы: ознакомиться с основными приемами использо- вания системы GPSS при моделировании систем. Задачи работы: – освоить способы ввода и редактирования программ, способы просмотра результатов моделирования, задания моментов окон- чания моделирования; – выполнить моделирование типовой задачи; – приобрести навыки работы с моделями.
  • 5. 5 Пример работы с моделью в системе GPSS World 1.1. Ввод и редактирование программы Допустим, нам надо создать модель работы площадки для складирования 100 строительных панелей с одним краном при условии доставки панелей панелевозами с периодичностью 9 ± 6 мин. При этом время разгрузки каждого панелевоза состав- ляет 10 ± 5 мин. Модель на языке GPSS может выглядеть так, как на рис. 1.1 (значения операндов блоков GENERATE и TERMINATE задавать в соответствии со своим вариантом). Перед тем как вводить модель в соответствующее окно систе- мы GPSS World, необходимо это окно создать. Для этого: – щелкните по кнопке New (Новая) – первой слева на панели инструментов «Стандартная». Появится диалоговое окно «Новый документ»; – щелкните в диалоговом окне «Новый документ» по пункту Model (Модель). Появится окно модели – Untitled Model 1 (Неназ- ванная модель 1); – щелкните по кнопке Save (Сохранить) – третьей слева на панели инструментов «Стандартная». Появится диалоговое окно для сохранения файла; – введите в нем имя программы, например, «Складская пло- щадка» и щелкните по кнопке Сохранить. В верхней строке окна модели вместоназванияUntitledModel1 появитсяназвание«Склад- ская площадка». После создания нужного окна можно перейти к этапу ввода программы в открытое окно. Это можно выполнить несколькими способами. Рис. 1.1. Программа моделирования складской площадки
  • 6. 6 Первый способ – с помощью, например, текстового редактора Word: 1) наберите программу в текстовом редакторе Word так, как она должна быть набрана в системе GPSS World, например, так, как на рис. 1.1; 2) выделите всю программу с комментариями и скопируйте ее в буфер обмена данными, нажав клавиши Ctrl+Ins или щелкнув по кнопке Сохранить на панели инструментов «Стандартная»; 3) вставьте программу из буфера обмена данными в открытое окно системы GPSS World, нажав клавиши Shift+Ins или щелкнув по кнопке Paste (Вставка) на панели инструментов «Стандарт- ная». Второй способ – ввод программы непосредственно в системе GPSS World в открытом окне с клавиатуры. Третий способ – ввод программы, точнее, операторов GPSS World и комментариев к ним с помощьюспециальных шабло- нов. Для этого: – щелкните в главном меню по пункту Edit. Появится вы- падающее меню; – щелкните в выпадающем меню по пункту Insert GPSS Blocks (Вставить блоки GPSS). Появится диалоговое окно Insert GPSS Block into Model Object (Вставить блок GPSS в модель),показанноенарис. 1.2; – щелкните по блоку GENERATE (Генерировать). Появится шаблон блока Enter Block Information – GENERATE (Ввод параметров блока – GENERATE). Мерца- ющий курсор ввода данных будет находиться в поле операнда А; – введите в поле операнда А число 9 – среднее время между поступлениями двух смежных требований – панелевозов; Рис. 1.2. Панель блоков Insert GPSS Block into Model Object
  • 7. 7 – щелкните левой кнопкой мыши в поле операнда В и введите число 6 – время откло- нения от среднего вре- мени поступления двух смежных требований – панелевозов; – щелкните левой кнопкой мыши в тексто- вом поле Comment (Комментарии) и вве- дите, например, текст «Въезд панелевозов на площадку» (рис. 1.3); – щелкните по кноп- ке ОК. Появится пер- вая строка программы с введенными операн- дами и комментарием в окнемодели. Аналогич- ным образом заполня- ются и другие шабло- ны. Окончательно программа может выглядеть так, как пред- ставлено на рис. 1.3. 1.2. Запуск программы на моделирование Перед тем как начать моделирование любой системы, необхо- димо оттранслировать исходную модель. Для этого выберите пункт Create Simulation (Произвести моделирование) из выпадаю- щего менюпункта Command главного меню. Появится окно Journal (Журнал) с сообщением о выполнении трансляции (рис. 1.4). Теперь можно переходить непосредственно к процессу моде- лирования. Снова выберем пункт Command главного меню и из него – пункт Start (Начать). Появится диалоговое окно Start Command (Команда начать). Введем число 100 – общее количество рейсов, которые должны выполнить панелевозы (рис. 1.5). Рис. 1.3. Диалоговое окно Enter Block Information для блока GENERATE
  • 8. 8 После окончания моделирования появится окно с отчетом (рис. 1.6). Рис. 1.4. Окно Journal при моделировании работы складской площадки Рис. 1.5. Диалоговое окно Start Command с заданным числом имитаций
  • 9. 9 1.3. Расшифровка результатов моделирования В нашем примере первая строка заголовков расшифровывает- ся следующим образом: LABEL (метка) – алфавитно-цифровая метка блока (у нас их нет); LOC (местоположение) – числовая позиция блока, начинающа- яся с номера 1; BLOCK TYPE (тип блока) – название блока; Рис. 1.6. Фрагмент отчета о результатах моделирования работы складской площадки
  • 10. 10 ENTRY COUNT (число входов) – количество требований (панелевозов), вошедших в данный блок, начиная с последней команды RESET (Сбросить) или CLEAR (Очистить) или начиная с последней трансляции; CURRENT COUNT (текущее число требований) – количество требований (панелевозов) в данном блоке в конце моделирования; RETRY (повторное) – число требований, ожидающих опреде- ленное условие в зависимости от состояния данного блока. Вторая строка заголовков отображает результаты работы ка- нала обслуживания (крана): FACILITY (канал обслуживания) – имя канала обслуживания; ENTRIES (входы) – число входов в канал обслуживания, начи- ная с последней команды RESET (Сбросить), CLEAR (Очистить) или с момента последней трансляции; UTIL. (использование) – коэффициент использования канала обслуживания (крана); AVE.TIME (среднее время) – среднее время монопольного использования требованиями канала обслуживания; AVAIL. (доступность) – состояние доступности канала обслу- живания в конце моделирования (1 – доступен, 0 – нет); OWNER (владелец) – номер требования, занимавшего канал обслуживания в конце моделирования; PEND (ожидающие) – число требований, оставшихся в канале обслуживания; INTER (между) – число требований, покидающих канал обслуживания (число требований в цепочке прерываний); RETRY (повторный) – число повторных входов в канал обслу- живания; DELAY (задержка) – число требований, ожидающих освобож- дения канала обслуживания. Третья строка заголовков отображает информацию об очереди требований (панелевозов), ожидавших обслуживания (разгрузки) за время моделирования: QUEUE (очередь) – имя очереди; МАХ (максимальная) – максимальная длина (содержимое) очереди; CONT. (содержимое) – текущая длина очереди в конце моде- лирования;
  • 11. 11 ENTRY (вход) – число входов в очередь; ENTRY(0) – число входов с нулевой очередью; AVE.CONT (среднее содержимое) – среднестатистическое число требований в очереди; AVE.TIME (среднее время) – среднее время пребывания тре- бования в очереди; AVE.(-0)– среднее время пребывания требования в очереди без учета входов с нулевой очередью; RETRY (повторный)– число повторных входов в очередь; FEC – Future Events Chain – список будущих событий; XN – номера всех транзактов, находящихся в списке будущих событий (в данном примереэто единственный транзакт с номером 117); PRI – приоритет транзакта; BDT – момент времени, когда транзакт должен покинуть блок, а следовательно, и список будущих событий; ASSEM – номер семейства данного транзакта; CURRENT – номер блока, в котором находился транзакт на момент завершения моделирования; NEXT – номер следующего блока, в который будет передан транзакт; PARAMETER – имя или номер параметра транзакта; VALUE – значение параметра. 1.4. Выборочный просмотр результатов моделирования Система моделирования GPSS World обеспечивает возмож- ность просмотра искомых параметров в окне Journal (Журнал) с помощью команды Show (Показать) и в строке состояний в нижней части главного окна системы. Для этого выберем пункт Command главного меню системы. Появится выпадающее меню. Выберем пункт Show (Показать). Появится диалоговое окно Show Command. В текстовой строке после слова SHOW введем обра- щение к искомому параметру с помощью стандартного числового атрибута. Допустим, мы хотим знать максимальную длину очере- ди панелевозов к крану. Эта информация содержится в стандарт- ном числовом атрибуте QM$<имя очереди>. В нашем примере – QM$Panelevoz (рис. 1.7). Значение максимальной длины очереди по имени Panelevoz появится в окне Journal и в строке состояний в нижней части главного окна системы (рис. 1.8).
  • 12. 12 В нашем примере – 17.0000000 (17 панелевозов). Теперь в диалоговом окне Show Command введем запрос на значение коэф- фициента использования крана: SHOW FR$Kran (рис. 1.9). Рис. 1.7. Задание выборочного просмотра очереди Panelevoz Рис. 1.8. Фрагмент окна Journal со значением стандартного атрибута QM$Panelevoz .
  • 13. 13 Рис. 1.9. Фрагмент окна Journal со значением стандартного атрибута FR$Kran: а – ввод запроса; б – результат запроса б) а)
  • 14. 14 1.5. Пошаговое моделирование Можно проводить моделирование шаг за шагом. Для этого надо выбрать опцию Stepl (Одиночный шаг) из пункта Command (Команда) главного меню. Появится окно Journal (Журнал) с протоколом первого шага моделирования (рис. 1.10). В левой части окна Journal определяется время начала выпол- нения того или иного действия, а в правой части указывается, какое действие начало выполняться: Model Translation Begun – началось транслирование модели; Ready – модель готова к выполнению; STEP 1 – шаг l; Simulation in Progress – идет процесс моделирования; Halt. XN: 1. Block 2 Next – остановка требования № 1. Следующий блок – 2; Clock: 13.108392. Next: QUEUE. Line 2 – время, через которое требование появилось в системе – 13,10 мин. Следующий блок – QUEUE, строка 2; QUEUE Panelevoz; Вход в очередь на разгрузку. Для выполнения последующих шагов следует повторить все действия, начиная со щелчка по пункту Command (Команда) главного меню, и так далее. Пошаговое выполнение программы облегчает поиск ошибок при отладке и предоставляет возмож- ность детального изучения локальных процессов функционирова- ния системы. Рис. 1.10. Окно Journal с протоколом первого шага моделирования
  • 15. 15 Для пошагового запуска можно использовать функциональные клавиши, которые можно задать с помощью команд меню Edit / Settings, закладка Function Keys (рис. 1.11). После нажатия клавиши F5 получаем (рис. 1.12): Рис. 1.11. Окно задания функциональных клавиш Рис. 1.12. Окно Journal с протоколом второго шага моделирования
  • 16. 16 1.6. Способы задания окончания моделирования 1.6.1. Задание окончания моделирования по числу обработанных заявок Для удаления транзактов из GPSS-модели (т.е. для моделиро- вания процесса ухода заявок из СМО) служит блок TERMINATE (завершить), который является безотказным блоком и имеет следующий формат: имя TERMINATE A Значение единственного операнда A задает число, которое вычитается из содержимого специального счетчика – счет- чика завершений каждый раз, когда транзакт входит в данный блок TERMINATE. Если операнд A не задан, то его значение считается равным 0 и транзакты, удаляемые из модели через такой блок, не уменьшают содержимого счетчика завершений. Счетчик завершений – это целое положительное число, ко- торое задается в начале моделирования и предназначено для управления продолжительностью моделирования. Начальноезна- чение счетчика завершений устанавливается управляющим опе- ратором START (начать), предназначенным для запуска прогона модели. Поле A данного оператора и задает начальное значение счетчика завершений. Прогон модели заканчивается, когда со- держимое счетчика завершений становится меньше или равным 0. Таким образом, в модели должен быть хотя бы один блок TERMINATE с ненулевым операндом A, иначе процесс моде- лирования никогда не завершится (или завершится по реальному времени оператора SIMULATE). Текущее значение счетчика завершений доступно пользовате- лю через системный атрибут TG1. Фрагмент GPSS-модели, ограниченный парой блоков GENERATE-ТERMINATE, называется сегментом. В общем слу- чае модель может быть из нескольких сегментов и их взаимо- расположение не имеет значения. Ниже приведен простейший сегмент модели, состоящий всего из двух блоков – GENERATE и TERMINATE, в совокупности с управляющим оператором START: GENERATE 70,20 TERMINATE 1
  • 17. 17 START 100 Этот сегмент отражает процессы поступления транзактов в модель через случайные интервалы времени со средним значени- ем в 70 ед. и удаления этих транзактов из модели. Начальное значение счетчика завершений равно 100. Каждый транзакт, вхо- дящий в блок TERMINATE, вычитает из счетчика завершений единицу, и таким образом моделирование завершится, когда со- тый по счету транзакт войдет в данный блок. При этом точное значение таймера в момент завершения прогона модели непред- сказуемо. Следовательно, в приведенном примере продолжитель- ность моделирования устанавливается не по времени, а по количе- ству транзактов, ушедших из модели. Подобным образом мы поступали в примере (см. рис. 1.1, 1.5). Обратите внимание на параметр END TIME на рис. 1.6, который равен 1048.331 мин. 1.6.2. Задание окончания моделирования по времени Если необходимо управлять длительностью моделирования по времени, то в модели используется специальный сегмент – сег- мент таймера (рис. 1.13). В модели из двух сегментов, приведен- ной выше, первый сегмент выполняет те же функции, что и в примере (см. рис. 1.1). Однако в этом сегменте операнд A блока TERMINATE не задан и удаляемые данным блоком транзакты не уменьшают содержимого счетчика завершений. Во втором сег- менте через блок GENERATE первый транзакт поступит в модель в момент времени, равный 1000. Но этот транзакт в данном сегменте окажется и последним, так как, войдя в блок TERMINATE, он обратит в 0 содержимое счетчика завершений, установленное исходно оператором START равным 1. Таким образом, в этой модели гарантируется завершение моделирова- ния в определенный момент модельного времени, а точное коли- чество транзактов, прошедших при этом через модель, непред- сказуемо (рис. 1.14)
  • 18. 18 Рис. 1.13. Двухсегментная программа с использованием сегмента таймера модели
  • 19. 19 1.6.3. Визуальное наблюдение за результатами моделирования Для визуального наблюдения за перемещениями панелевозов на складской площадке: – заблокируем команду управления START, т.е. перепишем ее в виде комментария; – выполним трансляцию программы; – выберем пункт Blocks Window (Окно блоков) из подменю Simulation Window (Окно моделирования) меню Window. Появится диалоговое окно Block Entities (Блочные элементы); – для визуального наблюдения перемещения панелевозов в процессемоделирования выберем пункт Command главного меню. Появится выпадающее меню; Рис. 1.14. Результаты моделирования работы складской площадки с использованием сегмента таймера модели
  • 20. 20 – выберем пункт Start (Начать). Появится диалоговое окно Start Command; – введем в нем поток панелевозов, например, равный 100. Начнется процесс поступления и перемещения панелевозов в моделируемой системе – на складской площадке. Каждое пере- мещение требования по блокам системы фиксируется в правой части окна; – можно на некоторое время остановить процесс. Для этого активизируем кнопку Halt (Остановить), расположенную на па- нели кнопок управления, в верхней правой части окна Block Entities; – для продолжения моделирования активизируем кнопку Continue (Продолжить) или кнопку Step (Шагнуть), чтобы промоделировать и просмотреть изменения в системе в течение одного шага. Кнопку Step можно использовать многократно для подробного просмотра последовательных шагов моделирования системы. Для ускорения процессов моделирования и получения конечного результата целесообразно закрывать окно просмотра Block Entities. В этом случае не тратится время на визуализацию процесса моделирования; – для упрощения анализа системы можно сократить количе- ство параметров в окне визуализации. Для этого выберем пункт View главного меню. Появится выпадающее меню; – выберем пункт Entity Details (детальное представление эле- мента) выпадающего меню. По умолчанию перед пунктом Entity Details стоит галочка, что означает режим детального представ- ления моделируемой системы. Если убрать галочку, то лишняя информация исчезнет и окно Block Entities будет отображать информацию в сокращенном виде. Аналогичным образом можно наблюдать за функционированием каналов обслуживания, очере- дей, логических переключателей, накопителей и других элементов системы в процессе моделирования. 1.7. Мнемоническое обозначение СМО в символике Кендалла В теории массового обслуживания приняты очень удобные сокращенные обозначения для различных систем, позволяющие легко их охарактеризовать. В основе этих обозначений лежит трехбуквенная комбинация вида:
  • 21. 21 А /В /N, где А – описывает распределение (или задает характер закона распределения) интервалов поступления заявок; В – описывает распределение длительностей обслуживания заявок; N – задает количество обслуживающих приборов в СМО. Иногда, когда СМО является системой с ограниченной емко- стью накопителя (или с ограниченной очередью), приведенное обозначение расширяется до четырех букв: А /В /N /K, – где последняя буква (на самом деле число, как и N) K задает емкость накопителя (количество мест ожидания). Приведенные трех- или четырехбуквенные обозначения назы- вают обозначениями Кендалла. В этих обозначениях А и В могут принимать значения из следующего набора символов: {M, D, Ek, Hk, G, U}. При этом: а) А или В = M, если распределениеинтервалов поступления или длительностей обслуживания заявок является экспоненциальным (М – от слова Markovian– Марковский); б) А или В = D, если интервалы поступления или длительности обслуживания являются детерминированными (D– Determinate); в) А или В = Ek, если соответствующие распределения являют- ся Эрланговскими порядка k (E – Erlang); г) А или В = Hk, в случае гиперэкспоненциальных распределе- ний порядка k (H – Hyperexponential); д) А или В = G, в случае распределений общего (произвольного) вида (G – General – общий, общего вида); е) А или В = U – при равномерных распределениях соответству- ющих случайных величин (U – Uniform distribution – равномерное распределение). Так, например, обозначение вида: М /М /1 означает СМО с простейшим потоком на входе и экспоненциально распределенной длительностью обслуживания заявок в приборе (один); D /Е2 /3/5 – СМО с регулярным потоком на входе, длительно- стью обслуживания, распределенной по закону Эрланга 2-го по- рядка, тремя обслуживающими приборами и пятью местами ожи- дания;
  • 22. 22 М /G /2 – СМО с простейшим потоком на входе, длительнос- тью обслуживания, распределенной позаконупроизвольноговида, и двумя обслуживающими приборами. В случае СМО с неоднородной нагрузкой используются обо- значения вида: ,// NBA HH  где символ вектора над буквами А и В указывает на неоднородность нагрузки, а индекс Н задает количе- ство классов заявок. Например, 1// 44 GM  – это обозначение СМО с одним обслуживающим прибором, четырьмя классами зая- вок, которые образуют на входе системы простейшие потоки и имеют общие законы распределения длительностей обслуживания. Контрольные вопросы 1. Назначение системы моделирования GPSS. 2. Методы ввода и редактирования программ. 3. Расшифровка стандартного отчета. 4. Просмотр контрольных параметров. 5. Визуальное наблюдение за результатами моделирования. 6. Способы реализации пошагового моделирования. 7. Способы задания моментов окончания моделирования. 8. Символика Кендалла вописании СМО. Лабораторная работа № 2 МОДЕЛИРОВАНИЕ ПРОСТЕЙШИХ СМО Цель работы: знакомство с основными приемами моделиро- вания простейших СМО. Задачи работы: — ознакомиться с понятием модельного времени, режимами работы моделей; — показать на модельных примерах наличие переходного и установившегося режимов работы. ПРИМЕРЫ ЗАДАЧ МОДЕЛИРОВАНИЯ «СКЛАДСКАЯ ПЛОЩАДКА» 2.1. Модель с одним краном (U/U/1) Допустим, нам надо создать модель работы площадки для складирования строительных панелей с одним краном при условии доставки панелей панелевозами с периодичностью 9 ± 6 мин. При этом время разгрузки каждого панелевоза составляет 10 ± 5 мин.
  • 23. 23 В соответствии с постановкой задачи ее модель на языке GPSS может быть представлена в виде рис. 2.1. Чтобы при выполнении модели вычислялись статистические характеристики очереди транзактов (панелевозов), в нее включе- ны два блока – QUEUE (точка входа в очередь) и DEPART (точка выхода). Эти блоки можно расставлять в моделях, в принципе, произвольным образом. Все зависит от того, о каком участке системы нам нужна статистика по движению потока транзактов. В данной модели нас интересует очередь из панелевозов перед краном, поэтому перед занятием крана (блок SEIZE) стоит блок QUEUE, а после того, как кран начал разгружать очередной панелевоз (транзакт прошел через блок SEIZE), очередь на едини- цу уменьшается, что и моделирует блок DEPART. Блок ADVANCE 10, 5 задерживает транзакт, который занял устройство, на 10 ± 5 единиц времени, моделируя тем самым задержку клиента на время его обслуживания. По истечении этого времени транзакт переходит в блок RELEASE Kran, в котором выполняется освобождение устрой- ства номер 1, и далее поступает в блок TERMINATE, в котором транзакты уничтожаются. Это означает, что панелевоз разгружен Рис. 2.1. Модель системы U/U/1
  • 24. 24 и уехал. Мы уничтожаем транзакт, чтобы не нужно было описы- вать его дальнейшее движение и чтобы освободить занимаемую им память компьютера. Заметим, что в тот момент, когда один транзакт освобождает устройство, другой транзакт, стоящий в очереди, занимает это устройство. Оба действия выполняются в один и тот же момент модельного времени. Когда один транзакт находится в блоке ADVANCE, другие транзакты время от времени появляются в блоке GENERATE и становятся в очередь к устройству. Сегмент таймера модели задает 50 мин работы площадки, а десять операторов Start 1 позволяют получить десять стандарт- ных статистических отчетов через каждые 50 мин работы пло- щадки. Это сделано для того, чтобы было наглядно видно, как меняются статистические характеристики во время переходного процесса. 2.2. Пример задачи моделирования складской площадки с двумя кранами (U/U/2) Два крана на площадке можно изобразить в модели памятью емкостью в две единицы, в которой каждый транзакт будет занимать одну единицу. Модель принимает тогда вид, изображен- ный на рис. 2.2. Рис. 2.2. Модель системы U/U/2 В этой модели занятие и освобождение одного из кранов моде- лируется блоками ENTER и LEAVE соответственно. Транзакты ведут себя точно так же, как панелевозы на моделируемой пло-
  • 25. 25 щадке. Когда в памяти Kran заняты обе единицы, то приходящие из блока GENERATE транзакты не могут войти в блок ENTER и ожидают освобождения памяти, как панелевозы ожидают осво- бождения одного из двух кранов. Таймер задает 500 мин работы, т.е. примерно длительность рабочего дня. 2.3. Пример задачи моделирования складской площадки с двумя кранами и ограниченной очередью из панелевозов (U/U/2/3) Усовершенствуем немного последнюю модель складской пло- щадки, чтобы учесть в ней возможные отказы панелевозов от разгрузки из-за большой очереди. Будем считать, что когда перед кранами уже стоит очередь из трех панелевозов, то следующие подъезжающие панелевозы уезжают на другой объект. Модель для такого варианта функционирования может быть описана на языке GPSS так, как показано на рис. 2.3. Рис. 2.3. Модель системы U/U/2/3 В этой модели используется еще один блок памяти – с именем OCH, моделирующий очередь из панелевозов. Очередной появившийся транзакт сразу попадает в блок TRANSFER, в котором проверяется, сколько транзактов уже стоят в очереди. Если их меньше трех, то транзакт входит в очередь (ENTER OCH), иначе он отправляется на уничтожение по метке OUT.
  • 26. 26 Задания к лабораторной работе № 2 Перед описанием программы необходимо составить таблицу определений в соответствии с приложением (см. в конце работы). Задание 1. Модель U/U/1 Придумать свой пример для моделирования СМО U/U/1 (мага- зин, парикмахерская, остановка и т.д.). Составить подробное описание, нарисовать функциональную схему. Задать параметры законов распределения поступления заявок и обслуживания в соответствии свыбранной предметнойобластью. Разработать программу на языке GPSS, провести моделирова- ние СМО, показать графики переходных процессов основных статистических параметров. Экспериментально определить ус- тановившиеся их значения. (Если при увеличении показателя тай- мера модели в два раза статистические характеристики практи- чески не изменяются, то такой режим можно считать установив- шимся.) Задание 2. Модель U/U/N Для той же предметной области описать многоканальную сис- тему обслуживания. Разработать программу на языке GPSS, провести моделирование СМО, экспериментально определить установившиеся значения основных статистических характерис- тик СМО. С помощью СЧА определить статистические характе- ристики. Задание 3. Модель U/U/N/K Для той же предметной области описать многоканальную сис- тему обслуживания с ограниченным накопителем. Разработать программу на языке GPSS, провести моделирование СМО, экспе- риментально определить установившиеся значения основных ста- тистических характеристик СМО. С помощью СЧА определить статистические характеристики. Приложение Таблица определений Таблица определений является списком различных элементов GPSS, используемых в модели, с краткой характеристикой тех частей системы, которые описываются этими элементами.
  • 27. 27 Перед таблицей записывается принятая в модели единица времени, затем представляются транзакты. Далее в алфавитном порядке описываются части моделируемой системы (сегменты) и затем все прочие элементы модели. П р и м е р с о с т а в л е н и я т а б л и ц ы о п р е д е л е н и й Единица времени – 1 с. Для установления периода моделирова- ния используется сегмент таймера. С помощью транзакта в пер- вом сегменте моделируется панелевоз, во втором сегменте время появления первого транзакта совпадает со временем окончания моделирования. Контрольные вопросы 1. Что такое цепи (списки) событий? 2. Какие основные списки событий есть в GPSS? 3. Где создается транзакт? 4. Какой блок используется как счетчик транзактов? 5. Как моделируется многоканальное устройство? 6. Как моделируется накопитель? Лабораторная работа № 3 МОДЕЛИРОВАНИЕ СКЛАДСКИХ ЗАПАСОВ И СМО С ПОТОКАМИ РАЗНЫХ КЛАССОВ Цель работы: знакомство с основными приемами моделиро- вания потоков разных классов и складских запасов. Задачи работы: – ознакомиться с правилами описания и использования пере- менных в GPSS; – освоить моделирование СМО с потоками разных классов; – освоить приемы моделирования складских запасов; – освоить графическое представление результатов моделиро- вания. Элементы GPSS Назначение 1-й сегмент модели 2-й сегмент модели Приборы: … Очереди: … Сборочный цех Таймер …… ……
  • 28. 28 ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ GPSS 3.1. СМО с неоднородной нагрузкой Рассмотрим теперь СМО вида ,1// 22 MM  когда в систему поступают заявки двух классов. В качестве параметров поступ- ленияи обслуживания зададим значенияв секундах:a1 = 10, b1 = 4 с (для первого класса) и a2 = 8, b2 = 2,8 с (для второго класса). Соответствующая модель из двух сегментов (без сегмента вре- мени) приведена на рис. 3.1 (в реальной модели эти сегменты на самом деле должны располагаться друг за другом, причем их взаиморасположение не имеет значения). Единицей модельного времени выбрана величина 0,01 с. Рис. 3.1. Модель СМО с двумя потоками
  • 29. 29 Сегмент 1 моделирует процессы поступления, обслуживания и ухода заявок 1-го класса, а сегмент 2 – заявок 2-го класса. Тот факт, что заявки обоих классов обслуживаются в одном (единственном) приборе системы, в GPSS достигается путем указания в операнде А блоков SEIZE и RELEASE в обоих сегмен- тах модели одного и того же имени (в нашем случае PRIBOR) для одноканального устройства. Точно такой же подход применим и к объектам типа очередь. Так, объект-очередь с именем OJID, который присутствует в обоих сегментах модели, собирает статистику об ожидании тран- зактов без учета их класса, тогда как, например, очередь с именем OJID1 (присутствует только в сегменте 1) собирает статистику об ожидании транзактов только 1-го класса (соответ- ственно, очередь с именем OJID2 – транзактов только 2-го клас- са). То же самое можно сказать относительно объектов типа очередь с именами SYSTEM, SYSTEM1 и SYSTEM2. Только собирают они статистику о пребывании транзактов в модели в целом (без учета и с учетом их класса). Блоки SEIZE и RELEASE, задающие устройство с именем PRIBOR, в ходемоделирования определяют коэффициент исполь- зования устройства, соответствующий суммарной загрузке при- бора заявками обоих классов, и другие обобщенные характерис- тики занятия устройства. А как же определить загрузку прибора заявками отдельных классов? Одним из возможных подходов для определения коэффициента использования устройства, например, транзактами 1-го класса является создание в сегменте 1 (и только) фиктивного устройства, например, с именем PRIB1. При этом блок SEIZE PRIB1 должен обязательно располагаться сразу после блока SEIZE PRIBOR, а вот взаиморасположение блоков RELEASE PRIB1 и RELEASE PRIBOR не имеет значения. Заданные таким образом блоки SEIZE PRIB1 и RELEASE PRIB1 в ходемоделирования, очевидно, определяют коэффициент использования устройства транзактами 1-го класса, т.е. загрузку прибора заявками 1-го класса. Такая последовательность расположения SEIZE PRIB1 необходима по- тому, что транзакт должен проходить в блок PRIB1 только тогда, когда свободен PRIBOR, чтобы сумма транзактов, прошедших
  • 30. 30 через PRIB1 и PRIB2, была равна количеству транзактов, про- шедших через PRIBOR. Соответственно блоки SEIZE PRIB2 и RELEASE PRIB2 во втором сегменте определяют загрузку прибора заявками 2-го класса. Другим подходом для определения загрузки прибора заявками 1-го класса является замена созданного выше фиктивного устрой- ства с именем PRIB1 объектом типа очередь, например, с именем OBSL1, т.е. блок SEIZE PRIB1 заменяется блоком QUEUE OBSL1, а блок RELEASE PRIB1 – блоком DEPART OBSL1. Такая оче- редь определяет среднее число транзактов 1-го класса в устрой- стве PRIBOR, а оно как раз и соответствует искомой загрузке, поскольку загрузка прибора характеризует среднее число заявок в нем. Аналогично для определения загрузки прибора заявками 2-го класса с помощью объекта типа очередь можно поступить и во втором сегменте. До сих пор нагрузка системы М2 /М2 /1 считалась бесприори- тетной. В случае приоритетной нагрузки, например, когда заявки 1-го класса имеют, скажем, относительный приоритет перед заяв- ками 2-го класса, достаточно в сегменте 1 модели в операнде Е блока GENERATE задать отличный от нуля уровень приоритета транзактов. Если же этот приоритет абсолютный, то в сегменте 1 блоки SEIZE PRIBOR и RELEASE PRIBOR необходимо заменить соответственно на блоки PREEMPT PRIBOR и RETURN PRIBOR (значения операндов Е блоков GENERATE не учитываются). 3.2. Моделирование системы управления запасами 3.2.1. Постановка задачи Допустим, нам надо промоделировать работу склада материа- лов на предприятии. Вместимость склада составляет 2000 ед. материала. Возможна поставка на склад с периодичностью пять дней при снижении запаса ниже 1200 ед. материала. Начальный запас материалов на складе составляет 1500 ед. Ежедневный спрос материала изменяется в пределах от 35 до 50 ед. с равной вероятностью. Требуется смоделировать работу склада матери- алов в течение 200 дней.
  • 31. 31 3.2.2. Выявление основных особенностей Для моделирования работы склада необходимо сформировать входные потоки заказов материала на склад, определить спрос материалов со склада и временной интервал моделирования рабо- ты склада. Но перед этим нужно выбрать единицу измерения времени. Для моделирования работы склада можно взять в каче- стве единицы измерения времени день. 3.2.3. Создание имитационной модели процесса В имитационной модели создадим четыре сектора: – сектор определения входных данных; – моделирования поставки материалов на склад; – моделирования текущего запаса с учетом спроса; – установления начального размера запаса. 3.2.4. Определение входных данных Оператор EQU с меткой Nach_ur определяет начальный уро- вень запасов, который в нашей задаче установлен в размере 1500 ед. Использование именованной величины облегчает прове- дение экспериментов с ее различными значениями (рис. 3.2). Оператор EQU с меткой Postavka определяет тот критический уровень материалов на складе, который обуславливает необходи- мость очередного заказа материалов. Этот размер в нашей зада- че составляет 1200 ед. Оператор STORAGE (Накопитель) с меткой Zapas определяет вместимость склада – 2000 ед. Текущий уровень запаса опреде- ляется с помощью стандартного числового атрибута накопителя S$Zapas. Оператор TABLE с меткой Zapas предназначен для формиро- вания таблицы текущего (ежедневного) уровня запаса на складе. Она может быть использована для построения соответствующей гистограммы, если потребуется. Оператор VARIABLE с меткой Zakaz определяет количество заказываемого материала как разность начального и текущего запаса. Оператор VARIABLE с меткой Spros_m характеризует ежед- невный спрос, который изменяется от 35 до 50 ед. с равной вероятностью. Ежедневный спрос определяется так. Датчик слу- чайных чисел, а точнее датчик псевдослучайных чисел, определя- ет, используя равномерное распределение вероятностей, значение
  • 32. 32 вероятностей в интервале [0-1]. Допустим, это значение равно 0,150. Тогда величина спроса будет определяться так: 35 + (50 – 35) * 0,15 = 37,25. Рассмотрим теперь второй сектор модели, который обеспечи- вает моделирование процесса поставки материала на склад. Оператор GENERATE генерирует очередной момент времени, когда возможна поставка материала на склад. Этот интервал времени составляет, например, пять дней, обеспечивая ежене- дельную поставку материала на склад при пятидневной рабочей неделе, и представляется в операнде А. В операнде Е определен уровень приоритетности поставки материала на склад. Он в нашей Рис. 3.2. Модель работы склада
  • 33. 33 задаче равен 1. По умолчанию уровень приоритетности для всех требований (транзактов) равен 0. Чем больше число в поле опе- ранда Е, тем выше уровень требования. Оператор TEST L определяет необходимость очередной по- ставки материала на склад. Очередная поставка материалов на склад производится тогда, когда текущий запас, который опреде- ляется с помощью стандартного числового атрибута S$Zapas, меньше размера поставки, определенного оператором EQU с меткой Postavka в предыдущем секторе. В противном случае поставка отменяется – требование (транзакт) направляется к оператору TERMINATE с меткой Out. Если текущий запас меньше величины Postavka, то требование переходит к следующему оператору – ASSIGN (Присвоить). В операторе ASSIGN в параметре под номером 2 требования запо- минается размер заказа, который определяется переменной под именем Zakaz. Оператор ADVANCE моделирует время ожидания требования (поставки) в течение пяти дней. Далее оператор ENTER моделирует поставку после истечения пятидневного срока и увеличивает текущее содержание склада – S$Zapas – на величину, содержащуюся в параметре требования под номером 2. Оператор TERMINATE с меткой Out удаляет требование из системы. Этот оператор используется, чтобы определить оконча- ние моделирования состояния. Рассмотрим теперь третий сектор модели, который обеспечи- вает моделирование текущего запаса с учетом ежедневного спро- са на материал. Оператор GENERATE генерирует очередной день работы склада. Оператор ASSIGN присваивает параметру требования (оче- редному дню) под номером 1 размер спроса. Оператор TABULATE с меткой Zapas собирает информацию для создания таблицы и гистограммы ежедневных уровней запа- сов. Оператор TEST GE проверяет возможность удовлетворения спроса. Если текущий запас – S$Zapas – больше или равен вели- чине спроса, то процесс моделирования переходит к следующему оператору – LEAVE (Оставить):
  • 34. 34 LEAVE Zapas,P1 Если такой возможности нет, то требование направляется к оператору с меткой Zapasout. Оператор LEAVE уменьшает текущий запас – S$Zapas – на величину спроса в данный день. Это делается так: требование (очередной день), входя в блок LEAVE, несет в параметре требо- вания под номером 1 величину спроса (операнд В). Эта величина спроса и вычитается из величины текущего запаса S$Zapas. Рассмотрим теперь четвертый сектор модели, который обес- печивает установление начального размера запаса. Он будет выглядеть так: GENERATE,,,1,10 ; Начальный запас ENTER Zapas,Nach_ur ; Установка нач. запаса TERMINATE ; Завершение установки Оператор GENERATE генерирует одно требование (транзакт) с приоритетом, равным 10. Оно имеет наибольший приоритет среди всех требований, генерируемых оператором GENERATE, и поэтому становится первым активным требованием в системе. Оператор ENTER определяет величину начального запаса, чтобы установить величину S$Zapas в начале моделирования. Оператор TERMINATE уничтожает начальное требование без уменьшения индекса завершения. GPSS позволяет многим требованиям одновременно суще- ствовать в различных местах модели. В данной модели требова- ния создаются в трех секторах. Для проведения моделирования щелкните по пункту START выпадающего меню. Появится диалоговое окно, в котором вмес- то значения 1 введите 200. Процесс функционирования данной системы управления запа- сами выглядит следующим образом. Сначала в системе активи- зируются требования, имеющие наибольший приоритет. В нашей задаче таким является одно требование в четвертом секторе, имеющее приоритет, равный 10. Это наибольший приоритет для всех требований, генерируемых оператором GENERATE. Поэто- му данное требование становится первым активным требованием в системе. Оно входит в накопитель STORAGE под именем Zapas с вместимостью 2000 ед. Во время входа в накопитель в нем устанавливается начальный уровень запаса, величина которого
  • 35. 35 определяется с помощью оператора EQU. В нашей задаче он равен 1500 ед. Далее активизируются требования (недели), генерируемые оператором GENERATE во втором секторе, так как на данный момент они имеют наибольший приоритет, равный 1. В этом секторе определяется время поставки материалов на склад. Если нет поставки, то активное требование второго сектора задер- живается в операторе ADVANCE на пять дней. В это время активизируются требования, генерируемые оператором GENERATE в третьем секторе, которые поступают в систему каждый день. Они имеют нулевой приоритет – самый низкий в системе. 3.3. Построение графиков отдельных параметров функционирования системы Перед началом моделирования, а точнее после появления окна Journal, можнопостроить графики некоторых параметров функци- онирования системы. Для этого: – щелкните по пункту Window главного меню системы или нажмите комбинацию клавиш Alt+W. Появится выпадающее меню; – щелкнитепо пункту Simulation Window(Окномоделирования) выпадающего меню. Появится всплывающее меню; – щелкните по пункту Plot Window (Окно графика) всплываю- щего меню. Появится диалоговое окно Edit Plot Window (Окно редактирования графика), которое необходимо соответствующим образом заполнить. Допустим, мы хотим графически представить на всем периоде моделирования, как меняется размер запаса. Для нашей задачи окно Edit Plot Window может быть заполнено так, как показано на рис. 3.3. После заполнения диалогового окна Edit Plot Window щелкните по кнопкам Plot (График), Memorize (Запомнить), а затем – по кнопке ОК. Появится заготовка графика. После этого: – щелкните по пункту Command главного меню системы или нажмитекомбинациюклавишAlt+C. Появитсявыпадающееменю; – щелкните по пункту Start. Появится диалоговое окно Start Command;
  • 36. 36 – введите в диалоговом окне Start Command число 200 – количество дней моделирования работы склада – и щелкните по кнопке ОК. Появится окно REPORT (Отчет) с результатами моделирования. На заднем плане будет размещаться график; – щелкните по графику, расположенному на заднем плане, – он выйдет на первый план; – используя горизонтальную и вертикальную полосы прокрут- ки, вы можете просмотреть построенный график. Фрагмент графика для нашего примера представлен на рис. 3.4. Можно также вывести соответствующую гистограмму. Для этого: – щелкните по пункту Window главного меню системы. По- явится выпадающее меню; Рис. 3.3. Диалоговое окно Edit Plot Window для имитационной модели управления запасами
  • 37. 37 – щелкните по пункту Simulation Window выпадающего меню. Появится всплывающее меню; – щелкните по пункту Table Window (Окно гистограммы) во всплывающем меню. Появится диалоговое окно Open Table Window (Открыть окно гистограммы). В раскрывающемся спис- ке Table щелкните по нужной гистограмме. Для нашей задачи она выглядит так, как представлено на рис. 3.5. Рис. 3.4. График изменения запаса на складе
  • 38. 38 Задания к работе Перед описанием программы необходимо привести таблицу определений в соответствии с приложением к лабораторной рабо- те № 2. Задание 1. Моделирование СМО с неоднородной нагрузкой 1. Набрать текст программы модели согласно рис. 3.1. При этом использовать приведенный ниже текст: EXPDIS FUNCTION RN3,C24 0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.85 .88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9/.99,4.6 .995,5.3/.998,6.2/.999,7/.9998,8 2. Добавить в ней комментарии к каждой строке. Рис. 3.5. Гистограмма наполняемости склада
  • 39. 39 3. Изменить параметры в соответствии со своим вариантом (см. таблицу, параметры заданы в секундах). 4. Выполнить моделирование, привести стандартный отчет. Задание 2. Моделирование системы управления запасами 1. Набрать текст программы модели согласно рис. 3.2. 2. Добавить в ней комментарии к каждой строке. 3. Изменить параметры (в ед.) в соответствии со своим вари- антом (см. таблицу). Вариант а1 в1 а2 в2 1 5 1.8 4 1.6 2 6 2.1 4.8 1.9 3 7 2.5 5.6 2.2 4 8 2.8 6.4 2.6 5 9 3.2 7.2 2.9 6 10 3.5 8 3.2 7 11 3.9 8.8 3.5 8 12 4.2 9.6 3.8 9 13 4.6 10.4 4.2 10 14 4.9 11.2 4.5 Спрос Вариант Начальный запас Запас при поставке от до 1 500 400 12 17 2 600 480 14 20 3 700 560 16 23 4 800 640 19 27 5 900 720 21 30 6 1000 800 23 33 7 1100 880 26 37 8 1200 960 28 40 9 1300 1040 30 43 10 1400 1120 33 47 4. Выполнить моделирование, привести график изменения запа- са на складе, гистограмму наполняемости склада, стандартный отчет. Контрольные вопросы 1. Правила описания и использования переменных. 2. Понятия ячейки, матрицы ячеек, правила описания и использования. 3. Каким образом можно задавать значения параметров транзактов?
  • 40. 40 4. Как можно определить загрузку обслуживающего устройства по заявкам разных классов? 5. Использование приоритетов транзактов при моделировании склада. 6. Графическое представление результатов моделирования. 7. Как построить гистограмму случайной величины? Лабораторная работа № 4 ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ И ГЕНЕРАТОР СЛУЧАЙНЫХ ЧИСЕЛ В МОДЕЛЯХ СМО Цель работы: ознакомиться с основными приемами модели- рования функций и случайных событий в GPSS. Задачи работы: – освоить моделирование СМО с использованием циклов; – освоить моделирование с использованием генератора слу- чайных чисел; – освоить моделирование с использованием функций. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ GPSS 4.1. СМО с использованием цикла На участке сборки некоторых электронных изделий работают 10 сборщиков. Изготовление изделия заключается в установке восьми деталей на печатную плату. Установка одной детали занимает от а1 = 1 до в1 = 3 мин. После того, как на плате установлены все детали, выполняется измерение электрических характеристик изделия, занимающее от а2 = 3 до в2 = 5 мин. Составляющие комплекта для сборки, включающего печатную плату и восемь деталей, поступают на участок с интервалом от а3 = 2 до в3 = 4 мин. Разработать GPSS-модель для анализа работы участка сборки в течение 8 ч. Предусмотреть подсчет собранных изделий. В данном случае изготовление изделия включает восемь опе- раций установки деталей на платеи одну операциюизмерения. Для имитации установки деталей на плате удобно использовать цикл (рис. 4.1). Здесь в операторе ASSIGN 1,8 первому параметру транзакта присваивается значение 8. Первый параметр транзакта будет затем использован в качестве счетчика циклов.
  • 41. 41 Операторы SBORKA ADVANCE 2,1 LOOP 1,SBORKA представляют собой цикл, имитирующий установку деталей на плате. Цикл повторяется восемь раз (столько, сколько указано в первом параметре транзакта). Следует еще раз обратить внима- ние, что по окончании цикла (т.е. послеоператора LOOP) значение первого параметра равно нулю. Оператор ADVANCE 4,1 имитирует измерение электрических характеристик изделия. 4.2. СМО с использованием генератора случайных чисел Ворганизации, выполняющей заказына переводысиностранных языков, работают 7 переводчиков. В среднем поступает пять заказов в день; поток заказов можно считать пуассоновским. Рис. 4.1. Модель СМО с использованием цикла
  • 42. 42 Размер перевода – случайная величина, распределенная по экспо- ненциальному закону; средний размер перевода – 8 страниц. Переводчик переводит в среднем 6 страниц в день. Прибыль органи- зации от каждой переведенной страницы составляет 7,5 ден. ед. Требуется разработать GPSS-модель для анализа работы органи- зации в течение года (300 рабочих дней). Определить прибыль от переводов, выполненных за это время. Напомним, что в пуассоновском потоке заявок интервалы времени между моментами поступления заявок представляют собой случайныевеличины, распределенныепо экспоненциально- му закону (экспоненциальные случайные величины). Такая слу- чайная величина может принимать как очень малые, так и очень большие значения. В данном примере это означает, что интерва- лы времени между моментами поступления заказов могут быть как очень короткими, так и очень длительными. Размер заказа – также экспоненциальная случайная величина. Это означает, что размеры заказов могут быть как очень малыми (например, если заказчику требуется перевести на иностранный язык чек на по- купку какого-либо товара), так и очень большими (если требуется перевод книги). Для имитации случайных величин, распределенных по экспо- ненциальному закону, используется функция EXPONENTIAL (рис. 4.2). Первый аргумент этой функции – номер датчика (генератора) случайных чисел, т.е. номер встроенной процедуры языка GPSS, имитирующий случайные равномерно распределенные числа (СРРЧ). Этот номер может представлять собой число от 1 до 999. Если в модели имитируется несколько случайных величин, то рекомендуется использовать для их имитации генераторы СРРЧ с разными номерами, чтобы обеспечить независимость ими- тируемых величин. Второй аргумент функции EXPONENTIAL – смещение имитируемых случайных величин. Этот аргумент в большинстве случаев равен нулю. Третий аргумент – среднее значение имитируемой величины. В данном примере оператор GENERATE (EXPONENTI- AL(1,0,0.2)) имитирует поток заявок (заказов на переводы) с интервалами, распределенными по экспоненциальному закону.
  • 43. 43 Средний интервал между заявками составляет 0,2 дня, так как поступает в среднем пять заказов в день. Рис. 4.2. Модель с использованием генератора случайных чисел В операторе ASSIGN 1,(EXPONENTIAL(2,0,8)) первому пара- метру транзакта, имитирующего заказ, присваивается значение, представляющее собой экспоненциальную случайную величину со средним значением, равным 8. Эта величина имитирует размер заказа. Примечание. Важно понимать, что величины, присваиваемые перво- мупараметрутранзакта в операторе ASSIGN 1,(EXPONENTIAL (2,0,8)), будут разными для каждогоиз них. Среднее значение этих величинравно8. Операторы QUEUE ОСН... LEAVE PEREV имитируют работу переводчиков. В операторе ADVANCE (Р1/6) имитируется время выполнения заказа переводчиком (в днях). Это время определяет- ся как отношение значения первого параметра (т.е. размера пере- вода в страницах) к количеству страниц, переводимых пе- реводчиком за день. В операторе SAVEVALUE PRIВ+, (Р1#7.5) выполняется под- счет прибыли. Прибыль от выполнения перевода вычисляется как
  • 44. 44 произведение прибыли oт одного листа (7,5 ден. ед.) на размер перевода (первого параметра транзакта). Эта величина при- бавляется к сохраняемой величине PRIB. 4.3. СМО с использованием функций Требуется разработать модель для анализа работы организации, выполняющей переводы с иностранных языков (см. пример в п. 4.2). Известно, что из всех заказов на переводы примерно 40 % составляют заказы на технические тексты, 30 % – экономичес- кие, 20 % – юридические, 10 % – прочие. Прибыль организации от одной страницы технического перевода – 6 ден. ед., экономическо- го – 7,5, юридического – 8,5, прочих – 10 ден. ед. По результатам моделирования требуется определить при- быль, а также объем выполненных переводов каждого типа. Здесь для имитации заявок четырех типов (технические, эконо- мические, юридические и прочие переводы) используется диск- ретная функция TIP (рис. 4.3). Она может принимать одно из четырех значений: 1, 2, 3 или 4. Аргументом этой функции являет- ся СРРЧ, разыгрываемое генератором случайных чисел RN1. Функция TIP используется для имитации типа заявки (перево- да) в операторе ASSIGN 2,FN$TIP. Значение функции TIP при выполнении этого оператора определяется следующим образом. Разыгрывается СРРЧ RN1, т.е. некоторое число из диапазона от нуля до единицы. Если RN1< 0,4, то функция принимает значение 1 (TIP=1); если 0,4 < RN1 < 0,7, то TIP=2; если 0,7< RN1 < 0,9, то TIP=3; если 0,9 < RN1 < 1, то TIP=4. ВоператореASSIGN2,FN$TIP значение функции присваивается второму параметру транзакта. Таким образом, примерно в 40 % случаев этот параметр будет иметь значение 1, в 30 % случаев – значение 2, в 20 % – значение 3, в 10 % – значение 4. Транзакты, у которых Р2 = 1, используются для имитации заявок на технические переводы. Транзакты, у которых второй параметр равен 2, 3 или 4, используются для имитации экономических, юридических и прочих переводов соот- ветственно. Функция PRIBYL используется для имитации прибыли от од- ной страницы перевода. Эта прибыль зависит от типа переводимо- го текста. Аргументом функции PRIBYL является значение вто- рого параметра транзакта (Р2), обозначающего тип перевода.
  • 45. 45 В операторе SAVEVALUE PRIB+,(P1#FN$PRIBYL) значение параметра P1 (т.е. размер перевода) умножается на значение функции PRIBYL, определяемое в зависимости от значения Р2. Если Р2=1 (т.е. имитируется технический перевод), то функция PRIBYL принимает значение 6; если Р2=2 (экономический пере- вод), то PRIBYL=7,5; если Р2=3 (юридический перевод), то PRIBYL=8,5; если Р2=4 (другой тан перевода), то PRIBYL=10. Таким образом, величина P1 #FN$PRIBYL – это прибыль от выполнения перевода. Она прибавляется к сумме значений при- были (сохраняемая величина PRIB). В операторе SAVEVALUE Р2+,1 на единицу увеличивается сохраняемая величина, номер которой указан в параметре Р2. Например, если через этот оператор проходит транзакт, у которо- го Р2 = 3 (т.е. транзакт, имитирующий юридический перевод), то сохраняемая величина с номером 3 увеличивается на единицу. Приведем фрагмент результатов моделирования: SAVEVALUE RETRY VALUE Рис. 4.3. Модель с использованием заданных функций
  • 46. 46 1 0 616.000 2 0 421.000 3 0 310.000 4 0 158.000 PRIB 0 89096.491 Это означает, что за время моделирования (300 дней) было выполнено 616 технических переводов, 421 экономический, 310 юридических и 158 прочих. Прибыль организации составила 89096.491 ден.ед. Задания к работе Задание 1. Моделирование СМО с использованием цикла 1. Постановка задачи (детальное описание задачи, см. п. 4.1). 2. Составить таблицу определений (см. приложение к лаб. работе № 2). 3. Набрать текст программы модели согласно рис. 4.1, время задавать в секундах. Добавить в ней комментарии к каждой строке. 4. Изменить параметры в соответствии со своим вариантом (см. таблицу). Вариант Кол-во деталей на плате а1 в1 а2 в2 а3 в3 1 4 0.5 1.5 1.5 2.5 1 2 2 5 0.6 1.8 1.6 2.6 1.2 2.2 3 6 0.7 2.1 1.7 2.7 1.4 2.4 4 7 0.8 2.4 1.8 2.8 1.6 2.6 5 8 0.9 2.7 1.9 2.9 1.8 2.8 6 9 1 3 2 3 2 3 7 10 1.1 3.3 2.1 3.1 2.2 3.2 8 11 1.2 3.6 2.2 3.2 2.4 3.4 9 12 1.3 3.9 2.3 3.3 2.6 3.6 10 13 1.4 4.2 2.4 3.4 2.8 3.8 5. Выполнить моделирование, определить количество сборщи- ков, при котором коэффициент занятости каждого будет примерно 0.8–0.85. 6. Привести стандартный отчет с комментариями.
  • 47. 47 Задание 2. Моделирование СМО с использованием генератора случайных чисел 1. Постановка задачи (детальное описание задачи, см. п. 4.2). 2. Составить таблицу определений (см. приложение к лаб. работе № 2). 3. Набрать текст программы модели согласно рис. 4.2, время задавать в часах, добавить в ней комментарии к каждой строке. 4. Изменить параметры в соответствии со своим вариантом (см. таблицу). 5. Выполнить моделирование, определить, сколько нужно орга- низации переводчиков, чтобы ожидание начала выполнения зака- за длилось в пределах 0,5–1 день. 6. Привести стандартный отчет с комментариями. Задание 3. Моделирование СМО с использованием функций 1. Постановка задачи (детальное описание задачи, см. п. 4.3). 2. Составить таблицу определений (см. приложение к лаб. работе № 2). 3. Набрать текст программы модели согласно рис. 4.3, время задавать в часах, добавить в ней комментарии к каждой строке. 4. Изменить параметры в соответствии со своим вариантом (см. таблицу). 5. Выполнить моделирование, определить, сколько нужно орга- низации переводчиков, чтобы коэффициент их загрузки был в пределах 0,8–0,85. 6. Привести стандартный отчет с комментариями. Вариант Кол-во переводчиков Кол-во заказов в день Кол-во стр. заказа 1 5 7 7 2 6 8 7 3 7 9 7 4 8 10 8 5 9 11 8 6 10 12 8 7 11 13 9 8 12 14 9 9 13 15 9 10 14 16 10