Анализ программы:
Анализ функционирования СМО с отказами в оптимальном режиме лучше всего проводить, сравнивая два противоположных показателя эффективности – вероятность обслуживания и коэффициент занятости средств. При этом предполагается, что два других исходных параметра, например среднее время и число объектов обслуживания, должны принимать постоянные значения. Для этих условий требуется определить значение величины, которая оптимизируется. Такой величиной является число средств обслуживания n.
Система массового обслуживания функционирует в оптимальном режиме, если вероятность обслуживания и коэффициент занятости средств имеют достаточно большие значения. При такой организации обслуживания простои средств обслуживания могут быть минимальными.
Проведём обоснование данному предположению. Пусть интенсивность входящего потока объектов
объекта/мин и среднее время обслуживания
мин. Требуется определить, при каких значениях Pобс и Kз величина n принимает оптимальное значение.
Проанализируем режим функционирования системы. Если число каналов обслуживания n=1, то Pобс=0,33 и Kз=0,67. Заметим, что вероятность обслуживания очень мала, а коэффициент занятости средств высок. Разность между ними составляет 0,34. Расхождение между этими показателями эффективности налицо. Недостаточная вероятность обслуживания, очевидно, орган управления не устраивает. Следовательно, избранный вариант организации обслуживания не оптимален.
Увеличим число каналов обслуживания до двух, тогда Pобс=Kз=0,6. Разность между этими показателями эффективности исчезает. Заметим, что с увеличением n на одну единицу вероятность обслуживания возросла почти в два раза. Коэффициент занятости средств при этом уменьшился незначительно.
Принимаем n=3. При этом значении n вероятность обслуживания Pобс=0,8. Она увеличилась на 0,47 по сравнению с Pобс=0,33 при n=1. Наблюдается неуклонное возрастание Pобс. Коэффициент же занятости средств принял значение 0,52, т.е. уменьшился на 0,15 (в сравнение с n=1). Разность между Pобс и Kз снова возросла: 0,8-0,52=0,28. Таким образом, один показатель эффективности – вероятность обслуживания улучшился, другой – коэффициент занятости ухудшился.
Проанализируем изменение основных показателей эффективности при n=4. В этом случае вероятность обслуживания Pобс возросла по сравнению с предыдущим числом незначительно и стала равной 0,9. Коэффициент занятости каналов обслуживания резко уменьшился и стал равен 0,45. Разность между двумя показателями снова возросла: 0,9-0,45=0,45. Следовательно, с увеличением n вероятность обслуживания неуклонно увеличивается, а коэффициент занятости каналов обслуживания уменьшается.
Отсюда следует вывод о том, что число средств, необходимое для обслуживания, можно считать оптимальным, если вероятность обслуживания и коэффициент занятости принимают одинаковые значения при постоянных значениях двух других исходных параметров:
и
.
Следовательно
, если
при
и
.
4.2. Графическое решение модели операторской подсистемы управления базами данных.
Листинг:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;
type
TForm1 = class(TForm)
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
Series4: TLineSeries;
Series5: TLineSeries;
Panel1: TPanel;
Mu1: TLabeledEdit;
N: TLabeledEdit;
M: TLabeledEdit;
Mu2: TLabeledEdit;
procedure Drw(Sender: TObject);
procedure Draw_P(ASeries:TChartSeries;_L1:Extended);
function Gett():integer;
private
_L1:Extended;
_L2:Extended;
_M1:Extended;
_M2:Extended;
_N:integer; // каналы
_M:integer; // операторы
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function fact(n:integer):Extended;
var i:integer;
Rez:Extended;
begin
Rez:=1;
if n>=2 then
for i:=2 to n do
Rez:=Rez*i;
fact:=Rez;
end;
function P0(Lambda:Extended;Mu:Extended;N:integer):Extended;
var j:integer;
Rez:Extended;
fak:Extended;
begin
Rez:=1;
fak:=1;
for j:=1 to N do
begin
fak:=fak*j;
Rez:=Rez + exp(j*ln(Lambda/Mu))/fak;
end;
P0:=1/Rez;
end;
function q1(Lambda:Extended; Mu:Extended; N:integer):Extended;
begin
q1:=1 - exp(N*ln(Lambda/Mu))/fact(N)*P0(Lambda,Mu,N);
end;
function P0_2(L2:Extended;M2:Extended;m:integer;n:integer):Extended;
var j:integer;
Rez,Tp,k:Extended;
begin
Rez:=1;
Tp:=L2/M2;
k:=1;
for j:=1 to m do
begin
k:=k*j;
Rez:=Rez+exp(j*ln(Tp))/k;
end; //k:=m!
Rez:=Rez+exp((m+1)*ln(Tp))*(1-exp((n-m)*ln(Tp/m)))/(m*k*(1-Tp/m));
P0_2:=1/Rez;
end;
function q2(L2:Extended;M2:Extended;m:integer;n:integer):Extended;
begin
q2:=1-exp(n*ln(L2/M2))*P0_2(L2,M2,m,n)/(exp((n-m)*ln(m))*fact(m));
end;
procedure TForm1.Draw_P(ASeries:TChartSeries;_L1:Extended);
Var t:Longint;
begin
_L2:=_L1*q1(_L1,_M1,_N);
// L2.Text:=FloatToStr(_L2);
ASeries.Clear;
for t:=_M to _N do
Begin
ASeries.AddXY(t,q2(_L1*q1(_L1,_M1,t),_M2,_M,t),'');
end;
end;
procedure TForm1.Drw(Sender: TObject);
begin
if Gett()=0 then begin
Draw_P(Series1,0.1); Series1.Title:='L1=0.1';
Draw_P(Series2,0.25); Series2.Title:='L1=0.25';
Draw_P(Series3,0.5); Series3.Title:='L1=0.5';
Draw_P(Series4,2); Series4.Title:='L1=1';
Draw_P(Series5,5); Series5.Title:='L1=5';
Chart1.BottomAxis.Title.Caption:='длина очереди';
Chart1.BottomAxis.Increment:=1;
end;
end;
function TForm1.Gett():integer;
begin
Result:=0;
if (Mu1.Text<>'') AND (Mu2.Text<>'') AND (N.Text<>'') AND (M.Text<>'') then
begin
_M1:=StrToFloat(Mu1.Text);
_M2:=StrToFloat(Mu2.Text);
_M:=StrToInt(M.Text);
_N:=StrToInt(N.Text);
end;
if (_M1=0) OR (_M2=0) then Result:=-1;
if (_M>=_N) then Result:=-1;
end;
end.
Тест программы:

