RMULT 1187 
First EQU 2 
Last EQU 18 
Qty VARIABLE (RN1@96+5) 
Finance VARIABLE (RN1@3+1)#50+200 
Transit TABLE M1,10000,10000,7 ;Время пребывания в системе. 
Items TABLE P$Quantity,10,10,10 ;Число купленных предметов. 
Shoppers TABLE X$Customers,100,50,12 ;Число покупателей. 
Baskt STORAGE 70 
Cart STORAGE 650 
Park STORAGE 650 
Checkout VARIABLE (P$Quantity)#20+P$Payment 
Tshop VARIABLE P$Quantity#100 
INITIAL X$Customers,0 
Beg TRANSFER Both,,Los ;Попытка припарковаться. 
ENTER Park ;Парковка. 
ADVANCE 600 ;Путь от машины в супермаркет. 
SAVEVALUE Customers+,1 ;Вход в супермаркет 
ASSIGN Quantity,V$Qty ;Параметр Quantity = числу купленных предметов. 
ASSIGN Payment,V$Finance ;Параметр payment = метод оплаты. 
TEST LE P$Quantity,10,Qcart ;Предметов >10 Берем тележку. 
GATE SNF Baskt,Qcart ;Проверяем наличие тележки. 
QUEUE Basket ;Встаем в очередь за корзиной. 
ENTER Baskt ;Получаем корзину. 
DEPART Basket ;Покидаем очередь. 
ASSIGN Carrier,Baskt ;В параметр Carrier записывается Baskt (корзина). 
TRANSFER ,Shop ;Покупки окончены. 
Qcart QUEUE Carts ;Встаем в очередь за тележку. 
ENTER Cart ;Получаем тележку. 
DEPART Carts ;Покидаем очередь за тележками. 
ASSIGN Carrier,Cart ;В параметр Carrier записывается Cart (тележка). 
Shop ADVANCE V$Tshop ;Время покупок истекло. 
TEST LE P$Quantity,10,Norm ;Покупок < 10 - идем к кассе быстрого обслуживания. 
COUNT L Where,First,Last,1,Q ;Есть свободная касса с быстрым обслуживанием? 
TEST E P$Where,0,Norm ;Есть свободная касса с нормальным обслуживанием? 
QUEUE Xpress ;Встаем в очередь на быстрое обслуживание. 
SEIZE Xpres ;Начало обслуживания. 
DEPART Xpress ;Освобождение очереди. 
ADVANCE V$Checkout ;Время обслуживания. 
RELEASE Xpres ;Освобождение кассы. 
LEAVE P$Carrier ;Освобождение корзины. 
TRANSFER ,Fin 
Norm SELECT MIN Minque,First,Last,,Q ;Находим кратчайшую очередь. 
QUEUE P$Minque ;Встаем в эту очередь. 
SEIZE P$Minque ;Начало обслуживания. 
DEPART P$Minque ;Освобождение очереди. 
ADVANCE V$Checkout ;Время обслуживания. 
RELEASE P$Minque ;Освобождение кассы. 
LEAVE P$Carrier ;Освобождение тележки. 
Fin TABULATE Transit ;Запись транзитного времени. 
TABULATE Items ;Запись количества купленных предметов. 
SAVEVALUE Customers-,1 ;Один покупатель уходит. 
ADVANCE 600 ;Движение к машине. 
LEAVE Park ;Освобождение стоянки. 
TERMINATE 
Lost TERMINATE ;Один покупатель уехал. 
* Прибытие покупателей для времени 0 – 30 мин. 
GENERATE (Exponential(1,0,60)),,,300 ;Появление покупателей. 
TRANSFER ,Beg 
* Прибытие покупателей для времени 30 – 90 мин. 
GENERATE (Exponential(1,0,40)),,18000,900 ;Частота появления через 0.5 часа. 
TRANSFER ,Beg 
* Прибытие покупателей для времени 90 – 150 мин. 
GENERATE (Exponential(1,0,80)),,54000,450 ;Частота появления через 1.5 часа. 
TRANSFER ,Beg 
* Прибытие покупателей для времени 150+ мин. 
GENERATE (Exponential(1,0,120)),,90000 ;Частота появления через 2.5 часа. 
TRANSFER ,Beg 
GENERATE 600 ;Один транзакт каждую минуту. 
TABULATE Shoppers ;Запись числа покупателей. 
TERMINATE 1 
START 180

Результаты моделирования.



2015-11-18 • Просмотров [ 296 ]