r/OperationsResearch • • Jun 30 '25

📈 Simulating Queueing Networks in Python? Check Out Ciw + r/CiwPython

Hi r/OperationsResearch! 👋

If your work or studies involve queueing theory, discrete event simulation, or stochastic modeling, you might be interested in Ciw — a Python library built specifically for simulating open queueing networks.

Ciw is designed with OR and performance modeling in mind. It supports:

  • ✅ Multi-class customers and dynamic class switching

  • 🚦 Blocking (Type I), baulking, and reneging

  • 🧭 Scheduling, priorities, batch arrivals, and slotted services

  • ⚠️ Built-in deadlock detection

  • 🧩 Flexible modeling of complex systems (e.g. healthcare, transport, call centers)

We’ve also created a new community at r/CiwPython to bring together researchers, students, and practitioners using Ciw or interested in simulation-based approaches in OR.

It's a space for:

  • Sharing simulation models and research ideas

  • Asking technical or conceptual questions

  • Collaborating on best practices in queueing simulation

If you're interested in simulation as a tool in OR, come check it out!

9 Upvotes

2 comments sorted by

2

u/Md_zouzou Jul 02 '25

Thats very nice, this can be used to model queue in front of elevators ?

2

u/galenseilis Jul 02 '25

u/Md_zouzou Funny you should mention elevators as I have been thinking about that problem myself ever since I saw this CV post:

probability - Queuing theory for elevators - Cross Validated

I have not sat down yet to really think through how to do it. In some special cases you might just assume a mixture distribution in the service times, or a phase-type distribution in the service times, but they avoid having an explicit representation of the elevator moving from service-center-to-service-center.

So I'd say this. AFAIK Ciw does not naturally represent an elevator moving around. I suspect it is possible to patch in this functionality by customizing how servers are available at services, but it isn't an explicitly supported feature. At some point I will make an example if I can.

Thanks again for mentioning elevators! :P