Since the distribution will only give a single value, the standard deviation \(\sigma\) is 0. Therefore:
Eq.1 \[W_q = \frac{\lambda(\sigma^2+1/\mu^2)}{2(1-\lambda/\mu)} \rightarrow \frac{\lambda/\mu^2}{2(1-\lambda/\mu)} = \frac{\lambda}{2\mu(\mu-\lambda)}\]
So, using a M/D/1 model:
For a M/M/1 distribution with \(\lambda\) and \(\mu\) being the same form the M/D/1 model.
Comparing the M/D/1 and M/M/1 models:
This is a very unusual conclusion. With the steady state utilization \(\rho\) remaining constant across both models. The M/D/1 model has half the average queue time and half the average queue length when compared to the M/M/1 model. In addition the average time and length in the system is at least as short as and maybe almost up to half as short as the M/M/1 system.
Random.Exponential(1)
.Random.discrete(0.9,1)
.Random.exponential(0.9)
.Running the M/D/1 Simio model:
Using the process described above, the following results were produced:
The following table compares the theoretical vs the simulation.
c_names <- c("MetricEstimated", "Queueing", "Simulaiton", "Halfwidth")
r_names <- c("Utilizaiton (p)", "Number in System (L)", "Number in queue (Lq)",
"Time in system (W)", "Time in queue (Wq)")
l <- 1
m <- 1/0.9
md1 <- data.frame(matrix(NA, nrow = length(r_names), ncol = length(c_names)))
names(md1) <- c_names
md1$MetricEstimated <- r_names
md1$Queueing <- c(l/m, (2*m*l-l^2)/(2*m*(m-l)), l^2/(2*m*(m-l)),
(2*m-l)/(2*m*(m-l)), l/(2*m*(m-l)))
md1$Simulaiton <- c(0.9007, 4.9713, 4.0408, 4.9671, 4.0373)
md1$Halfwidth <- c(0.2447, 0.1355, 0.1334, 0.1244, 0.1244)
(md1)
## MetricEstimated Queueing Simulaiton Halfwidth
## 1 Utilizaiton (p) 0.90 0.9007 0.2447
## 2 Number in System (L) 4.95 4.9713 0.1355
## 3 Number in queue (Lq) 4.05 4.0408 0.1334
## 4 Time in system (W) 4.95 4.9671 0.1244
## 5 Time in queue (Wq) 4.05 4.0373 0.1244
The 95% confidence interval catches the theoretical value almost on-center.
Running the M/M/1 Simio model:
Using the process described above, the following results were produced:
The following table compares the theoretical vs the simulation.
mm1 <- data.frame(matrix(NA, nrow = length(r_names), ncol = length(c_names)))
names(mm1) <- c_names
mm1$MetricEstimated <- r_names
mm1$Queueing <- c(l/m, l/(m-l), (l^2)/(m*(m-l)), 1/(m-l), l/(m*(m-l)))
mm1$Simulaiton <- c(0.8977, 8.9315, 8.012, 8.9410, 8.004)
mm1$Halfwidth <- c(0.3115, 0.5117, 0.5087, 0.4890, 0.4882)
(mm1)
## MetricEstimated Queueing Simulaiton Halfwidth
## 1 Utilizaiton (p) 0.9 0.8977 0.3115
## 2 Number in System (L) 9.0 8.9315 0.5117
## 3 Number in queue (Lq) 8.1 8.0120 0.5087
## 4 Time in system (W) 9.0 8.9410 0.4890
## 5 Time in queue (Wq) 8.1 8.0040 0.4882
Again, the 95% confidence interval catches the theoretical value almost on-center.
In conclusion, the theory matches almost exactly with the simulation under these circumstances.