Simulación de Eventos Discretos · Tema 36

Tiempo medio en el sistema

W: espera más servicio — lo que el cliente cuenta de puerta a puerta y lo que el SLA honesto promete.

01 · Punto de partida

El cliente no resta el servicio

Llegás al banco, esperás 4 min y te atienden 2: tu tarde perdió 6 min, no 4. Wq = 4 es el diagnóstico del gerente; W = 6 es la experiencia del cliente. Cuando el servicio es largo (cirugía de 3 h con 30 min de espera), Wq subestima lo vivido: manda S.

W une las dos mitades del curso: W = Wq + E[S] y L = λW. Descomponerla dice dónde invertir: ¿achico la fila (c, orden) o acelero la atención (μ)?

  • ¿Qué suma W y cómo se mide vida completa?
  • ¿Cuánto de W es espera y cuánto servicio?
  • ¿SLA sobre W o sobre Wq?
  • ¿Cómo audita W a Wq (y viceversa)?

02 · Definición

Puerta a puerta en dos partes

W

En sistema

De llegar a salir: espera + servicio. Lo que el cliente vive y el SLA total promete.

+

Descomposición

W = Wq + E[S]. Bajar S pega doble: baja el sumando y descomprime Wq (ρ cae).

L

Puente

L = λW y Lq = λWq: las dos Littles. W − Wq debe dar E[S] o algo está mal medido.

M/M/1 con S medio 2: de qué está hecho W.
ρ (λ)WqSW y fracción en espera
0.50 (0.25)2 min2 minW = 4 (50% espera)
0.80 (0.40)8 min2 minW = 10 (80% espera)
0.90 (0.45)18 min2 minW = 20 (90% espera)

03 · El corazón: descomponer para decidir

La fracción Wq/W es el diagnóstico

fin − arr→menos S→Wq audita

Si Wq/W ≈ 90%, el problema es la fila: sumar c, ordenar (SPT), bajar variabilidad. Si ≈ 10%, el problema es la atención: acelerar S, dividir el trámite, derivar gigantes. La misma W = 10 con (8+2) y con (2+8) pide inversiones opuestas.

  1. 1
    Registrar la vida completa.

    Por admitido: W = fin − arr, con Wq = ini − arr y S = fin − ini.

  2. 2
    Descomponer.

    W − E[S] debe dar Wq; L − Lq debe dar a. Doble auditoría cruzada.

  3. 3
    Leer la fracción.

    Wq/W → 1 con ρ alta (fila); → 0 con ρ baja (servicio). El termómetro del Tema 34 en minutos.

  4. 4
    Elegir SLA.

    Wq para la fila, W para la promesa total (“trámite en 15 min”). Uno sin el otro esconde algo.

Doble efecto de S
Bajar E[S] resta directo en W y además baja ρ, que derrite Wq. La inversión más rentable cuando S domina.
W con pérdidas
Solo admitidos: el perdido no tiene fin dentro. Con K finita, W se calcula sobre los que entraron (λef).
W por clase
Con prioridades, WVIP ≈ S y Wbaja ≫ S: la W global esconde la urgencia. Reportar por clase.
Respuesta vs espera
En sistemas, W es “tiempo de respuesta”. Igual fórmula, otro nombre: el usuario la llama “cuánto tarda”.

Wq domina

Fila

W ≈ Wq (ρ alta): sumar capacidad, fila única, SPT. Cada décima de ρ se paga en minutos.

S domina

Atención

W ≈ S (ρ baja): acelerar el trámite, quitar pasos, caja rápida para enanos. La fila ya está bien.

04 · Ejemplos

Cuatro W con reparto distinto

  1. 1
    Banco W = 6 (4+2).

    67% espera: el problema es la fila (ρ = 0.67).

  2. 2
    Cirugía W = 3.5 h (0.5+3).

    14% espera: el problema es el quirófano, no la sala.

  3. 3
    Fast food W = 5 (1+4).

    Cocina domina: acelerar parrilla rinde más que otra caja.

  4. 4
    Web W = 0.05 s (0.02+0.03).

    Mitad latencia de cola, mitad cómputo: escalar workers o código según cuál pese.

05 · Representación en Python

Vida completa y sus dos mitades

Con (arr, ini, fin) salen W, Wq y S consistentes: la resta cierra o delata bug.

Python en tu navegador. El primero predice W M/M/1 y su reparto; el segundo descompone vidas medidas. La resta debe cerrar.

# W M/M/1 y reparto: lam=0.25, mu=0.5
lam, mu = 0.25, 0.5
W = 1/(mu-lam)
Wq = lam/(mu*(mu-lam))
print(f"W={W:.1f} = Wq {Wq:.1f} + S {1/mu:.1f} ({Wq/W:.0%} espera)")
# Descomponer vidas medidas (arr, ini, fin)
vidas = [(0, 0, 2), (1, 2, 4), (2, 4, 5)]
W = sum(f-a for a, i, f in vidas)/len(vidas)
Wq = sum(i-a for a, i, f in vidas)/len(vidas)
S = sum(f-i for a, i, f in vidas)/len(vidas)
print(f"W={W:.2f} Wq={Wq:.2f} S={S:.2f} cierra={abs(W-(Wq+S))<1e-9}")

06 · Exploración

Laboratorio: partir W en dos

Simulamos M/M/1 hasta T = 200 (semilla = réplica). Dos barras apiladas: sim (naranja Wq + teal S medidos) y teoría (Wq + S exactos). Subí ρ y mirá cómo el naranja se come la barra; subí S y mirá cómo crece el piso teal.

EXPERIMENTO 36

W = Wq + S, en vivo

W = 1/(μ−λ) · T=200

Los resultados numéricos aparecen debajo.
ρ0
W sim / teórica0
Wq sim (% de W)0
S medio obs.0

Subí ρ para naranjear W.

Izquierda = sim (medida), derecha = teoría M/M/1. Naranja = espera Wq, teal = servicio S. Alturas = W.

Preguntas para explorar

  1. Con ρ=0.5, S=2: ¿W sim ≈ 4 partida 2+2? ¿% espera?
  2. Con ρ=0.875: ¿W teórica? ¿Qué % es espera?
  3. A igual ρ=0.5 con S=1 vs S=3: ¿W? ¿Qué cambió si ρ es igual?
Ver respuestas sugeridas
  1. Sí (~3.7–4.3, 50% espera): mitad fila, mitad atención.
  2. W = 16 (14+2), 87% espera: casi todo es fila.
  3. W = 2 vs 6 (escala 1/(μ−λ)): igual foto ρ, distinta película temporal.

07 · Comprensión

Confusiones frecuentes

«W es la espera»

W incluye servicio: W = 6 con S = 2 es Wq = 4. Pedir “Wq < 5” y medir W aprueba lo que debería reprobar.

«Wq/W es fijo del sistema»

Depende de ρ: en M/M/1 vale ρ. Con ρ = 0.5 es 50%; con 0.9 es 90%. El reparto se mueve con la carga.

«Bajar S solo resta S»

Resta S y además baja ρ, que derrite Wq: doble dividendo. Por eso acelerar atención suele rendir más que podar fila.

«W con abandonos mide lo mismo»

Los que abandonan no tienen fin y desaparecen del promedio: W “mejora” mientras la fuga crece. Acompañar con tasa de abandono.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: partir W

μ=0.5, λ=0.25, 0.4, 0.45. ¿W, Wq y % espera?

mu = 0.5
for lam in [0.25, 0.4, 0.45]:
    W, Wq = 1/(mu-lam), lam/(mu*(mu-lam))
    print(f"lam={lam} W={W:.1f} ({Wq/W:.0%} espera)")
Ver solución razonada

4.0 (50%), 10.0 (80%), 20.0 (90%): la misma S = 2 pesa cada vez menos en W.

Ejercicio 2: auditar la resta

L = 4.0, λ = 0.4, S = 2. ¿W, Wq? ¿Cierra con Lq = 3.2?

L, lam, S = 4.0, 0.4, 2.0
W, Wq = L/lam, L/lam - S
print(f"W={W:.1f} Wq={Wq:.1f} Lq={lam*Wq:.1f}")
Ver solución

W = 10.0, Wq = 8.0, Lq = 3.2: las dos Littles y la resta cierran en cruz.

Ejercicio 3: SLA sobre W

M/M/1 con μ−λ = 0.25: ¿P(W > 12)? Compará con P(Wq > 12).

Ver una posible respuesta
import math
r = 0.25
print(f"P(W>12)={math.exp(-r*12):.1%} P(Wq>12)={0.5*math.exp(-r*12):.1%}")

5.0% vs 2.5%: prometer sobre W es más duro (incluye al servicio). Elegir la letra del SLA es elegir qué se garantiza.

09 · Síntesis

Ideas para recordar

  • W = fin − arr = Wq + E[S]; L = λW cierra el círculo.
  • M/M/1: W = 1/(μ−λ); la fracción en espera es ρ.
  • Wq/W diagnostica: ~1 fila, ~0 atención.
  • En Python: (arr, ini, fin) y la resta que debe cerrar.
  • SLA sobre W promete puerta a puerta; sobre Wq, solo la fila.

En el próximo tema ataremos todas las letras: la Ley de Little.