Es un problema de colas en un banco, se necesita determinar cambiando el número de servidores de 1 a 7 el tamaño promedio de la cola. El banco trabaja de 10 a 18 horas.

###Se definen las variables con su distribución de probabilidad para cada día y también se definen las variables de tiempo entre llegadas
set.seed(1500)
tentre.llegadas <- c(0, 1, 2, 3, 4, 5, 6)
plunes <- c(0.1, 0.15, 0.1, 00.35, 0.25, 0.05, 0)
pmartes <- c(0.1, 0.1, 0.15, 0.2, 0.35, 0.1,0)
pmier <- c(0, 0.1, 0.1, 0.2, 0.1, 0.25, 0.25)
pjueves <- c(0, 0.15, 0.2, 0.2, 0.15, 0.15, 0.15)
pviernes <- c(0.15, 0.15, 0.2, 0.2, 0.1, 0.1, 0.1)
psaba <- c(0.2, 0.15, 0.1, 0.5, 0.05, 0, 0)
pdom <- c(0.35, 0.25, 0.2, 0.1, 0.1, 0, 0)
datos <- NULL

min.llegada <- numeric(1000)
min.salida <- numeric(1000)
cuenta.servicio <- numeric(1000)
tcola <- numeric(1000)
tsistema <- numeric(1000)
tdesocupado <- numeric(1000)
tservicio.llegada<-numeric(1000)

Se comienza a realizar la simulación

for(s in 1:7){
      for(d in c("lunes", "martes", "mierc", "jueves", "viernes", "sabado", "domingo" )){
        tservicio <- rnorm(1,8,5)
        tllegadas <- sample(tentre.llegadas, 1, replace = TRUE, prob = switch (d, 
                                                                              lunes={plunes},
                                                                              martes={pmartes},
                                                                              mierc={pmier},
                                                                              jueves={pjueves},
                                                                              viernes={pviernes},
                                                                              sabado={psaba},
                                                                              domingo={pdom}))
        min.llegada[1]<- 0
        cuenta.servicio[1]<- 0
        min.salida[1]<-cuenta.servicio[1]+tservicio[1]
        tcola[1] <- cuenta.servicio[1]-min.llegada[1]
        tsistema[1] <- tcola[1]+tservicio[1]
        tdesocupado[1] <- 0
        nuevo <- data.frame (Servidores=s,
                              Dia=d,
                             cliente=1,
                             Tiempo_desde_ultima_llegada=0,
                             Tiempo_servicio=tservicio [1],
                             Minuto_llegada=min.llegada[1],
                             Minuto_inicio_del_servicio=cuenta.servicio[1],  
                             minuto_salida_del_cliente=min.salida[1],
                             Tiempo_cola=tcola[1]) 
        datos <- rbind(datos, nuevo)
      
      
        for (c in 2:100){
          tservicio[c] <- rnorm(1,8,5)
        tllegadas[c] <- sample(tentre.llegadas, 1, replace = TRUE, prob = switch (d, 
                                                                              lunes={plunes},
                                                                              martes={pmartes},
                                                                              mierc={pmier},
                                                                              jueves={pjueves},
                                                                              viernes={pviernes},
                                                                              sabado={psaba},
                                                                              domingo={pdom}))
  
        min.llegada[c]<- tllegadas[c]+min.llegada[c-1]
        cuenta.servicio[c]<-tservicio[c]-tllegadas[c]
  
        if(min.llegada[c]>min.salida[c-1]){
          cuenta.servicio[c]<-min.llegada[c]
        }else{cuenta.servicio[c]<-min.salida[c-1]}
  
        min.salida[c]<-cuenta.servicio[c]+tservicio[c]
        tdesocupado[c] <-cuenta.servicio[c]-min.salida[c-1]
        tcola[c] <- cuenta.servicio[c]-min.llegada[c]
        tsistema[c] <- tcola[c]+tservicio[c]
 
        nuevo <- data.frame(Servidores=s,
                            Dia=d,
                            cliente=c, 
                             Tiempo_desde_ultima_llegada=tllegadas[c], 
                             Tiempo_servicio=tservicio [c], 
                             Minuto_llegada=min.llegada[c],
                             Minuto_inicio_del_servicio=cuenta.servicio[c],
                             minuto_salida_del_cliente=min.salida[c],
                             Tiempo_cola=tcola[c]) 
        datos <- rbind(datos, nuevo)
        }
        
      }
    }
head(datos)
##   Servidores   Dia cliente Tiempo_desde_ultima_llegada Tiempo_servicio
## 1          1 lunes       1                           0       9.5794180
## 2          1 lunes       2                           3       5.9690264
## 3          1 lunes       3                           0       6.6862646
## 4          1 lunes       4                           0      12.4502006
## 5          1 lunes       5                           3       8.1390881
## 6          1 lunes       6                           1      -0.2134184
##   Minuto_llegada Minuto_inicio_del_servicio minuto_salida_del_cliente
## 1              0                   0.000000                  9.579418
## 2              3                   9.579418                 15.548444
## 3              3                  15.548444                 22.234709
## 4              3                  22.234709                 34.684910
## 5              6                  34.684910                 42.823998
## 6              7                  42.823998                 42.610579
##   Tiempo_cola
## 1    0.000000
## 2    6.579418
## 3   12.548444
## 4   19.234709
## 5   28.684910
## 6   35.823998
plot(datos$Servidores, datos$Tiempo_cola)