==========================================

PREGUNTA 1

Enunciado:

Una barra de longitud x1 será unida mediante soldadura a otra de longitud x2.

Si x1 sigue una distribución normal con media de 30 cm y varianza de 0.81,

y x2 una distribución normal con media de 18 cm y desviación típica de 0.3,

simule la soldadura de 500 barras.

Tome en cuenta que las especificaciones de diseño son 50 ± 5 cm.

Determine la probabilidad de que una barra esté fuera de especificaciones.

Calcule los coeficientes de capacidad Cp y Cpk del proceso.

¿Considera que está bajo control?

==========================================

# --- PREGUNTA 1 ---
# Simulación de longitudes de barras y análisis de capacidad del proceso

set.seed(133)            # Reproducibilidad
n <- 500                 # Número de barras a simular

# Parámetros de las distribuciones
media_x1 <- 30
sd_x1 <- sqrt(0.81)      # varianza 0.81 -> sd = √0.81
media_x2 <- 18
sd_x2 <- 0.3

# Límites de especificación (50 ± 5)
LSL <- 45     # Límite inferior
USL <- 55     # Límite superior

# Simulación de longitudes de barras
x1 <- rnorm(n, media_x1, sd_x1)
x2 <- rnorm(n, media_x2, sd_x2)
L_total <- x1 + x2   # Longitud total después de soldar

# Tabla con los valores
datos_barras <- data.frame(Barra_x1=x1, Barra_x2=x2, Largo_Total=L_total)

# Cálculo de probabilidad fuera de especificaciones
barras_malas <- sum(L_total < LSL | L_total > USL)
prob_malas <- barras_malas / n

# Estadísticos del proceso
media_proceso <- mean(L_total)
sd_proceso <- sd(L_total)

# Índices Cp y Cpk
Cp <- (USL - LSL) / (6 * sd_proceso)
Cpk <- min((USL - media_proceso)/(3*sd_proceso), 
           (media_proceso - LSL)/(3*sd_proceso))

# Resultados
cat("Probabilidad fuera de especificaciones:", prob_malas, "\n")
## Probabilidad fuera de especificaciones: 0.002
cat("Cp:", Cp, "\n")
## Cp: 1.708408
cat("Cpk:", Cpk, "\n")
## Cpk: 1.006283
# --- HISTOGRAMA ---
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.2
ggplot(datos_barras, aes(Largo_Total)) +
  geom_histogram(binwidth = 0.2, fill = "skyblue", color = "black") +  # Histograma
  geom_vline(xintercept = LSL, color = "red", linetype = "dashed", size = 1) + # Límite inferior
  geom_vline(xintercept = USL, color = "red", linetype = "dashed", size = 1) + # Límite superior
  geom_vline(xintercept = media_proceso, color = "blue", linetype = "dotted", size = 1) + # Media real del proceso
  labs(title="Distribución de las longitudes soldadas",
       x="Longitud total (cm)",
       y="Frecuencia")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Conclusión:

El proceso no está bajo control estadístico. Aunque presenta una buena capacidad potencial (Cp = 1.7084), el valor de Cpk = 1.0063 indica que el proceso está descentrado respecto al valor nominal, por lo que no cumple con los criterios mínimos de capacidad (Cpk ≥ 1.33). Esto significa que, aunque la variabilidad del proceso es baja, la media no está correctamente ajustada, lo que puede generar piezas fuera de especificación. Por tanto, es necesario reajustar y centrar el proceso para garantizar su control y estabilidad.

==========================================

PREGUNTA 2

Enunciado:

Cada 20 minutos llegan piezas a una estación de reproceso.

El número de defectos que una pieza puede tener como máximo es 3.

Se sabe que estos defectos siguen una distribución Binomial con media 2.4.

El tiempo para realizar las reparaciones se distribuye exponencial con λ = 0.2 piezas/minuto por defecto.

Determine cuánto tiempo tomará procesar 200 piezas usando 10 réplicas.

==========================================

# --- PREGUNTA 2 ---
# Simulación del proceso de reparación de piezas

set.seed(456)
n_replicas <- 10        # Número de veces que repetimos la simulación
n_piezas <- 200         # Piezas a procesar
llegada_cada <- 20      # Tiempo entre llegadas de piezas en minutos
lambda_defecto <- 0.2   # Tasa de reparación
media_t_defecto <- 1/lambda_defecto   # Media del tiempo exponencial
prob_defecto <- 0.8     # Probabilidad de tener un defecto
n_max_defectos <- 3     # Máximo de defectos por pieza

tiempos_finales <- numeric(n_replicas) # Vector para guardar resultados

