Система управления запасами с неудовлетворительным спросом

больше 1200, то никакой поставки материалов на склад в течение недели не производят. Требуется смоделировать работу склада материалов в течение 100 дней.


2.2 Описание модели


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


2.2.1 Создание имитационной модели:

Построим заголовок модели:

;GPSSW Upr_zapasom.GRS

*****************************

* Управление моделями *

*****************************

Создадим четыре сектора:

* Определение входных данных.

RMULT 413

Zapas STORAGE 2500 ; Вместимость склада.

Zapas TABLE S$Zapas,100,100,20 ; Гистограмма запаса.

Material VARIABLE Nach_ur-S$Zapas ; Размер заказа.

Spros_m VARIABLE RN1@20+35 ; Размер ежедневного спроса.

Nach_ur EQU 1500 ; Начальный уровень запаса.

Postavka EQU 1300 ; Размер поставки.

****************************************

*Моделировнаие процесса поставки материала на склад.

GENERATE 5,,,,1 ; Поставка через 5 дней.

TEST L S$Zapas,Postavka,Out ; Нужна ли поставка.

ASSIGN 2,V$Material ; Размер заказа в P2.

ADVANCE 5 ; Интервал поставки.

ENTER Zapas,P2 ; Увеличить запас на Р2.

Out TERMINATE ; Завершение заказа.

*********************************************

* Моделировнаие текущего запаса с учётом спроса.

GENERATE 1 ; Генерирование дня.

ASSIGN 1,V$Spros_m ; Размер спроса в Р1.

TABULATE Zapas ; Запись тек. запаса.

TEST GE S$Zapas,P1,Zapasout ; Можно ли заказать.

LEAVE Zapas,P1 ; Уменьшить запас на Р1.

TERMINATE 1 ; Завершение дня.

Zapasout TERMINATE 1 ; Завершение дня.

*********************************************

* Установление начального размера запаса.

GENERATE ,,,1,10 ; Начальный запас.

ENTER Zapas,Nach_ur ; Установка нач. запаса.

TERMINATE ; Завершение установки.

*********************************************

Оператор RMULT определяет начальное число для генератора случайных чисел.

Оператор STORAGE (Накопитель) с меткой Zapas определяет вместимость склада 2500 единиц.

Оператор TABLE с меткой Zapas предназначен для формирования таблицы текущего (ежедневного) уровня запаса на складе. Текущий уровень запаса определяется с помощью стандартного числового атрибута S$Zapas.

Оператор VARIABLE c меткой Material определяет количество материала как разность начального и текущего запаса.

Оператор VARIABLE с меткой Spros_m характеризует ежедневный спрос, который изменяется от 35 до 55 единиц с равной вероятностью.

Оператор EQU с меткой Nach_ur определяет начальный уровень запасов, который в нашей задаче установлен в размере 1500 единиц. Использование именованной величины облегчает проведение экспериментов с ее различными значениями.

Оператор EQU c меткой Postavka определяет тот критический уровень материалов на складе, который обуславливает необходимость очередного заказа материалов. Этот размер в нашей задаче составляет 1300 единиц.

Оператор GЕNЕRАТЕ - генерирует очередной момент времени, когда возможна доставка материала на склад.

Оператор ТEST L определяет необходимость очередной поставки материала на склад. Очередная поставка материалов на склад производится тогда, когда текущий запас, который определяется с помощью стандартного числового атрибута S$Zapas, меньше размера поставки, определенного оператором ЕQU. с меткой Рostavka в предыдущем секторе. В противном случае поставка отменяется - требование (транзакт) направляется к оператору TERMINATE с меткой Out.

Еcли текущий запас меньше размера поставки, то требование переходит к следующему оператору - ASSIGN (Присвоить). В операторе ASSIGN в параметре требования под номером 2 запоминается' размер заказа, который определяется переменной под именем Material.

Оператор ADVANCE моделирует время ожидания требования (поставки) в течение 5 дней .

