Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Чтоесть / Текстовый документ

.txt
Скачиваний:
5
Добавлен:
24.03.2015
Размер:
1.94 Кб
Скачать
3. Журнальный киоск.
* Модель журнального киоска
; Покупатели приходят по 20 человек в час, пуассоновский поток.
; Каждый покупатель желает приобрести от 1 до 4 журналов.
; 1 журнал покупают 50% покупателей
; 2 журнала покупают 30% покупателей
; 3 журнала покупают 15% покупателей
; 4 журнала покупают 5% покупателей
; На 1 журнал продавец затрачивает в среднем 2 минуты (экспоненциальное распределение).
;
; Найти оптимальное кол-во продавцов, которые справятся с нагрузкой

kiosker STORAGE 1 ; Многоканальное устройство - продавцы
kiosk FUNCTION RN1,D5
0,1/.5,1/.8,2/.95,3/1,4

GENERATE (Poisson(1,3)) ; 20 человек в час, т.е 60/20 = 3 - интервал(каждые 3 мин.)

ASSIGN 1,fn$kiosk ; запишем параметы в параметр p1
ASSIGN 2,p1 ; запишем то же самое число в новый параметр

QUEUE och ; вход в регистратор очерди
ENTER kiosker ; занять продавца
DEPART och ; выход из регистратора очереди
cikl ADVANCE (exponential(1,0,2)) ; задержка в очерди
ASSIGN 1-,1 ; вычитаем из первого параметра 1
TEST E p1,0,cikl ; Замыкаем цикл
LEAVE kiosker ; освободить продавца
TERMINATE ; Выход
generate 1000 ; Оператор
terminate 1
procedure det_dep()
begin
qm1_ = 10;
qm2_ = 5;
Nch = 1;
while((Abs(qm1_ - qm2_)>2)&(Nch<100)) do begin
str = polyCatenate("kiosker Storage ",Nch);
DoCommand(str);
DoCommand("Start 1,NP");
qm1_ = QM$och;
str = polyCatenate("Максимальная длина очереди = ",qm1_);

DoCommand("show str");
DoCommand("clear");
DoCommand("Reset");

DoCommand("Start 2,NP");
qm2_ = QM$och;
str = polyCatenate("Максимальная длина очереди = ",qm2_);
DoCommand("show str");
DoCommand("clear");
DoCommand("Reset");
Nch = Nch + 1;
end;
Nch = Nch - 1;
str = polyCatenate("Оптимальное количество продавцов = ",Nch);
DoCommand("show str");
end;
experiment sem()
begin
det_dep();
end;


Соседние файлы в папке Чтоесть