01 · Punto de partida
Del experimento a la fórmula (y de vuelta)
Durante 20 temas simulaste: generaste llegadas, procesaste salidas y mediste L y Wq. Ahora aparece una pregunta mágica: ¿y si esas medidas se pudieran predecir con una fórmula, sin simular? Esa es la teoría de colas: matemática de llegadas + espera + servicio que, bajo supuestos claros, entrega L, Wq y ρ exactos.
No reemplaza la simulación: la valida y la guía. Si tu simulador dice Wq=5 y la fórmula dice 5.1, dormís tranquilo; si dice 12, hay bug. Y para dimensionar rápido (“¿1 o 2 cajas?”), la fórmula responde en un renglón.
- ¿Qué tres piezas forman todo sistema de colas?
- ¿Qué cinco letras (L, Lq, W, Wq, ρ) resumen su rendimiento?
- ¿Cómo verifico mi simulador con una ley universal?
- ¿Cuándo la fórmula alcanza y cuándo hay que simular?
02 · Definición
Llegadas, espera y servicio: el trípode
Llegadas
Ritmo y variabilidad: cuántos por unidad (λ) y cuán irregulares (fijos o exponenciales). (Tema 23)
Cola
Dónde y cómo esperan: capacidad, disciplina FIFO/prioridades. (Temas 8, 25–27)
Servicio
Rapidez y servidores: tasa μ por servidor y nº c. ρ = λ/(cμ) decide la estabilidad.
| Medida | Qué es | Relación |
|---|---|---|
| L / Lq | En sistema / solo en cola | L = Lq + cρ (los en servicio) |
| W / Wq | En sistema / solo espera | W = Wq + 1/μ |
| ρ | Utilización por servidor | ρ = λ/(cμ) < 1 para estabilidad |
| Little | Puente universal | L = λW y Lq = λWq |
03 · El puente
Simulación y teoría se auditan mutuamente
- 1La fórmula valida.
En casos markovianos (M/M/1, M/M/c) hay fórmulas exactas: tu simulador debe acercarse. Si no, el bug está en tu código, no en Erlang.
- 2La simulación extiende.
Con prioridades, capacidades finitas o redes, la fórmula no llega: el simulador validado explora lo real sin miedo.
- 3Little audita siempre.
L ≈ λWvale bajo supuestos amplísimos (conservación + régimen). Si tu corrida la viola mucho, algo está mal medido.
- Modelo analítico
- Fórmula cerrada bajo supuestos (llegadas Poisson, servicios exponenciales). Rápida y exacta donde vale.
- Régimen (ρ < 1)
- La teoría clásica habla del equilibrio estable: si llega más de lo que se atiende, no hay equilibrio que predecir.
- Notación de Kendall
- Código A/B/c/K/N/D del sistema (Tema 30): M/M/1 es el “Hola mundo” de las colas.
- Validación cruzada
- Simulación ≈ teoría en casos simples → luz verde para casos sin fórmula. (Temas 35–36)
Teoría
Rápida donde vale
Un renglón para M/M/1. Ciega fuera de sus supuestos (prioridades raras, redes con bloqueos).
Simulación
Universal donde se valida
Cualquier política y red, al costo de programar y replicar. Validada con teoría, es imbatible.
04 · Ejemplos
Los mismos mundos, ahora con letras
| Sistema | λ (llegadas) | μ y c (servicio) | ρ = λ/cμ |
|---|---|---|---|
| Banco (A=2, S=3, c=1) | 0.5/min | μ≈0.33, c=1 | 1.5 → inestable |
| Banco (A=4, S=2, c=1) | 0.25/min | μ=0.5, c=1 | 0.5 → estable |
| Web (100 req/s, 8 workers) | 100 | μ=20, c=8 | 0.625 → estable |
05 · Representación en Python
Del simulador a la fórmula en tres líneas
Con λ y μ sacás ρ y el M/M/1 predice; con tu simulación verificás Little. El primer bloque predice, el segundo audita.
Python en tu navegador. El primero calcula M/M/1 estable; el segundo chequea Little con tus números simulados. Cambiá λ y mirá ρ.
# M/M/1 estable: A=4 (λ=0.25), S=2 (μ=0.5)
lam, mu = 1/4, 1/2
rho = lam / mu
L = rho / (1 - rho)
W = L / lam
print(f"ρ={rho:.2f} L={L:.2f} W={W:.2f}") # ρ=0.50 L=1.00 W=4.00
# Auditoría Little con números de tu simulador
lam, L, W = 0.25, 1.02, 4.0
print("λW =", round(lam * W, 2), "| L =", L, "| error:", round(abs(L - lam*W)/L*100, 1), "%")
06 · Exploración
Laboratorio: Little audita tu simulador
Simulamos A/S exactos hasta T=12 y calculamos L (área/12) y λW (llegadas/12 × vida media de completados). Las barras deben coincidir: si difieren mucho, hay inestabilidad (ρ>1), horizonte corto o bug. Estabilizá (A grande, S chico) y mirá el error derretirse.
El auditor universal
L ≈ λW · error = |L − λW| / L
Estabilizá para validar.
Barras lima (L) y teal (λW) casi gemelas en régimen; separadas en avalancha. ρ>1 anticipa la divergencia.
Preguntas para explorar
- Con A=4, S=2 (ρ=0.5), ¿el error es chico? ¿Qué dice de tu medición?
- Con A=1, S=3 (ρ=3), ¿L y λW coinciden? ¿Por qué Little “falla” aquí?
- ¿Qué tres condiciones pedirías para exigir error <10%?
Ver respuestas sugeridas
- Sí (pocos %): área, conteo y vidas están bien cobrados; el simulador pasa la auditoría.
- No: sistema inestable sin régimen (la cola crece) + horizonte corto + vidas truncadas de no completados. Little no falla: no vale sin régimen.
- ρ<1, horizonte largo con warmup y vidas de completados bien medidas (o Lq=λWq con iniciados). Tema 37 lo formaliza.
07 · Comprensión
Confusiones frecuentes
«La teoría reemplaza la simulación»
La reemplaza solo donde valen sus supuestos. Fuera (prioridades, redes, finitos), la simulación validada es la única vía.
«Little vale siempre exacto»
Vale en régimen con conservación. En avalancha, con pérdidas o en 12 pasos con arranque raro, es aproximada.
«ρ > 1 es solo “muy ocupado”»
ρ>1 es inestable: la cola crece sin cota y no hay equilibrio que predecir. No es “trabajar mucho”, es “no dar abasto”.
«Si difieren, la fórmula está mal»
Primero se audita el simulador (área, ceros, denominador, cierre). La fórmula markoviana lleva un siglo validada.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: ρ decide
Con A=2, S=3, c=1 y c=2, ¿estable o no?
for c in [1, 2]:
rho = (3 / 2) / c
print(f"c={c} ρ={rho:.2f}", "estable" if rho < 1 else "inestable")
Ver solución razonada
c=1: ρ=1.5 inestable; c=2: ρ=0.75 estable. La misma demanda, otro dimensionamiento: ρ decide.
Ejercicio 2: auditar con Little
L=2.5, λ=0.5, W=5.0: ¿pasa la auditoría?
L, lam, W = 2.5, 0.5, 5.0
print("λW =", lam * W, "| error:", abs(L - lam*W) / L * 100, "%")
Ver solución
λW=2.5, error 0%: auditoría perfecta (o números redondos de juguete). En real se exige <5–10%.
Ejercicio 3: M/M/1 de bolsillo
λ=0.25, μ=0.5: predecí L y W con las fórmulas del bloque Python.
Ver una posible respuesta
lam, mu = 0.25, 0.5
rho = lam / mu
L, W = rho/(1-rho), (rho/(1-rho))/lam
print(f"ρ={rho} L={L} W={W}") # 0.5, 1.0, 4.0
Predicción para validar tu simulador del mismo caso: si simula otra cosa lejos, hay bug (o no hay régimen).
09 · Síntesis
Ideas para recordar
- Cola = λ + espera + c×μ; se resume en L, Lq, W, Wq, ρ con L=λW.
- Teoría valida simulación en casos simples; simulación explora lo real sin fórmula.
- Little audita siempre en régimen: si falla mucho, revisar medición.
- ρ<1 es la puerta del equilibrio; ρ>1 es avalancha, no “mucho trabajo”.
- Reportar tasas junto a medidas o nada es replicable.
En el próximo tema separaremos clientes y servidores: quién espera y quién atiende.