Рис. 4.2
Анализ программы:
Данная программа иллюстрирует вероятность обслуживания абонента операторской подсистемы.
Заключение
Система управления базами данных представляет собой сложную систему, состоящую из последовательно соединённых канальной, операторской и технической подсистем. Поэтому для её моделирования целесообразно использовать многофазную систему массового обслуживания. Частными моделями, составляющих СУБД являются: для канальной подсистемы – n-канальная СМО с отказами; для операторской подсистемы – m-канальная СМО с ограниченной очередью; для технической подсистемы – k-канальная СМО с ограниченным временем ожидания.
Определение числа обслуживающих элементов в подсистемах управления базами данных (соответственно n, m и k) осуществляется при решении оптимизационной задачи распределения ограниченного ресурса, а целевой функцией является максимизация произведения условных вероятностей обслуживания заявки в подсистемах.
Список литературных источников
1. Вентцель Е.С., Овчаров Л.А. Теория вероятностей и её инженерные приложения. – М.: Высш. шк., 2000. – 480 с.
2. Кочетков П.А. Краткий курс теории вероятностей и математической статистики. Учебное пособие, Москва, 1999, 51 с.
3. Лукин А.И. Системы массового обслуживания: Анализ систем массового обслуживания с отказами в военной практике. – М.: Воениздат, 1980. – 189 с., ил.
4. Феллер В. Введение в теорию вероятностей и её приложения. – Изд. № 1/2217, Зак. 1623, ИЗДАТЕЛСТВО «МИР», Москва, 1964, 493 с.