definición de los valores de tiempo de llegada y tiempo de servicio

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
t_llegada <- (1:8)
t_servicio <- (1:6)

Creación de vectores con las probabilidades de tiempo de llegada y tiempo de servicio

pllegada <- c(0.125,0.125,0.125,0.125,0.125,0.125,0.125,0.125)
pservicio <- c(0.1,0.2,0.3,0.25,0.1,0.05)

creación de vectores de tiempo de llegada y tiempo de servicio con valores aleatorios

set.seed(25)
tllegadas <- sample(t_llegada,size=20,replace = TRUE,prob=pllegada)
tservicio <- sample(t_servicio,size=20,replace = TRUE,prob=pservicio)

creación de variables y vectores con número de posiciones necesarias

df<-NULL
reloj.llegada <- numeric(20)
reloj.salida <- numeric(20)
reloj.inicio.servicio <- numeric(20)
tcola <- numeric(20)
tsistema <- numeric(20)
tdesocupado <- numeric(20)
tservicio.llegada<-numeric(20)

valores para el primer cliente

reloj.llegada[1]<- 0
reloj.inicio.servicio[1]<- 0
reloj.salida[1]<-reloj.inicio.servicio[1]+tservicio[1]
tcola[1] <- reloj.inicio.servicio[1]-reloj.llegada[1]
tsistema[1] <- tcola[1]+tservicio[1]
tdesocupado[1] <- 0
## el valor de 0.123 se refiere a que no aplica un valor para esta variable en el primer cliente 
row <- data.frame (cliente=1,tiempo_desde_ultima_llegada=0.123,tiempo_servicio=tservicio [1],minuto_llegada=reloj.llegada[1],minuto_inicio_servicio=reloj.inicio.servicio[1], minuto_salida=reloj.salida[1]) 
  rbind(df, row) ->df

Creación de un ciclo para los clientes 2 a 20

for (cliente in 2:20) {
  reloj.llegada[cliente]<- tllegadas[cliente]+reloj.llegada[cliente-1]
  tservicio.llegada[cliente]<-tservicio[cliente]-tllegadas[cliente]
  if(reloj.llegada[cliente]>reloj.salida[cliente-1]){
    reloj.inicio.servicio[cliente]<-reloj.llegada[cliente]
  }else{reloj.inicio.servicio[cliente]<-reloj.salida[cliente-1]}
  reloj.salida[cliente]<-reloj.inicio.servicio[cliente]+tservicio[cliente]
  tdesocupado[cliente] <-reloj.inicio.servicio[cliente]-reloj.salida[cliente-1]
  tcola[cliente] <- reloj.inicio.servicio[cliente]-reloj.llegada[cliente]
  tsistema[cliente] <- tcola[cliente]+tservicio[cliente]
 
  row <- data.frame (cliente=cliente,tiempo_desde_ultima_llegada=tllegadas[cliente],tiempo_servicio=tservicio [cliente],minuto_llegada=reloj.llegada[cliente],minuto_inicio_servicio=reloj.inicio.servicio[cliente], minuto_salida=reloj.salida[cliente]) 
  rbind(df, row) ->df
  
}## del for
View(print(df)) ## el valor de 0.123 se refiere a que no aplica un valor para esta variable en el primer cliente 
##    cliente tiempo_desde_ultima_llegada tiempo_servicio minuto_llegada
## 1        1                       0.123               3              0
## 2        2                       7.000               4              7
## 3        3                       3.000               3             10
## 4        4                       1.000               3             11
## 5        5                       2.000               3             13
## 6        6                       1.000               4             14
## 7        7                       7.000               3             21
## 8        8                       4.000               2             25
## 9        9                       2.000               4             27
## 10      10                       4.000               3             31
## 11      11                       4.000               1             35
## 12      12                       4.000               4             39
## 13      13                       1.000               3             40
## 14      14                       6.000               3             46
## 15      15                       7.000               1             53
## 16      16                       3.000               4             56
## 17      17                       6.000               5             62
## 18      18                       7.000               4             69
## 19      19                       5.000               3             74
## 20      20                       7.000               3             81
##    minuto_inicio_servicio minuto_salida
## 1                       0             3
## 2                       7            11
## 3                      11            14
## 4                      14            17
## 5                      17            20
## 6                      20            24
## 7                      24            27
## 8                      27            29
## 9                      29            33
## 10                     33            36
## 11                     36            37
## 12                     39            43
## 13                     43            46
## 14                     46            49
## 15                     53            54
## 16                     56            60
## 17                     62            67
## 18                     69            73
## 19                     74            77
## 20                     81            84

respuestas a las preguntas

mean(tcola)##Tiempo promedio de espera en la cola
## [1] 1.35
sum(tdesocupado)   ##Tiempo que pasa el servidor desocupado
## [1] 21
mean(tservicio)##Tiempo promedio de servicio
## [1] 3.15
mean(tsistema)##Tiempo promedio que pasa un cliente en el sistema
## [1] 4.5
mean(tllegadas) ##Tiempo promedio de llegada
## [1] 4.3
mu<-1/(mean(tservicio))##cantidad promedio de servicios por minuto
lambda<-20/reloj.llegada[20] ##cantidad promedio de llegadas por periodo
pesperar<-lambda/mu

mu<-1/(mean(tservicio))##cantidad promedio de servicios por minuto
print(mu)
## [1] 0.3174603
lambda<-20/reloj.llegada[20] ##cantidad promedio de llegadas por minuto
print(lambda)
## [1] 0.2469136
pesperar<-lambda/mu ## probabilidad de esperar por el servicio 
print(pesperar)
## [1] 0.7777778
row2 <- data.frame (Tiempo.promedio.espera =mean(tcola),Tiempo.desocupado.total =sum(tdesocupado),Tiempo.promedio.servicio=mean(tservicio),Tiempo.promedio.cliente.sistema=mean(tsistema),Tiempo.promedio.llegada=mean(tllegadas),probabilidad.esperar=pesperar)

View(print(t(row2)))
##                                       [,1]
## Tiempo.promedio.espera           1.3500000
## Tiempo.desocupado.total         21.0000000
## Tiempo.promedio.servicio         3.1500000
## Tiempo.promedio.cliente.sistema  4.5000000
## Tiempo.promedio.llegada          4.3000000
## probabilidad.esperar             0.7777778