for(i in 1:n_replicas){
  reloj_salida <- 0  # Tiempo total acumulado del sistema
  
  for(j in 1:n_piezas){
    tiempo_llegada <- j * llegada_cada
    
    # Número de defectos por pieza usando binomial
    n_defectos <- rbinom(1, n_max_defectos, prob_defecto)
    
    # Tiempo de reparación dependiendo del número de defectos
    t_reparacion <- ifelse(n_defectos==0, 0, rexp(1, rate = 1/(n_defectos * media_t_defecto)))
    
    # El proceso inicia cuando la pieza llega y el operador está libre
    tiempo_inicio <- max(tiempo_llegada, reloj_salida)
    
    # Nuevo tiempo de salida tras reparar
    reloj_salida <- tiempo_inicio + t_reparacion
  }
  
  tiempos_finales[i] <- reloj_salida
}

# Promedio final de tiempo para procesar las 200 piezas
tiempo_promedio <- mean(tiempos_finales)
cat("Tiempo promedio para procesar 200 piezas:", tiempo_promedio, "minutos\n")
## Tiempo promedio para procesar 200 piezas: 4020.548 minutos

Conclusión:

Según la simulación realizada con 10 réplicas, el tiempo promedio para procesar las 200 piezas fue de aproximadamente 4020.55 minutos. Este resultado refleja el efecto acumulado tanto del tiempo de llegada de las piezas (cada 20 minutos) como de los tiempos de reparación asociados a los defectos. Dado que los defectos siguen una distribución binomial con alta probabilidad (p = 0.8) y el tiempo de reparación tiene una distribución exponencial con λ = 0.2, el proceso presenta una alta carga de trabajo y tiempos de reproceso significativos. En conclusión, el sistema no es eficiente en su ritmo actual, y sería recomendable optimizar el proceso de reparación o reducir la frecuencia de defectos para disminuir el tiempo total de procesamiento.

==========================================

PREGUNTA 3

Enunciado:

Un camión tarda 30 ± 10 min en cargar, 20 ± 5 min en descargar,

y 40 min (exponencial) en trasladarse, ida o vuelta.

a) Simule el sistema por 10 horas (600 min) y haga 5 réplicas.

b) Calcule IC del 95% para el número de viajes completados.

c) Solo hay espacio para cargar un camión a la vez.

Recomiende cómo lograr al menos 10 entregas/día.

==========================================

# --- PREGUNTA 3 ---
# Simulación de viajes de un camión durante 10 horas

set.seed(789)
n_replicas <- 5
t_sim <- 600  # 10 horas en minutos
viajes_por_replica <- numeric(n_replicas)

for(i in 1:n_replicas){
  reloj <- 0
  viajes <- 0
  
  while(TRUE){
    # Tiempos del viaje de entrega
    t_carga <- runif(1, 20, 40)    # Tiempo de carga
    t_ida <- rexp(1, 1/40)         # Viaje de salida
    t_desc <- runif(1, 15, 25)     # Descarga
    
    tiempo_entrega <- t_carga + t_ida + t_desc
    
    if(reloj + tiempo_entrega > t_sim) break  # Si no alcanza tiempo, parar
    reloj <- reloj + tiempo_entrega
    viajes <- viajes + 1
    
    # Regreso a la base
    t_vuelta <- rexp(1, 1/40)
    if(reloj + t_vuelta > t_sim) break
    reloj <- reloj + t_vuelta
  }
  
  viajes_por_replica[i] <- viajes
}

# Intervalo de confianza para número de viajes
ic_viajes <- t.test(viajes_por_replica, conf.level=0.95)
cat("Viajes por réplica:\n")
## Viajes por réplica:
print(viajes_por_replica)
## [1] 4 5 4 4 6
cat("\nIntervalo de confianza 95%:\n")
## 
## Intervalo de confianza 95%:
print(ic_viajes$conf.int)
## [1] 3.489422 5.710578
## attr(,"conf.level")
## [1] 0.95

Conclusión:

Tras simular el sistema durante 10 horas en 5 réplicas, se obtuvo un promedio de entre 4 y 6 viajes por día, con un intervalo de confianza del 95% entre 3.49 y 5.71 viajes. Esto indica que, bajo las condiciones actuales (un solo camión y tiempos variables de carga, descarga y traslado), no es posible alcanzar las 10 entregas diarias requeridas. Para lograr ese objetivo, se recomienda aumentar la capacidad operativa, ya sea incorporando un segundo camión, reduciendo los tiempos de carga y descarga, o optimizando los trayectos de transporte, de modo que el sistema pueda incrementar la frecuencia de entregas y mejorar la eficiencia del proceso logístico.