ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 31.12.2025

Просмотров: 95

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИННОВАЦИОННЫХ ТЕХНОЛОГИЙ И ПРЕДПРИНИМАТЕЛЬСТВА

кафедра ИНФОРМАЦИОННЫЕ СИСТЕМЫ

Гулин Сергей Александрович

Семестровый отчёт студента 4 курса

дневного отделения

по курсу

«Моделирование систем»

Руководитель: ____________/ Носков Ю.М.

Москва 2010 г.

1. Модель смо. Проведение эксперимента 1.

;Модель смо с одни прибором и очередью

ave_ EQU 25

GENERATE 30,20

QUEUE petr

SEIZE ivan

DEPART petr

ADVANCE ave_,10

RELEASE ivan

TERMINATE

GENERATE 30000

savevalue 1,qm$petr

TERMINATE 1

;определить зависимость максимальной длины очереди от среднего времени обслуживания

procedure irina()

begin

alpha=20;

while(alpha<=30)

do begin

ave_=alpha;

docommand("START 1,np");

txt="Среднее значение времени обслуживание = ";

str=polycatenate(txt,ave_," максимальная длина очереди равна ",x1);

docommand("show str");

docommand("reset");

docommand("clear");

alpha=alpha+1;

end;

end;

experiment sem()

begin

irina();

end;

2. Модель смо. Проведение эксперимента 2.

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

;План эксперимента:

; - шаг изменения искомого значения параметра будет 1

; - сначала будет отправляться 1000, затем 2000

;

;

;Модель смо с одни прибором и очередью

ivan Storage 1

GENERATE (Poisson(1,30))

QUEUE petr

Enter ivan

DEPART petr

ADVANCE (Normal(1,500,20))

Leave ivan

TERMINATE

GENERATE 30000

SAVEVALUE 1,qm$petr


TERMINATE 1

procedure det_dep()

begin

qm1_ = 10;

qm2_ = 5;

Nch = 1;

while((Abs(qm1_ - qm2_)>2)&(Nch<100)) do begin

str = polyCatenate("ivan Storage ",Nch);

DoCommand(str);

DoCommand("Start 1,NP");

qm1_ = QM$petr;

str = polyCatenate("Максимальная длина очереди = ",qm1_);

DoCommand("show str");

DoCommand("clear");

DoCommand("Reset");

qm1_ = QM$petr;

DoCommand("Start 2,NP");

qm2_ = QM$petr;

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;

3. Магазин.

; строится модель магазина, поток пуассоновский. имеется 4 кассы. причем каждый кассир обслживает разное время

; покупатель выбирает ту очередь которая сейчас меньше всего.

; модель с ограничением на длинну очередь

limits EQU 3

srok EQU 20

qkas1 EQU 1

qkas2 EQU 2

qkas3 EQU 3

qkas4 EQU 4

finc function p1,D4

1,label1/2,label2/3,label3/4,label4

gogos bvariable (q$qkas1<limits)+(q$qkas2<limits)+(q$qkas3<limits)+(q$qkas4<limits)

GENERATE (poisson(1,srok))

TEST G bv$gogos,0,byebye

SELECT MIN 1,1,4,,q

TRANSFER ,FN$finc

label1 QUEUE qkas1

SEIZE kas1

DEPART qkas1

ADVANCE (poisson(1,100))

RELEASE kas1

TRANSFER ,byebye

label2 QUEUE qkas2

SEIZE kas2

DEPART qkas2

ADVANCE (poisson(1,200))

RELEASE kas2

TRANSFER ,byebye

label3 QUEUE qkas3

SEIZE kas3

DEPART qkas3

ADVANCE (poisson(1,35))

RELEASE kas3

TRANSFER ,byebye

label4 QUEUE qkas4

SEIZE kas4

DEPART qkas4

ADVANCE (poisson(1,15))

RELEASE kas4

TRANSFER ,byebye

byebye TERMINATE

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

GENERATE 100000

TERMINATE 1



Домашние задания

1. Модель смо. Проведение эксперимента.

;Модель смо с одни прибором и очередью

ave_ EQU 25

GENERATE 30,20

QUEUE petr

SEIZE ivan

DEPART petr

ADVANCE ave_,10

RELEASE ivan

TERMINATE

GENERATE 30000

savevalue 1,qm$petr

TERMINATE 1

;определить зависимость максимальной длины очереди от среднего времени обслуживания

procedure irina(alpha,bet)

begin

while(alpha<=bet)

do begin

ave_=alpha;

docommand("START 1,np");

txt="Среднее значение времени обслуживание = ";

str=polycatenate(txt,ave_," максимальная длина очереди равна ",x1);

docommand("show str");

docommand("reset");

docommand("clear");

alpha=alpha+1;

end;

end;

experiment sem()

begin

irina(20,30);

2. Система с нетерпеливым клиентом.

GENERATE 10,6 ; Звонок абонента

TRANSFER both,service,byebye ; Если прибор свободен то обслуживается, если занят то уходит

service SEIZE ATS ; Попытка занять АТС

ADVANCE 240,150 ; Процесс обслуживания

RELEASE ATS ; Освободить АТС

byebye TERMINATE 1 ; Заявка покидает систему

procedure irina()

begin

docommand("START 1000");

end;

experiment sem()

begin

irina();

end;

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;