5.6 Funciones simmer
En este apartado se presentan los algoritmos de simulación de simmer para los sistemas de colas estudiados.
5.6.1 \(M/M/1\)
# Sistema
#################################################
<- function(t, lambda, mu)
cola.MM1
{# lambda: tasa de llegadas
# mu: tasa de servicio
# Funciones de tiempos
<- function() rexp(1, lambda)
tarrival <- function() rexp(1, mu)
tserver
# Trayectoria de servicio
<- trajectory() %>%
servicio visit("server", tserver)
# Entorno del sistema
#################################################
simmer() %>%
add_resource("server", capacity = 1, queue_size = Inf) %>%
add_generator("arrival", servicio, tarrival) %>%
run(until = t)
}
5.6.2 \(M/M/1/K\)
# Sistema
#################################################
<- function(t, lambda, mu, K)
cola.MM1K
{# lambda: tasa de llegadas
# mu: tasa de servicio
# K: capacidad del sistema
# Funciones de tiempos
<- function() rexp(1, lambda)
tarrival <- function() rexp(1, mu)
tserver
# Tamaño de la cola
<- K - 1
qsize
# Trayectoria de servicio
<- trajectory() %>%
servicio visit("server", tserver)
# Entorno del sistema
#################################################
simmer() %>%
add_resource("server", capacity = 1, queue_size = qsize) %>%
add_generator("arrival", servicio, tarrival) %>%
run(until = t)
}
5.6.3 \(M/M/s\)
# Sistema
#################################################
<- function(t, lambda, mu, s)
cola.MMs
{# lambda: tasa de llegadas
# mu: tasa de servicio
# s: servidores idénticos disponibles
# Funciones de tiempos
<- function() rexp(1, lambda)
tarrival <- function() rexp(1, mu)
tserver
# Trayectoria de servicio
<- trajectory() %>%
servicio visit("server", tserver)
# Entorno del sistema
#################################################
simmer() %>%
add_resource("server", capacity = s, queue_size = Inf) %>%
add_generator("arrival", servicio, tarrival) %>%
run(until = t)
}
5.6.4 \(M/M/s/K\)
# Sistema
#################################################
<- function(t, lambda, mu, s, K)
cola.MMsK
{# lambda: tasa de llegadas
# mu: tasa de servicio
# s: servidores
# K: capacidad del sistema
# Funciones de tiempos
<- function() rexp(1, lambda)
tarrival <- function() rexp(1, mu)
tserver
# Tamaño de la cola
<- K - s
qsize
# Trayectoria de servicio
<- trajectory() %>%
servicio visit("server", tserver)
# Entorno del sistema
#################################################
simmer() %>%
add_resource("server", capacity = s, queue_size = qsize) %>%
add_generator("arrival", servicio, tarrival) %>%
run(until = t)
}