Анализ полученных результатов моделирования
⇐ ПредыдущаяСтр 3 из 3 Была исследована зависимость вероятностных характеристик системы от числа обслуживающих приборов. При увеличении числа обслуживающих приборов от 3 до 6 наблюдаем: · уменьшение вероятности занятости канала; · неизменность среднего времени занятости канала; · увеличение среднего времени простоя канала. В результате аналитического моделирования получены интересующие нас вероятностные характеристики системы. При аналитическом моделировании система ПРО рассматривалась в виде графа гибели и размножения, что позволило определить вероятности состояний из системы уравнений. Также эти характеристики могут быть посчитаны по заранее известным формулам. Расчет по эти формулам произведен в программе, листинг которой представлен в Приложении 2. Результаты аналитического моделирования представлены также в Приложении 3. А требуемые графики в Приложении 4.
Сопоставление полученных результатов для разработанных моделей Что бы убедиться в адекватности применяемых моделей СМО, воспользуемся статистическим критерием , который служит для проверки однородности двух независимых выборок. Если выборки однородны, то считают, что они извлечены из одной генеральной совокупности и, следовательно, имеют одинаковые, причем неизвестные, непрерывные функции распределения и . Таким образом, нулевая гипотеза состоит в том, что при всех значениях аргумента функции распределения равны между собой: . Для того чтобы при заданном уровне значимости и количестве степеней свободы проверить нулевую гипотезу об однородности двух независимых выборок объемов и () при конкурирующей гипотезе необходимо найти величину по формуле [2]:
, (5.1) и сравнить полученное значение с табличным для данных и . Если , нулевую гипотезу отвергают. Если , гипотеза об однородности выборок принимается. Зададимся уровнем значимости (число степеней свободы ), при объеме выборки . Значение для данных параметров равно 0,004. В качестве выберем вероятность занятости канала обслуживания для аналитической модели, а – для имитационной модели. Результаты расчетов сведем в таблицу. Таблица 5.1. Расчет значения
Из таблицы получили , поэтому принимаем нулевую гипотезу об однородности выборок. Таким образом, результаты сравнения показывают адекватность моделей.
Заключение В процессе выполнения данной индивидуальной работы была рассмотрена система массового обслуживания на примере системы ПРО с отказами и частичной взаимопомощью. Данная система ПРО была рассмотрена как система массового обслуживания с отказами и частичной взаимопомощью между каналами обслуживания. Для заданной системы были построены две модели: аналитическая модель и имитационная модель. Обе системы рассматриваются при следующих упрощениях: рассматривается простейший пуассоновский поток входящих заявок, простейший пуассоновский поток обслуживания, а также система работает в стационарном режиме. В аналитической модели можно путем решения алгебраической системы уравнений можно определить вероятностные характеристики системы – вероятность обслуживания, вероятность занятости канала, среднее время простоя канала и др. Имитационная модель строилась с учетом всех особенностей функционирования реальной системы и поэтому она достаточно точно описывает все вероятностные процессы. В основу имитационной модели положено рассмотрение работы системы на некотором отрезке времени. В результате этого можно определить вероятностные характеристики системы. Листинг программы имитационного моделирования приведен в Приложении 1.
На этапе сравнения двух построенных моделей с помощью критерия были сделаны следующие вывод – с точки зрения вычисления такой характеристики системы как вероятность отказа модели (аналитическая и имитационная) адекватны. Также была выявлена зависимость вероятностных характеристик системы от числа обслуживающих приборов, были получены следующие закономерности. Проводя моделирование при увеличении числа обслуживающих приборов от 3 до 6, наблюдаем: · увеличение вероятности обслуживания; · уменьшения вероятности занятости канала; · увеличение среднего времени простоя канала. Соответствующие зависимости в виде графиков представлены в Приложении 4.
Список используемой литературы
1. Южаков А.А. Прикладная теория систем массового обслуживания: Учеб. пособие, Пермь, Перм. гос. техн. ун-т, 2005. 2. Овчаров Л. А., Прикладные задачи теории массового обслуживания, Москва, Машиностроение, 1969. 3. Гмурман В. Е., Теория вероятностей и математическая статистика. М: Высшая школа, 2003. 4. ГОСТ 19.105-78. ЕСПД. Общие требования к программным документам.
Приложения Приложение 1 Листинг программы имитационного моделирования
program SMO_im; uses crt; const lambda=4.52; {Интенсивность простейшего входящего потока} mu=0.975; {Интенсивность простейшего потока обслуживания} eta=0.703; {Параметр нетерпимости заявки} time_t=1000000; {Время моделирования} n_kanalov=3; {Число каналов обслуживания} l=3; {Параметр взаимопомощи} var n_svob,p:integer; {кол-во свободных в данный момент приборов} vypolneno:real; {Количество выполненных заявок} kolvo,otkaz:longint; {Кол-во заявок, кол-во отказов} i,ok:integer; t:longint; {Текущее время при моделировании} t_z0,t_z,t_obs:real; {Интервалы обслуживания и занятости заявки} n:array[1..n_kanalov] of real;{Массив, в котором хранится время занятости текущего канала} t_zan:array[1..n_kanalov] of real;{Массив, в котором хранится общее время занятости каждого канала во время моделирования} n_vyp:array[1..n_kanalov] of integer; {Массив, в котором хранится кол-во заявок, выполненных каждым каналом} n_l_z:array[1..n_kanalov] of integer; Pobs:real; {Вероятность обслуживания} Lo,tpk,ksr:real; {Среднее число занятых каналов и плотность потока обслуживающих заявок}
n_zero:array[1..l] of integer; {Номера свободных в данный момент каналов обслуживания} pobs,pzk:real; {Вероятность занятости канала} begin randomize; t_z0:=0; kolvo:=0; otkaz:=0; vypolneno:=0; for i:=0 to n_kanalov do {Начальное обнуление параметров} begin n_vyp[i]:=0; t_zan[i]:=0; end; for t:=0 to time_t do {Основной цикл моделирования} begin for i:=1 to n_kanalov do {Цикл проверки окончания обслуживания заявки} begin if ((t>=n[i])AND(n[i]<>0)) then {Если текущее время больше, чем} begin n[i]:=0; vypolneno:=vypolneno+1/n_l_z[i]; n_l_z[i]:=0; end; продолжение Приложения 1 end; if (t>=t_z0) then {Генерации прихода новой заявки} begin t_z:=-100/lambda*ln((random(1000)+1)/1000);{генерация случайного интервала между заявками} t_z0:=t_z0+t_z; inc(kolvo); {Счётчик числа пришедших заявок увеличивается на единицу} n_svob:=0; for i:=1 to l do n_zero[i]:=0; {Обнуляется массив номеров свободных каналов} p:=1; for i:=1 to n_kanalov do {Цикл поиска свободных каналов} begin if (n[i]=0) then begin inc(n_svob); n_zero[p]:=i; inc(p); end; end; if (n_svob>=l) then begin {если число свободных каналов больше, чем l, то поступившая заявка обслуживается l} t_obs:=-100/(l*mu+eta)*ln((random(1000)+1)/1000);{Генерация времени обслуживания заявки} for i:=1 to l do {Распределяем обслуживание заявки по l каналам} begin n[n_zero[i]]:=t+t_obs; {Записываем время окончания обслуживания заявки} n_l_z[n_zero[i]]:=l; t_zan[n_zero[i]]:=t_zan[n_zero[i]]+t_obs;{Общее время занятости i-го канала} n_vyp[n_zero[i]]:=n_vyp[n_zero[i]]+1; {Число заявок, выполненных i-тым каналом} ok:=1; {Заявка поставлена на обслуживание} end; end else if (n_svob>0)AND(n_svob<l) then begin {если число свободных каналов меньше, чем l, то поступившая заявка обслуживается} t_obs:=-100/(n_svob*mu+eta)*ln((random(1000)+1)/1000); {Генерация времени обслуживания заявки} for i:=1 to n_svob do {Распределяем обслуживание заявки по оставшимся свободным каналам} begin n[n_zero[i]]:=t+t_obs; {Записываем время окончания обслуживания заявки} n_l_z[n_zero[i]]:=n_svob; t_zan[n_zero[i]]:=t_zan[n_zero[i]]+t_obs;{Общее время занятости i-го канала} n_vyp[n_zero[i]]:=n_vyp[n_zero[i]]+1; {Число заявок, выполненных i-тым каналом} ok:=1; {Заявка поставлена на обслуживание} end; продолжение Приложения 1 end else ok:=0; {иначе заявка не поставлена на обслуживание} if (ok<>1) then inc(otkaz); {Если заявка не поставлена на обслуживание, то увеличивается счётчик отказов на единицу}
end; end; {Окончание основного цикла моделирования} {Вычисление интересующих параметров по результатам моделирования} pzk:=0; for i:=1 to n_kanalov do pzk:=pzk+t_zan[i]/time_t; pzk:=pzk/n_kanalov; {Вычисление вероятности занятости канала} tpk:=0; for i:=1 to n_kanalov do if (n_vyp[i]<>0) then tpk:=tpk+(time_t-t_zan[i])/n_vyp[i]; ksr:=pzk*n_kanalov; {Вычисление среднего числа занятых каналов} Pobs:=(kolvo-otkaz)/kolvo; {Вычисление вероятности обслуживания} writeln('Число заявок ',kolvo); writeln('Выполнено ',vypolneno:5:0); writeln('Вероятность обслуживания ',Pobs:5:3); {Вывод результатов моделирования} writeln('Вероятность занятости канала ',pzk:5:3); writeln('Среднее число занятых каналов ',ksr:5:3); readln; end.
Приложение 2 Листинг программы аналитического моделирования
program SMO_an; uses crt; const l=4.52; m=0.703; n=6; ll=3; k=2000; function faktorial(a:integer):integer; var ii,fak:integer;
begin fak:=1; if a=0 then fak:=1; for ii:=1 to a do fak:=fak*ii; faktorial:=fak; end;
var p: array [0..n] of real; i,h,ns:integer; c:real;
begin h:=n div ll; ns:=h; c:=0; if n mod ll <>0 then ns:=ns+1; for i:=0 to ns do p[i]:=0; for i:=0 to ns-1 do c:=c+exp(i*ln(l))/(faktorial(i)*exp(i*ln(ll*m))); c:=c+exp(ns*ln(l))/(faktorial(ns-1)*n*m*exp((ns-1)*ln(ll*m))); p[0]:=1/c; for i:=1 to ns-1 do p[i]:=(p[i-1]*l)/(i*ll*m); {exp(i*ln(l))/(faktorial(i)*exp(i*ln(ll*m))*c);}
p[ns]:=p[ns-1]*l/(n*m); {exp(ns*ln(l))/(faktorial(ns)*m*exp((ns-1)*ln(ll*m))*c);} for i:=0 to ns do writeln('p[',i,']=',p[i]:4:5); writeln('n=',ns); writeln('Pobsl=',(1-p[ns]):3:6); writeln('l0=',(1-p[ns]):3:6); writeln('ksr=',(l/m)*p[ns]:3:6); readln; end. Приложение 3
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|