Разработка и оптимизация ИИС

Системы массового обслуживания

Разработка и оптимизация ИИС

План лекции

1. Основные понятия и характеристики СМО

2. Классификация систем массового обслуживания

3. Пуассоновский поток и марковские процессы

4. Формула Литтла

5. Модель M/M/1

6. Модель M/M/c (многоканальная)

7. Модель M/M/1/K (с ограниченной очередью)

8. Программная реализация

Системы массового обслуживания
Разработка и оптимизация ИИС

1. Основные понятия

Система массового обслуживания (СМО / Queueing System) — это система, в которой поступающие заявки обслуживаются каналами обслуживания с образованием очередей при занятости каналов.

Примеры СМО:

  • Кассы в магазине, билетные кассы
  • Серверы в компьютерной сети
  • Call-центры, больницы
  • Процессоры, принтеры, базы данных
Системы массового обслуживания
Разработка и оптимизация ИИС

Основные элементы СМО

center

Входящий поток заявок:

  • Интенсивность поступления λ\lambda
  • Закон распределения интервалов

Каналы обслуживания:

  • Число каналов cc
  • Интенсивность обслуживания μ\mu
  • Закон распределения времени обслуживания

Дисциплина очереди:

  • FIFO, LIFO, приоритетная, случайная
Системы массового обслуживания
Разработка и оптимизация ИИС

Характеристики СМО

Обозначение Название Смысл
λ\lambda Интенсивность входящего потока Среднее число заявок в единицу времени
μ\mu Интенсивность обслуживания Среднее число заявок, обслуживаемых каналом в единицу времени
ρ=λ/μ\rho = \lambda / \mu Нагрузка (utilisation) Доля времени, которую канал занят
cc Число каналов Параллельные устройства обслуживания
WW Среднее время пребывания в системе Время от поступления до выхода
WqW_q Среднее время ожидания Время в очереди
LL Среднее число заявок в системе Очередь + обслуживание
LqL_q Средняя длина очереди Число заявок, ожидающих обслуживания
Системы массового обслуживания
Разработка и оптимизация ИИС

2. Классификация: нотация Кендалла

Нотация Кендалла: A/B/c/K/N/DA / B / c / K / N / D

Позиция Смысл Обозначения
AA Закон распределения интервалов поступления MM (экспоненциальный), DD (детерминированный), GG (общий)
BB Закон распределения времени обслуживания MM, DD, GG
cc Число каналов 1,2,3,1, 2, 3, \ldots
KK Ёмкость системы (очередь + обслуживание) 0,1,2,0, 1, 2, \ldots или \infty
NN Число источников заявок конечное или \infty
DD Дисциплина обслуживания FIFO, LIFO, PRI, SIRO

Пример: M/M/1M/M/1 — экспоненциальный поток, экспоненциальное обслуживание, 1 канал.

Системы массового обслуживания
Разработка и оптимизация ИИС

Классификация по типу

По числу каналов:

  • Одноканальные (c=1c = 1)
  • Многоканальные (c>1c > 1)

По ёмкости очереди:

  • С неограниченной очередью (K=K = \infty)
  • С ограниченной очередью (K<K < \infty)
  • Без очереди (K=cK = c, отказы)

По числу фаз:

  • Однофазные (одна ступень обслуживания)
  • Многофазные (последовательные ступени)
Системы массового обслуживания
Разработка и оптимизация ИИС

3. Пуассоновский поток заявок

Простейший (пуассоновский) поток обладает тремя свойствами:

  1. Стационарность — вероятность поступления kk заявок за интервал τ\tau зависит только от длительности τ\tau, а не от его положения на оси времени
  2. Ординарность — заявки поступают по одной, а не пачками
  3. Отсутствие последействия — число заявок на непересекающихся интервалах независимо

Вероятность поступления kk заявок за время τ\tau:

Pk(τ)=(λτ)kk!eλτP_k(\tau) = \frac{(\lambda \tau)^k}{k!} e^{-\lambda \tau}

Системы массового обслуживания
Разработка и оптимизация ИИС

Свойства пуассоновского потока

Интервалы между поступлениями распределены по экспоненциальному закону:

