Всім доброго вечора!
Присвячую цю тему для детального обговорення способів розрахунку другої формули Ерланга.
Перед переглядом цієї теми рекомендую переглянути:
Як користуватись функцією написаною користвувачем в MATLAB?.
Зазвичай студенти при обрахунку другої формули Ерланга стикаються з двома проблемами:
1) описана в темі
Обговорення розрахунку формули Пуассона2) друга формула Ерланга функціонує правильно, але чомусь повертає імовірності більші одиниці.
Один з варіантів виходу з таких ситуацій я опишу в цьому повідомленні, а альтернативні варіанти покладаю на інших.
Отже, нагадаємо як виглядає друга формула Ерланга запропонована в методчних вказівках щодо виконання курсової роботи:

Я запропоную свій варіант реалізації цієї функції в MATLAB:
Код:
function massmetod=secondErlangmetod(Y,V)
for v=0:V
for k=0:v
if k==0
Erlang=(Y^k)/factorial(k);
else
Erlang=(Erlang*Y)/k;
end
mass1(k+1)=Erlang;
end
massmetod(v+1)=(mass1(v+1)/sum(mass1))/(1-Y/v*(1-(mass1(v+1)/sum(mass1))));
end
return
Вхідні дані: V-кількість ліній, Y- інтенсивність поступаючого навантаження.
Ця функція повертає масив значень імовірностей очікування обслуговування, елемент масиву з індексом (v+1) відповідає імовірності очікування розрахованої для v ліній, при поступаючій інтесивності навантаження Y. Кількість елементів цього масиву рівна V+1( саме це V ви задаєте).
Тепер, побудуємо графік за допомогою функції secondErlangmetod(Y,V) :
Код:
%вихідні дані:
ac=4.1; %середня кількість викликів від абонента за одиницю часу
at=250/3600; %середня тривалість зайняття викликом КС
N=717; ; кількість абонентів
Y=ac*at*N;
V=717;
massmetod=secondErlangmetod(Y,V);
V=0:V;
graf1=plot(V, massmetod);
set(graf1,'LineWidth',2, 'Color', [0 1 0]);
xlabel('V, кількість ліній'); ylabel('Dv(Y), імовірність очікування');
title('Графік залежності Dv(Y) від кількості ліній V'); grid on;
І от отриманий результат:
Приєднання файлів:
Dv(Y) від V(metod).png [ 21.36 Кб | Переглянуто 3307 разів ]
Все було б добре, якби не одне "не": тут імовірності більші одиниці.
І що ж тепер робити?

: пошукаємо альтернативний варіант другої формули Ерланга. Запропоную варіант який використав я:
Dv(Y)=1/((1/
Ev(Y))-(1/
Ev-1(Y))*(1-
Ev(Y)))
Знаходиться ця формула в книжці: Б.С. Лившиц "Теория телетрафика", ст.82, формула (5.9). Запропоную свій варіант реалізації цієї функції в MATLAB:
Код:
function mass=secondErlang(Y,V)
for v=0:V
for k=0:v
if k==0
Erlang=(Y^k)/factorial(k);
else
Erlang=(Erlang*Y)/k;
end
mass1(k+1)=Erlang;
end
mass2(v+1)=mass1(v+1)/sum(mass1);
end
mass(1)=1;
for v=1:V
mass(v+1)=1/((1/mass2(v+1))-(1/mass2(v))*(1-mass2(v+1)));
end
return
Вхідні дані: V-кількість ліній, Y- інтенсивність поступаючого навантаження.
Ця функція повертає масив значень імовірностей очікування обслуговування, елемент масиву з індексом (v+1) відповідає імовірності очікування розрахованої для v ліній, при поступаючій інтесивності навантаження Y. Кількість елементів цього масиву рівна V+1( саме це V ви задаєте).
Тепер, побудуємо графік за допомогою функції secondErlang(Y,V):
Код:
%вихідні дані:
ac=4.1; %середня кількість викликів від абонента за одиницю часу
at=250/3600; %середня тривалість зайняття викликом КС
N=717; ; кількість абонентів
Y=ac*at*N;
V=717;
mass=secondErlang(Y,V);
V=0:V;
graf1=plot(V, mass);
set(graf1,'LineWidth',2, 'Color', [1 0 0]);
xlabel('V, кількість ліній'); ylabel('Dv(Y), імовірність очікування');
title('Графік залежності Dv(Y) від кількості ліній V'); grid on;
І от отриманий результат:
Приєднання файлів:
Dv(Y) від V(livshyc).png [ 21.28 Кб | Переглянуто 3307 разів ]
Цікаво, чому дві одинакові формули, які знаходяться на одній і тій же сторінці, дають такий різний результат? А можливо він і не такий вже різний?
Всі знають, що імовірність очікування в реальних системах обслуговування коливається від 10%-0.1% ( в більшості таких систем імовірність очікування становить 2-3%).
Побудуємо графік на якому відобразимо дві попередні криві, тільки вже в тому діапазоні, в якому працюють всі реальні комутаційні системи з очікуванням:
Код:
ac=4.1;at=250/3600; N=717;
Y=ac*at*N; V=717;
mass=secondErlang(Y,V);
for k=0:V
if mass(k+1)>=0.10
ymax=mass(k+1);
else
xmin=k-1;
break
end
end
for k=0:V
if mass(k+1)>=0.001
ymin=mass(k+2);
else
xmax=k;
break
end
end
V=0:V;
graf=plot(V, mass);
set(graf,'LineWidth',2,'Color',[1 0 0]);
hold on;
V=717;
massmetod=secondErlangmetod(Y,V);
V=0:V;
graf1=plot(V, massmetod);
set(graf1,'LineWidth',2, 'Color', [0 1 0]);
axis([xmin, xmax, ymin,ymax]);
xlabel('V, кількість ліній'); ylabel('Dv(Y), імовірність очікування');
title('Графік залежності Dv(Y) від кількості ліній V'); grid on;
Покажимо отриманий результат:
Приєднання файлів:
Dv(Y)liv&metod.png [ 22.8 Кб | Переглянуто 3307 разів ]
Як видно з цього графіка криві накладаються одна на одну при імовірності очікування менше 3%. Від 3% до 10% вони практично співпадають, і це "практично" дасть похибку максимум в одну лінію.
Отже, для розрахунку якості обслуговування в межах 10%-0.1% імовірності очікування, можна використовувати будь-яку з цих формул.
Добавлю те, що для побудови всіх графіків наведених в цьому повідомленні використовувались однакові вхідні дані.
От власне і все. Дякую, якщо дочитали до кінця.
П.С. В принципі, при описі функції другої формули Ерланга яка наведена в методичних вказвіках, я міг помилитись, але це дуже малоімовірно, оскільки, я її переписував безліч раз, поки мені не вірвався терпець, і я не почав шукати альтернативних шляхів.
