01 · Punto de partida
La fábrica es una red de colas con overol
Piezas que llegan a 30/hora, tres máquinas en línea, un setup de 6 min por lote, camiones que reparten: throughput (TH), inventario en proceso (WIP) y lead time (LT) obedecen WIP = TH × LT —Little con casco. El cuello manda el TH, los lotes chicos ahogan en setups y los grandes ahogan en espera.
Aplicar el curso acá es mapear estaciones, medir por máquina, poner pull (Kanban) donde el push inunda y dimensionar lotes y flota como servidores.
- ¿Cómo mapeo la línea a estaciones y ruteo?
- ¿Qué WIP y lead time tengo (Little)?
- ¿Lote chico o grande? ¿Push o pull?
- ¿Cuántos camiones/pickers (flota = c)?
02 · Definición
Estaciones, flujo e inventario
Estaciones
Máquinas, celdas, operarios, pickers, camiones: cada uno con (λi, Si, ci).
Lotes y setups
Q piezas por lote con setup F: Sef = s + F/Q. Q chico = setup domina; Q grande = espera domina.
Inventario
WIP = TH × LT (Little): piezas adentro. Pull/Kanban lo acota con K (Tema 27); push lo deja explotar.
| Estación | ρi | Wi | Lectura |
|---|---|---|---|
| A · corte | 0.60 | 3.0 | Sana |
| B · pintura | 0.80 | 8.0 | Cuello: 62% del LT |
| C · empaque | 0.50 | 2.0 | Sobra |
| Total | — | LT = 13.0 | WIP = 6.5 piezas |
03 · El corazón: push, pull y lotes
Acotar WIP, afinar Q, servir con flota
- 1Mapear y medir por estación.
Flujo, λi, Si (con setup separado), ci. El cuello sale del ranking ρ.
- 2Poner pull donde inunda.
Kanban = K finita por estación (Tema 27): el WIP se acota y el bloqueo avisa. Push solo donde sobra.
- 3Afinar el lote Q.
Sef = s + F/Q baja con Q, pero la formación Q/2λ y la espera suben: curva en U, óptimo adentro.
- 4Dimensionar flota como c.
Camiones/pickers = servidores con S = viaje/pickeo: Erlang o sim con ventanas (picos de pedidos).
- Push vs pull
- Push (K = ∞): el TH manda y el WIP absorbe todo. Pull (Kanban K): el WIP se acota y el TH se protege del cuello.
- Setup / SMED
- F fijo por lote: bajar F (cambio rápido) achica Q óptimo y el LT de un saque. Proceso antes que plantilla.
- Lote óptimo
- Mínimo de formación + espera + servicio: Q chico ahoga en setups (ρ > 1), Q grande ahoga en espera.
- Transporte
- Ruta = S con variabilidad (tráfico); flota = c con turnos. Ventanas de entrega = SLA con percentil.
Push
Simple e inundable
Cada estación empuja: ante el cuello, el WIP crece sin cota (ρ > 1 localizado). Barato de gestionar, caro en inventario.
Pull / Kanban
Acotado y señalizado
K tarjetas por estación: el lleno frena aguas arriba (bloqueo visible). El WIP se elige, no se sufre.
04 · Ejemplos
Cuatro plantas con número
- 1Línea A-B-C (λ = 0.5).
LT = 13, WIP = 6.5, cuello B (62%): la mejora va a pintura.
- 2Depósito picking (ola 100/h).
Pickers = c con S = 2 min: a = 3.3 → 5 pickers (ρ = 0.67) en ola.
- 3Flota 20 entregas/h, ruta 30 min.
L = 10 camiones ocupados: flota 12–13 con margen (Little + N+1).
- 4Kanban K = 10 entre A y B.
WIP acotado en 10: si B frena, A se bloquea a la vista (no inunda).
05 · Representación en Python
Lead time de la línea y curva del lote
Sumar W por estación (M/M/1) y barrer Q con setup: el óptimo en una lista.
Python en tu navegador. El primero suma la línea; el segundo barre Q y halla el óptimo. Cambiá F y mirá cómo se corre.
# Línea A-B-C: lam=0.5, S=[1.2,1.6,1.0] (M/M/1 por estación)
lam = 0.5
LT = sum(1/(1/s - lam) for s in [1.2, 1.6, 1.0])
print(f"LT={LT:.1f} WIP={lam*LT:.1f}") # 13.0 y 6.5
# Barrer Q con setup F=6, s=1, lam=0.5 (aprox. didáctica)
lam, s, F = 0.5, 1.0, 6.0
def LT(Q):
Sef = s + F/Q
mu = 1/Sef
Wq = lam/(mu*(mu-lam)) if lam < mu else float("inf")
return Q/(2*lam) + Wq + Sef
qs = {Q: LT(Q) for Q in [4, 6, 8, 10, 12]}
print({k: round(v, 1) for k, v in qs.items()})
print("óptimo Q =", min(qs, key=qs.get))
06 · Exploración
Laboratorio: la U del lote
Modelo aproximado didáctico: pieza unitaria s = 1 con setup F por lote Q (Sef = 1 + F/Q), M/M/1 con tu λ. El lead time suma formación Q/2λ (teal, crece con Q) + espera+servicio (naranja, cae con Q). Con Q = 1 el setup avalancha; con Q grande la formación domina: el óptimo está adentro.
Setup contra espera
LT ≈ Q/2λ + Wq + Sef · s=1
Mové Q para buscar el valle.
Curva teal = formación (sube), naranja = espera+servicio (baja), lima gruesa = total en U. Punto = tu Q; roja = avalancha por setup.
Preguntas para explorar
- Default (Q=8, λ=0.5, F=6): ¿Sef, ρ y LT? ¿Qué parte domina?
- Bajá a Q=2: ¿ρ? ¿Por qué avalancha si λ no cambió?
- Subí F=10: ¿a dónde se corre el óptimo? ¿Y con F=2?
Ver respuestas sugeridas
- Sef = 1.75, ρ = 0.875, LT ≈ 22 (8 formación + 14 espera): domina la espera.
- ρ = 2.0: el setup por pieza (3 + 1) supera la capacidad. Q chico ahoga en setups.
- F=10 ⇒ óptimo ≈ 12 (más lote para amortizar); F=2 ⇒ óptimo ≈ 4–6 (casi flujo unitario).
07 · Comprensión
Confusiones frecuentes
«Acelero cualquier estación y mejora el LT»
Solo la del cuello (o la que más W aporta) mueve el total: el resto mueve su cartel local.
«Lote grande siempre baja el costo»
Baja setup por pieza pero sube formación y espera (y WIP = capital quieto). La U decide, no el setup solo.
«Push con más operarios alcanza»
Más c sin K inunda igual ante el cuello: el WIP necesita tope (pull), no solo manos.
«El transporte no se modela»
Camión = servidor con S = viaje y c = flota: con ventanas y tráfico, es una cola móvil más.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: WIP de la línea
λ=0.5, LT=13. ¿WIP? ¿Y si el cuello baja su W de 8 a 4?
# WIP=6.5; con B en 4: LT=9, WIP=4.5 (un tercio menos de capital quieto)
print(0.5*13, 0.5*9)
Ver solución razonada
6.5 → 4.5 piezas: atacar el cuello libera capital además de tiempo.
Ejercicio 2: S efectivo
s=1, F=6, Q=3 vs 12. ¿Sef y ρ con λ=0.5?
for Q in [3, 12]:
Sef = 1 + 6/Q
print(f"Q={Q} Sef={Sef} rho={0.5*Sef:.2f}") # 3.0/1.50 vs 1.5/0.75
Ver solución
Q=3: ρ=1.5 avalancha; Q=12: ρ=0.75 estable. El lote decide el régimen.
Ejercicio 3: flota por Little
20 entregas/h, ruta 30 min. ¿Camiones ocupados? ¿Flota con N+1?
Ver una posible respuesta
# L=10 ocupados -> flota 11-12 (margen pico/taller)
print(20*0.5, "-> flota 11-12")
10 + 1–2 de margen: Little + N+1 también maneja camiones.
09 · Síntesis
Ideas para recordar
- Línea = red de colas: WIP = TH × LT, cuello = max ρ.
- Pull/Kanban acota WIP; push lo deja explotar.
- Lote Q en U: setup (chico ahoga) vs formación+espera (grande ahoga).
- Flota = c con S = viaje: Erlang, ventanas y N+1.
- En Python: sumar W por estación + barrer Q con setup separado.
En el próximo y último tema integraremos todo: el proyecto de simulación.