Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
стоматол.doc
Скачиваний:
8
Добавлен:
20.04.2015
Размер:
137.73 Кб
Скачать

Постановка задачи

В стоматологической поликлинике «32 зуба» в г.Кемерово работает 4 врача. Рабочий день с 9 до 18 часов (8 часов). В среднем в течении дня обслуживается 65 клиентов (в среднем в течении часа 65/8=9,5). Среднее время обслуживания 1 клиента 30 минут (1/2 часа). Стоимость 1 часа работы стоматолога составляет 1200 рублей. Стоимость потерь, связанных с простаиванием стоматолога без работы составляет 2500 рублей в час. Стоимость потерь, связанных с простаиванием клиента в очереди составляет 20 рублей в час.

Необходимо проанализировать работу стоматологической поликлиники и сделать выводы по эффективности работы.

Математическая постановка задачи.

Рассмотрим систему, состоящую из 4 обслуживающих приборов, работающих параллельно и независимо друг от друга. Предположим, что на систему поступает поток требований со средней интенсивностью 65/8 заказов в час (65 заказов / на 8 часов работы ). Время обслуживания каждого требования случайно. Средняя интенсивность обслуживания 30 минут ( 1/2 часа). Если требование (клиент), поступившее в систему, застает все приборы занятыми, то оно встает в очередь и ждет до тех пор, пока прибор не освободится. В каждый момент времени любой прибор может обслужить не более одного требования. Требуется проанализировать работу системы и рассмотреть способы увеличения прибыли.

Обозначим Pk(t) – вероятность того, что в момент времени t в системе находится k-требований. Будем считать, что в начальный момент t=0 в системе не было требований.

Начальные условия задаются следующим образом:

Pо(0)=1 , k=1, 2, 3… Pk (0)=0

  1. Вероятность того, что в системе отсутствуют требования (все свободны, заказов нет):

  1. Вероятность того, что в системе k-приборов занято обслуживанием:

  1. Вероятность того, что все приборы заняты:

  1. Вероятность того, что в очереди находятся s требований:

  1. Среднее время, в течение которого требование ждет начала обслуживания:

  1. Вероятность того, что время ожидания в очереди больше заданного времени Т=Т0:

  1. Средняя длина очереди – А:

  1. Среднее число требований, находящихся в системе – В:

  1. Среднее число свободных приборов – No:

  1. N3-Среднее число приборов, занятых обслуживанием

  1. Коэффициент простоя приборов – Kn:

  1. Коэффициент загрузки приборов:

  1. Экономическая эффективность (Суммарные потери за отчетный период):

q1– стоимость потерь, связанных с простаиванием требования в очереди 20 руб

q2– стоимость единицы времени простоя прибора в системе 2500 руб

q3– стоимость единицы времени эксплуатации прибора 1200 руб

Программа.

Program RGR (imput, YY);

uses CRT;

type

list= array [1..1000] of real;

var

Q,Qdn, P0, PP, ALF, BET,Be, Pt, SPk, TT,A,B,N0,Kn,Nz,Kz,GG, St1, St2, St3 : real;

TT1,m,n,nm1,k,i,L1,Vr : integer;

Pk: list;

YY: Text;

{вычисление n!}

function FAC (m: integer): integer;

var

i,nn : integer;

begin

IF m=0 then

FAC:=1

else

begin

nn:=1;

for i:=1 to m do

begin

nn:=nn*i;

end;

FAC:=nn;

end;

end;

function Si (m,k: integer): Longint;

var

i,nn : longint;

begin

nn:=1;

for i:=1 to k do

begin

nn:=nn*m;

end;

Si:=nn;

end;

function S (m: real;k: integer): real;

var

nn : real;

i : integer;

begin

nn:=1.0;

for i:=1 to k do

begin

nn:=nn*m;

end;

S:=nn;

end;

begin ClrScr;

assign(YY,'ст1.txt');

