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
#################################################
cola.MM1 <- function(t, lambda, mu)
{
# lambda: tasa de llegadas
# mu: tasa de servicio
# Funciones de tiempos
tarrival <- function() rexp(1, lambda)
tserver <- function() rexp(1, mu)
# Trayectoria de servicio
servicio <- trajectory() %>%
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
#################################################
cola.MM1K <- function(t, lambda, mu, K)
{
# lambda: tasa de llegadas
# mu: tasa de servicio
# K: capacidad del sistema
# Funciones de tiempos
tarrival <- function() rexp(1, lambda)
tserver <- function() rexp(1, mu)
# Tamaño de la cola
qsize <- K - 1
# Trayectoria de servicio
servicio <- trajectory() %>%
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
#################################################
cola.MMs <- function(t, lambda, mu, s)
{
# lambda: tasa de llegadas
# mu: tasa de servicio
# s: servidores idénticos disponibles
# Funciones de tiempos
tarrival <- function() rexp(1, lambda)
tserver <- function() rexp(1, mu)
# Trayectoria de servicio
servicio <- trajectory() %>%
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
#################################################
cola.MMsK <- function(t, lambda, mu, s, K)
{
# lambda: tasa de llegadas
# mu: tasa de servicio
# s: servidores
# K: capacidad del sistema
# Funciones de tiempos
tarrival <- function() rexp(1, lambda)
tserver <- function() rexp(1, mu)
# Tamaño de la cola
qsize <- K - s
# Trayectoria de servicio
servicio <- trajectory() %>%
visit("server", tserver)
# Entorno del sistema
#################################################
simmer() %>%
add_resource("server", capacity = s, queue_size = qsize) %>%
add_generator("arrival", servicio, tarrival) %>%
run(until = t)
}