f(t)=λeλt,t0f(t) = \lambda e^{-\lambda t}, \quad t \geq 0

Математическое ожидание интервала: E[T]=1/λE[T] = 1 / \lambda

Дисперсия: D[T]=1/λ2D[T] = 1 / \lambda^2

Свойство суперпозиции: сумма nn независимых пуассоновских потоков с интенсивностями λ1,,λn\lambda_1, \ldots, \lambda_n — пуассоновский поток с интенсивностью λ=i=1nλi\lambda = \sum_{i=1}^{n} \lambda_i.

Системы массового обслуживания
Разработка и оптимизация ИИС

Марковские процессы

Марковский процесс — случайный процесс, у которого будущее развитие зависит только от текущего состояния и не зависит от предыстории (отсутствие последействия).

Непрерывный марковский процесс с конечным числом состояний:

  • Состояние SiS_i — число заявок в системе
  • Переходы SiSi+1S_i \to S_{i+1} с интенсивностью λ\lambda (поступление)
  • Переходы SiSi1S_i \to S_{i-1} с интенсивностью μ\mu (обслуживание)

Граф состояний для M/M/1M/M/1:

center

Системы массового обслуживания
Разработка и оптимизация ИИС

Уравнения Колмогорова

Уравнения равновесия (для стационарного режима):

Для каждого состояния: интенсивность входящего потока = интенсивности исходящего потока

λp0=μp1\lambda p_0 = \mu p_1

λpi1+μpi+1=(λ+μ)pi,i1\lambda p_{i-1} + \mu p_{i+1} = (\lambda + \mu) p_i, \quad i \geq 1

Условие нормировки: i=0pi=1\sum_{i=0}^{\infty} p_i = 1

Из первого уравнения: p1=ρp0p_1 = \rho p_0, p2=ρ2p0p_2 = \rho^2 p_0, ...

pi=ρip0,i=0,1,2,p_i = \rho^i p_0, \quad i = 0, 1, 2, \ldots

Системы массового обслуживания
Разработка и оптимизация ИИС

4. Формула Литтла

Формула Литтла (1961) — один из важнейших законов теории СМО:

L=λWL = \lambda W

Lq=λWqL_q = \lambda W_q

Где:

  • LL — среднее число заявок в системе
  • WW — среднее время пребывания заявки в системе
  • LqL_q — среднее число заявок в очереди
  • WqW_q — среднее время ожидания

Дополнительно: W=Wq+1/μW = W_q + 1 / \mu

Формула Литтла справедлива для любых СМО с любыми распределениями при стационарном режиме.

Системы массового обслуживания
Разработка и оптимизация ИИС

Формула Литтла — интерпретация

L=λW«сколько в системе»=«скорость входа»×«время в системе»L = \lambda W \quad \Longleftrightarrow \quad \text{«сколько в системе»} = \text{«скорость входа»} \times \text{«время в системе»}

Примеры:

  • В магазине: λ=10\lambda = 10 чел/ч, W=0.5W = 0.5 ч \Rightarrow L=5L = 5 человек в магазине
  • На сервере: λ=100\lambda = 100 запр/с, W=0.01W = 0.01 с \Rightarrow L=1L = 1 запрос в системе
  • На дороге: λ=30\lambda = 30 авт/мин, W=2W = 2 мин \Rightarrow L=60L = 60 автомобилей на участке
Системы массового обслуживания
Разработка и оптимизация ИИС

5. Модель M/M/1

Условия: пуассоновский вход (λ\lambda), экспоненциальное обслуживание (μ\mu), 1 канал, неограниченная очередь, бесконечный источник.

Условие существования стационарного режима: ρ=λ/μ<1\rho = \lambda / \mu < 1

Стационарные вероятности:

pi=(1ρ)ρi,i=0,1,2,p_i = (1 - \rho) \rho^i, \quad i = 0, 1, 2, \ldots

p0=1ρ— вероятность простоя каналаp_0 = 1 - \rho \quad \text{— вероятность простоя канала}

Системы массового обслуживания
Разработка и оптимизация ИИС

M/M/1: основные характеристики

