Skip to main content

Software package for calculation and simulation of queuing systems

Project description

Системы массового обслуживания: Симуляция и численные методы 🔄

Queue

Python-библиотека для симуляции и анализа систем массового обслуживания (СМО) и сетей очередей.

GitHub commit activity


📚 Документация

Подробная документация доступна:


🔍 Основные возможности

  • Симуляция: Моделирование различных типов систем массового обслуживания и сетей
  • Численные методы: Решение стационарных задач теории массового обслуживания
  • Метрики производительности: Анализ времени ожидания, времени пребывания, коэффициентов загрузки и многое другое
  • Широкая поддержка моделей: 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


🚀 Быстрый старт

Базовый пример: M/M/1 система

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 — Численные методы для расчета моделей теории массового обслуживания

🧪 Поддерживаемые модели

FIFO системы

  • 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-центры: Оптимизация штата и времени ожидания клиентов
  • Транспорт: Улучшение транспортных потоков и логистики
  • Сетевой трафик: Анализ и прогнозирование потоков данных
  • Производство: Оптимизация производственных линий
  • Здравоохранение: Планирование ресурсов больниц

См. Примеры использования для практических кейсов.


📖 Most-Queue 2.0 API

Единый 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

most_queue-2.6.tar.gz (5.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

most_queue-2.6-py3-none-any.whl (190.4 kB view details)

Uploaded Python 3

File details

Details for the file most_queue-2.6.tar.gz.

File metadata

  • Download URL: most_queue-2.6.tar.gz
  • Upload date:
  • Size: 5.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for most_queue-2.6.tar.gz
Algorithm Hash digest
SHA256 79cadbf581bd5289f948db075676817a34c3e3eaacdac98b55db31fe1abcb1b6
MD5 4b3babf0934e48d35f8a41f86541a60f
BLAKE2b-256 b8f635c2d6cfbc3634b0df49b7747c14d8b4c5cb814e1a80c409af7ae2a2392c

See more details on using hashes here.

File details

Details for the file most_queue-2.6-py3-none-any.whl.

File metadata

  • Download URL: most_queue-2.6-py3-none-any.whl
  • Upload date:
  • Size: 190.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for most_queue-2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b8739634b157c3ca0c08681159ebf738a6c233d5a2db7ebce8711c2e274496f3
MD5 976601582e6273931d8871d8d9d98b2b
BLAKE2b-256 2f1968fa6880162e312df49dfca244e82786246c29b450ef902130088fd3cb3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page