Se realiza la simulación del proceso de soldadura
set.seed(3110)
# 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.734
cat("Índice de Capacidad Real (Cpk):", round(Cpk, 3), "\n")
## Índice de Capacidad Real (Cpk): 1.044
# 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 = "skyblue", border = "black", breaks = 20)
abline(v = c(LSL, USL), col="darkred", lwd=3, lty=2)
abline(v = mean(soldadura), col="gold", lwd=2)
legend("topright", legend=c("Límites de Especificación", "Media del Proceso"),
col=c("darkred", "gold"), lty=c(2,1), lwd=c(3,2))
¿Considera que está bajo control?
Sí, el proceso de soldadura se considera bajo control, ya que la probabilidad de defecto estimada es 0%, lo que indica que la mayoría de las barras soldadas cumplen con los límites de especificación establecidos. Además, el índice de capacidad potencial Cp (1.734) demuestra que el proceso tiene una baja variabilidad, mientras que el índice de capacidad real Cpk (1.044) evidencia un ligero descentrado respecto al valor objetivo.
En conjunto, estos resultados muestran que el proceso es estable y capaz.
Se simula el tiempo total para reparar 200 piezas en 10 ocasiones (réplicas)
set.seed(2831)
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: 2508.16 minutos
## Réplica 2: 2377.38 minutos
## Réplica 3: 2245.18 minutos
## Réplica 4: 2500.57 minutos
## Réplica 5: 2367.69 minutos
## Réplica 6: 2513.28 minutos
## Réplica 7: 2438.14 minutos
## Réplica 8: 2347.84 minutos
## Réplica 9: 2415.97 minutos
## Réplica 10: 2365.87 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 = "firebrick")
grid()
¿Cuánto tiempo tomará procesar 200 piezas?
El tiempo total requerido para procesar las 200 piezas varía en cada réplica debido a la naturaleza aleatoria del número de defectos y del tiempo de reparación de cada pieza. Según los resultados obtenidos, el tiempo promedio total de procesamiento fue de 2408.01 minutos aproximadamente 40.1 horas. Los valores individuales oscilaron entre 2245.18 y 2513.28 minutos, lo que evidencia una variabilidad moderada en el proceso.
En conclusión, el reproceso de las 200 piezas requiere cerca de 40 horas en promedio, con fluctuaciones según la cantidad de defectos presentes.
Se simula el proceso logístico del camión
set.seed(51)
# 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, 4, 4, 4, 2
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.231, 3.231] [3.339, 3.339]
# 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 = "seagreen", 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.
Según los resultados de la simulación, el número promedio de viajes completados en una jornada de 8 horas fue de 3.29, con un intervalo de confianza del 95 % entre 3.231 , 3.339 viajes por día. En la jornada de 10 horas, las cinco réplicas generaron los valores 5, 4, 4, 4, 2, los cuales se mantienen por debajo de la meta de 10 entregas diarias. Esto demuestra que el sistema actual no es capaz de cumplir el objetivo operativo con las condiciones establecidas.
Recomendaciones:
Aumentar la capacidad operativa, Incorporando un segundo camión o un segundo punto de carga, lo que permitiría realizar procesos en paralelo y reducir los tiempos muertos.
Optimizar los tiempos en base, Disminuyendo los intervalos de carga y descarga mediante mejoras en los procedimientos o apoyo mecánico.
Reorganizar las rutas de entrega, Agrupando destinos cercanos para reducir los tiempos de traslado.
Extender la jornada laboral Solo en caso de que las medidas anteriores no sean viables.
Supuestos:
Se considera una jornada continua de 8 horas, con un solo muelle operativo, sin interrupciones externas (como tráfico o averías), y utilizando los mismos parámetros de distribución establecidos en la simulación. Además, se asume que el proceso logístico se desarrolla en condiciones normales de demanda, sin sobrecarga de pedidos ni variaciones climáticas. Finalmente, se parte de la premisa de que los tiempos de carga y descarga representan el principal cuello de botella del sistema, por lo que cualquier mejora en esas etapas impactaría directamente en la productividad diaria.