Se realiza la simulación del proceso de soldadura
set.seed(2025)
# 1. Simulación de las longitudes de las barras
n_barras <- 500
x1 <- rnorm(n_barras, mean = 30, sd = sqrt(0.81))
x2 <- rnorm(n_barras, mean = 18, sd = 0.3)
soldadura <- x1 + x2
# 2. Definición de las especificaciones
LSL <- 45
USL <- 55
# 3. Cálculo de la probabilidad y los índices
prob_fuera <- sum(soldadura < LSL | soldadura > USL) / n_barras
Cp <- (USL - LSL) / (6 * sd(soldadura))
Cpk <- min((USL - mean(soldadura)) / (3 * sd(soldadura)), (mean(soldadura) - LSL) / (3 * sd(soldadura)))
# 4. Presentación clara de los resultados numéricos
cat("Probabilidad de defecto estimada:", scales::percent(prob_fuera), "\n")
## Probabilidad de defecto estimada: 0%
cat("Índice de Capacidad Potencial (Cp):", round(Cp, 3), "\n")
## Índice de Capacidad Potencial (Cp): 1.749
cat("Índice de Capacidad Real (Cpk):", round(Cpk, 3), "\n")
## Índice de Capacidad Real (Cpk): 1.049
# 5. Gráfica de la distribución de las longitudes
hist(soldadura, main = "Distribución de Longitudes Soldadas",
xlab = "Longitud total (cm)", ylab = "Frecuencia",
col = "lightcoral", border = "black", breaks = 20)
abline(v = c(LSL, USL), col="darkblue", lwd=3, lty=2)
abline(v = mean(soldadura), col="darkgreen", lwd=2)
legend("topright", legend=c("Límites de Especificación", "Media del Proceso"),
col=c("darkblue", "darkgreen"), lty=c(2,1), lwd=c(3,2))
Se simula el tiempo total para reparar 200 piezas en 10 ocasiones (réplicas)
set.seed(1107)
n_replicas <- 10
n_piezas <- 200
tiempos_totales <- numeric(n_replicas)
max_defectos <- 3
media_defectos <- 2.4
prob_defecto <- media_defectos / max_defectos
tasa_reparacion <- 0.2
# Bucle para las 10 réplicas
for (r in 1:n_replicas) {
defectos_por_pieza <- rbinom(n_piezas, size = max_defectos, prob = prob_defecto)
tiempos_reparacion <- sapply(defectos_por_pieza, function(k) {
if (k == 0) return(0)
sum(rexp(k, rate = tasa_reparacion))
})
tiempos_totales[r] <- sum(tiempos_reparacion)
}
# Presentación clara de los resultados en formato de lista
cat("Tiempos totales (en minutos) para cada una de las 10 réplicas:\n")
## Tiempos totales (en minutos) para cada una de las 10 réplicas:
for (r in 1:length(tiempos_totales)) {
cat(sprintf("Réplica %2d: %.2f minutos\n", r, tiempos_totales[r]))
}
## Réplica 1: 2281.93 minutos
## Réplica 2: 2271.20 minutos
## Réplica 3: 2392.77 minutos
## Réplica 4: 2484.18 minutos
## Réplica 5: 2279.77 minutos
## Réplica 6: 2633.08 minutos
## Réplica 7: 2586.83 minutos
## Réplica 8: 2253.82 minutos
## Réplica 9: 2274.97 minutos
## Réplica 10: 2293.78 minutos
# Gráfico del tiempo total por réplica
plot(tiempos_totales, type = "b", pch = 19,
main = "Tiempo Total de Procesamiento por Réplica",
xlab = "Número de Réplica", ylab = "Tiempo Total (minutos)",
col = "darkorchid")
grid()
Se simula el proceso logístico del camión
set.seed(22)
# Función para simular un día de trabajo del camión
simular_viajes <- function(horas_jornada = 8) {
tiempo_maximo_min <- horas_jornada * 60
tiempo_acumulado <- 0
viajes_completados <- 0
while (TRUE) {
t_carga <- runif(1, min = 20, max = 40)
t_traslado1 <- rexp(1, rate = 1/40)
t_descarga <- runif(1, min = 15, max = 25)
t_traslado2 <- rexp(1, rate = 1/40)
tiempo_ciclo <- t_carga + t_traslado1 + t_descarga + t_traslado2
if (tiempo_acumulado + tiempo_ciclo > tiempo_maximo_min) break
tiempo_acumulado <- tiempo_acumulado + tiempo_ciclo
viajes_completados <- viajes_completados + 1
}
return(viajes_completados)
}
# a) Simulación de 10 horas
viajes_10_horas <- replicate(5, simular_viajes(horas_jornada = 10))
# b) Simulación para intervalo de confianza en un día (8 horas)
viajes_8_horas <- replicate(1000, simular_viajes(horas_jornada = 8))
ic_95 <- t.test(viajes_8_horas)$conf.int
# Presentación clara de los resultados de (a) y (b)
cat("a) Viajes completados en 5 réplicas de 10 horas:", paste(viajes_10_horas, collapse = ", "), "\n\n")
## a) Viajes completados en 5 réplicas de 10 horas: 5, 3, 4, 5, 4
cat("b) Intervalo de confianza del 95% para un día de 8 horas:", sprintf("[%s, %s]", round(ic_95, 3), round(ic_95, 3)), "\n")
## b) Intervalo de confianza del 95% para un día de 8 horas: [3.239, 3.239] [3.347, 3.347]
# Gráfica para el apartado a)
barplot(viajes_10_horas, main = "Número de Viajes por Réplica (Jornada de 10h)",
xlab = "Réplica", ylab = "Viajes Realizados",
col = "steelblue", names.arg = 1:5,
ylim = c(0, max(viajes_10_horas) + 1))
c) Si la empresa necesita realizar al menos 10 entregas por día, ¿qué recomendaciones daría? Justifique su respuesta y establezca sus supuestos.
Análisis: Los resultados de la simulación para una jornada de 8 horas muestran un intervalo de confianza de [3.239, 3.347] viajes por día. El gráfico de barras para la jornada de 10 horas también muestra un rendimiento muy por debajo de la meta. Por lo tanto, el sistema actual es incapaz de cumplir el objetivo de 10 entregas.
Recomendaciones:
Supuestos Establecidos: Se asume un “día” laboral de 8 horas, sin interrupciones externas (tráfico, averías), y que el muelle de carga es un cuello de botella clave.