Método de Monte Carlo · Tema 36

Simulación de confiabilidad

¿Qué tan probable es que falle? Serie que se rompe y paralelo que aguanta.

01 · Punto de partida

Falla un componente, ¿falla el sistema?

Si un eslabón se rompe, la cadena se rompe (serie). Si hay repuestos en paralelo, el sistema aguanta hasta que fallen todos. Monte Carlo tira el estado de cada componente y evalúa el sistema: P(falla) = fallas/N.

Con p chicas y sistemas raros, la fórmula explota y la simulación resuelve.

  • ¿Mi sistema es serie, paralelo o mixto?
  • ¿Qué p tiene cada componente?
  • ¿Son independientes?
  • ¿Qué N ve fallas raras?

02 · Definición

Dos arquitecturas, dos fórmulas

⛓️

Serie

P(falla) = 1 − (1−p)^k. Más eslabones, más riesgo. Ejemplo: cadena.

🧵

Paralelo

P(falla) = p^k. Más redundancia, menos riesgo. Ejemplo: doble fuente.

🎲

Monte Carlo

Sortear k Bernoulli por réplica y evaluar la regla. Vale para mixtos sin fórmula.

Serie vs paralelo con p = 0,1 y k = 3.
SistemaP(falla)Lectura
Serie k = 327,1%Se rompe fácil
Paralelo k = 30,1%Aguanta (1 en 1 000)

03 · Método

Componentes→Sistema→P(falla)
  1. 1
    Sortear componentes.

    k Bernoulli(p) independientes por réplica. Una fila de 0/1.

  2. 2
    Evaluar el sistema.

    Serie: any(fallas). Paralelo: all(fallas). Mixto: combinar.

  3. 3
    Contar y dar IC.

    P̂ ± 1,96·√[p̂(1−p̂)/N]. Fallas raras piden N ≥ 10/p.

Independencia
Supuesto base: fallas que no se contagian. Si hay causa común, modelarla aparte.
N para raras
Para ver 10 fallas de p = 0,001 hacen falta ~10 000 réplicas. Sin casos no hay estimación.
Redundancia
Paralelo que baja P de 10% a 0,1%: el diseño más barato contra fallas.

04 · Ejemplos

  1. 1
    Cadena de 4 (p = 0,05).

    P ≈ 18,5%: la serie castiga.

  2. 2
    Doble disco (p = 0,1).

    P = 1%: el paralelo salva.

  3. 3
    2×2 mixto.

    Dos ramas serie en paralelo: simular, no despejar.

05 · Representación en Python

Serie y paralelo en 8 líneas

Python en tu navegador. Cambiá p, k y N.

import random

def p_falla(p, k, N, modo="serie"):
    fallas = 0
    for _ in range(N):
        comp = [random.random() < p for _ in range(k)]
        mal = any(comp) if modo == "serie" else all(comp)
        if mal:
            fallas += 1
    return fallas / N

print("serie:", p_falla(0.1, 3, 20000, "serie"), "(0.271)")
print("paralelo:", p_falla(0.1, 3, 20000, "paralelo"), "(0.001)")

06 · Exploración

Laboratorio: romper o aguantar

Elegí arquitectura, p y k. El dibujo muestra los componentes; las barras comparan exacta vs Monte Carlo con su ±.

EXPERIMENTO 36

Serie vs paralelo

P(falla) = fallas / N

Los resultados numéricos aparecen debajo.
Exacta—
Monte Carlo—
Error ±—
Lectura—

Tocá «Simular» con N = 20 000.

Serie: más k = más riesgo. Paralelo: más k = menos riesgo. La simulación clava ambas.

Preguntas para explorar

  1. Con p = 0,1, ¿serie k = 5 da ~41%? ¿Paralelo k = 5?
  2. ¿Por qué el paralelo con p = 0,3 y k = 1 coincide con serie?
  3. ¿Qué N necesitarías para p = 0,001 en paralelo k = 2?
Ver respuestas sugeridas
  1. Sí: 1−0,9⁵ ≈ 0,41. Paralelo: 0,1⁵ = 0,001% (10 en un millón).
  2. Con k = 1 no hay arquitectura: ambas son un componente.
  3. p² = 10⁻⁶: ~10⁷ para ver 10 fallas. Cola rara: IS o fórmula.

07 · Comprensión

Confusiones frecuentes

«Más componentes = más confiable»

Solo en paralelo. En serie, más eslabones = más riesgo.

«P = 0 con N = 1 000 es seguro»

Puede ser p = 0,001 sin casos. Regla: N ≥ 10/p para ver fallas.

«Independencia siempre vale»

Un corte de luz tumba todo junto: causa común que rompe el supuesto.

«Mixto se despeja igual»

Se puede, pero es combinatoria frágil. Simular es más barato y auditable.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: verificar fórmulas

Con p = 0,05 y k = 4, compará serie y paralelo.

p, k = 0.05, 4
print("serie:", 1-(1-p)**k)
print("paralelo:", p**k)
Ver solución razonada

18,5% vs 0,0006%: la arquitectura lo es todo.

Ejercicio 2: mixto 2×2

Dos ramas de 2 en serie, en paralelo. Estimá con p = 0,1.

import random

def rama(p):
    return any(random.random() < p for _ in range(2))

N = 20000
f = sum(1 for _ in range(N) if rama(0.1) and rama(0.1)) / N
print(f)
Ver solución

~3,6%: cada rama falla 19%, ambas 0,19². Simular evita el árbol.

Ejercicio 3: N para raras

¿Qué N para ver ~10 fallas si P ≈ 0,001?

Ver una posible respuesta
print(10/0.001)

10 000. Sin casos no hay P: dimensionar por 10/p.

09 · Síntesis

Ideas para recordar

  • Serie: 1−(1−p)^k (más k, peor). Paralelo: p^k (más k, mejor).
  • MC: k Bernoulli por réplica + regla any/all.
  • Verificar contra fórmula en puro antes del mixto.
  • Raras piden N ≥ 10/p o IS.
  • Redundancia en paralelo es el diseño antirralla.

En el próximo tema jugaremos con dinero: la simulación de problemas financieros.