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