Simulación de Eventos Discretos · Tema 43

Estado estacionario

Régimen estable para comparar configuraciones — donde las medias olvidan el arranque y Erlang dice la verdad.

01 · Punto de partida

El destino donde todo compara

¿c = 2 o c = 3? Con a = 1.8, el régimen dice Wq ≈ 8.5 vs 0.9: veredicto claro. Pero ese veredicto solo vale en estado estacionario: distribuciones que ya no dependen del instante, medias que olvidaron N0 y fórmulas que predicen. Comparar dos configuraciones en pleno transitorio es comparar largadas, no caballos.

Este tema fija las reglas del duelo justo: mismo λ, ambas en régimen, warmup y T largo, teoría como árbitro.

  • ¿Qué es el estacionario y cuándo existe?
  • ¿Cómo sé que ambas configs llegaron?
  • ¿Qué comparo (Wq, SLA, costo) y con qué margen?
  • ¿Qué hago si una no estabiliza?

02 · Definición

Distribución, medias y existencia

π

Distribución

πn = P(N = n) independiente de t. M/M/1: πn = (1−ρ)ρn. El sistema oscila; la ley no.

=

Medias

L, Wq, U constantes en el tiempo (promedios). Las de Erlang valen aquí y solo aquí.

ρ<1

Existencia

Ergodicidad con ρ < 1 (y supuestos de Tema 30). Con ρ ≥ 1 no hay π que comparar.

Duelo en régimen: a = 1.8 (λ = 0.9, S = 2).
ConfigρWqVeredicto
A · c = 20.90≈ 8.5Estable, tenso
B · c = 30.60≈ 0.9Gana por ~90% menos espera

03 · El corazón: el duelo justo

Mismo λ, ambas en régimen, teoría de árbitro

ρ<1 en ambas→warmup + T largo→compara Wq/SLA

Comparar c = 2 contra c = 3 con distinto λ es trampa; con T = 30 es ruido; con una en avalancha es categoría distinta (se reporta “no estabiliza”, no una media). El protocolo serio: verificar régimen en ambas, medir con warmup, auditar con Little y Erlang, y recién comparar.

  1. 1
    Verificar ρ < 1 en ambas.

    Si alguna da ≥ 1, el duelo es “estable vs avalancha”: veredicto cualitativo, no medias.

  2. 2
    Igualar escenario.

    Mismo λ, S, horizonte, warmup y semillas (comparación pareada: misma historia, dos reglas).

  3. 3
    Medir con auditoría.

    (L, Wq, U) + Little + distancia a Erlang en cada una. Sin auditoría no hay número creíble.

  4. 4
    Decidir con costo.

    Mejora % contra salario/espacio: el Tema 46–47 cierra con intervalos y precio.

Ergodicidad
Media temporal = poblacional: una corrida larga (con warmup) estima π. Sin ella, solo valen réplicas.
Balance detallado
En nacimiento-muerte, flujo sube = flujo baja por corte: de ahí πn exacta (Temas 31–32).
Comparación pareada
Mismas semillas/arribos en ambas configs: la diferencia pierde ruido común y el veredicto se afina.
Sin régimen
Con ρ ≥ 1 o pico no estacionario se comparan curvas/backlog, no medias (Tema 42). Distinta pregunta, distinto informe.

Régimen

Compara medias

Wq, L, SLA y costo por unidad estable. Erlang arbitra; Little audita. Duelo limpio.

Transitorio / avalancha

Compara historias

Backlog a T, tiempo a vaciar, pico máximo. Sin π no hay media que valga.

04 · Ejemplos

Tres duelos con veredicto

  1. 1
    Banco c = 2 vs 3 (a = 1.8).

    Wq 8.5 → 0.9 (−90%): veredicto B, ambas en régimen.

  2. 2
    Call center 7 vs 8 (a = 6).

    ρ 0.86 → 0.75: de tenso a SLA 80/20 cumplido. Veredicto 8.

  3. 3
    c = 1 vs 2 con a = 1.8.

    A en avalancha, B en 0.9: veredicto “B estabiliza”, sin medias de A.

05 · Representación en Python

Tabla de duelo con veredicto

Erlang C para ambas configs + chequeo de régimen: el informe en un dict.

Python en tu navegador. El primero duela c = 2 vs 3; el segundo decide si el duelo es por medias o cualitativo. Cambiá λ.

# Duelo M/M/c en régimen: lam=0.9, mu=0.5, c=2 vs 3
import math
def Wq_mmc(lam, mu, c):
    a, rho = lam/mu, lam/mu/c
    s = sum(a**k/math.factorial(k) for k in range(c))
    C = (a**c/(math.factorial(c)*(1-rho)))/(s + a**c/(math.factorial(c)*(1-rho)))
    return C/(c*mu-lam)

