close

Вход

Забыли?

вход по аккаунту

?

МИО ЛР5

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Белгородский государственный технологический университет
имени В.Г. Шухова
ИИТУС
Кафедра информационных технологий
Лабораторная работа №5 по дисциплине "Методы исследования операций".
Задача комплектования ресурсами многоканальной модели СМО с ожиданием (с очередью)
Выполнение:____________________Защита:__________________________
Выполнила:
студентка группы ИТ-41 Кардашова Н.Р.
Проверил: Подгорный Н.Н.
Глухоедов А.В.
Белгород 2013
Лабораторная работа №4 Задача комплектования ресурсами многоканальной модели СМО с ожиданием (с очередью)
Цель работы: приобрести практические навыки решения задачи комплектования ресурсами многоканальной СМО с ожиданием (с очередью).
Задание:
Предполагается, что средний объем работы СМО составляет W единиц работы. Для рассматриваемой системы определить её производительность так чтобы выполнялись выбранные критерии оптимальности (минимум 2 критерия). При решении задачи принять следующие допущения:
* Плотность распределения интервала между поступлениями заявок имеет вид: * Плотность распределения обслуживания заявок имеет вид:
* Число мест в очереди ограничено числом m, n - число каналов
а также определить следующие характеристики
* Вероятность отказа: * Относительную пропускную способность: q=1-Pотк
* Абсолютную пропускную способность: A=λq
* Среднее число занятых каналов: =A/µ
* Среднее число заявок в очереди: = * Среднее число заявок в системе: =+
* Среднее время ожидания заявки в очереди:
* Среднее время пребывания заявки в системе: Выполнение
В качестве многоканальных СМО с ограниченной очередью рассмотрим терминальные залы с двумя терминалами каждый(n=2). Возможная длина очереди(m=3). Терминалы зала А обладают производительностью μа = 5.41, т.е. обрабатывают 130 заявки в день (μа=130/24). Терминалы зала В обладают производительностью μb = 5, т.е. каждый из терминалов обрабатывает 120 заявок в день (μb=120/24). В день в среднем поступает 140 заявок, не зависимо от терминала(λ1=λ2=140/24=5,83). В качестве критерия оптимальности установим прибыль, полученную за счет комиссии с каждого платежа. Комиссия за осуществление одного платежа составляет 5%. Условимся, что величина одного платежа S. * Граф состояний и переходов (ГСП)
Рассмотренные СМО могут находиться в 5-ти состояниях:
― S0 - все терминалы свободны;
― S1 -занят один терминал;
― S2 -заняты оба терминала;
― S3 -заняты оба терминала, одна заявка стоит в очереди;
― S4 -заняты оба терминала, две заявки стоят в очереди;
― S5 -заняты оба терминала, три заявки стоят в очереди.
Система ДУ Колмогорова и критерии оптимальности
Предельные вероятности определяются по следующим формулам:
Вероятность того, что все каналы свободны: .
Вероятность n-го состояния СМО: .
Вероятность n+1 состояния СМО: .
Вероятность n+2состояния СМО: .
Вероятность n+mсостояния СМО: .
Используя созданную программу, решим СДУ Колмагорова, определим предельные вероятности и основные характеристики для каждой из ранее описанных СМО при работе в течении суток:
Абсолютная пропускная способность в терминальном зале А(А=5,51) выше чем в терминальном зале В(А=5,44), т.е. среднее число заявок, обслуживаемых в единицу времени в терминальном зале В будет ниже. Рассчитаем среднесуточную прибыль обоих терминальных залов:
ПА=АА*24*S*5/100=6,612S
ПB=АB*24*S*5/100=6,528S
Исходный текст программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, Grids, ExtCtrls, Menus, Math;
type
vect=array of real;
matr=array of vect;
TForm1 = class(TForm)
LEd_P1: TLabeledEdit;
Button1: TButton;
Label2: TLabel;
SGRes1: TStringGrid;
Label4: TLabel;
LEd_do: TLabeledEdit;
LEd_ro1: TLabeledEdit;
LEdmu: TLabeledEdit;
LEdl: TLabeledEdit;
LEd_Ot: TLabeledEdit;
LEd_T1: TLabeledEdit;
SGP1: TStringGrid;
LEdH: TLabeledEdit;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit4: TLabeledEdit;
LabeledEdit6: TLabeledEdit;
LabeledEdit9: TLabeledEdit;
LabeledEdit10: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
LabeledEdit5: TLabeledEdit;
procedure FormCreate(Sender: TObject);
procedure SG_Title(n:byte);
procedure main(l,mu:real;SG_res,SG_p:TStringGrid;var p0:real;n,m:byte);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SG_Title(n:byte);
var i:byte;
begin
for i:=0 to n do
begin
SGRes1.Cells[i,0]:='P'+inttostr(i);
SGP1.Cells[i,0]:='P'+inttostr(i);
end;
end;
function F(p:array of real; i,n:byte; l:matr):real;
var j:byte;
begin
result:=0;
for j:=0 to n do
result:=result+l[i,j]*p[j];
end;
procedure Runge_Kutti(l:matr; var p:array of real; n:byte; h:real);
var i,j:byte;
k:matr;
tmp:vect;
begin
setlength(k,n+1,4);
setlength(tmp,n+1);
for i:=0 to n do
begin
k[i,0]:=h*F(p,i,n,l);
tmp[i]:=p[i]+k[i,0]/2;
end;
for i:=0 to n do
begin
k[i,1]:=h*F(tmp,i,n,l);
tmp[i]:=p[i]+k[i,1]/2;
end;
for i:=0 to n do
begin
k[i,2]:=h*F(tmp,i,n,l);
tmp[i]:=p[i]+k[i,2];
end;
for i:=0 to n do
k[i,3]:=h*F(tmp,i,n,l);
for i:=0 to n do
p[i]:=p[i]+1/6*(k[i,0]+2*k[i,1]+2*k[i,2]+k[i,3])
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SG_Title(2);
end;
function fak(k:byte):word;
var i:byte;
begin
result:=1;
if k<>0 then
for i:=1 to k do
result:=result*i;
end;
procedure form_matr(var matrix:matr; l,mu:real;n,size:byte);
var i,j,k:byte;
begin
for i:=0 to size do
for j:=0 to size do
matrix[i,j]:=0;
matrix[0,0]:=-l;
matrix[0,1]:=mu;
for i := 1 to n-1 do
begin
matrix[i,i-1]:=l;
matrix[i,i]:=-(l+i*mu);
matrix[i,i+1]:=(i+1)*mu;
end;
for i:=n to size-1 do
begin
matrix[i,i-1]:=l;
matrix[i,i]:=-(l+n*mu);
matrix[i,i+1]:=n*mu;
end;
matrix[size, size-1]:=l;
matrix[size,size]:=-n*mu;
end;
procedure TForm1.main(l,mu:real;SG_res,SG_p:TStringGrid; var p0:real;n,m:byte);
var i,j,k:byte;
h,T_,t,ro,tmp:real;
p:array of real;
s:matr;
size:byte;
begin
size:=n+m;
SetLength(p,size+1);
SetLength(s,size+1,size+1);
form_matr(s,l,mu,n,size);
sg_title(size+1);
SG_p.ColCount:=size+1;
SG_res.ColCount:=size+1;
p[0]:=1;
for i:=1 to size do p[i]:=0;
h:=StrToFloat(LEdH.Text);
t:=StrToFloat(LEd_Ot.Text);
T_:=StrToFloat(LEd_do.Text);
while t<=T_ do
begin
Runge_Kutti(s,p,size,h);
t:=t+h;
end;
for i:=0 to size do
SG_Res.Cells[i,1]:=FloatToStr(roundto(p[i],-3));
ro:=l/mu;
tmp:=0;
for i:=0 to n do
tmp:=tmp+power(ro,i)/fak(i);
p[0]:=power(ro,n)/fak(n)*(ro/n-power(ro/n,m+1))/(1-ro/n);
p[0]:=power(p[0]+tmp,-1);
for i:=1 to n do
p[i]:=power(ro,i)/fak(i)*p[0];
for i:=1 to m do
p[n+i]:=power(ro,n+i)/power(n,i)/fak(n)*p[0];
for i:=0 to size do
SG_p.Cells[i,1]:=FloatToStr(roundto(p[i],-3));
p0:=p[0];
end;
procedure TForm1.Button1Click(Sender: TObject);
var ro,mu,l,p0,potk,A,q,r,k,w,toj,tcmo,z:real;
n,m,i:byte;
begin
m:=StrToInt(LabeledEdit10.Text);
n:=StrToInt(LabeledEdit5.Text);
mu:=StrToFloat(LEdmu.text);
l:=StrToFloat(LEdl.text);
main(l,mu,SGRes1,SGP1,p0,n,m);
ro:=l/mu;
potk:=power(ro,m+n)/power(n,m)/fak(n)*p0;
q:=1-potk;
A:=l*q;
z:=A/mu;
r:=0;
for i:=0 to m-1 do
r:=r+ (i+1)*power(ro/n,i);
r:=r*power(ro,n+1)*p0/n/fak(n);
k:=r+z;
toj:=0;
for i:=0 to m-1 do
toj:=toj+ (i+1)*power(ro/n,i);
toj:=toj*power(ro,n)*p0/n/mu/fak(n);
tcmo:=toj+q/mu;
LEd_ro1.Text:=FloatToStr(ro);
LEd_P1.Text:=FloatToStr(potk);
LabeledEdit9.Text:=floatToStr(q);
LabeledEdit6.Text:=floatToStr(A);
LabeledEdit4.Text:=floatToStr(z);
LabeledEdit1.Text:=floatToStr(r);
LEd_T1.Text:=FloatToStr(k);
LabeledEdit2.Text:=floatToStr(toj);
LabeledEdit3.Text:=floatToStr(tcmo);
end;
end.
Документ
Категория
Рефераты
Просмотров
23
Размер файла
306 Кб
Теги
мио, лр5
1/--страниц
Пожаловаться на содержимое документа