set.seed(123)
En una planta se sueldan dos barras: x1 ~ Normal(30, var = 0.81) -> sd = 0.9 x2 ~ Normal(18, var = 0.09) -> sd = 0.3 La longitud total es L = x1 + x2. La especificación es 50 ± 5 cm, es decir: LSL = 45 y USL = 55
Se pide: #
Simular 500 barras.
#
Estimar la probabilidad de que la longitud esté FUERA de
especificación.
#
Calcular los índices de capacidad Cp y Cpk usando la muestra simulada.
# PROBLEMA 1: SOLDADURA DE DOS BARRAS
n_barras <- 500
mu1 <- 30
sd1 <- 0.9
mu2 <- 18
sd2 <- 0.3
LSL <- 45
USL <- 55
x1 <- rnorm(n_barras, mean = mu1, sd = sd1)
x2 <- rnorm(n_barras, mean = mu2, sd = sd2)
long_total <- x1 + x2
fuera <- ifelse(long_total < LSL | long_total > USL, 1, 0)
prob_fuera <- mean(fuera)
media_proc <- mean(long_total)
sd_proc <- sd(long_total)
Cp <- (USL - LSL) / (6 * sd_proc)
Cpk <- min(
(USL - media_proc) / (3 * sd_proc),
(media_proc - LSL) / (3 * sd_proc)
)
cat("PROBLEMA 1\n")
## PROBLEMA 1
cat("Media:", media_proc, "\n")
## Media: 48.03043
cat("Desv.Est.:", sd_proc, "\n")
## Desv.Est.: 0.9115265
cat("Prob. fuera:", prob_fuera, "\n")
## Prob. fuera: 0
cat("Cp:", Cp, "\n")
## Cp: 1.828435
cat("Cpk:", Cpk, "\n")
## Cpk: 1.108189
El proceso de soldadura muestra una variabilidad controlada, reflejada en un Cp superior a 1.33, lo que indica buena capacidad del sistema. Sin embargo, el valor de Cpk es menor que Cp, lo que evidencia que la media del proceso está algo desviada del valor nominal (50 cm). Por lo tanto, el proceso es capaz pero descentrado, y se recomienda ajustar la media de soldadura para centrar la producción dentro de las tolerancias.
Llega una pieza defectuosa a una estación de reproceso cada 20 minutos (tiempos entre llegadas determinísticos). Cada pieza puede traer hasta 3 defectos. El número de defectos se modela como Binomial(3, 0.8) -> en promedio 2.4 defectos. El tiempo de reparación de CADA defecto es Exponencial(λ = 0.2), por lo que su media es 1/0.2 = 5 minutos.
El tiempo de servicio de una pieza = suma de tantos tiempos exponenciales como defectos tenga.
El servidor atiende las piezas en serie: inicio_servicio = max(tiempo_llegada, fin_servicio_anterior)
Se pide: #
Simular el sistema hasta procesar 200 piezas. #
Obtener el TIEMPO TOTAL para procesar las 200 piezas. #
Hacer 10 réplicas de la simulación. #
Calcular media, desviación estándar e intervalo de confianza 95%. #
# PROBLEMA 2: ESTACIÓN DE REPROCESO
llegada_cada <- 20
n_piezas <- 200
lambda_rep <- 0.2
n_reps_rep <- 10
tiempos_totales_rep <- numeric(n_reps_rep)
for (r in 1:n_reps_rep) {
llegada <- seq(0, by = llegada_cada, length.out = n_piezas)
fin_anterior <- 0
fin_pieza <- numeric(n_piezas)
for (i in 1:n_piezas) {
defectos <- rbinom(1, size = 3, prob = 0.8)
if (defectos == 0) {
t_serv <- 0
} else {
t_serv <- sum(rexp(defectos, rate = lambda_rep))
}
t_inicio <- max(llegada[i], fin_anterior)
t_fin <- t_inicio + t_serv
fin_pieza[i] <- t_fin
fin_anterior <- t_fin
}
tiempos_totales_rep[r] <- fin_pieza[n_piezas]
}
media_tiempo_rep <- mean(tiempos_totales_rep)
sd_tiempo_rep <- sd(tiempos_totales_rep)
n_r <- length(tiempos_totales_rep)
t_crit_rep <- qt(0.975, df = n_r - 1)
error_rep <- t_crit_rep * sd_tiempo_rep / sqrt(n_r)
IC_rep <- c(media_tiempo_rep - error_rep,
media_tiempo_rep + error_rep)
cat("PROBLEMA 2\n")
## PROBLEMA 2
print(round(tiempos_totales_rep, 2))
## [1] 3990.46 3994.46 3985.55 3993.76 4010.64 4017.68 4002.19 4014.93 4004.27
## [10] 3990.54
cat("Media:", round(media_tiempo_rep, 2), "\n")
## Media: 4000.45
cat("IC 95%:", round(IC_rep, 2), "\n")
## IC 95%: 3992.44 4008.46
###Conclusión
El tiempo total estimado para procesar 200 piezas ronda los 4.000 minutos (≈ 66 horas), lo cual concuerda con la frecuencia de llegada (cada 20 minutos). El intervalo de confianza del 95% muestra que las variaciones entre réplicas son pequeñas, por lo que el sistema es estable. El proceso es eficiente, aunque podría mejorarse reduciendo el número de defectos promedio o aumentando la cantidad de estaciones de reproceso para disminuir el tiempo total.
Un camión realiza ciclos de reparto formados por: #
Carga: Uniforme(20, 40) minutos (30 ± 10) #
Traslado de ida: Exponencial(media 40) -> rexp(1, rate = 1/40) #
Descarga: Uniforme(15, 25) minutos (20 ± 5) #
Traslado de regreso: Exponencial(media 40) #
Un viaje completo = carga + ida + descarga + vuelta
Se dispone de un horizonte de 10 horas = 600 minutos.
Se pide: #
Simular cuántos viajes completos puede hacer el camión en 600 min. #
Repetir la simulación 5 veces (5 réplicas). #
Estimar el promedio de viajes y un intervalo de confianza 95%. #
Analizar si se puede llegar a 10 viajes/día con estos tiempos. #
# PROBLEMA 3: CAMIÓN DE REPARTO
horizonte_min <- 600
n_reps_camion <- 5
viajes_por_rep <- numeric(n_reps_camion)
for (r in 1:n_reps_camion) {
tiempo_actual <- 0
viajes <- 0
repeat {
t_carga <- runif(1, min = 20, max = 40)
t_ida <- rexp(1, rate = 1/40)
t_descarga <- runif(1, min = 15, max = 25)
t_vuelta <- rexp(1, rate = 1/40)
t_viaje <- t_carga + t_ida + t_descarga + t_vuelta
tiempo_actual <- tiempo_actual + t_viaje
if (tiempo_actual <= horizonte_min) {
viajes <- viajes + 1
} else {
break
}
}
viajes_por_rep[r] <- viajes
}
media_viajes <- mean(viajes_por_rep)
sd_viajes <- sd(viajes_por_rep)
n_c <- length(viajes_por_rep)
t_crit_cam <- qt(0.975, df = n_c - 1)
error_cam <- t_crit_cam * sd_viajes / sqrt(n_c)
IC_cam <- c(media_viajes - error_cam,
media_viajes + error_cam)
cat("PROBLEMA 3\n")
## PROBLEMA 3
print(viajes_por_rep)
## [1] 4 3 5 4 3
cat("Promedio de viajes:", round(media_viajes, 2), "\n")
## Promedio de viajes: 3.8
cat("IC 95%:", round(IC_cam, 2), "\n")
## IC 95%: 2.76 4.84
El camión logra completar en promedio entre 4 y 6 viajes por día de 10 horas, dependiendo de la variabilidad en los tiempos de transporte y carga. El intervalo de confianza confirma que el desempeño promedio está muy por debajo de la meta de 10 entregas diarias. Por tanto, se recomienda reducir los tiempos de carga/descarga o emplear más camiones para alcanzar la productividad deseada.