Смекни!
smekni.com

Исследование математических моделей оптимизации обслуживания сложных систем (стр. 5 из 5)

Расчёт производился двумя методами : непараметрический метод основанный на статистических данных; параметрический метод основанный на функции распределения времени безотказной работы. Значения оптимальных характеристик для расчёта параметрическим методом основанным на функции распределения точнее. При увеличении объёма статистических данных результаты расчёта первым методом стремятся к значениям оптимальных характеристик для второго метода.

Демонстрация работы программы, блок-схемы алгоритмов, листинг кода предоставлены в разделе Приложения.


4 Список использованных источников

1. Систем анализ / А. В. Антонов – Москва, “Высшая школа”, 2004.

2. Модели технического обслуживания сложных систем / Е. Ю. Бразилович – Москва, “Высшая школа”, 1982.

3. Организация обслуживания при ограниченной информации о надёжности системы / Е. Ю. Бразилович, В. А. Каштанов – Москва, “Советское радио”, 1975.

4. Некоторые математические вопросы теории обслуживания сложных систем / Е. Ю. Бразилович, В. А. Каштанов, Москва, “Радио и связь”, 1971.

5. Теория систем / В. А. Острековский – Москва, “Высшая школа”, 1997.

6. Материалы с сайта Студенческий портал - СтудПроспект


Приложение А

· Блок-схемы алгоритмов

Стратегии имеют похожие алгоритмы вычисления используемых функций. Ниже представлены блок-схемы алгоритмов для стратегии В (для расчёта по статистическим данным) :

· Коэффициент готовности :

Рисунок 5 – Алгоритм вычисления коэффициента готовности

Рисунок 6 – Алгоритм вычисления коэффициента готовности (продолжение)


Средние удельные потери :

Рисунок 7 – Алгоритм вычисления средних удельных потерь

· Средняя удельная прибыль :

Рисунок 8 – Алгоритм вычисления средней удельной прибыли

· Вероятность выполнения задачи :

Рисунок 9 – Алгоритм вычисления вероятности выполнения задачи


Рисунок 10 – Алгоритм вычисления вероятности выполнения задачи (продолжение)


Рисунок 11 – Алгоритм вычисления вероятности выполнения задачи (продолжение)


Приложение Б

· Листинг кода основных функций программы :

function A(k:integer):real; // Коэффициент готовности. Стратегия В.

var Sum1,Sum2,Sum3,Sum4:real;

i:integer;

begin

Sum1:=0;

for i:=0 to k do

Sum1:=Sum1+y[i]*(pi[i+1]-pi[i]);

Sum2:=0;

for i:=k+1 to n do

Sum2:=Sum2+(pi[i+1]-pi[i]);

Sum3:=0;

for i:=0 to k do

Sum3:=Sum3+(y[i]+Tap)*(pi[i+1]-pi[i]);

Sum4:=0;

for i:=k+1 to n do

Sum4:=Sum4+(y[k+1]+Tpp)*(pi[i+1]-pi[i]);

A:=(Sum1+y[k+1]*Sum2)/(Sum3+Sum4);

end;

function B(k:integer):real; // Средние удельные потери. Стратегия В.

var Sum:real;

i:integer;

begin

Sum:=0;

for i:=0 to k do

Sum:=Sum+y[i]*(pi[i+1]-pi[i]);

B:=(Cap*Tap*pi[k+1]+Cpp*Tpp*(1-pi[k+1]))/(Sum+y[k+1]*(1-pi[k+1]));

end;

function C(k:integer):real; // Средняя удельная прибыль. Стратегия В.

var Sum:real;

i,m:integer;

begin

Sum:=0;

for i:=0 to k do

Sum:=Sum+y[i]*(pi[i+1]-pi[i]);

C:=(C0*(1-pi[k+1])*y[k+1]+(C0*Sum-Cap*Tap*pi[k+1]-Cpp*Tpp*(1-pi[k+1])))/(y[k+1]*(1-pi[k+1])+Sum+Tap*pi[k+1]+Tpp*(1-pi[k+1]));

end;

function D(t:integer):real; // Вероятность выполнения задачи. Стратегия В.

