Приложение 2.
import math
import pandas as pd
# Задаём начальные значения
n = 2 # Количество каналов
m = 10 # количество мест в очереди
lam = 10 # Интенсивность поступления заявок
mu = 5 # интенсивность обслуживания
# коэффициент загрузки системы
rho = lam/mu
# Вероятность что канал окажется свободным
p0 = 0
if rho == n:
for i in range(0,n+1):
p0 = p0+(n**i/math.factorial(i))
else:
for i in range(0,n+1):
p0 = p0+(rho**i/math.factorial(i))
p0 = p0 + (rho**(n+1)/n*math.factorial(n))*((1-(rho/n)**m)/(1-(rho/n)))
p0 = 1/p0
# Вероятность что канал окажется занятым
p1 = 1-p0
# Вероятность что заявка получит отказ
Potk = rho**(n+m)/((n**m)*math.factorial(n))*p0
# относительная пропускная способность
Q = 1 - Potk
# абсолютная пропускная способность
A = lam*Q
# Среднее количество занятых каналов
kzan = A/mu
# Средняя длина очереди в системе
if rho == n:
Loch = ((n**n)/math.factorial(n))*((math.factorial(n)*(m+1))/2)*p0
else:
Loch = (rho**(n+1)/n*math.factorial(n))*((1-(rho/n)**m*(m+1-(m/n*rho)))/(1-rho/n)**2)
# Среднее время ожидания в очереди
Toch = Loch/lam
# Среднее количество заявок в системе
Lsist = Loch + kzan
# Среднее время пребывания заявки в системе
Tsist = Lsist/lam
# Сведение всех показателей в таблицу
data = {
"Показатель": ["Вероятность свободности канала (p0)",
"Вероятность занятости канала (p1)",
"Абсолютная пропускная способность (A)",
"Относительная пропускная способность (Q)",
"Вероятность отказа (P_отк)",
"Среднее количество занятых каналов (k_зан)",
"Среднее количество заявок в системе (L_сист)",
"Среднее время пребывания заявки в системе (T_сист)",
"Средняя длина очереди (L_оч)",
"Среднее время ожидания заявки в очереди (T_оч)"],
"Значение": [p0, p1, A, Q, Potk, kzan, Lsist, Tsist, Loch, Toch]
}
# Реализуем и печатаем таблицу
df = pd.DataFrame(data)
print(df)
# Сохранение в файл Excel
df.to_excel("lab3.xlsx", index=False)
