- With an arrival rate $\lambda$ (customers per time unit)
- A service rate $\mu$ (customers per time unit)
- and a reward and cost for service that can actually just be considered as a "value for service": $\beta$
Naor then considered two types of customers: Selfish and Optimal.
It is relatively straightforward to see that Selfish customers should join if and only if:
$$\frac{n+1}{\mu}\leq \beta$$
where $n$ is the number of other customers in the system upon arrival.
What is slightly less straightforward is that Optimal customers should join if and only if $n\leq n^*$ where:
\[\frac{n^*(1-\rho)-\rho(1-\rho^{n^*})}{(1-\rho)^2}\leq \beta \mu < \frac{(n^*+1)(1-\rho)-\rho(1-\rho^{n^*+1})}{(1-\rho)^2}\]
(where $\rho=\lambda/\mu$)
It's a really cool result and one that has given rise to a lot more research (including what I mainly enjoy looking at).
I was asked recently be a colleague to give a 15 minute talk about my research to her second year OR class who will have just seen some queueing theory. I decided to talk about Naor's paper and thought that it would be nice if I could give a graphical representation of the customers arriving at the queue (similar to the DES package: +SIMUL8). So I spent some time writing a simulation engine and using the in built +Python Turtle library to get some graphics. A part from some of the optional plotting (matplotlib), this only uses base python libraries. Here's a gif from an early prototype:
Here's a video discussing Naor's result and showing demonstrating everything with my simulation model:
The code is all up on github and it really could do with some improving so it would be great if anyone wanted to contribute: https://github.com/drvinceknight/Simulating_Queues
No comments:
Post a Comment