Характеристика Формула
Вероятность простоя p0=1ρp_0 = 1 - \rho
Средняя длина очереди Lq=ρ21ρ=λ2μ(μλ)L_q = \dfrac{\rho^2}{1 - \rho} = \dfrac{\lambda^2}{\mu(\mu - \lambda)}
Среднее число заявок в системе L=ρ1ρ=λμλL = \dfrac{\rho}{1 - \rho} = \dfrac{\lambda}{\mu - \lambda}
Среднее время ожидания Wq=ρμ(1ρ)=λμ(μλ)W_q = \dfrac{\rho}{\mu(1 - \rho)} = \dfrac{\lambda}{\mu(\mu - \lambda)}
Среднее время в системе W=1μλW = \dfrac{1}{\mu - \lambda}
Системы массового обслуживания
Разработка и оптимизация ИИС

M/M/1: проверка формулы Литтла

L=λμλ,W=1μλL = \frac{\lambda}{\mu - \lambda}, \quad W = \frac{1}{\mu - \lambda}

L=λW  L = \lambda W \; \checkmark

Lq=λ2μ(μλ),Wq=λμ(μλ)L_q = \frac{\lambda^2}{\mu(\mu - \lambda)}, \quad W_q = \frac{\lambda}{\mu(\mu - \lambda)}

Lq=λWq  L_q = \lambda W_q \; \checkmark

W=Wq+1μ  W = W_q + \frac{1}{\mu} \; \checkmark

Системы массового обслуживания
Разработка и оптимизация ИИС

Пример: M/M/1

Сервер обрабатывает запросы: λ=3\lambda = 3 запр/мин, μ=5\mu = 5 запр/мин.

ρ=λμ=35=0.6\rho = \frac{\lambda}{\mu} = \frac{3}{5} = 0.6

p0=10.6=0.4(40% времени сервер простаивает)p_0 = 1 - 0.6 = 0.4 \quad \text{(40\% времени сервер простаивает)}

L=0.610.6=1.5заявки в системеL = \frac{0.6}{1 - 0.6} = 1.5 \quad \text{заявки в системе}

Lq=0.6210.6=0.9заявки в очередиL_q = \frac{0.6^2}{1 - 0.6} = 0.9 \quad \text{заявки в очереди}

W=153=0.5 мин=30 сW = \frac{1}{5 - 3} = 0.5 \text{ мин} = 30 \text{ с}

Wq=0.650.4=0.3 мин=18 сW_q = \frac{0.6}{5 \cdot 0.4} = 0.3 \text{ мин} = 18 \text{ с}

Системы массового обслуживания
Разработка и оптимизация ИИС

M/M/1: влияние нагрузки

L=ρ1ρ,W=1μ(1ρ)L = \frac{\rho}{1 - \rho}, \quad W = \frac{1}{\mu(1 - \rho)}

ρ\rho LL WW (в единицах 1/μ1/\mu)
0.1 0.11 1.11
0.3 0.43 1.43
0.5 1.00 2.00
0.7 2.33 3.33
0.9 9.00 10.00
0.95 19.00 20.00
0.99 99.00 100.00

Вывод: при ρ1\rho \to 1 характеристики растут гиперболически — система становится нестабильной.

Системы массового обслуживания
Разработка и оптимизация ИИС

6. Модель M/M/c

Условия: пуассоновский вход (λ\lambda), экспоненциальное обслуживание (μ\mu), cc каналов, неограниченная очередь.

Условие стационарности: ρc=λcμ<1\rho_c = \dfrac{\lambda}{c\mu} < 1

p0=[k=0c1(cρc)kk!+(cρc)cc!(1ρc)]1p_0 = \left[ \sum_{k=0}^{c-1} \frac{(c\rho_c)^k}{k!} + \frac{(c\rho_c)^c}{c! (1 - \rho_c)} \right]^{-1}

