EJERCICIO 1

Simular 500 barras, 𝑋 1 ∼ 𝑁 ( 30 , 0.81 ) X 1 ​

∼N(30,0.81) y 𝑋 2 ∼ 𝑁 ( 18 , 0.3 2 ) X 2 ​

∼N(18,0.3 2 ). Especificaciones: 50 ± 5 cm → Límite inferior (LSL) = 45, límite superior (USL) = 55. Calcular: probabilidad estimada de estar fuera de especificaciones, Cp y Cpk.

### EJERCICIO 1 --------------------------

set.seed(100)  # para reproducibilidad

# 1. Generación de datos
x1 <- rnorm(500, mean = 30, sd = sqrt(0.81))
x2 <- rnorm(500, mean = 18, sd = 0.3)

# Longitud total de la barra soldada
soldadura <- x1 + x2

# Mostrar los primeros valores generados
head(data.frame(x1, x2, soldadura))
##         x1       x2 soldadura
## 1 29.54803 17.56611  47.11414
## 2 30.11838 18.09476  48.21313
## 3 29.92897 17.89718  47.82615
## 4 30.79811 17.42059  48.21870
## 5 30.10527 18.07285  48.17812
## 6 30.28677 17.89117  48.17794
# Especificaciones
LSL <- 45
USL <- 55

# Probabilidad estimada de barra fuera de especificación (Montecarlo)
fuera <- sum(soldadura < LSL | soldadura > USL) / length(soldadura)

# Cálculo de Cp y Cpk
sigma <- sd(soldadura)
media <- mean(soldadura)

Cp  <- (USL - LSL) / (6 * sigma)
Cpk <- min((USL - media) / (3 * sigma), (media - LSL) / (3 * sigma))

cat("Probabilidad estimada de estar fuera de especificación:", fuera, "\n")
## Probabilidad estimada de estar fuera de especificación: 0.002
cat("Cp =", Cp, "\n")
## Cp = 1.745139
cat("Cpk =", Cpk, "\n")
## Cpk = 1.042727
# Gráfica
hist(soldadura, main = "Distribución de longitudes soldadas",
     xlab = "Longitud total (cm)", col = "skyblue", border = "grey")
abline(v = c(LSL, USL), col="red", lwd=2)

EJERCICIO 2

Llegan piezas cada 20 minutos, con defectos ~ Binomial(media 2.4, n = 3). Tiempo de reparación por defecto: Exponencial con λ = 0.2 piezas/minuto. ¿Cuánto tiempo toma procesar 200 piezas? → 10 réplicas.

### EJERCICIO 2 --------------------------

set.seed(200)

replicas <- 10
tiempos_totales <- numeric(replicas)

for (r in 1:replicas) {
  defectos <- rbinom(200, size = 3, prob = 2.4/3)
  
  tiempos <- numeric(200)
  for (i in 1:200) {
    tiempos[i] <- sum(rexp(defectos[i], rate = 0.2))
  }
  
  tiempos_totales[r] <- sum(tiempos)
  
  cat("\n--- Réplica", r, "---\n")
  print(defectos)
}
## 
## --- Réplica 1 ---
##   [1] 2 2 2 2 2 2 2 3 2 3 3 2 3 2 3 3 2 3 1 2 3 3 3 1 3 3 2 3 3 2 3 3 3 3 1 2 3
##  [38] 1 3 3 2 2 2 3 1 2 3 2 2 2 3 3 2 2 2 3 3 3 2 2 3 2 2 2 2 2 3 3 3 2 3 3 3 3
##  [75] 3 3 2 3 2 3 2 2 2 3 3 2 3 1 3 0 3 3 3 3 2 3 3 3 3 2 2 2 3 2 3 3 2 3 3 3 1
## [112] 3 3 2 3 2 2 3 3 3 2 2 3 2 0 2 2 2 3 3 3 2 2 2 2 3 2 2 3 2 2 3 2 2 2 3 1 2
## [149] 2 3 2 3 1 3 3 3 1 3 1 1 3 2 3 1 3 2 3 3 3 2 1 3 3 3 3 2 3 2 2 3 3 3 2 2 2
## [186] 2 3 3 3 2 2 3 1 3 2 2 2 3 2 3
## 
## --- Réplica 2 ---
##   [1] 3 3 2 3 3 1 2 3 3 3 2 2 3 3 2 3 3 2 3 3 3 2 2 2 1 3 2 3 2 2 3 3 3 3 2 3 1
##  [38] 2 2 3 2 3 3 2 2 3 3 2 1 3 1 2 3 3 2 3 3 2 3 2 2 2 3 2 2 3 3 2 3 3 3 3 2 2
##  [75] 2 2 2 2 2 1 2 3 3 1 2 3 3 1 3 3 3 3 2 2 3 3 3 3 2 3 0 3 3 2 2 2 3 2 3 3 2
## [112] 1 3 3 2 3 3 3 1 2 3 1 2 1 3 2 2 3 2 2 2 3 3 3 2 0 2 2 3 3 3 2 2 3 3 3 3 2
## [149] 3 2 2 2 3 2 3 3 2 1 3 3 2 2 3 2 1 2 3 3 3 3 3 3 2 2 3 2 3 3 2 3 3 2 3 1 2
## [186] 3 3 3 3 2 3 3 3 3 2 1 1 2 3 2
## 
## --- Réplica 3 ---
##   [1] 3 2 2 1 3 3 3 1 3 3 3 3 3 0 3 2 3 3 3 1 3 2 2 1 2 2 2 2 3 3 3 3 3 3 3 2 3
##  [38] 1 3 2 2 1 3 3 3 2 3 2 3 1 3 2 1 1 3 2 3 3 3 1 1 3 3 2 2 3 3 2 2 3 2 3 3 2
##  [75] 3 3 2 3 3 2 2 2 3 2 3 3 3 3 3 2 3 3 2 2 3 3 2 1 3 3 2 3 1 3 2 3 2 3 3 2 2
## [112] 2 2 2 0 2 3 3 2 2 2 3 2 3 3 3 3 2 2 2 2 1 3 3 3 3 3 2 2 2 3 3 2 3 3 2 3 1
## [149] 2 3 3 2 2 1 3 2 3 0 3 3 2 2 2 2 3 2 3 1 2 3 1 3 3 3 3 2 3 2 1 3 1 3 2 2 2
## [186] 3 3 2 1 3 2 3 1 3 2 2 2 3 3 2
## 
## --- Réplica 4 ---
##   [1] 2 3 3 3 2 2 3 3 1 2 3 3 2 1 3 3 3 2 2 3 3 3 3 3 2 2 2 3 3 2 3 3 3 1 2 2 2
##  [38] 3 1 2 1 1 3 1 2 2 2 3 3 3 3 3 3 1 1 2 2 3 3 1 1 3 2 3 3 3 3 2 2 3 3 1 3 3
##  [75] 3 3 3 3 2 2 2 2 2 2 2 3 3 2 1 3 3 2 2 2 1 3 2 3 3 3 3 3 2 2 2 2 3 3 2 3 3
## [112] 3 3 1 2 3 2 1 3 2 1 1 3 3 2 3 2 3 3 2 2 3 3 1 2 2 3 2 1 2 3 3 2 2 3 3 3 3
## [149] 1 2 3 3 3 2 2 2 2 2 3 3 2 3 3 2 1 3 2 1 2 3 2 3 1 1 3 2 3 1 3 3 3 2 2 3 3
## [186] 3 1 2 1 3 2 2 3 3 2 3 2 3 3 2
## 
## --- Réplica 5 ---
##   [1] 3 2 3 3 3 3 3 3 3 3 1 2 3 2 3 2 1 2 1 1 3 3 3 3 1 1 2 1 1 3 3 2 2 2 3 2 3
##  [38] 3 2 2 2 3 3 3 1 2 3 2 3 2 2 2 3 3 2 2 3 3 3 3 3 2 3 3 3 2 3 2 3 3 2 3 3 2
##  [75] 2 3 3 3 2 3 2 3 3 1 2 2 2 3 3 3 2 3 2 3 2 3 3 2 3 1 3 3 3 2 2 3 1 3 3 3 3
## [112] 2 2 3 2 3 3 3 3 2 3 3 2 3 2 2 3 2 2 3 3 2 2 3 3 2 3 3 1 1 3 3 3 2 3 2 2 3
## [149] 2 3 3 2 3 3 3 3 2 2 2 2 3 2 2 2 3 3 3 2 3 2 2 3 3 3 3 3 3 3 3 3 2 2 3 2 2
## [186] 3 3 3 3 1 3 3 2 2 3 3 1 1 3 2
## 
## --- Réplica 6 ---
##   [1] 3 3 2 2 2 2 2 3 2 3 3 3 3 3 3 2 3 2 3 2 1 3 3 2 3 2 3 3 3 3 2 2 3 1 3 1 2
##  [38] 3 2 1 3 3 3 2 3 3 3 3 2 2 3 2 2 3 2 2 2 3 3 3 3 2 2 2 3 3 2 2 3 3 3 2 2 3
##  [75] 1 3 2 3 1 3 3 3 3 3 3 2 2 3 0 3 1 1 3 3 2 1 3 2 1 3 3 2 3 2 3 2 3 3 2 3 3
## [112] 3 2 3 1 3 2 3 1 2 3 2 1 3 3 2 3 1 3 3 1 2 3 2 3 1 3 3 1 3 3 3 3 2 1 3 3 2
## [149] 2 2 2 2 2 3 1 2 2 3 2 3 3 3 3 3 1 3 1 3 3 1 3 3 1 3 3 2 3 3 1 2 3 2 3 3 3
## [186] 3 3 1 3 1 2 3 3 2 2 3 3 2 3 2
## 
## --- Réplica 7 ---
##   [1] 2 3 3 2 3 3 2 3 3 2 2 2 2 3 3 3 3 2 3 3 3 3 2 3 2 2 2 2 3 2 3 2 3 3 3 2 3
##  [38] 3 3 3 2 3 3 2 3 3 2 1 3 3 2 2 3 3 3 2 3 1 2 3 2 3 2 2 3 2 2 3 1 2 3 3 3 1
##  [75] 2 3 3 2 2 2 3 3 3 2 3 2 3 3 3 3 3 2 3 3 3 2 1 2 2 3 2 1 3 3 3 3 3 2 3 3 3
## [112] 3 3 3 3 2 2 2 3 3 2 3 2 2 3 3 3 3 2 3 1 3 3 2 2 3 3 2 2 2 2 2 1 3 2 2 3 1
## [149] 2 1 2 3 2 2 3 2 3 2 2 3 2 3 1 3 3 3 2 1 2 2 2 1 3 2 3 3 2 3 2 2 3 3 3 3 1
## [186] 2 2 3 3 3 3 1 2 3 3 3 2 3 2 2
## 
## --- Réplica 8 ---
##   [1] 2 1 1 1 3 2 3 2 3 3 3 2 2 2 2 1 2 3 3 2 3 2 3 1 3 3 2 2 2 3 3 3 3 2 3 3 3
##  [38] 3 3 1 2 2 2 3 2 2 3 3 3 2 3 3 3 1 1 1 2 3 3 2 3 3 3 2 2 2 3 1 3 3 2 2 2 2
##  [75] 3 2 3 1 2 2 3 3 2 3 2 3 3 1 3 3 3 3 3 3 1 2 1 3 3 3 2 2 3 2 3 2 2 2 3 2 1
## [112] 2 2 3 2 0 3 1 3 1 3 3 2 3 3 2 2 2 2 3 2 3 2 2 3 3 2 1 3 3 2 3 2 3 2 2 3 2
## [149] 3 2 2 2 3 3 2 3 1 3 2 3 2 1 3 2 3 3 2 3 2 3 3 3 2 2 2 3 3 3 2 3 2 3 2 2 3
## [186] 3 2 3 1 3 3 3 2 2 3 3 3 3 3 3
## 
## --- Réplica 9 ---
##   [1] 2 3 2 3 3 2 3 1 2 2 3 3 3 2 3 1 1 2 2 2 3 1 3 2 1 3 1 3 2 3 3 1 3 2 2 3 2
##  [38] 3 3 2 3 2 3 2 0 3 2 2 1 2 3 3 3 2 3 3 2 2 1 2 1 3 2 3 2 2 3 1 3 2 2 3 2 3
##  [75] 3 3 2 1 3 2 1 2 3 2 2 2 1 3 3 2 3 3 3 3 3 3 1 2 2 3 3 2 2 1 3 3 2 3 2 3 2
## [112] 3 2 2 3 2 2 3 2 3 2 2 3 2 2 3 3 3 2 2 3 2 3 2 3 2 2 3 1 2 1 1 3 3 3 3 2 2
## [149] 3 3 3 2 3 2 2 1 3 3 3 2 3 3 2 2 3 3 2 2 1 1 2 3 3 2 2 3 2 3 3 3 3 2 3 3 3
## [186] 3 1 3 2 3 2 2 2 3 1 3 2 1 3 2
## 
## --- Réplica 10 ---
##   [1] 3 2 1 3 3 3 3 3 3 2 3 2 0 3 2 2 3 2 2 1 2 3 2 3 3 2 1 2 3 3 2 1 3 2 3 2 2
##  [38] 3 3 3 3 2 2 2 2 1 3 3 3 3 3 3 2 2 2 2 1 3 3 3 3 3 2 2 3 3 2 3 2 2 3 2 1 3
##  [75] 3 2 3 2 2 3 3 2 3 3 3 3 3 1 3 2 1 2 3 3 3 2 2 2 3 3 2 3 3 2 3 2 3 2 3 3 2
## [112] 3 2 3 3 3 3 3 2 2 3 3 2 2 3 3 2 3 3 3 3 3 1 3 3 3 3 3 2 3 2 2 2 3 3 3 3 3
## [149] 3 3 3 3 3 2 2 2 3 1 2 3 3 3 3 3 3 2 2 3 2 2 3 3 3 2 1 2 3 2 1 3 3 2 3 3 3
## [186] 3 3 3 3 2 3 3 2 3 3 2 3 1 3 2
cat("\nTiempo total para procesar 200 piezas en cada réplica:\n")
## 
## Tiempo total para procesar 200 piezas en cada réplica:
print(tiempos_totales)
##  [1] 2203.449 2343.186 2403.668 2395.544 2517.977 2332.528 2350.173 2507.346
##  [9] 2132.019 2426.661
# Gráfico del tiempo total por réplica
plot(tiempos_totales, type = "b", pch = 19,
     main = "Tiempo total por réplica",
     xlab = "Réplica", ylab = "Tiempo total (minutos)")

