БЕСПЛАТНОЕ РЕШЕНИЕ ЗАДАЧ

Моделирование работы супермаркета - GPSS

Постановка задачи. Супермаркет имеет место для парковки \(100\) автомобилей. Если все места парковки заняты, автомобиль покидает супермаркет. Время прихода покупателей в магазин с места парковки распределено равномерно и составляет \(60\pm40\) с. Магазин имеет \(100\) ручных тележек и \(50\) корзин для транспортировки купленных товаров. В магазине \(5\) кассовых аппаратов. Первый из них предназначен для быстрого обслуживания покупателей с единичными покупками. Поток покупателей экспоненциальный c с параметром \(\beta\geq 0\):
$$f\left(x \right)=\frac{1}{\beta }e^{-\frac{x-\lambda }{\beta}}$$
В противном случае он равен 0. Известно, что в интервале времени:
от 0 до 30 мин λ=0, β=60;
от 30 до 90 мин λ=0, β=40;
от 90 до 150 мин λ=0, β=80;
свыше 150 мин λ=0, β=120.
Если покупатель берет более 10 видов товаров, то необходима тележка, иначе используется корзина. После покупатели подходят к стеллажам для взятия товара. Число взятых товаров определяется с помощью датчика случайных чисел.

Задание:

1. Создать имитационную модель работы супермаркета в течение рабочей смены, равной 8 ч.
2. Определить параметры функционирования системы: коэффициент загрузки всех касс; максимальное и текущее число покупателей в каждой очереди; среднее время обслуживания в каждом канале обслуживания; среднее время нахождения покупателя в каждой очереди.
3. Построить следующие гистограммы: времени нахождения покупателей в системе; числа покупок, сделанных в течение смены; числа покупателей, посетивших магазин в течение смены.

Указания к решению задачи.

1. Выявление основных особенностей. Необходимо сформировать входной поток посетителей и временной интервал моделирования работы супермаркета. В качестве единицы измерения времени возьмем секунду, тогда общее время моделирования составит 8×60×60 с. Создание и представление имитационной модели процесса. Разобьем модель на несколько секторов. В первом введем информацию, необходимую для функционирования супермаркета. Во втором смоделируем поступление покупателей, определим число покупок, их стоимость и направление покупателей к местоположению корзинок или тележек. В третьем секторе будем собирать статистическую информацию по очереди, связанной с получением корзинок. В четвертом секторе соберем статистику по очереди, связанной с получением тележек. В пятом секторе моделируется перемещение требований в системе в зависимости от ее состояния. В шестом собирается статистика по очереди и каналу быстрого обслуживания. Моделируется время обслуживания, выход из области взятия тары и переход к другому сектору. В седьмом секторе действия аналогичны шестому сектору. В восьмом секторе собирается информация в табличном виде по времени работы системы и числу покупок. Моделируется возвращение к автомобилю и его удаление из системы. В девятом секторе моделируются различные потоки покупателей. В десятом моделируем время работы системы.

Программа может выглядеть следующим образом:
 RMULT 1187 ;определяем набор начальных чисел семи
 ;генераторов случайных чисел
kassa_2 EQU 2 ;указываем номера каналов обслуживания и
 ;соответствующие очереди к ним
kassa_N EQU 5
time_work VARIABLE 8#60#60 ;определяем время моделирования системы в
 ;секундах
n_pokupok VARIABLE (RN1@96+5) ;число покупок, одного покупателя
finance VARIABLE (RN1@3+1)#40+150 ;переменная определяет размер оплаты
 ;покупок
time_system TABLE M1,1000,1000,7 ;создаем таблицы, представляющие
 ;собой набор чисел для построения гистограмм
pokupki TABLE P$kol_pokupok,10,10,10 ;каждое целое число 
 ;представляет класс частоты в гистограмме
n_pokupatel TABLE X$pokupatel,100,50,12
park STORAGE 100 ;вместимость стоянки
telejka STORAGE 100 ;количество тележек
korzina STORAGE 50 ;количество корзин
kassir VARIABLE (P$kol_pokupok)#2+P$oplata ;переменная определяет
 ;время затраченное кассиром на обслуживание покупателя
time_mag VARIABLE P$kol_pokupok#100 ;время нахождения покупателя в
 ;магазине
 INITIAL X$pokupatel,0 ;определяет начальное значение
 ;сохраняемой величины значение которой в начале смены равно 0