REWRITE(YY);

write ('введите количество обслуживающих устройств:');

readln (n);

writeln(YY,'n=',n:4);

write('Введите среднее число требований в день=');

readln(ALF);

write('Продолжительность рабочего дня=');

readln(Vr);

ALF:=ALF/Vr;

writeln (YY,'среднее число требований в час=',ALF:6:2);

write ('введите время обслуживания 1 требования (в минутах):');

readln (BET);

BET:=BET/60;

writeln(YY,'Время обслуживания 1 требования в час=',BET:6:2);

write ('введите стоимость часа работы одного прибора :');

readln (St3);

write ('введите стоимость часа простаивания одного прибора :');

readln (St2);

write ('введите стоимость часа простаивания одного требования (заказа) в очереди:');

readln (St1);

SPk:=0.0;

nm1:=n-1;

BET:=1/BET;

Q:=ALF/BET;

P0:=1.0;

for i:=1 to nm1 do

begin

P0:=P0+S(Q,i)/FAC(i);

end;

P0:=P0+S(Q,n)/FAC(nm1)/(n-Q);

P0:=1.0/P0;

writeln(YY,'вероятность того, что в системе отсутствуют требования: ', P0:9:7);

writeln;

SPk:=SPk+P0;

for i:=1 to n do

begin

Pk[i]:=P0*S(Q,i)/FAC(i);

SPk:=SPk+Pk[i];

writeln (YY,'вероятность того, что в системе работают ',i:3,'прибора : ', Pk[i]:9:7);

end;

writeln;

PP:=P0*S(Q,n)/FAC(nm1)/(n-Q);

writeln (YY,'вероятность того, что все приборы заняты: ', PP:9:7);

writeln;

Qdn:=Q/n;

I:=n;

while SPk < 0.9999 do

begin

i:=i+1;

Pk[i]:=P0*S(Qdn,i)*Si(n,n)/FAC(n);

SPk:=SPk+Pk[i];

writeln (YY,'вероятность того, что в очереди ',(i-n):3,'требования : ', Pk[i]:9:7);

writeln (YY,'Сумма Pk: ',SPk:9:7);

end;

writeln;

TT:=PP/(n*BET-ALF);

TT1:=ROUND(TT*60);

writeln (YY,'среднее время ожидания в очереди( в час): ', TT:9:3);

writeln(YY,'среднее время ожидания в очереди (в минут)= ',TT1:6);

writeln;

Pt:=PP/exp((n*BET-ALF)*TT);

writeln (YY,'вероятность того, что время ожидания в очереди превышено: ', Pt:9:7);

writeln;

A:=Qdn*Pk[n]/(SQR(1-Qdn));

writeln (YY,'средняя длина очереди: ', A:9:3);

writeln;

B:=0.0;

for i:=1 to nm1 do

begin

B:=B+S(Q,i)/FAC(i-1);

end;

B:=B*P0;

B:=B+n*Pk[n]/(1.0-Qdn);

B:=B+A;

writeln (YY,'среднее число требований находящихся в системе: ', B:9:3);

writeln;

N0:=n;

for i:=1 to nm1 do

begin

N0:=N0+S(Q,i)*(n-i)/FAC(i);

end;

N0:=N0*P0;

writeln (YY,'среднее число свободных приборов: ', N0:9:3);

writeln;

Kn:=N0/n;

writeln (YY,'Коэффициент простоя приборов: ', Kn:9:3);

writeln;

Nz:=n-N0;

writeln (YY,'среднее число занятых приборов: ', Nz:9:3);

writeln;

Kz:=Nz/n;

writeln (YY,'Коэффициент загрузки приборов: ', Kz:9:3);

writeln;

GG:=30*Vr*(A*St1+N0*St2+Nz*St3);

writeln (YY,'Потери предприятия в рублях: ', GG:12:3);

writeln;

CLOSE(YY)

end.