КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Результаты работы СМО ⇐ ПредыдущаяСтр 5 из 5
Текст программы моделируемая СМО в среде программирования С++ #include<iostream.h> #include<stdio.h> #include<math.h> #include<conio.h> #include <stdlib.h> #include <fstream.h> #include <time.h> #include<windows.h> char* rus(const char* stroka); char Rus[256];
//получение равномерно распределенных величин double get_ravn() { return (rand() % 100) * 0.01; }
//вычисление Эрганговской случайной величины double erlang(double c) { int k=8; double x; x=0; for (int j=0; j<k; j++) { x=-1*pow(c,-1)*log(get_ravn()+0.0001); } return x; }
void main() { double lambda, mu, Tk, Tc=0, T1=0, T=0, VO=0, T2=0, p, A, Pobs, Potk, r=0,r1=0,r2=0; int i, Zp=0, Zob=0, Zno=0; cout<<rus("Кол-во реализаций = "); cin>>p; cout<<endl; cout<<rus("Лямбда = "); cin>>lambda; cout<<endl; cout<<rus("Мю = "); cin>>mu; cout<<endl; cout<<rus("Время выполнения = "); cin>>Tk; cout<<endl<<endl; for (i=0; i<p; i++) { Tc=0; T1=0; T=0; T2=0; Zp=0; Zob=0; Zno=0; VO=0; cout<<endl<<endl; cout<<rus("РЕАЛИЗАЦИЯ № ")<<(i+1)<<endl<<endl; do { r=erlang(lambda); Tc=Tc+r; Zp=Zp+1; if(Tc>=T1) { r1=erlang(mu); T1=Tc+r1; VO=VO+r1; Zob=Zob+1; T=T1; } else { if (Tc>=T2) { r2=erlang(mu); T2=Tc+r2; VO=VO+r2; Zob=Zob+1; T=T2; } else{ Zno++; } } } while(T<=Tk); A=Zob/Tk; Pobs=Zob*pow(double(Zp),-1); Potk=Zno*pow(double(Zp),-1); cout<<rus("Время обслуживания системы= ")<<VO<<endl; cout<<rus("Количество поступивших заявок= ")<<Zp<<endl; cout<<rus("Количество обслуженных заявок= ")<<Zob<<endl; cout<<rus("Количество отказанных заявок= ")<<Zno<<endl; cout<<rus("Интенсивность поступления заявки= ")<<Zp*pow(Tk,-1)<<endl; cout<<rus("Интенсивность обслуживания заявки=")<<Zob*pow(VO,-1)<<endl; cout<<rus("Относительная пропускная способность= ")<<Zob*pow(double(Zp),-1)<<endl; cout<<rus("Абсолютная пропускная способность = ")<<A<<endl; cout<<rus("Количество занятых каналов = ")<<A*pow(mu,-1)<<endl; cout<<rus("Время простоя системы = ")<<Tk-VO<<endl; cout<<rus("Вероятность простоя системы = ")<<(T-VO)/T<<endl; cout<<rus("Вероятность отказа = ")<<Potk<<endl<<endl; } getch(); }
char* rus (const char* stroka) { CharToOem(stroka,Rus); return Rus; } Результат работы программы моделирования СМО в среде программирования С++ Вводимые первоначальные данные:
Результат работы:
Заключение В ходе курсовой работы была построена модель СМО и исследована на поведение характеристик её эффективности. С учетом того, что имеется двухканальная система массового обслуживания с отказами, на которую поступает произвольный поток заявок. Поступившие заявки попадают на обслуживание. Поток обслуживается произвольно. Данная курсовая была решена законом Эрланга, с учетом коэффициентов. При модуляции данной задачи в среде программирования С++ выведены средненные значения характеристики эффективности работы СМО:
· Время обслуживания системы = 68,27 · Количество поступивших заявок = 470 · Количество обслуженных заявок = 395 · Количество отказанных заявок = 76 · Интенсивность поступления заявки = 4,7 · Интенсивность обслуживания заявки = 5,7931 · Относительная пропускная способность = 0,83921 · Абсолютная пропускная способность = 3,9 · Количество занятых каналов = 0,6575 · Время простоя системы = 31,73 · Вероятность простоя системы =0,16079 · Вероятность отказа = 0,16079
Используемая литература
|