******************************************
parking TRANSFER Both,,Lost ;требование направляется в следующий
 ;блок, если он занят то к блоку с меткой Lost
 ENTER park ;если есть место автомобиль въезжает на
 ;стоянку
 ADVANCE 60,40 ;покупатель идет в супермаркет
 SAVEVALUE pokupatel+,1 ;подсчет поступивших покупателей с
 ;момента открытия магазина
 ASSIGN kol_pokupok,V$n_pokupok ;выполняем присваивание
 ;параметру требования kol_pokupok с помощью переменной V$n_pokupok 
 ASSIGN oplata,V$finance 
 TEST LE P$kol_pokupok,10,Qtelejka ;определяем дальнейший
 ;путь требования 
 GATE SNF korzina,Qtelejka ;проверяем условие накопитель не
 ;полон
*******************************************
 QUEUE korzina_Q ;собираем статистику по очереди 
 ENTER korzina ;собираем информацию об использовании корзин
 ;покупателями 
 DEPART korzina_Q ;ОСВОБОЖДАЕМ ОЧЕРЕДЬ 
 ASSIGN tara,korzina ;присваивание параметру требования 
 TRANSFER ,magazin ;переход требования к оператору с меткой
 ;покупатель входит в магазин
*********************************************
Qtelejka QUEUE telejka_Q ;собираем статистику по очереди 
 ENTER telejka ;собираем информацию об использовании корзин
 ;покупателями 
 DEPART telejka_Q ;освобождаем очередь
 ASSIGN tara,telejka ;присваивание параметру требования
********************************************** 
magazin ADVANCE V$time_mag ; моделируем время нахождения
 ;покупателя в магазине
 TEST LE P$kol_pokupok,10,min_och ;определяем дальнейший путь
 ;требования 
 COUNT L kassir_0,kassa_2,kassa_n,1,Q ; определяем число
 ;объектов заданного диапазона удов-щих заданному требованию
 TEST E P$kassir_0,0,min_och ;определяем дальнейший путь
 ;требования
**********************************************
 QUEUE bistro_q ;собираем статистику об очереди
 SEIZE bistro ;собираем статистику по каналу
 ;обслуживания
 DEPART bistro_q 
 ADVANCE V$kassir ;моделируем время быстрого
 ;обслуживания
 RELEASE bistro 
 LEAVE P$tara ;завершаем сбор статистики по работе
 ;накопителей связанных с тарой
 TRANSFER ,fin ;направляем требование к оператору
 ;указанному в поле В
**********************************************
min_och SELECT MIN min_ocher,kassa_2,kassa_n,,Q ; выбираем объект
 ;удовлетворяющий условию
 QUEUE P$min_ocher 
 SEIZE P$min_ocher 
 DEPART P$min_ocher 
 ADVANCE V$kassir 
 RELEASE P$min_ocher 
 LEAVE P$tara 
**********************************************
fin TABULATE time_system ;выполняем сбор данных по времени
 ;обслуживания 
 TABULATE pokupki ;собираем данные по числу сделанных
 ;покупок 
 SAVEVALUE pokupatel-,1 ;уменьшаем число обслуженных
 ;покупателей
 ADVANCE 60,50 
 LEAVE park 
 TERMINATE 
lost TERMINATE 
*********************************************
 GENERATE (Exponential(1,0,60)),,,200 ;используем встроенное
 ;распределение вероятностей для моделирования потока покупателей
 TRANSFER ,parking 
 GENERATE (Exponential(1,0,40)),,1800,400
 TRANSFER ,parking
 GENERATE (Exponential(1,0,80)),,5400,300
 TRANSFER ,parking
 GENERATE (Exponential(1,0,120)),,9000
 TRANSFER ,parking
**********************************************
 GENERATE V$time_work ;определяем время работы системы
 TABULATE n_pokupatel ;собираем информацию о числе
 ;покупателей посетивших магазин
 TERMINATE 1
 START 1 
Подготовка к моделированию. Установить в диалоговом окне SETTINGS (закладка REPORTS) вывод информации о следующих объектах: Queues (очереди), Tables (таблицы/ гистограммы), Facilities (каналы обслуживания), Storages (накопители), Savevalues (сохраняемые величины).

Моделирование системы. Созданную имитационную модель необходимо оттранслировать и запустить на выполнение.

2. После трансляции, если нет ошибок, начнется процесс моделирования. Появится окно REPORT, в котором можно найти указанные в задании 2 параметры функционирования системы.

3. Представим табличные данные в виде гистограмм. Для построения гистограмм необходимо воспользоваться окном гистограмм (Table Window), где в выпадающем списке выбрать имена нужных гистограмм.

Очевидно, что эту задачу можно легко приспособить к любому магазину или товару. Но только если магазин будет предлагать купить пластиковые окна, например, то надо учитывать, что покупка выполняется только после выезда мастера на место (дополнительные затраты времени), выполнения измерений и заказа на изготовление. Все это усложняет цепочку транзакций, но суть остается прежней - в модель надо добавить новые элементы.

Оставить комментарий

Вы должны быть авторизованы , чтобы оставить или оценить комментарий.

Онлайн всего: 5
Гостей: 5
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте