01 · Punto de partida
Una etapa es exponencial; varias, gamma
Atender en 1 etapa exponencial es ruidoso (σ = media). Atender en k etapas encadenadas estabiliza: la suma es Erlang(k, λ), caso entero de la gamma. Tiempos de servicio por fases, reparaciones multi-paso y proyectos con hitos se modelan así.
Con k = 1 vuelve a exponencial; con k grande se acerca a campana. Forma k manda la regularidad; escala θ = 1/λ manda la duración.
- ¿El tiempo total son cuántas etapas encadenadas?
- ¿Cada etapa es exponencial con igual tasa?
- ¿Más etapas estabilizan o el cuello manda?
- ¿Qué cola P(X mayor a t) dimensiona el SLA?
02 · Definición
Forma, escala y casos
Forma
Número de etapas (entero en Erlang). Más k, pico más lejos de 0 y curva más simétrica.
Escala
Duración media por etapa. Estira el eje: E = k·θ, Var = k·θ².
Suma
X = E₁+…+Eₖ con Eᵢ ~ Exp(λ). Así se genera y así se interpreta: tiempo total de fases.
| k | E | σ | σ/E |
|---|---|---|---|
| 1 (exp) | 1 | 1 | 100 % |
| 2 | 2 | 1,41 | 71 % |
| 4 | 4 | 2 | 50 % |
| 9 | 9 | 3 | 33 % |
03 · Cuándo usarla
Etapas encadenadas, no picos
Úsala
Proceso por fases
Atención en 3 pasos, reparación con diagnóstico + repuesto + prueba, proyecto con hitos en serie.
No la fuerces
Una etapa o paralelas
Una sola espera → exponencial. Etapas en paralelo (el máximo) o con tasas muy distintas → otra (mínimos, mixtas).
- Regularidad
- σ/E = 1/√k: más etapas, más predecible el total. k estima la regularidad del proceso.
- Gamma general
- k real no entero flexibiliza forma (tema 26). Aquí usamos Erlang entero: suficiente para simular.
- Chequeo
- Media ≈ k·θ y varianza ≈ k·θ² con histograma que arranca en 0 y pico interior si k mayor a 1.
- Puente
- k = 1 exp; k grande normal. Gamma conecta ambas familias (temas 22 y 23).
04 · Ejemplos
Totales por fases
- 1Caja.
3 pasos Exp(6/hora): total Erlang(3,6), media 30 min, más regular que 1 paso.
- 2Taller.
Diagnóstico + repuesto + prueba: k = 3 con tasas propias (simular por etapas).
- 3Proyecto.
4 hitos Exp(1/semana): total media 4 semanas, σ = 2.
- 4Llamadas.
Tiempo hasta 5 ventas con p por llamada: versión discreta es binomial negativa.
- 5Red.
Paquete por 2 saltos Exp: total Erlang(2). Jitter menor que 1 salto.
05 · Representación en Python
Sumar exponenciales
Python en tu navegador. Compará k = 1 contra k = 4.
import random, statistics
random.seed(241)
lam = 1.0
def erlang(k, lam):
return sum(random.expovariate(lam) for _ in range(k))
for k in [1, 4]:
xs = [erlang(k, lam) for _ in range(4000)]
print(k, "media:", round(statistics.mean(xs), 2), "| var:", round(statistics.variance(xs), 2))
Consejo: con k = 1 media ≈ var ≈ 1 (exponencial); con 4, media 4 y var 4.
Atajo gammavariate
import random
random.seed(9)
# alfa=k, beta=1/lambda. Erlang(3, lam=2) → media 1.5
xs = [random.gammavariate(3, 1/2) for _ in range(4000)]
print(round(sum(xs)/len(xs), 2))
06 · Exploración
Laboratorio: de exponencial a campana con k
Suma de k Exp(1). Barras = histograma normalizado; curva blanca = Erlang exacta xk−1e−x/(k−1)!. Subí k y mirá cómo el pico se despega de 0 y la curva se simetriza.
Erlang(k, 1)
E = k · Var = k
Con k = 1 es exponencial pura; con k = 9 casi campana.
Eje x 0 a 24. La franja lima marca la cola mayor a t.
Preguntas para explorar
- Con k = 1, ¿dónde está el pico? ¿Y con k = 4?
- Con k = 4 y t = 8 (media + 2σ), ¿la cola cuánto da?
- Si un proceso tiene σ/E ≈ 0,5, ¿qué k sugiere? Verificalo.
Ver respuestas sugeridas
- En 0 (decae); con 4 el pico está en 3 (k−1). Las etapas empujan la masa lejos de 0.
- ~0,05: media 4, σ = 2, t = 8 es +2σ. Similar a campana pero con soporte en 0.
- k ≈ 4 (1/√k = 0,5). Así se estima k desde datos: regularidad observada → etapas equivalentes.
07 · Comprensión
Confusiones frecuentes
«Gamma es solo para matemáticos»
No: es «suma de etapas» y aparece en cada servicio por fases. Erlang entera alcanza para simular.
«k grande es normal»
Se parece, pero sigue en [0,∞) y asimétrica hasta k ~ 20. Para SLA de cola, usar gamma, no normal.
«Las etapas pueden tener cualquier tasa»
Erlang pide igual λ. Con tasas distintas, simular etapa por etapa con su Exp propia.
«Más etapas siempre mejoran»
Reducen variación relativa pero alargan la media (k/λ). Más fases = más total, más predecible.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: firma k/λ
Con k = 3, λ = 2, verificá E = 1,5 y Var = 0,75 con 6000 sumas.
import random, statistics
random.seed(241)
xs = [sum(random.expovariate(2) for _ in range(3)) for _ in range(6000)]
print(round(statistics.mean(xs), 3), round(statistics.variance(xs), 3))
Ver solución razonada
1,5 y 0,75: k/λ y k/λ². Así se verifica un generador Erlang.
Ejercicio 2: regularidad
Proceso con media 6 y σ = 3. ¿k equivalente? Verificá σ/E = 1/√k.
print("k:", round(1/(0.5**2)))
Ver solución
k = 4: σ/E = 0,5. Cuatro etapas equivalentes explican esa regularidad.
Ejercicio 3: SLA por etapas
Servicio 3 etapas Exp(6/hora) (media total 30 min). Estimá P(tardar más de 45 min) simulando.
Ver una posible respuesta
import random
random.seed(51)
xs = [sum(random.expovariate(6) for _ in range(3)) for _ in range(8000)]
print(round(sum(1 for x in xs if x > 0.75)/len(xs), 3))
Ronda 0,2: 1 de cada 5 supera 45 min. Con 1 sola etapa Exp(2/hora) daría 0,22 pero con más dispersión: las etapas importan.
09 · Síntesis
Ideas para recordar
- Gamma/Erlang: suma de k exponenciales, E = k/λ, Var = k/λ².
- k = 1 exp; k grande campana. σ/E = 1/√k mide regularidad.
- En Python: suma de
expovariateogammavariate. - Sirve para servicios por fases con igual tasa; si no, etapa por etapa.
- La cola P(X mayor a t) dimensiona el SLA.
Cerramos el bloque de distribuciones. Desde el próximo tema elegiremos y calibraremos: selección de una distribución para un modelo.