var Sum1,Sum2,Sum3,Sum4,Sum5:real;

i,k0,m:integer;

begin

k0:=-1;

for i:=0 to n do

if (y[i]-z<=0)and(y[i+1]-z>0) then k0:=i;

m:=k0+1;

Sum1:=0;

for i:=k0+1 to n do

Sum1:=Sum1+(pi[i+1]-pi[i]);

Sum2:=0;

for i:=k0+1 to m do

Sum2:=Sum2+(pi[i+1]-pi[i])*(y[i]-z);

Sum3:=0;

for i:=m+1 to n do

Sum3:=Sum3+(pi[i+1]-pi[i]);

Sum4:=0;

for i:=0 to k0 do

Sum4:=Sum4+(pi[i+1]-pi[i])*(y[i]+Tap);

Sum5:=0;

for i:=k0+1 to n do

Sum5:=Sum5+(pi[i+1]-pi[i])*(t+Tpp);

if (t>=0)and(t<y[k0+1]-z) then

D:=(Sum1*t)/(Sum4+Sum5)

else D:=(Sum2+Sum3*t)/(Sum4+Sum5);

end;

function A1(k:integer):real; // Коэфициент готовности. Стратегия С.

var Sum:real;

i:integer;

begin

Sum:=0;

for i:=0 to k do

Sum:=Sum+y[i]*(pi[i+1]-pi[i]);

A1:=(Sum+y[k]*(1-pi[k+1]))/(y[k]+Tap*pi[k+1]+Tpp*(1-pi[k+1]));

end;

function B1(k:integer):real; // Средние удельные потери. Стратегия С.

var Sum1,Sum2:real;

i:integer;

begin

Sum1:=0;

for i:=0 to k do

Sum1:=Sum1+Cp*(y[k]-y[i])*(pi[i+1]-pi[i]);

Sum2:=0;

for i:=0 to k do

Sum2:=Sum2+y[i]*(pi[i+1]-pi[i]);

B1:=(Cap*Tap*pi[k+1]+Cpp*Tpp*(1-pi[k+1])+Sum1)/(Sum2+y[k]*(1-pi[k+1]));

end;

function C1(k:integer):real; // Средняя удельная прибыль. Стратегия С.

var Sum:real;

i,m:integer;

begin

Sum:=0;

for i:=0 to k do

Sum:=Sum+y[i]*(pi[i+1]-pi[i]);

C1:=((C0*(1-pi[k+1])-Cp*pi[k+1])*y[k+1]+((C0+Cp)*Sum-Cap*Tap*pi[k+1]-Cpp*Tpp*(1-pi[k+1])))/(y[k]+Tap*pi[k+1]+Tpp*(1-pi[k+1]));

end;

function D1(t:integer):real; // Вероятность выполнения задачи. Стратегия С.

var Sum1,Sum2,Sum3,Sum4,Sum5:real;

i,k0,m:integer;

begin

k0:=-1;

for i:=0 to n do

if (y[i]-z<=0)and(y[i+1]-z>0) then k0:=i;

m:=k0+1;

Sum1:=0;

for i:=k0+2 to n do

Sum1:=Sum1+(pi[i+1]-pi[i]);

Sum2:=0;

for i:=k0+1 to m do

Sum2:=Sum2+(pi[i+1]-pi[i])*(y[i]-z);

Sum3:=0;

for i:=m+1 to n do

Sum3:=Sum3+(pi[i+1]-pi[i]);

Sum4:=0;

for i:=0 to k0 do

Sum4:=Sum4+(pi[i+1]-pi[i])*(t+Tap);

Sum5:=0;

for i:=k0+1 to n do

Sum5:=Sum5+(pi[i+1]-pi[i])*(t+Tpp);

if (t>=0)and(t<y[k0+1]-z) then

D1:=(Sum1*t)/(Sum4+Sum5)

else D1:=(Sum2+Sum3*t)/(Sum4+Sum5);

end;


Приложение В

· Демонстрация работы программы :

Рисунок 12 – Отчёт о проделанной работе

Рисунок 13 – Определение оптимальных значений

Рисунок 14 – Расчёт по функции распределения

Рисунок 15 – Расчёт по статистическим данным