forum.vnstele.com

Вітруальне навчальне середовище телекомунікацій - Форум підтримки
Сьогодні: 12 липня 2020, 18:06

Часовий пояс UTC + 2 годин [ DST ]




Створити нову тему Відповісти  [ 3 повідомлень ] 
Автор Повідомлення
ПовідомленняДодано: 27 березня 2012, 21:26 
Офлайн
Аватар користувача

З нами з: 19 січня 2012, 18:50
Повідомлення: 31
Звідки: Львів
Всім доброго вечора!
Присвячую цю тему для детального обговорення способів розрахунку другої формули Ерланга.
Перед переглядом цієї теми рекомендую переглянути: Як користуватись функцією написаною користвувачем в MATLAB?.

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

Отже, нагадаємо як виглядає друга формула Ерланга запропонована в методчних вказівках щодо виконання курсової роботи:
Зображення
Я запропоную свій варіант реалізації цієї функції в 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
Dv(Y) від V(metod).png [ 21.36 Кб | Переглянуто 2283 разів ]

Все було б добре, якби не одне "не": тут імовірності більші одиниці. :?

І що ж тепер робити? :idea: : пошукаємо альтернативний варіант другої формули Ерланга. Запропоную варіант який використав я:

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
Dv(Y) від V(livshyc).png [ 21.28 Кб | Переглянуто 2283 разів ]

Цікаво, чому дві одинакові формули, які знаходяться на одній і тій же сторінці, дають такий різний результат? А можливо він і не такий вже різний?
Всі знають, що імовірність очікування в реальних системах обслуговування коливається від 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
Dv(Y)liv&metod.png [ 22.8 Кб | Переглянуто 2283 разів ]

Як видно з цього графіка криві накладаються одна на одну при імовірності очікування менше 3%. Від 3% до 10% вони практично співпадають, і це "практично" дасть похибку максимум в одну лінію.

Отже, для розрахунку якості обслуговування в межах 10%-0.1% імовірності очікування, можна використовувати будь-яку з цих формул.
Добавлю те, що для побудови всіх графіків наведених в цьому повідомленні використовувались однакові вхідні дані.
От власне і все. Дякую, якщо дочитали до кінця.

П.С. В принципі, при описі функції другої формули Ерланга яка наведена в методичних вказвіках, я міг помилитись, але це дуже малоімовірно, оскільки, я її переписував безліч раз, поки мені не вірвався терпець, і я не почав шукати альтернативних шляхів. :ugeek:

_________________
Зображення


Догори
 Профіль  
 
ПовідомленняДодано: 28 березня 2012, 17:03 
Офлайн

З нами з: 28 березня 2012, 16:59
Повідомлення: 1
Коля ,дякую,мені стало у нагоді вищенаписане, ато навряд імоівність знаходження виклику в черзі може досягати 200% )


Догори
 Профіль  
 
ПовідомленняДодано: 28 березня 2012, 17:26 
Офлайн
Адміністратор сайту

З нами з: 11 січня 2011, 15:00
Повідомлення: 181
Звідки: Львів
Дякую за детальний опис і наведені функції ...
До речі, в Матлаб можна графіки зберігати відразу у графічному форматі, без зняття копії екрана з подальшим її записом.
Коли перед нами виведений графік (наприклад Figure 1), у верхньому меню вибираємо "Зберегти як", задаємо ім"я файла, а тип вибираємо із випадаючого списку, для форума найкраще вибирати формат *.png, після чого тиснемо "Зберегти" і все, готовий файл у графічному форматі :) .


Догори
 Профіль  
 
Відображати повідомлення за:  Сортувати за  
Створити нову тему Відповісти  [ 3 повідомлень ] 

Часовий пояс UTC + 2 годин [ DST ]


Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 1 гість


Ви не можете створювати нові теми у цьому форумі
Ви не можете відповідати на теми у цьому форумі
Ви не можете редагувати ваші повідомлення у цьому форумі
Ви не можете видаляти ваші повідомлення у цьому форумі
Ви не можете додавати файли у цьому форумі

Знайти:
Вперед:  
cron
POWERED_BY
Український переклад © 2005-2010 Українська підтримка phpBB