Далее оператор ENTER моделирует поставку после истечения 5-дневного срока и увеличивает текущее содержание склада - S$Zapas - на величину, содержащуюся в параметре требования под номером 2.

Оператор ТERMINATE с меткой Out удаляет требование из системы. Этот оператор используется, чтобы определить окончание моделирования состояния.

Оператор GENERATE генерирует очередной день работы склада.

Оператор ASSIGN присваивает параметру требования (очередному дню) под номером 1 размер спроса.

Оператор TABULA ТЕ с меткой Zapas собирает информацию для создания таблицы и гистограммы ежедневных уровней запасов.

Оператор TEST GE проверяет возможность удовлетворения спроса. Если текущий запас - S$Zapas - больше или равен величине спроса, то процесс моделирования переходит к следующему оператору - LEAVE (Оставить):

Если такой возможности нет, то требование направляется к оператору с меткой Zapasout.

Оператор LEAVE уменьшает текущий запас - S$Zapas - на величину спроса в данный день. Это делается так: требование (очередной день), входя в блок LEAVE, несет в параметре требования под номером 1 величину спроса (операнд В). Эта величина спроса и вычитается из величины текущего запаса S$Zapas.

Оператор GENERATE генерирует одно требование (транзакт) с приоритетом. равным 10. Оно имеет наибольший приоритет сведи всех требований, генерируемых оператором GENERATE, и поэтому становится первым активным требованием в системе.

Оператор ENTER определяет величину начального запаса, чтобы установить величину S$Zapas в начале моделирования.

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

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


2.2.2. Моделирование системы

Используя пункт Command главного меню создаём выполняемую модель. Моделирование закончится, когда 100 ежедневных заказов будут выполнены.

Report (Отчёт) в стандартном виде, для нашей задачи выглядит следующим образом:

GPSS World Simulation Report - Untitled Model 2.2.1


Friday, January 28, 2011 16:11:27


START TIME END TIME BLOCKS FACILITIES STORAGES

0.000 100.000 16 0 1


NAME VALUE

MATERIAL 10007.000

NACH_UR 1500.000

OUT 6.000

POSTAVKA 1300.000

SPROS_M 10008.000

ZAPAS 10006.000

ZAPASOUT 13.000


LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

1 GENERATE 20 0 0

2 TEST 20 0 0

3 ASSIGN 12 0 0

4 ADVANCE 12 1 0

5 ENTER 11 0 0

OUT 6 TERMINATE 19 0 0

7 GENERATE 100 0 0

8 ASSIGN 100 0 0

9 TABULATE 100 0 0

10 TEST 100 0 0

11 LEAVE 100 0 0

12 TERMINATE 100 0 0

ZAPASOUT 13 TERMINATE 0 0 0

14 GENERATE 1 0 0

15 ENTER 1 0 0

16 TERMINATE 1 0 0


STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY

ZAPAS 2500 1433 0 1762 5450 1 1299.600 0.520 0 0


TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%

ZAPAS 1339.100 199.642 0

900.000 - 1000.000 2 2.00

1000.000 - 1100.000 5 7.00

1100.000 - 1200.000 24 31.00

1200.000 - 1300.000 19 50.00

1300.000 - 1400.000 13 63.00

1400.000 - 1500.000 14 77.00

1500.000 - 1600.000 9 86.00

1600.000 - 1700.000 10 96.00

1700.000 - 1800.000 4 100.00


FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

123 0 101.000 123 0 7

122 1 105.000 122 0 1

116 1 105.000 116 4 5 2 388.000

TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%

ZAPAS 1339.100 199.642 0

900.000 - 1000.000 2 2.00

1000.000 - 1100.000 5 7.00

1100.000 - 1200.000 24 31.00

1200.000 - 1300.000 19 50.00

1300.000 - 1400.000 13 63.00

1400.000 - 1500.000 14 77.00

1500.000 - 1600.000 9 86.00

1600.000 - 1700.000 10 96.00

1700.000 - 1800.000 4 100.00


FEC XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

123 0 101.000 123 0 7

122 1 105.000 122 0 1

116