Python-библиотека для симуляции и анализа систем массового обслуживания (СМО) и сетей очередей.
Подробная документация доступна:
- 📖 Полная документация (Русский) — Полное руководство на русском языке с подробными туториалами, примерами и теорией
- 🚀 Быстрый старт — Начните работу за несколько минут
- 📘 Основные концепции — Основы теории массового обслуживания
- 🎮 Руководство по симуляции — Имитационное моделирование
- 🧮 Руководство по расчетам — Численные методы
- 📊 Каталог моделей — Поддерживаемые модели СМО
- 🌐 Сети очередей — Сети СМО
- ⭐ Приоритетные системы — Системы с приоритетами
- 💡 Примеры использования — Практические примеры
- Симуляция: Моделирование различных типов систем массового обслуживания и сетей
- Численные методы: Решение стационарных задач теории массового обслуживания
- Метрики производительности: Анализ времени ожидания, времени пребывания, коэффициентов загрузки и многое другое
- Широкая поддержка моделей: FIFO, приоритеты, прогулки, отрицательные заявки, fork-join, сети и многое другое
pip install most-queueИли установка из репозитория:
git clone https://github.com/xabarov/most-queue.git
cd most-queue
pip install -e .Требования: Python >= 3.9
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 — Системы с общим потоком поступления
- M/D/c, E_k/D/c — Системы с детерминированным обслуживанием
- M/H₂/c — Метод Такахаси-Таками с гиперэкспоненциальным обслуживанием
- 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 для симуляции и расчета:
# Численный расчет
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-ноутбуки с пошаговыми руководствами
- Документация — Подробная документация на русском языке
- Теория массового обслуживания
- Симуляция
- Численные методы
- Сети очередей
- Анализ производительности
- Облачные вычисления
- Оптимизация call-центров
- Транспортные системы
- Сетевой трафик
- Python-пакет
Мы приветствуем ваш вклад!
- Откройте issue для сообщений об ошибках или предложений
- Отправьте pull request для улучшений функциональности
- Контакты: xabarov1985@gmail.com
См. файл LICENSE для деталей.
Для подробной документации, примеров и туториалов см. docs/README.md
