Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

иксис5

.docx
Скачиваний:
12
Добавлен:
14.10.2024
Размер:
176.18 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра ИС

отчет

по лабораторной работе №5

по дисциплине «Инфокоммуникационные системы и сети»

Тема: Формулы Эрланга

Вариант 169

Студентка гр.

Преподаватель

Колбанев М.О.

Санкт-Петербург

2023

Листинг программного кода

import matplotlib.pyplot as plt

import numpy as np

#первая формула

def erlang1(intensity, devCount):

if devCount <= 0:

return 1

temp = intensity * erlang1(intensity, devCount - 1)

return temp / (devCount + temp)

#вторая формула

def erlang2(intensity, devCount):

temp = erlang1(intensity, devCount)

return temp / (1 - ((intensity / devCount) * (1 - temp)))

def erlang2_queue(intensity, devCount):

temp1 = intensity * erlang1(intensity, devCount)

temp2 = devCount - intensity

return temp1 / (temp2 + temp1) * devCount / temp2

n = 169

# 1 часть

x = np.linspace(0, 30000, 100)

plt.plot(x, [erlang1(i, 2 * n) for i in x])

plt.xlabel("Интенсивность поступающей нагрузки")

plt.ylabel("Вероятность блокировки заявок")

plt.grid()

plt.show()

x = np.linspace(1, 140, 100)

plt.plot(x, [erlang2(n, i) for i in x])

plt.xlabel("Интенсивность поступающей нагрузки")

plt.ylabel("Вероятность блокировки заявок")

plt.grid()

plt.show()

# 2 часть

x = np.linspace(150, 2 * n, 100)

plt.plot(x, [erlang2(i, 2 * n) for i in x])

plt.xlabel("Число обслуживающих устройств")

plt.ylabel("Вероятность ожидания начала обслуживания")

plt.grid()

plt.show()

x = np.linspace(150, 2 * n - 1, 100)

plt.plot(x, [erlang2_queue(i, 2 * n) for i in x])

plt.xlabel("Интенсивность поступающей нагрузки")

plt.ylabel("Средняя длина очереди")

plt.grid()

plt.show()

x = np.linspace(n, 140, 100)

plt.plot(x, [erlang2(n, i) for i in x])

plt.xlabel("Число обслуживающих устройств")

plt.ylabel("Вероятность ожидания начала обслуживания")

plt.grid()

plt.show()

x = np.linspace(n + 1, 140, 100)

plt.plot(x, [erlang2_queue(n, i) for i in x])

plt.xlabel("Число обслуживающих устройств")

plt.ylabel("Средняя длина очереди")

plt.grid()

plt.show()

1 часть

Рисунок 1.1. График зависимости вероятности блокировки заявок от

интенсивности поступающей нагрузки при числе обслуживающих устройств 2*n

Рисунок 1.2. График зависимости вероятности блокировки заявок от числа

обслуживающих устройств при интенсивности поступающей нагрузки n

2 часть

Рисунок 2.1. График зависимости вероятности ожидания начала обслуживания от интенсивности поступающей нагрузки при числе обслуживающих устройств 2*n

Рисунок 2.2. График зависимости средней длины очереди от интенсивности поступающей нагрузки при числе обслуживающих устройств 2*n

Рисунок 2.3. График зависимости вероятности ожидания начала обслуживания от интенсивности поступающей нагрузки при числе обслуживающих устройств n

Рисунок 2.4. График зависимости средней длины очереди от интенсивности поступающей нагрузки при числе обслуживающих устройств n

Вывод: в ходе работы были изучение и реализованы на языке Python первая и вторая формулы Эрланга. В самом коде были написаны рекуррентные функции для расчёта, а также построены графики зависимостей, которые показывают поведение системы в различных условиях.

Соседние файлы в предмете Инфокоммуникационные системы и сети