Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Имитационное моделирование бизнес-процессов.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4.68 Mб
Скачать
  1. Описание gpss модели работы мастерской

    1. Блок-диаграмма модели работы мастерской приведена в приложении 1.

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

Следующие 4 блока обеспечивают регистрацию интервалов времени прихода клиентов. Блок VARIABLE вычисляет выражение C$1-X$1 (текущее значение счетчика времени, т.е. время прихода клиента в мастерскую, минус время прихода предыдущего клиента из ячейки 1) и присваивает результат переменной 1. Таким образом, в переменной 1 окажется интервал времени, прошедший после прихода предыдущего клиента. Блок ASSIGN записывает значение переменной 1 в первый параметр транзакта. Блок SAVEVALUE сохраняет в первой ячейке время прихода клиента. Блок TABULATE производит занесение в таблицу 1 значения первого параметра транзакта, т.е. интервал времени, прошедший от прихода предыдущего клиента.

Далее следует блок QUEUE, который обеспечивает занятие 1 единицы в очереди 1. Блок SEIZE занимает прибор с номером 1, т.е. мастера по обслуживанию клиентов. Если мастер занят, то транзакт – клиент будет ожидать его освобождения перед блоком SEIZE. Если мастер свободен, то он станет занят и транзакт пройдет к следующему блоку DEPART, что обеспечивает освобождение 1 единицы в очереди 1.

Блок ASSIGN присваивает параметру 2 входящего транзакта значение текущего времени. Блок ADVANCE задерживает клиента на время обслуживания 15 минут с разбросом 5. Очередной блок ASSIGN присваивает параметру 3 транзакта значение текущего времени. Так как перед этим произошла задержка на время обслуживания, в параметре 3 значение будет больше, чем в параметре 2, на время обслуживания.

Следующий блок RELEASE освобождает прибор с номером 1, т.е. мастера. Блок VARIABLE вычисляет разность значений 3-го и 2-го параметров транзакта, т.е. время обслуживания, и присваивает полученное значение переменной 2. В блоке ASSIGN значение переменной 2 присваивается 4-му параметру транзакта, а блок TABULATE производит занесение в таблицу 2 очередного значения времени обслуживания клиента.

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

Второй сегмент программы состоит из двух блоков. Первый генерирует транзакты с интервалом 60 единиц модельного времени (1 час). Второй производит уничтожение транзакта и вычитание единиц из счетчика запуска.

    1. Описание gpss-программы работы мастерской.

После разработки блок-диаграммы, описанной в пункте 5.1., разработана программа. Кроме команд, представленных в схеме алгоритма, в программу были включены обязательные управляющие карты: SIMULATE, START, END.

В начале программы две строки описывают таблицы. Первая таблица выводит интервалы прибытия клиентов из 1-го параметра, вторая таблица выводит время обслуживания из 4-го параметра транзакта.

Карта SIMULATE указывает, что нужно произвести моделирование. Блок GENERATE вызывает появление транзактов. Карта VARIABLE дает описание переменной и присваиваемого ей значения. В программе используются переменные 1 и 2. Их номера задаются в поле метки.

В вычисляемом выражении, результат которого присваивается переменной, используется счетчик текущего времени C$1, из которого вычитается значение ячейки 1, в которой хранится время прихода предыдущего транзакта. Получаемый интервал времени между приходом двух клиентов мастерской в блоке ASSIGN записывается в первый параметр транзакта. Блок SAVEVALUE сохраняет в ячейке 1 значение счетчика времени прихода клиента, а блок TABULATE производит регистрацию заданного значения в таблице.

Блок QUEUE производит увеличение количества транзактов в очереди. Придя в блок SEIZE, клиент пытается занять прибор с номером 1, т.е. мастера по обслуживанию клиентов. Если мастер занят, то транзакт – клиент будет ожидать его освобождения перед блоком SEIZE. Если мастер свободен, то он станет занят и транзакт пройдет к следущему блоку DEPART, что обеспечивает освобождение 1 единицы в очереди 1.

Блок ADVANCE обеспечивает задержку клиента на интервал 15 с разбросом 5. В блоке ASSIGN запоминается время конца обслуживания в параметре 3. Блок RELEASE освобождает прибор с номером 1, т.е. мастера, для занятия следующим клиентом.

Карта VARIABLE вычисляет разность моментов начала и конца обслуживания. В блоке ASSIGN запоминается вычисленный интервал в параметре 4. Блок TABULATE производит регистрацию полученного значения в таблице 2. Блок TERMINATE уничтожает транзакт.

Второй сегмент программы – таймер – состоит из двух блоков и обеспечивает отсчет вемени моделирования. Блок GENERATE выдает транзакты через 60 единиц модельного времени, что означает 1 час моделирования. Блок TERMINATE уничтожает транзакт и вычитает 1 из счетчика запуска. Через 8 часов счётчик запуска станет иметь нулевое значение и моделирование закончится. Значение счётчика запуска, равное 8, задается управляющей картой START.