Complete problem 14 from Chapter 4 in Kelton, choosing any of a, b, c, or d.
Build Simio models to confirm and cross-check the steady-state queueing theoretic results for the four specific queueing models whose exact steady-state output performance metrics are given in Section 2.3. Remember that your Simio models are initialized empty and idle, and that they produce results that are subject to statistical variation, so design and run Simio Experiments to deal with both of these issues; make your own decisions about things like run length, number of replications, and Warm-up Period, possibly after some trial and error. In each case, first compute numerical values for the queueing-theoretic steady-state output performance metrics W_{q}, W, L_{q}, L, and from the results in Section 2.3, and then compare these with your simulation estimates and confidence intervals. All those units are in minutes, and use minutes as well throughout your Simio models.
M/M/4 queue with arrival rate = 2.4 per minute and service rate = 0.7 per minute for each of the four individual servers (the same parameters used in the mmc.exe command-line programs shown in Figure 2.2).
\(p(0) = \frac{1}{\frac{(cp)^c}{c!(1-p)} + \sum_{\substack{c-1 \\ n=0}}\frac{(cp)^n}{n!}}\)
MM4 <- function(arrivetime, servtime, c=4){
#calculate required inputs
lambda <- 1/arrivetime
mu <- 1/servtime
rho <- lambda / (c*mu)
#calculate P(0) for 4 servers
p_0 <- (((1*rho)^0/factorial(0)) + ((2*rho)^1/factorial(1)) + ((3*rho)^2/factorial(2)) + ((4*rho)^3/factorial(3)) + ((4*rho)^4*(1/factorial(4))*(1/(1-rho))))^(-1)
#calculate required outputs
p_inf <- ((c*rho)^c * p_0) / (factorial(c) * (1-rho))
L <- c*rho + ((rho * p_inf)/1-rho)
W <- L/lambda
W_q <- W - 1/mu
L_q <- W_q * lambda
df <- data.frame('lambda'=lambda, 'mu'=mu, 'c'=c, 'rho'=rho, 'L'=L, 'L(q)'=L_q, 'W'=W, 'W(q)'=W_q, 'P(0)'=p_0, 'P(L(inf) >= c)'=p_inf)
df
}
MM4(2.4, 0.7)
## lambda mu c rho L L.q. W
## 1 0.4166667 1.428571 4 0.07291667 0.2187702 -0.07289647 0.5250485
## W.q. P.0. P.L.inf.....c.
## 1 -0.1749515 0.8516294 0.0002769924
The result using Simio is shown below: