# --- 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.
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 ---
# 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
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 ---
# 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
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.