pn={(cρc)nn!p0при ncccρcnc!p0при n>cp_n = \begin{cases} \dfrac{(c\rho_c)^n}{n!}\, p_0 & \text{при } n \leq c \\[6pt] \dfrac{c^c \rho_c^n}{c!}\, p_0 & \text{при } n > c \end{cases}

Системы массового обслуживания
Разработка и оптимизация ИИС

M/M/c: основные характеристики

Lq=p0(cρc)cρcc!(1ρc)2L_q = \frac{p_0 (c\rho_c)^c \rho_c}{c!\, (1 - \rho_c)^2}

Wq=LqλW_q = \frac{L_q}{\lambda}

W=Wq+1μW = W_q + \frac{1}{\mu}

L=λWL = \lambda W

Вероятность ожидания (формула Эрланга C):

P(Wq>0)=(cρc)cc!(1ρc)p0P(W_q > 0) = \frac{(c\rho_c)^c}{c!\,(1 - \rho_c)}\, p_0

Системы массового обслуживания
Разработка и оптимизация ИИС

Пример: M/M/c

λ=3\lambda = 3 запр/мин, μ=2\mu = 2 запр/мин, сравним c=1,2,3c = 1, 2, 3.

c=1c = 1: ρ=3/2>1\rho = 3/2 > 1 — стационарный режим не существует!

c=2c = 2: ρc=3/4=0.75\rho_c = 3/4 = 0.75

p0=[1+32+(3/2)22!(10.75)]1=11+1.5+4.5=170.143p_0 = \left[1 + \frac{3}{2} + \frac{(3/2)^2}{2!\,(1 - 0.75)}\right]^{-1} = \frac{1}{1 + 1.5 + 4.5} = \frac{1}{7} \approx 0.143

Lq=(1/7)(1.5)20.752!(0.25)2=0.2410.1251.93L_q = \frac{(1/7) \cdot (1.5)^2 \cdot 0.75}{2! \cdot (0.25)^2} = \frac{0.241}{0.125} \approx 1.93

Wq=1.93/30.64 мин,W=0.64+0.5=1.14 минW_q = 1.93 / 3 \approx 0.64 \text{ мин}, \quad W = 0.64 + 0.5 = 1.14 \text{ мин}

Системы массового обслуживания
Разработка и оптимизация ИИС

Пример: M/M/c — сравнение

Параметр c=2c = 2 c=3c = 3
ρc\rho_c 0.75 0.50
p0p_0 0.143 0.211
LqL_q 1.93 0.18
WqW_q (мин) 0.64 0.06
WW (мин) 1.14 0.56
P(ожидание)P(\text{ожидание}) 0.643 0.236

Вывод: добавление третьего канала сокращает очередь в 10 раз и время ожидания — более чем в 10 раз.

Системы массового обслуживания
Разработка и оптимизация ИИС

7. Модель M/M/1/K

Условия: 1 канал, очередь ограничена длиной K1K - 1 (всего KK мест в системе).

Если KK мест заняты — заявка получает отказ.

Стационарный режим существует всегда (при ρ<1\rho < 1 и при ρ1\rho \geq 1).

pi={1ρ1ρK+1ρiпри ρ11K+1при ρ=1p_i = \begin{cases} \dfrac{1 - \rho}{1 - \rho^{K+1}} \rho^i & \text{при } \rho \neq 1 \\[6pt] \dfrac{1}{K + 1} & \text{при } \rho = 1 \end{cases}

Системы массового обслуживания
Разработка и оптимизация ИИС

M/M/1/K: основные характеристики

L=ρ1ρ(K+1)ρK+11ρK+1,ρ1L = \frac{\rho}{1 - \rho} - \frac{(K + 1)\rho^{K+1}}{1 - \rho^{K+1}}, \quad \rho \neq 1

Lq=L(1p0)L_q = L - (1 - p_0)

λэфф=λ(1pK)\lambda_{\text{эфф}} = \lambda(1 - p_K)

W=Lλэфф,Wq=LqλэффW = \frac{L}{\lambda_{\text{эфф}}}, \quad W_q = \frac{L_q}{\lambda_{\text{эфф}}}

Вероятность отказа: Pотк=pK=(1ρ)ρK1ρK+1P_{\text{отк}} = p_K = \dfrac{(1 - \rho)\rho^K}{1 - \rho^{K+1}}

Относительная пропускная способность: Q=1pKQ = 1 - p_K

Системы массового обслуживания
Разработка и оптимизация ИИС

Пример: M/M/1/K

λ=3\lambda = 3, μ=2\mu = 2, K=5K = 5 (5 мест в системе: 1 обслуживание + 4 в очереди).

ρ=1.5\rho = 1.5

p0=11.511.56=0.5111.39=0.510.390.048p_0 = \frac{1 - 1.5}{1 - 1.5^6} = \frac{-0.5}{1 - 11.39} = \frac{0.5}{10.39} \approx 0.048

Pотк=p5=0.51.5510.39=0.57.5910.390.365P_{\text{отк}} = p_5 = \frac{0.5 \cdot 1.5^5}{10.39} = \frac{0.5 \cdot 7.59}{10.39} \approx 0.365

Q=10.365=0.635(63.5% заявок обслуживаются)Q = 1 - 0.365 = 0.635 \quad \text{(63.5\% заявок обслуживаются)}

λэфф=30.635=1.906\lambda_{\text{эфф}} = 3 \cdot 0.635 = 1.906

L=1.511.561.5611.56=1.50.5611.3910.39=36.58=2.51L = \frac{1.5}{1 - 1.5} - \frac{6 \cdot 1.5^6}{1 - 1.5^6} = \frac{-1.5}{-0.5} - \frac{6 \cdot 11.39}{10.39} = 3 - 6.58 = \approx 2.51

Системы массового обслуживания
Разработка и оптимизация ИИС

8. Программная реализация

import math

def mm1(lam, mu):
    rho = lam / mu
    if rho >= 1:
        return None
    p0 = 1 - rho
    L = rho / (1 - rho)
    Lq = rho**2 / (1 - rho)
    W = 1 / (mu - lam)
    Wq = rho / (mu * (1 - rho))
    return {'rho': rho, 'p0': p0, 'L': L, 'Lq': Lq, 'W': W, 'Wq': Wq}

result = mm1(3, 5)
print(f"L={result['L']:.2f}, W={result['W']:.2f}")
# L=1.50, W=0.50
Системы массового обслуживания
Разработка и оптимизация ИИС

Программная реализация: M/M/c

def mmc(lam, mu, c):
    rho_c = lam / (c * mu)
    if rho_c >= 1:
        return None

    a = lam / mu
    p0_sum = sum(a**k / math.factorial(k) for k in range(c))
    p0_sum += a**c / (math.factorial(c) * (1 - rho_c))
    p0 = 1 / p0_sum

    Lq = p0 * a**c * rho_c / (math.factorial(c) * (1 - rho_c)**2)
    Wq = Lq / lam
    W = Wq + 1 / mu
    L = lam * W
    P_wait = a**c * p0 / (math.factorial(c) * (1 - rho_c))

    return {'p0': p0, 'L': L, 'Lq': Lq, 'W': W, 'Wq': Wq, 'P_wait': P_wait}

print(mmc(3, 2, 2))
# {'p0': 0.143, 'L': 3.43, 'Lq': 1.93, 'W': 1.14, 'Wq': 0.64, 'P_wait': 0.643}
Системы массового обслуживания
Разработка и оптимизация ИИС

Программная реализация: M/M/1/K

def mm1k(lam, mu, K):
    rho = lam / mu

    if abs(rho - 1) < 1e-10:
        p0 = 1 / (K + 1)
    else:
        p0 = (1 - rho) / (1 - rho**(K + 1))

    L = 0
    for i in range(K + 1):
        L += i * p0 * rho**i

    pK = p0 * rho**K
    Q = 1 - pK
    lam_eff = lam * Q
    Lq = max(L - (1 - p0), 0)
    W = L / lam_eff if lam_eff > 0 else 0
    Wq = Lq / lam_eff if lam_eff > 0 else 0

    return {'p0': p0, 'pK': pK, 'Q': Q, 'L': L, 'Lq': Lq, 'W': W, 'Wq': Wq}

print(mm1k(3, 2, 5))
# {'p0': 0.048, 'pK': 0.365, 'Q': 0.635, 'L': 2.51, 'Lq': 1.56, 'W': 1.32, 'Wq': 0.82}
Системы массового обслуживания
Разработка и оптимизация ИИС

Заключение

Системы массового обслуживания
Разработка и оптимизация ИИС

Ключевые выводы лекции

  • СМО описываются входящим потоком, каналами и дисциплиной очереди

  • Нотация Кендалла A/B/c/K/N/DA/B/c/K/N/D — стандартная классификация

  • Пуассоновский поток + экспоненциальное обслуживание \Rightarrow марковская модель

  • Формула Литтла: L=λWL = \lambda W — универсальный закон

  • M/M/1: простейшая модель, ρ<1\rho < 1

  • M/M/c: многоканальная, формула Эрланга C

  • M/M/1/K: с отказами, стационарный режим всегда

Системы массового обслуживания
Разработка и оптимизация ИИС

Вопросы для самоконтроля

  1. Что такое система массового обслуживания? Назовите основные элементы.
  2. Расшифруйте нотацию Кендалла A/B/c/K/N/DA/B/c/K/N/D.
  3. Какие свойства имеет пуассоновский поток заявок?
  4. Сформулируйте и докажите формулу Литтла.
  5. Выведите формулы для LL, LqL_q, WW, WqW_q модели M/M/1M/M/1.
  6. При каком условии существует стационарный режим M/M/cM/M/c?
  7. Чем отличается M/M/1M/M/1 от M/M/1/KM/M/1/K?
  8. Что такое вероятность отказа и относительная пропускная способность?
Системы массового обслуживания
Разработка и оптимизация ИИС

Рекомендуемые ресурсы

Основная литература:

  1. Алексеев, Д. С. Технологии интеллектуального анализа данных.
  2. Маккини, Уэс. Python и анализ данных. — pandas, NumPy.

Дополнительная литература:

  1. Серебряная, Л. В. Методы и алгоритмы принятия решений.
  2. Станкевич, Л. А. Интеллектуальные системы и технологии.

Онлайн-ресурсы:

  • Kleinrock, L. Queueing Systems, Vol. 1: Theory
  • https://simpy.readthedocs.io — библиотека моделирования СМО на Python
Системы массового обслуживания

Кратко пробегитесь по плану: начнём с основных понятий и классификации, затем марковские процессы и формулы Литтла, после — классические модели (M/M/1, M/M/c, M/M/1/K), завершим программной реализацией.

Дайте определение: СМО — это система, в которой заявки поступают, обслуживаются и покидают систему. Приведите примеры из повседневной жизни и ИТ.

Перечислите основные элементы и характеристики. Подчеркните: любая СМО описывается входящим потоком, каналом обслуживания и дисциплиной очереди.

Перечислите все характеристики СМО — это словарь, который студент должен знать.

Объясните нотацию Кендалла — это стандартный способ кратко описать тип СМО.

Классификация по другим признакам — ёмкость, число каналов, фазы обслуживания.

Пуассоновский поток — основа большинства моделей СМО. Подчеркните: это простейший поток с тремя свойствами.

Свойства пуассоновского потока: экспоненциальное распределение интервалов, сумма пуассоновских потоков.

Марковский процесс — математическая основа моделирования СМО с экспоненциальными распределениями. Подчеркните: будущее зависит только от настоящего.

Уравнения Колмогорова — основной инструмент нахождения стационарных вероятностей.

Формула Литтла — универсальный результат, не зависящий от распределений. Это один из важнейших законов теории СМО.

Подчеркните универсальность формулы Литтла примерами из разных областей.

Перейдите к классическим моделям. Начните с M/M/1 — самой простой и фундаментальной.

Выведите все характеристики M/M/1. Студенты должны знать эти формулы.

Проверьте формулу Литтла для M/M/1.

Решите конкретный числовой пример. Студенты увидят, как применять формулы.

Покажите, как ведёт себя M/M/1 при росте нагрузки. Это важный практический вывод.

Перейдите к многоканальной модели. Подчеркните: это реалистичнее, но формулы сложнее.

Решите пример для 2 и 3 каналов. Сравните с одноканальной моделью.

Перейдите к системе с ограниченной очередью. Подчеркните: это более реалистичная модель, т.к. буфер всегда конечен.

Решите пример M/M/1/K и сравните с M/M/1.

Подведите итоги и покажите программную реализацию.

Подведите итоги.