Ejercicio 1: Simulación de Soldadura de Barras

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))

Análisis e Interpretación del Ejercicio 1

  • ¿Considera que está bajo control? , se considera que el proceso es altamente capaz y está bien centrado. Como se muestra en los resultados, tanto el Cp (1.749) como el Cpk (1.049) son significativamente mayores que el umbral de referencia de 1.33. El histograma confirma visualmente que la distribución del proceso está compacta y bien alejada de los límites de especificación, lo que explica la probabilidad de defecto del 0%.

Ejercicio 2: Simulación de Estación de Reproceso

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()

Análisis del Ejercicio 2

  • ¿Cuánto tiempo tomará procesar 200 piezas? El tiempo varía en cada ejecución, como se puede observar en el gráfico de líneas. Basado en la simulación, el tiempo promedio observado fue de 2375.23 minutos (aproximadamente 39.6 horas). Los valores específicos oscilaron entre 2253.82 y 2633.08 minutos.

Ejercicio 3: Simulación de Camión de Reparto

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))

Análisis y Recomendaciones del Ejercicio 3

  • 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:

    1. Adquirir un Segundo Camión: Es la solución más efectiva para aumentar la capacidad, permitiendo cargar un camión mientras otro está en ruta.
    2. Optimizar Tiempos en Base: Reducir los tiempos de carga y descarga.
    3. Extender la Jornada Laboral: Aunque viable, implica mayores costos.

    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.