for c in [2, 3]:
    print(f"c={c} Wq={Wq_mmc(0.9, 0.5, c):.2f}")
print(f"mejora={(1-Wq_mmc(0.9,0.5,3)/Wq_mmc(0.9,0.5,2))*100:.0f}%")
# ¿Duelo por medias o cualitativo?
def veredicto(lam, mu, ca, cb):
    ra, rb = lam/mu/ca, lam/mu/cb
    if ra >= 1 or rb >= 1:
        return f"rho {ra:.2f} vs {rb:.2f}: cualitativo (una no estabiliza)"
    return f"ambas en régimen ({ra:.2f}, {rb:.2f}): duelo por Wq"

print(veredicto(0.9, 0.5, 1, 2))
print(veredicto(0.9, 0.5, 2, 3))

06 · Exploración

Laboratorio: el duelo A vs B

Dos configs M/M/c con el mismo λ y S = 2 (T = 250, semilla compartida = duelo pareado). Elegí cA y cB: las barras comparan Wq sim (sólido) vs teórica (claro) por config, con lámpara de régimen (verde/roja). Si alguna está en avalancha, el duelo se declara cualitativo.

EXPERIMENTO 43

Duelo justo en régimen

mismo λ,S · T=250 · pareado

Los resultados numéricos aparecen debajo.
Wq A sim / teórica0
Wq B sim / teórica0
Mejora B vs A0%
Régimen A · B—

Elegí c para duelar en régimen.

Parejas por config: claro = teoría Erlang, sólido = sim pareada. Lámpara verde = ρ<1, roja = avalancha (sin media).

Preguntas para explorar

  1. Con λ=0.4 (a=0.8), A=1 vs B=2: ¿régimen? ¿Veredicto?
  2. Con A=2 vs B=3 y a=1.8 (λ=0.9): ¿mejora %? ¿Pagarías B?
  3. Igualá c (3 vs 3): ¿mejora? ¿Qué mide ese “duelo”?
Ver respuestas sugeridas
  1. A: ρ=0.8, Wq≈8 tenso; B: ρ=0.4, Wq≈0.4 ágil. Duelo por medias con mejora ~95%: veredicto B.
  2. ~−90% de Wq (8.5→0.9): B si el SLA lo exige; si no, A “alcanza”.
  3. ~0% (ruido pareado chico): mide la varianza residual del experimento, útil como testigo.

07 · Comprensión

Confusiones frecuentes

«Comparo con T=30 y listo»

Con T corto comparás transitorios + ruido, no régimen. T largo + warmup o el veredicto es lotería.

«Una en avalancha igual da media»

Da un número que crece con T: no es medida, es backlog parcial. Se reporta “no estabiliza”, no Wq.

«Régimen = sistema quieto»

Sigue oscilando; lo fijo es π, no N(t). Comparar fotos instantáneas es ruido puro.

«Más c siempre gana»

Gana en Wq pero cuesta salario/espacio: el veredicto incluye precio (Tema 46) e intervalos (Tema 47).

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: tabla del duelo

λ=0.9, μ=0.5, c=2 vs 3. ¿ρ y Wq de cada una? ¿Mejora?

# rho 0.90 vs 0.60; Wq ~8.5 vs ~0.9; mejora ~90%
print("B gana por goleada en régimen")
Ver solución razonada

Con la función del bloque: 8.5 → 0.9. El duelo es por medias porque ambas tienen ρ < 1.

Ejercicio 2: duelo imposible

λ=1.2, μ=0.5 (a=2.4), c=2 vs 3. ¿ρ? ¿Qué informe das?

a = 1.2/0.5
print(f"rho {a/2:.2f} vs {a/3:.2f}: A en avalancha, B en 0.80")  # cualitativo
Ver solución

A (1.2) no estabiliza; B (0.8) sí: veredicto “B estabiliza”, sin Wq de A.

Ejercicio 3: testigo c vs c

Duela c=3 vs c=3 con distintas semillas. ¿Mejora esperada? ¿Para qué sirve?

Ver una posible respuesta
# ~0% ± ruido: mide la varianza del experimento (piso de comparabilidad)
print("Si A-vs-A da ±15%, un 10% de A-vs-B no dice nada")

Calibra el ruido: mejoras menores que el testigo exigen más T o réplicas.

09 · Síntesis

Ideas para recordar

  • Estacionario = π fijas con ρ < 1: la ley no se mueve aunque N(t) salte.
  • Duelo justo: mismo λ/S, ambas en régimen, warmup, T largo, pareada.
  • Sin régimen no hay medias: veredicto cualitativo.
  • Erlang arbitra, Little audita, el costo decide.
  • c vs c testigo calibra el ruido del experimento.

En el próximo tema dibujaremos el veredicto en curva: las curvas de desempeño.