Most-Queue — Python-библиотека для симуляции и численного анализа систем массового обслуживания (СМО) и сетей очередей.
Most-Queue is a Python library for simulation and numerical analysis of queueing systems and queueing networks.
- Документация:
docs/README.md - Быстрый старт:
docs/getting_started.md - Модели:
docs/models.md - Туториалы (Jupyter):
tutorials/
Подробная документация доступна:
- 📖 Полная документация (Русский) — Полное руководство на русском языке с подробными туториалами, примерами и теорией
- 🚀 Быстрый старт — Начните работу за несколько минут
- 📘 Основные концепции — Основы теории массового обслуживания
- 🎮 Руководство по симуляции — Имитационное моделирование
- 🧮 Руководство по расчетам — Численные методы
- 📊 Каталог моделей — Поддерживаемые модели СМО
- 🌐 Сети очередей — Сети СМО
- ⭐ Приоритетные системы — Системы с приоритетами
- 💡 Примеры использования — Практические примеры
- Симуляция: Моделирование различных типов систем массового обслуживания и сетей
- Численные методы: Решение стационарных задач теории массового обслуживания
- Метрики производительности: Анализ времени ожидания, времени пребывания, коэффициентов загрузки и многое другое
- Широкая поддержка моделей: FIFO, приоритеты, отпуска/прогрев/охлаждение, отрицательные заявки, fork-join, сети и многое другое
python3 -m pip install -U most-queuegit clone https://github.com/xabarov/most-queue.git
cd most-queue
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -U pip
python3 -m pip install -e .Для визуализации графов/сетей может понадобиться системный пакет graphviz (даже при установленном Python-пакете graphviz):
sudo apt-get update
sudo apt-get install -y graphvizТребования: Python >= 3.9 (см. pyproject.toml)
- Февраль 2026 — Добавлены расчеты по методу Такахаси–Таками для FIFO-моделей H₂/M/c и H₂/H₂/c:
most_queue/theory/fifo/gmc_takahasi.py— H₂/M/cmost_queue/theory/fifo/hkhk_takahasi.py— H₂/H₂/c- Улучшено API:
H2MnCalc.set_sources()иMGnCalc.set_servers()теперь принимаютH2Paramsнапрямую (без повторного фиттинга), аHkHkNCalcкорректно работает с complex-fit для (CV<1).
- 2025 — Для метода расчета многоканальной СМО с разогревом, охлаждением и задержкой начала охлаждения опубликована статья (реализация:
most_queue/theory/vacations/mgn_with_h2_delay_cold_warm.py):- Лохвицкий, В. А. Численный расчет многоканальной системы массового обслуживания с разогревом, охлаждением и задержкой начала охлаждения / В. А. Лохвицкий, Р. С. Хабаров, Е. Л. Яковлев // Авиакосмическое приборостроение. – 2025. – № 1. – С. 44–57. – DOI 10.25791/aviakosmos.1.2025.1456. – EDN OVJXK
Основные изменения:
- Метод Такахаси–Таками для FIFO H₂-моделей: расчёты для H₂/M/c (
H2MnCalc) и H₂/H₂/c (HkHkNCalc) - Поддержка complex-fit для H₂ (CV<1) в расчётах: численные методы корректно работают с комплексными параметрами H₂-аппроксимации
- Улучшено API для H₂-параметров:
H2MnCalc.set_sources()иMGnCalc.set_servers()принимаютH2Paramsнапрямую (без повторного фиттинга) - Тесты валидации с таблицами:
tests/test_tt_vs_sim_cv105.py— TT vs симуляция при CV≈1.05 (одинаковыеH2Params)tests/test_tt_vs_sim_gamma_cvl1.py— CV<1: TT (H₂ complex-fit) vsGamma‑симуляция (одинаковые mean/CV)
from most_queue.sim.base import QsSim
# Создание симулятора
qs = QsSim(num_of_channels=1)
# Настройка потока поступления (пуассоновский с интенсивностью λ = 0.5)
qs.set_sources(0.5, "M")
# Настройка обслуживания (экспоненциальное с интенсивностью μ = 1.0)
qs.set_servers(1.0, "M")
# Запуск симуляции
results = qs.run(10000)
# Получение результатов
print(f"Среднее время ожидания: {results.w[0]:.4f}")
print(f"Среднее время пребывания: {results.v[0]:.4f}")
print(f"Коэффициент загрузки: {results.utilization:.4f}")from most_queue.theory.fifo.mmnr import MMnrCalc
# Создание калькулятора
calc = MMnrCalc(n=1)
calc.set_sources(l=0.5)
calc.set_servers(mu=1.0)
# Выполнение расчета
results = calc.run()
print(f"Среднее время ожидания: {results.w[0]:.4f}")См. Руководство по быстрому старту для дополнительных примеров.
Most-Queue состоит из двух основных модулей:
most_queue.sim— Программы симуляции систем массового обслуживанияmost_queue.theory— Численные методы для расчета моделей теории массового обслуживания
- M/M/c, M/M/c/r — Многоканальные системы с пуассоновским потоком
- M/G/1, M/G/c — Системы с произвольным распределением времени обслуживания
- GI/M/1, GI/M/c — Системы с общим потоком поступления
- H₂/M/c — Гиперэкспоненциальный поток поступления, метод Такахаси-Таками (§7.6.1)
- M/D/c, E_k/D/c — Системы с детерминированным обслуживанием
- M/H₂/c — Метод Такахаси-Таками с гиперэкспоненциальным обслуживанием
- H₂/H₂/c — Метод Такахаси-Таками для гиперэкспоненциального потока и обслуживания
Примечание про H₂ и (CV<1): реальное H₂-распределение имеет (CV \ge 1), но для численных методов допускается complex-fit (комплексные параметры аппроксимации). Симулятор QsSim не генерирует H₂ с комплексными параметрами, поэтому сравнение “теория vs симуляция” возможно только когда параметры вещественные.
Для (CV<1) валидацию удобно делать через Gamma‑симуляцию с теми же mean/CV (см. tests/test_tt_vs_sim_gamma_cvl1.py).
- M/G/1/PR, M/G/1/NP — Одноканальные с прерываемым/непрерываемым приоритетом
- M/G/c/PR, M/G/c/NP — Многоканальные с приоритетами
- M/Ph/c/PR — Фазовое распределение обслуживания с приоритетами
- Прогулки — Системы с прогулками серверов и прогревом
- Отрицательные заявки — Модели RCS и disaster
- Fork-Join — Системы параллельной обработки
- Пакетное поступление — Системы M^x/M/1
- Нетерпеливые заявки — Системы с уходом клиентов
- Engset — Закрытые системы с конечным числом источников
- Сети — Открытые и закрытые сети очередей
См. Каталог моделей для полного списка и деталей.
- Облачные вычисления: Моделирование масштабируемости и производительности инфраструктуры
- Call-центры: Оптимизация штата и времени ожидания клиентов
- Транспорт: Улучшение транспортных потоков и логистики
- Сетевой трафик: Анализ и прогнозирование потоков данных
- Производство: Оптимизация производственных линий
- Здравоохранение: Планирование ресурсов больниц
См. Примеры использования для практических кейсов.
Единый API для симуляции и расчета:
# from most_queue.theory.fifo.mgn_takahasi import MGnCalc
# from most_queue.sim.base import QsSim
#
# Численный расчет
calc = MGnCalc(n=NUM_OF_CHANNELS)
calc.set_sources(l=ARRIVAL_RATE)
calc.set_servers(b=b)
calc_results = calc.run()
# Симуляция
qs = QsSim(NUM_OF_CHANNELS)
qs.set_sources(ARRIVAL_RATE, "M")
qs.set_servers(gamma_params, "Gamma")
sim_results = qs.run(NUM_OF_JOBS)- Тесты — Примеры с сравнением теоретических и симуляционных результатов
- Туториалы — Jupyter-ноутбуки с пошаговыми руководствами
- Документация — Подробная документация на русском языке
python3 -m pip install -U pip
python3 -m pip install -e .
python3 -m pip install -U pytest
pytest -qЕсли вам нужны ноутбуки/док‑инструменты (Jupyter/Sphinx и т. п.), установите полный набор зависимостей:
python3 -m pip install -r requirements.txtЕсли нужно исключить медленные тесты:
pytest -q -m "not slow"- Теория массового обслуживания
- Симуляция
- Численные методы
- Сети очередей
- Анализ производительности
- Облачные вычисления
- Оптимизация call-центров
- Транспортные системы
- Сетевой трафик
- Python-пакет
Мы приветствуем ваш вклад!
- Откройте issue для сообщений об ошибках или предложений
- Отправьте pull request для улучшений функциональности
- Контакты: xabarov1985@gmail.com
См. файл LICENSE для деталей.
Для подробной документации, примеров и туториалов см. docs/README.md
