Previous slide Next slide Toggle fullscreen Open presenter view
Разработка и оптимизация ИИС
Системы массового обслуживания
Разработка и оптимизация ИИС
План лекции
1. Основные понятия и характеристики СМО
2. Классификация систем массового обслуживания
3. Пуассоновский поток и марковские процессы
4. Формула Литтла
5. Модель M/M/1
6. Модель M/M/c (многоканальная)
7. Модель M/M/1/K (с ограниченной очередью)
8. Программная реализация
Системы массового обслуживания
Разработка и оптимизация ИИС
1. Основные понятия
Система массового обслуживания (СМО / Queueing System) — это система, в которой поступающие заявки обслуживаются каналами обслуживания с образованием очередей при занятости каналов.
Примеры СМО:
Кассы в магазине, билетные кассы
Серверы в компьютерной сети
Call-центры, больницы
Процессоры, принтеры, базы данных
Системы массового обслуживания
Разработка и оптимизация ИИС
Основные элементы СМО
Входящий поток заявок:
Интенсивность поступления λ \lambda λ
Закон распределения интервалов
Каналы обслуживания:
Число каналов c c c
Интенсивность обслуживания μ \mu μ
Закон распределения времени обслуживания
Дисциплина очереди:
FIFO, LIFO, приоритетная, случайная
Системы массового обслуживания
Разработка и оптимизация ИИС
Характеристики СМО
Обозначение
Название
Смысл
λ \lambda λ
Интенсивность входящего потока
Среднее число заявок в единицу времени
μ \mu μ
Интенсивность обслуживания
Среднее число заявок, обслуживаемых каналом в единицу времени
ρ = λ / μ \rho = \lambda / \mu ρ = λ / μ
Нагрузка (utilisation)
Доля времени, которую канал занят
c c c
Число каналов
Параллельные устройства обслуживания
W W W
Среднее время пребывания в системе
Время от поступления до выхода
W q W_q W q
Среднее время ожидания
Время в очереди
L L L
Среднее число заявок в системе
Очередь + обслуживание
L q L_q L q
Средняя длина очереди
Число заявок, ожидающих обслуживания
Системы массового обслуживания
Разработка и оптимизация ИИС
2. Классификация: нотация Кендалла
Нотация Кендалла: A / B / c / K / N / D A / B / c / K / N / D A / B / c / K / N / D
Позиция
Смысл
Обозначения
A A A
Закон распределения интервалов поступления
M M M (экспоненциальный), D D D (детерминированный), G G G (общий)
B B B
Закон распределения времени обслуживания
M M M , D D D , G G G
c c c
Число каналов
1 , 2 , 3 , … 1, 2, 3, \ldots 1 , 2 , 3 , …
K K K
Ёмкость системы (очередь + обслуживание)
0 , 1 , 2 , … 0, 1, 2, \ldots 0 , 1 , 2 , … или ∞ \infty ∞
N N N
Число источников заявок
конечное или ∞ \infty ∞
D D D
Дисциплина обслуживания
FIFO, LIFO, PRI, SIRO
Пример: M / M / 1 M/M/1 M / M /1 — экспоненциальный поток, экспоненциальное обслуживание, 1 канал.
Системы массового обслуживания
Разработка и оптимизация ИИС
Классификация по типу
По числу каналов:
Одноканальные (c = 1 c = 1 c = 1 )
Многоканальные (c > 1 c > 1 c > 1 )
По ёмкости очереди:
С неограниченной очередью (K = ∞ K = \infty K = ∞ )
С ограниченной очередью (K < ∞ K < \infty K < ∞ )
Без очереди (K = c K = c K = c , отказы)
По числу фаз:
Однофазные (одна ступень обслуживания)
Многофазные (последовательные ступени)
Системы массового обслуживания
Разработка и оптимизация ИИС
3. Пуассоновский поток заявок
Простейший (пуассоновский) поток обладает тремя свойствами:
Стационарность — вероятность поступления k k k заявок за интервал τ \tau τ зависит только от длительности τ \tau τ , а не от его положения на оси времени
Ординарность — заявки поступают по одной, а не пачками
Отсутствие последействия — число заявок на непересекающихся интервалах независимо
Вероятность поступления k k k заявок за время τ \tau τ :
P k ( τ ) = ( λ τ ) k k ! e − λ τ P_k(\tau) = \frac{(\lambda \tau)^k}{k!} e^{-\lambda \tau}
P k ( τ ) = k ! ( λ τ ) k e − λ τ
Системы массового обслуживания
Разработка и оптимизация ИИС
Свойства пуассоновского потока
Интервалы между поступлениями распределены по экспоненциальному закону:
f ( t ) = λ e − λ t , t ≥ 0 f(t) = \lambda e^{-\lambda t}, \quad t \geq 0
f ( t ) = λ e − λ t , t ≥ 0
Математическое ожидание интервала: E [ T ] = 1 / λ E[T] = 1 / \lambda E [ T ] = 1/ λ
Дисперсия: D [ T ] = 1 / λ 2 D[T] = 1 / \lambda^2 D [ T ] = 1/ λ 2
Свойство суперпозиции: сумма n n n независимых пуассоновских потоков с интенсивностями λ 1 , … , λ n \lambda_1, \ldots, \lambda_n λ 1 , … , λ n — пуассоновский поток с интенсивностью λ = ∑ i = 1 n λ i \lambda = \sum_{i=1}^{n} \lambda_i λ = ∑ i = 1 n λ i .
Системы массового обслуживания
Разработка и оптимизация ИИС
Марковские процессы
Марковский процесс — случайный процесс, у которого будущее развитие зависит только от текущего состояния и не зависит от предыстории (отсутствие последействия).
Непрерывный марковский процесс с конечным числом состояний:
Состояние S i S_i S i — число заявок в системе
Переходы S i → S i + 1 S_i \to S_{i+1} S i → S i + 1 с интенсивностью λ \lambda λ (поступление)
Переходы S i → S i − 1 S_i \to S_{i-1} S i → S i − 1 с интенсивностью μ \mu μ (обслуживание)
Граф состояний для M / M / 1 M/M/1 M / M /1 :
Системы массового обслуживания
Разработка и оптимизация ИИС
Уравнения Колмогорова
Уравнения равновесия (для стационарного режима):
Для каждого состояния: интенсивность входящего потока = интенсивности исходящего потока
λ p 0 = μ p 1 \lambda p_0 = \mu p_1
λ p 0 = μ p 1
λ p i − 1 + μ p i + 1 = ( λ + μ ) p i , i ≥ 1 \lambda p_{i-1} + \mu p_{i+1} = (\lambda + \mu) p_i, \quad i \geq 1
λ p i − 1 + μ p i + 1 = ( λ + μ ) p i , i ≥ 1
Условие нормировки: ∑ i = 0 ∞ p i = 1 \sum_{i=0}^{\infty} p_i = 1 ∑ i = 0 ∞ p i = 1
Из первого уравнения: p 1 = ρ p 0 p_1 = \rho p_0 p 1 = ρ p 0 , p 2 = ρ 2 p 0 p_2 = \rho^2 p_0 p 2 = ρ 2 p 0 , ...
p i = ρ i p 0 , i = 0 , 1 , 2 , … p_i = \rho^i p_0, \quad i = 0, 1, 2, \ldots
p i = ρ i p 0 , i = 0 , 1 , 2 , …
Системы массового обслуживания
Разработка и оптимизация ИИС
4. Формула Литтла
Формула Литтла (1961) — один из важнейших законов теории СМО:
L = λ W L = \lambda W
L = λW
L q = λ W q L_q = \lambda W_q
L q = λ W q
Где:
L L L — среднее число заявок в системе
W W W — среднее время пребывания заявки в системе
L q L_q L q — среднее число заявок в очереди
W q W_q W q — среднее время ожидания
Дополнительно: W = W q + 1 / μ W = W_q + 1 / \mu W = W q + 1/ μ
Формула Литтла справедлива для любых СМО с любыми распределениями при стационарном режиме.
Системы массового обслуживания
Разработка и оптимизация ИИС
Формула Литтла — интерпретация
L = λ W ⟺ «сколько в системе» = «скорость входа» × «время в системе» L = \lambda W \quad \Longleftrightarrow \quad \text{«сколько в системе»} = \text{«скорость входа»} \times \text{«время в системе»}
L = λW ⟺ « сколько в системе » = « скорость входа » × « время в системе »
Примеры:
В магазине: λ = 10 \lambda = 10 λ = 10 чел/ч, W = 0.5 W = 0.5 W = 0.5 ч ⇒ \Rightarrow ⇒ L = 5 L = 5 L = 5 человек в магазине
На сервере: λ = 100 \lambda = 100 λ = 100 запр/с, W = 0.01 W = 0.01 W = 0.01 с ⇒ \Rightarrow ⇒ L = 1 L = 1 L = 1 запрос в системе
На дороге: λ = 30 \lambda = 30 λ = 30 авт/мин, W = 2 W = 2 W = 2 мин ⇒ \Rightarrow ⇒ L = 60 L = 60 L = 60 автомобилей на участке
Системы массового обслуживания
Разработка и оптимизация ИИС
5. Модель M/M/1
Условия: пуассоновский вход (λ \lambda λ ), экспоненциальное обслуживание (μ \mu μ ), 1 канал, неограниченная очередь, бесконечный источник.
Условие существования стационарного режима: ρ = λ / μ < 1 \rho = \lambda / \mu < 1 ρ = λ / μ < 1
Стационарные вероятности:
p i = ( 1 − ρ ) ρ i , i = 0 , 1 , 2 , … p_i = (1 - \rho) \rho^i, \quad i = 0, 1, 2, \ldots
p i = ( 1 − ρ ) ρ i , i = 0 , 1 , 2 , …
p 0 = 1 − ρ — вероятность простоя канала p_0 = 1 - \rho \quad \text{— вероятность простоя канала}
p 0 = 1 − ρ — вероятность простоя канала
Системы массового обслуживания
Разработка и оптимизация ИИС
M/M/1: основные характеристики
Характеристика
Формула
Вероятность простоя
p 0 = 1 − ρ p_0 = 1 - \rho p 0 = 1 − ρ
Средняя длина очереди
L q = ρ 2 1 − ρ = λ 2 μ ( μ − λ ) L_q = \dfrac{\rho^2}{1 - \rho} = \dfrac{\lambda^2}{\mu(\mu - \lambda)} L q = 1 − ρ ρ 2 = μ ( μ − λ ) λ 2
Среднее число заявок в системе
L = ρ 1 − ρ = λ μ − λ L = \dfrac{\rho}{1 - \rho} = \dfrac{\lambda}{\mu - \lambda} L = 1 − ρ ρ = μ − λ λ
Среднее время ожидания
W q = ρ μ ( 1 − ρ ) = λ μ ( μ − λ ) W_q = \dfrac{\rho}{\mu(1 - \rho)} = \dfrac{\lambda}{\mu(\mu - \lambda)} W q = μ ( 1 − ρ ) ρ = μ ( μ − λ ) λ
Среднее время в системе
W = 1 μ − λ W = \dfrac{1}{\mu - \lambda} W = μ − λ 1
Системы массового обслуживания
Разработка и оптимизация ИИС
M/M/1: проверка формулы Литтла
L = λ μ − λ , W = 1 μ − λ L = \frac{\lambda}{\mu - \lambda}, \quad W = \frac{1}{\mu - \lambda}
L = μ − λ λ , W = μ − λ 1
L = λ W ✓ L = \lambda W \; \checkmark
L = λW ✓
L q = λ 2 μ ( μ − λ ) , W q = λ μ ( μ − λ ) L_q = \frac{\lambda^2}{\mu(\mu - \lambda)}, \quad W_q = \frac{\lambda}{\mu(\mu - \lambda)}
L q = μ ( μ − λ ) λ 2 , W q = μ ( μ − λ ) λ
L q = λ W q ✓ L_q = \lambda W_q \; \checkmark
L q = λ W q ✓
W = W q + 1 μ ✓ W = W_q + \frac{1}{\mu} \; \checkmark
W = W q + μ 1 ✓
Системы массового обслуживания
Разработка и оптимизация ИИС
Пример: M/M/1
Сервер обрабатывает запросы: λ = 3 \lambda = 3 λ = 3 запр/мин, μ = 5 \mu = 5 μ = 5 запр/мин.
ρ = λ μ = 3 5 = 0.6 \rho = \frac{\lambda}{\mu} = \frac{3}{5} = 0.6
ρ = μ λ = 5 3 = 0.6
p 0 = 1 − 0.6 = 0.4 (40% времени сервер простаивает) p_0 = 1 - 0.6 = 0.4 \quad \text{(40\% времени сервер простаивает)}
p 0 = 1 − 0.6 = 0.4 (40% времени сервер простаивает )
L = 0.6 1 − 0.6 = 1.5 заявки в системе L = \frac{0.6}{1 - 0.6} = 1.5 \quad \text{заявки в системе}
L = 1 − 0.6 0.6 = 1.5 заявки в системе
L q = 0.6 2 1 − 0.6 = 0.9 заявки в очереди L_q = \frac{0.6^2}{1 - 0.6} = 0.9 \quad \text{заявки в очереди}
L q = 1 − 0.6 0. 6 2 = 0.9 заявки в очереди
W = 1 5 − 3 = 0.5 мин = 30 с W = \frac{1}{5 - 3} = 0.5 \text{ мин} = 30 \text{ с}
W = 5 − 3 1 = 0.5 мин = 30 с
W q = 0.6 5 ⋅ 0.4 = 0.3 мин = 18 с W_q = \frac{0.6}{5 \cdot 0.4} = 0.3 \text{ мин} = 18 \text{ с}
W q = 5 ⋅ 0.4 0.6 = 0.3 мин = 18 с
Системы массового обслуживания
Разработка и оптимизация ИИС
M/M/1: влияние нагрузки
L = ρ 1 − ρ , W = 1 μ ( 1 − ρ ) L = \frac{\rho}{1 - \rho}, \quad W = \frac{1}{\mu(1 - \rho)}
L = 1 − ρ ρ , W = μ ( 1 − ρ ) 1
ρ \rho ρ
L L L
W W W (в единицах 1 / μ 1/\mu 1/ μ )
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 ρ → 1 характеристики растут гиперболически — система становится нестабильной.
Системы массового обслуживания
Разработка и оптимизация ИИС
6. Модель M/M/c
Условия: пуассоновский вход (λ \lambda λ ), экспоненциальное обслуживание (μ \mu μ ), c c c каналов, неограниченная очередь.
Условие стационарности: ρ c = λ c μ < 1 \rho_c = \dfrac{\lambda}{c\mu} < 1 ρ c = c μ λ < 1
p 0 = [ ∑ k = 0 c − 1 ( c ρ c ) k k ! + ( c ρ c ) c c ! ( 1 − ρ c ) ] − 1 p_0 = \left[ \sum_{k=0}^{c-1} \frac{(c\rho_c)^k}{k!} + \frac{(c\rho_c)^c}{c! (1 - \rho_c)} \right]^{-1}
p 0 = [ k = 0 ∑ c − 1 k ! ( c ρ c ) k + c ! ( 1 − ρ c ) ( c ρ c ) c ] − 1
p n = { ( c ρ c ) n n ! p 0 при n ≤ c c c ρ c n c ! p 0 при n > c p_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}
p n = ⎩ ⎨ ⎧ n ! ( c ρ c ) n p 0 c ! c c ρ c n p 0 при n ≤ c при n > c
Системы массового обслуживания
Разработка и оптимизация ИИС
M/M/c: основные характеристики
L q = p 0 ( c ρ c ) c ρ c c ! ( 1 − ρ c ) 2 L_q = \frac{p_0 (c\rho_c)^c \rho_c}{c!\, (1 - \rho_c)^2}
L q = c ! ( 1 − ρ c ) 2 p 0 ( c ρ c ) c ρ c
W q = L q λ W_q = \frac{L_q}{\lambda}
W q = λ L q
W = W q + 1 μ W = W_q + \frac{1}{\mu}
W = W q + μ 1
L = λ W L = \lambda W
L = λW
Вероятность ожидания (формула Эрланга C):
P ( W q > 0 ) = ( c ρ c ) c c ! ( 1 − ρ c ) p 0 P(W_q > 0) = \frac{(c\rho_c)^c}{c!\,(1 - \rho_c)}\, p_0
P ( W q > 0 ) = c ! ( 1 − ρ c ) ( c ρ c ) c p 0
Системы массового обслуживания
Разработка и оптимизация ИИС
Пример: M/M/c
λ = 3 \lambda = 3 λ = 3 запр/мин, μ = 2 \mu = 2 μ = 2 запр/мин, сравним c = 1 , 2 , 3 c = 1, 2, 3 c = 1 , 2 , 3 .
c = 1 c = 1 c = 1 : ρ = 3 / 2 > 1 \rho = 3/2 > 1 ρ = 3/2 > 1 — стационарный режим не существует!
c = 2 c = 2 c = 2 : ρ c = 3 / 4 = 0.75 \rho_c = 3/4 = 0.75 ρ c = 3/4 = 0.75
p 0 = [ 1 + 3 2 + ( 3 / 2 ) 2 2 ! ( 1 − 0.75 ) ] − 1 = 1 1 + 1.5 + 4.5 = 1 7 ≈ 0.143 p_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
p 0 = [ 1 + 2 3 + 2 ! ( 1 − 0.75 ) ( 3/2 ) 2 ] − 1 = 1 + 1.5 + 4.5 1 = 7 1 ≈ 0.143
L q = ( 1 / 7 ) ⋅ ( 1.5 ) 2 ⋅ 0.75 2 ! ⋅ ( 0.25 ) 2 = 0.241 0.125 ≈ 1.93 L_q = \frac{(1/7) \cdot (1.5)^2 \cdot 0.75}{2! \cdot (0.25)^2} = \frac{0.241}{0.125} \approx 1.93
L q = 2 ! ⋅ ( 0.25 ) 2 ( 1/7 ) ⋅ ( 1.5 ) 2 ⋅ 0.75 = 0.125 0.241 ≈ 1.93
W q = 1.93 / 3 ≈ 0.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{ мин}
W q = 1.93/3 ≈ 0.64 мин , W = 0.64 + 0.5 = 1.14 мин
Системы массового обслуживания
Разработка и оптимизация ИИС
Пример: M/M/c — сравнение
Параметр
c = 2 c = 2 c = 2
c = 3 c = 3 c = 3
ρ c \rho_c ρ c
0.75
0.50
p 0 p_0 p 0
0.143
0.211
L q L_q L q
1.93
0.18
W q W_q W q (мин)
0.64
0.06
W W W (мин)
1.14
0.56
P ( ожидание ) P(\text{ожидание}) P ( ожидание )
0.643
0.236
Вывод: добавление третьего канала сокращает очередь в 10 раз и время ожидания — более чем в 10 раз.
Системы массового обслуживания
Разработка и оптимизация ИИС
7. Модель M/M/1/K
Условия: 1 канал, очередь ограничена длиной K − 1 K - 1 K − 1 (всего K K K мест в системе).
Если K K K мест заняты — заявка получает отказ.
Стационарный режим существует всегда (при ρ < 1 \rho < 1 ρ < 1 и при ρ ≥ 1 \rho \geq 1 ρ ≥ 1 ).
p i = { 1 − ρ 1 − ρ K + 1 ρ i при ρ ≠ 1 1 K + 1 при ρ = 1 p_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}
p i = ⎩ ⎨ ⎧ 1 − ρ K + 1 1 − ρ ρ i K + 1 1 при ρ = 1 при ρ = 1
Системы массового обслуживания
Разработка и оптимизация ИИС
M/M/1/K: основные характеристики
L = ρ 1 − ρ − ( K + 1 ) ρ K + 1 1 − ρ K + 1 , ρ ≠ 1 L = \frac{\rho}{1 - \rho} - \frac{(K + 1)\rho^{K+1}}{1 - \rho^{K+1}}, \quad \rho \neq 1
L = 1 − ρ ρ − 1 − ρ K + 1 ( K + 1 ) ρ K + 1 , ρ = 1
L q = L − ( 1 − p 0 ) L_q = L - (1 - p_0)
L q = L − ( 1 − p 0 )
λ эфф = λ ( 1 − p K ) \lambda_{\text{эфф}} = \lambda(1 - p_K)
λ эфф = λ ( 1 − p K )
W = L λ эфф , W q = L q λ эфф W = \frac{L}{\lambda_{\text{эфф}}}, \quad W_q = \frac{L_q}{\lambda_{\text{эфф}}}
W = λ эфф L , W q = λ эфф L q
Вероятность отказа: P отк = p K = ( 1 − ρ ) ρ K 1 − ρ K + 1 P_{\text{отк}} = p_K = \dfrac{(1 - \rho)\rho^K}{1 - \rho^{K+1}} P отк = p K = 1 − ρ K + 1 ( 1 − ρ ) ρ K
Относительная пропускная способность: Q = 1 − p K Q = 1 - p_K Q = 1 − p K
Системы массового обслуживания
Разработка и оптимизация ИИС
Пример: M/M/1/K
λ = 3 \lambda = 3 λ = 3 , μ = 2 \mu = 2 μ = 2 , K = 5 K = 5 K = 5 (5 мест в системе: 1 обслуживание + 4 в очереди).
ρ = 1.5 \rho = 1.5
ρ = 1.5
p 0 = 1 − 1.5 1 − 1.5 6 = − 0.5 1 − 11.39 = 0.5 10.39 ≈ 0.048 p_0 = \frac{1 - 1.5}{1 - 1.5^6} = \frac{-0.5}{1 - 11.39} = \frac{0.5}{10.39} \approx 0.048
p 0 = 1 − 1. 5 6 1 − 1.5 = 1 − 11.39 − 0.5 = 10.39 0.5 ≈ 0.048
P отк = p 5 = 0.5 ⋅ 1.5 5 10.39 = 0.5 ⋅ 7.59 10.39 ≈ 0.365 P_{\text{отк}} = p_5 = \frac{0.5 \cdot 1.5^5}{10.39} = \frac{0.5 \cdot 7.59}{10.39} \approx 0.365
P отк = p 5 = 10.39 0.5 ⋅ 1. 5 5 = 10.39 0.5 ⋅ 7.59 ≈ 0.365
Q = 1 − 0.365 = 0.635 (63.5% заявок обслуживаются) Q = 1 - 0.365 = 0.635 \quad \text{(63.5\% заявок обслуживаются)}
Q = 1 − 0.365 = 0.635 (63.5% заявок обслуживаются )
λ эфф = 3 ⋅ 0.635 = 1.906 \lambda_{\text{эфф}} = 3 \cdot 0.635 = 1.906
λ эфф = 3 ⋅ 0.635 = 1.906
L = 1.5 1 − 1.5 − 6 ⋅ 1.5 6 1 − 1.5 6 = − 1.5 − 0.5 − 6 ⋅ 11.39 10.39 = 3 − 6.58 = ≈ 2.51 L = \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
L = 1 − 1.5 1.5 − 1 − 1. 5 6 6 ⋅ 1. 5 6 = − 0.5 − 1.5 − 10.39 6 ⋅ 11.39 = 3 − 6.58 =≈ 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' ]:.2 f} , W={result['W' ]:.2 f} " )
Системы массового обслуживания
Разработка и оптимизация ИИС
Программная реализация: 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 ))
Системы массового обслуживания
Разработка и оптимизация ИИС
Программная реализация: 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 ))
Системы массового обслуживания
Разработка и оптимизация ИИС
Заключение
Системы массового обслуживания
Разработка и оптимизация ИИС
Ключевые выводы лекции
СМО описываются входящим потоком, каналами и дисциплиной очереди
Нотация Кендалла A / B / c / K / N / D A/B/c/K/N/D A / B / c / K / N / D — стандартная классификация
Пуассоновский поток + экспоненциальное обслуживание ⇒ \Rightarrow ⇒ марковская модель
Формула Литтла: L = λ W L = \lambda W L = λW — универсальный закон
M/M/1: простейшая модель, ρ < 1 \rho < 1 ρ < 1
M/M/c: многоканальная, формула Эрланга C
M/M/1/K: с отказами, стационарный режим всегда
Системы массового обслуживания
Разработка и оптимизация ИИС
Вопросы для самоконтроля
Что такое система массового обслуживания? Назовите основные элементы.
Расшифруйте нотацию Кендалла A / B / c / K / N / D A/B/c/K/N/D A / B / c / K / N / D .
Какие свойства имеет пуассоновский поток заявок?
Сформулируйте и докажите формулу Литтла.
Выведите формулы для L L L , L q L_q L q , W W W , W q W_q W q модели M / M / 1 M/M/1 M / M /1 .
При каком условии существует стационарный режим M / M / c M/M/c M / M / c ?
Чем отличается M / M / 1 M/M/1 M / M /1 от M / M / 1 / K M/M/1/K M / M /1/ K ?
Что такое вероятность отказа и относительная пропускная способность?
Системы массового обслуживания
Разработка и оптимизация ИИС
Рекомендуемые ресурсы
Основная литература:
Алексеев, Д. С. Технологии интеллектуального анализа данных.
Маккини, Уэс. Python и анализ данных. — pandas, NumPy.
Дополнительная литература:
Серебряная, Л. В. Методы и алгоритмы принятия решений.
Станкевич, Л. А. Интеллектуальные системы и технологии.
Онлайн-ресурсы:
Системы массового обслуживания
Кратко пробегитесь по плану: начнём с основных понятий и классификации, затем марковские процессы и формулы Литтла, после — классические модели (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.
Подведите итоги и покажите программную реализацию.