EJERCICIO 3

Carga del camión: Uniforme (30 ± 10) → min=20, max=40 min Descarga: Uniforme (20 ± 5) → min=15, max=25 min Traslado: Exponencial con media 40 (λ = 1/40)

### EJERCICIO 3 --------------------------

set.seed(300)

simular_viajes <- function(horas = 10) {
  tiempo <- 0
  viajes <- 0
  
  while (tiempo < horas * 60) {
    carga     <- runif(1, 20, 40)
    traslado1 <- rexp(1, rate = 1/40)
    descarga  <- runif(1, 15, 25)
    traslado2 <- rexp(1, rate = 1/40)
    
    ciclo <- carga + traslado1 + descarga + traslado2
    if (tiempo + ciclo > horas * 60) break
    
    tiempo <- tiempo + ciclo
    viajes <- viajes + 1
  }
  return(viajes)
}

# 5 réplicas
viajes_totales <- replicate(5, simular_viajes())

cat("\nViajes por réplica (en 10 horas):\n")
## 
## Viajes por réplica (en 10 horas):
print(viajes_totales)
## [1] 3 4 5 4 5
# Intervalo de confianza 95%
IC <- t.test(viajes_totales)$conf.int
cat("\nIntervalo de confianza (95%):", IC, "\n")
## 
## Intervalo de confianza (95%): 3.161149 5.238851
# Gráfica
barplot(viajes_totales, main = "Número de viajes por réplica",
        xlab = "Réplicas", ylab = "Viajes realizados", col = "lightgreen")