
-
Реализация программы.
Итак, нам необходимо решить задачу СМО и довести ее до программной реализации.
Из условия задачи видно, что система является многоканальной с отказами. Число каналов системы равно 3 (соответствует числу самолетов-дозаправщиков). Самолеты подходят к району дозаправки со средним интервалом в 150 секунд (среднее время появления события), значит интенсивность появления событий λ=1/2,5=0,4 самолета появляется в 1 минуту (150 секунд = 2,5 минутам). Самолет производит дозаправку, на что в среднем уходит 10 минут (среднее время обслуживания), тогда интенсивность обслуживания 1 самолета μ=1/10=0,1 самолета в минуту.
Граф состояний многоканальной СМО с отказами имеет вид:
|
λ μ |
S1 |
λ 2μ |
S2 |
λ 3μ |
S3 |
А для данной задачи получим:
|
0,4 0,1 |
S1 |
0,4 0,2 |
S2 |
0,4 0,3 |
S3 |
Чтобы определить вероятность того, что самолет будет вынужден садится на запасной аэродром (вероятность отказа системы), надо посчитать вероятности нахождения системы в 3-ем, последнем состоянии. Для этого надо воспользоваться системой уравнений Колмогорова.
Смысл системы уравнений Колмогорова в том, что с левой стороны уравнения записываются все вероятности, с которыми система переходит из данного состояние в ближайшее, а с правой – вероятности, с которыми система возвращается в данное состояние. Причем, вероятности умножаются либо на интенсивность потока, либо на интенсивность обслуживания в соответствии с направлением стрелок.
Для нашей задачи система уравнений будет иметь вид:
0,1р1=0,4р0
0,4р0+0,2р2=0,4р1+0,1р1
0,4р1+0,3р3=0,4р2+0,2р2
0,4р2=0,3р3
р0+р1+р2+р3=1
Решим эту систему уравнений (одно из уравнений можно вычеркнуть, так как они все линейно зависимые). Получим:
р0=0,042
р1=0,169
р2=0,338
р3=0,451
р0+р1+р2+р3=0,042+0,169+0,338+0,451=1.
Таким образом, вероятность отказа системы равна ≈ 45 % (р3=0,451).
Для программной реализации нам необходимо иметь не только ответ, чтобы проверять правильность работы программы, но и общий вид решения.
λр0+2μр2=λр1+μр1 λр1+3μр3=λр2+2μр2 λр2=3μр3 р0+р1+р2+р3=1
|
λр0+2μр2=(λ+μ)р1 λр1+3μр3=(λ+2μ)р2 λр2=3μр3 р0+р1+р2+р3=1
|
Уберем из системы 3-е уравнение, выразим все вероятности через р3 и получим:
р0=6μ3р3/λ3
р1=6μ2р3/λ2
р2=3μр3/λ.
Так как сумма всех вероятностей равна единице, то легко найти р3 :
р0 +р1 +р2 +р3=1
6μ3р3/λ3 + 6μ2р3/λ2 +3μр3/λ +р3=1
(6μ3+6μ2λ+3μλ2+λ3)р3/λ3=1
р3= λ3/(6μ3+6μ2λ+3μλ2+λ3).
Программу нахождения вероятности того, что самолет будет вынужден садиться на запасной аэродром, напишем с помощью языка программирования Pascal.
Пояснения к программе.
-
Ежедневное количество тренировочных вылетов вводится пользователем, и присваивается соответствующей переменной n.
-
В нашей схеме СМО количество каналов равно 3. Отказ системы происходит, когда заняты все каналы. Таким образом, если количество вылетов n≤3, то очевидно, что отказа системы не будет, а следовательно, ее вероятность станет равна нулю (р:=0). Тогда необходимо делать проверку вводимой пользователем информации, и при n≤3 выводить результат, а в противном случае считаем вероятность отказа системы.
-
Самолет, нуждающийся в дозаправке, выходит в район дозаправки с вероятностью 0,9. Обозначим эту вероятность r. Тогда в программе мы должны проверять данное условие r≤0,9, что реализуется с помощью оператора функции random(1), который возвращает случайное число от 0 до 1 и это значение мы присваиваем r. Цикл проверки идет от 1 до n.
-
Выше мы вывели формулу подсчета вероятности отказа. Для реализации программы добавим функцию function p3, которая и будет предназначена для нахождения искомой вероятности р.
-
Применив еще три дополнительные функции function p0, function p1, function p2, будем выводить на экран результаты соответствующих вероятностей: вероятность попасть в зону дозаправки (р0); вероятность того, что в зоне дозаправки окажется один самолет (р1); вероятность того, что в зоне дозаправки окажется два самолета (р2).
-
Чтобы у пользователя была возможность просмотреть результаты и получить новые при новом количестве вылетов, вводится соответствующий запрос: «Для повтора нажмите 1, для выхода из программы нажмите 2.».
Программа.
program MOIM_42;
uses crt;
var n,i: byte;
r: real;
p: real;
label m1; m2;
function p3: real;
const l=0.4; m=0.1;
var l3,l2,m3,m2: real;
begin
l3:=sqr(l)*l;
l2:= l*l;
m3 := sqr(m)*m;
m2:= sqr(m);
p3:= l3/(6*m3+6*m2*l+3*m*l2+l3);
end;
function p2: real;
const l=0.4; m=0.1;
begin
p2:=(3*m*p3)/l;
end;
function p1: real;
const l=0.4; m=0.1;
begin
p1:=(6*sqr(m)*p3)/sqr(l);
end;
function p0: real;
const l=0.4; m=0.1;
var m3,l3 :real;
begin
m3 := sqr(m)*m;
l3:=sqr(l)*l;
p0:=(6*m3*p3)/l3;
end;
BEGIN
m1: clrscr;
textcolor (11);
write ('Введите количество вылетов за текущий день n=’);
readln (n);
if n<=3 then
begin
p:=0;
textcolor (11);
writeln;
writeln ('Вероятность вынужденой посадки:’, p:4:3);
textcolor (13);
writeln ('Для повтора нажмите 1, для выхода из программы нажмите 2’);
readln (i);
if i=1 then goto m1
else goto m2;
end;
for i:=1 to n do
r:= random(1);
if r<=9/10 then
begin
p:= p3;
end;
textcolor (10);
writeln ('Вероятность попасть в зону дозаправки:’,p0:4:3);
writeln ('Вероятность того, что в зоне дозаправки 1 самолет:’, p1:4:3);
writeln ('Вероятность того, что в зоне дозаправки 2 самолета:’, p2:4:3);
textcolor (11);
writeln;
writeln ('Вероятность вынужденной посадки:’, p:4:3);
textcolor (13);
writeln ('Для повтора нажмите 1, для выхода из программы нажмите 2.’);
readln (i);
if i=1 then goto m1;
m2: END.
Список литературы.
-
Исследование операций в экономике: Учебное пособие для вузов / Н.Ш.Кремер, Б.А.Путко, И.М.Тришин, М.Н. Фридман; под ред. проф. Н.Ш.Кремера. - М.: Банки и Биржи, ЮНИТИ, 1997. - 407 с.
-
Турбо Паскаль 7.0 - К.: Торгово-издательское бюро ВНV, 1996 - 448 с.: ил.
-
В.В.Годин, Н.В.Маджуга. Математические основы моделирования -М.: ГАУ, 1992.
-
В.В.Годин, Н.В.Маджуга. Математические основы информатики. -М.: ГАУ, 1992.
-
Замков О.О.,Толстопятенко А.В., Черемных Ю.Н. Математические методы в экономике: Учебник. -М.: МГУ им. М.В.Ломоносова, Издательство «ДИС», 1997. -368 с.