Datos del problema:
set.seed(123) # Para resultados reproducibles
n_piezas <- 200 # número de piezas
reps <- 10 # número de réplicas
media_defectos <- 2.4
max_defectos <- 3
lambda <- 0.2 # tasa exponencial (piezas/minuto)
tiempo_llegada <- 20 # minutos entre llegadas
La media de una distribución binomial está dada por:
\[ \text{media} = n \times p \quad \Rightarrow \quad p = \frac{\text{media}}{n} \]
p <- media_defectos / max_defectos
tiempo_total <- numeric(reps)
for (r in 1:reps) {
# Generamos el número de defectos de cada pieza
defectos <- rbinom(n_piezas, size = max_defectos, prob = p)
# Para cada defecto, generamos un tiempo de reparación
# Si una pieza tiene 0 defectos, su tiempo de reparación será 0
tiempos_reparacion <- sapply(defectos, function(d) {
if (d == 0) return(0)
sum(rexp(d, rate = lambda))
})
# Tiempo total de procesamiento de las 200 piezas
# Incluye el tiempo entre llegadas más el tiempo de reparación
tiempo_total[r] <- sum(tiempo_llegada + tiempos_reparacion)
}
tiempo_total
## [1] 6427.112 6548.740 6350.137 6274.511 6578.053 6353.405 6506.708 6450.375
## [9] 6410.956 6421.431
promedio_tiempo <- mean(tiempo_total)
cat("Tiempo promedio total para procesar 200 piezas (10 réplicas):",
round(promedio_tiempo, 2), "minutos\n")
## Tiempo promedio total para procesar 200 piezas (10 réplicas): 6432.14 minutos