Dinámica de Sistemas: de los diagramas a la simulación
Stock, flujo, variable auxiliar, bucle de refuerzo, bucle de balance: el vocabulario completo de la Dinámica de Sistemas de Jay Forrester, con números reales que vas a manipular vos mismo, sección por sección, hasta generar el efecto látigo con tus propias manos.
Bienvenido
Un diagrama de bucle causal responde qué influye en qué, y en qué dirección. No responde cuánto, ni qué tan rápido, ni qué pasa exactamente cuando dos efectos compiten en el tiempo. Para eso hace falta pasar de un diagrama a un modelo con números reales — y, una vez que el modelo existe, simularlo: correrlo hacia adelante en el tiempo y ver qué comportamiento produce. Esta es la disciplina que se conoce como Dinámica de Sistemas.
La Dinámica de Sistemas nació a fines de los años 1950, cuando el ingeniero Jay Forrester (MIT) ayudaba a General Electric a entender por qué sus fábricas tenían ciclos de contratación y despido mucho más violentos de lo que explicaba la demanda real de sus productos. Forrester formalizó la idea de representar la empresa como cantidades que se acumulan (stocks) y tasas que las hacen cambiar (flujos), y de simular esa estructura en el tiempo en vez de solo describirla — el mismo método que vas a usar en esta guía.
Al finalizar esta guía vas a poder distinguir los tres tipos de variable de un modelo (stock, flujo y variable auxiliar), clasificar un bucle como de refuerzo o de balance contando sus enlaces negativos, explicar por qué un retraso produce oscilación aunque la política de control sea razonable, y reproducir con tus propios parámetros el efecto látigo (bullwhip effect).
🔢 De cualitativo a cuantitativo
Stock, flujo y variable auxiliar, con unidades reales y una ecuación que se puede correr en el tiempo.
🎛️ Manipulás, no leés
Cada sección tiene un sandbox en vivo: movés un slider, el gráfico responde al instante.
🐍 El efecto látigo, de nuevo
Lo vas a ver primero como ejemplo, y después lo construís vos, ajustando retraso y agresividad hasta que aparezca.
Stock y flujo, con números reales
Un stock es una cantidad acumulada, medible en un instante dado (el agua en un tanque, el saldo de una cuenta, el inventario de un almacén). Un flujo es la tasa a la que ese stock cambia por unidad de tiempo — cuánto entra o cuánto sale. Un stock solo puede cambiar a través de sus flujos, nunca directamente, y la fórmula que lo resume es: Stock(hoy) = Stock(ayer) + entrada − salida. El caso de esta guía es el almacén central de Andina Distribuciones: el stock es el inventario disponible (en cajas), la entrada es la reposición que llega de fábrica, y la salida es el despacho a los clientes. Todavía no hay ningún control automático — vos fijás ambas tasas directamente y mirás qué le pasa al inventario.
Movés ambos sliders juntos hacia arriba o hacia abajo, en la misma proporción, y el comportamiento del inventario no cambia. Lo que determina si el stock sube, baja o se mantiene no es el valor de cada tasa por separado — es la diferencia entre entrada y salida.
Ajustá el sandbox: poné reposición en 150 y despacho en 300, y dejalo correr los 30 días. ¿Qué le pasa al inventario y por qué?
Con la fórmula Stock(hoy) = Stock(ayer) + entrada − salida: si el stock de ayer era 400, la reposición de hoy es 180 y el despacho de hoy es 220, el stock de hoy es .
Bucles de refuerzo y de balance
Un flujo no siempre lo fijás vos a mano: muchas veces depende del propio stock, y ahí se cierra un bucle. Hay una regla simple para saber qué tipo de bucle es: contá los enlaces negativos de la cadena. Número par (incluido cero) → bucle de refuerzo (R), amplifica la tendencia. Número impar → bucle de balance (B), corrige hacia un objetivo o un equilibrio.
Usuarios activos --(+)--> Referidos por semana
^ |
| (+)
| v
Usuarios activos <--(+)-- Referidos por semana
0 enlaces negativos (par) → refuerzo: más usuarios generan más referidos, que generan todavía más usuarios — nada dentro del bucle lo frena por sí solo.
Usuarios activos --(+)--> Bajas por semana
^ |
| (−)
| v
Usuarios activos <--(−)-- Bajas por semana
1 enlace negativo (impar) → balance: más usuarios generan más bajas en términos absolutos, y esas bajas tiran el stock hacia abajo — un bucle que se autolimita, no que se autoamplifica.
Una app real tiene ambos bucles activos al mismo tiempo, compitiendo: el de referidos empuja los usuarios activos hacia arriba, el de bajas los empuja hacia abajo. Cuál "gana" depende de qué tasa sea más fuerte — probalo en el sandbox.
En el bucle "Usuarios activos --(+)--> Referidos por semana --(+)--> Usuarios activos", ¿cuántos enlaces negativos hay y qué tipo de bucle es?
Configurá el sandbox con referidos en 3% y bajas en 9%, y dejalo correr las 20 semanas. ¿Qué les pasa a los usuarios activos y por qué?
Variables auxiliares
Stock y flujo no alcanzan para modelar todo. Muchas veces hace falta una cantidad intermedia que no acumula nada (no es un stock) y que no es en sí misma una tasa que entra o sale de un stock (no es un flujo) — solo existe para ayudar a calcular un flujo a partir de otras variables. Esa es la variable auxiliar, el tercer tipo de variable de un diagrama de stock y flujo. En herramientas como Insight Maker o Vensim se dibuja como un círculo, para distinguirla del rectángulo del stock y de la tubería con válvula del flujo.
En la próxima sección, el almacén decide cuánto pedir con la fórmula pedido = demanda + agresividad × (objetivo − stock). La cantidad (objetivo − stock) — llamémosla brecha — no es un stock (no acumula nada de una semana a otra) ni es el flujo en sí (no es lo que entra o sale del inventario): es una variable auxiliar que se recalcula todo el tiempo a partir del stock, y que el flujo "pedido" usa como insumo.
Clasificá cada variable, de los dos modelos que ya viste, según su tipo.
¿Es un stock, un flujo o una variable auxiliar?
¿Cuál de las siguientes describe mejor una variable auxiliar?
Retraso: el mismo control, ahora con demora
Desde acá el almacén ya no fija la reposición a mano: pide automáticamente más cuando el stock está por debajo del objetivo, y menos cuando está por arriba — un bucle de balance real (1 enlace negativo: a más brecha, más pedido; a más pedido, menos brecha), con una fórmula concreta: pedido = demanda + agresividad × brecha, donde brecha = objetivo − stock es la variable auxiliar que acabás de ver. Lo único que vas a controlar en esta sección es cuántos días tarda el proveedor en entregar ese pedido. La demanda queda fija en 200 cajas/día para que puedas enfocarte solo en el efecto del retraso.
Con retraso alto, el almacén sigue viendo el stock bajo varios días después de haber pedido más — porque ese pedido todavía no llegó. Como sigue viendo el problema, sigue pidiendo de más. Cuando todos esos pedidos acumulados llegan juntos, el stock se pasa del objetivo — y el ciclo se repite para el otro lado. Es exactamente la misma lógica que la ducha de tubería larga que ya viste, con números reales corriendo delante tuyo.
Subí el retraso del sandbox de 2 a 10 días y compará. ¿Qué cambió, exactamente?
Un sistema con una política de control razonable (que reacciona en la dirección correcta) puede oscilar solo por tener un retraso alto entre la acción y su efecto, sin que la política en sí esté mal diseñada.
Bucle cerrado: reproducí el efecto látigo
Ahora tenés control total sobre la fórmula que antes estaba fija: además del retraso, podés ajustar la agresividad (qué tan fuerte reacciona el pedido a la diferencia entre stock y objetivo) y el objetivo de inventario. Con la combinación correcta, la oscilación deja de amortiguarse y empieza a crecer — el mismo efecto látigo que viste como ejemplo de cadena de suministro en la guía anterior, ahora generado por tus propios parámetros.
Subí el retraso y la agresividad al mismo tiempo hasta que el diagnóstico diga "creciente" — vas a ver que la oscilación deja de amortiguarse y cada vuelta es más grande que la anterior. Bajá cualquiera de los dos y va a volver a amortiguarse. En una cadena real, cada eslabón (minorista → mayorista → fábrica) agrega su propio retraso y su propia agresividad sobre una señal que ya viene distorsionada del eslabón anterior — por eso la oscilación se hace más grande mientras más lejos está el eslabón del consumidor final.
Con base en lo que probaste en el sandbox, clasificá cada combinación según el comportamiento más probable del inventario.
En la guía anterior viste el efecto látigo descrito como "una oscilación cada vez más grande mientras más lejos está el eslabón del consumidor final". ¿Qué combinación de parámetros del sandbox produce justamente ese resultado?
Actividades de repaso
Un repaso integrador de todo el módulo. Cada actividad se corrige al instante; tu progreso se guarda automáticamente en este navegador.
¿Es un stock (nivel acumulado) o un flujo (tasa de cambio)?
Une cada término con su definición dentro del modelo del almacén.
Sin cambiar la política de reposición ni la demanda, ¿qué solo parámetro alcanza para convertir una corrección suave en oscilación?
Un bucle de balance con retraso alto y agresividad alta puede volverse inestable (oscilación creciente) aunque cada una de sus reglas, vista por separado, parezca razonable.
Un bucle tiene 3 enlaces negativos, y la fórmula de su flujo usa una cantidad que se recalcula a partir del stock pero que no acumula nada por sí misma. ¿Qué son, respectivamente, esas dos cosas?
Cheat Sheet
| Concepto | Idea clave |
|---|---|
| Stock | Cantidad acumulada, medible en un instante. Solo cambia a través de sus flujos. |
| Flujo | Tasa de entrada o salida de un stock, por unidad de tiempo. |
| Variable auxiliar | Cantidad calculada a partir de otras variables (ej. la brecha objetivo−stock) que ayuda a computar una tasa, sin acumular nada. |
| Bucle de refuerzo (R) | Número par de enlaces negativos (incl. 0). Amplifica la tendencia, sin freno propio. |
| Bucle de balance (B) | Número impar de enlaces negativos. Corrige hacia un objetivo o hacia un equilibrio. |
| Ecuación del stock | Stock(hoy) = Stock(ayer) + entrada − salida. Solo cambia a través de sus flujos. |
| Política de reposición | pedido = demanda + agresividad × brecha, con brecha = objetivo − stock. |
| Retraso | Días entre colocar el pedido y que llegue como reposición real. Por sí solo puede producir oscilación. |
| Agresividad | Qué tan fuerte corrige el pedido la diferencia entre stock y objetivo. Alta + retraso alto = inestabilidad. |
| Oscilación amortiguada | Sobrepasa el objetivo, pero cada vuelta es más chica que la anterior — termina estabilizándose. |
| Efecto látigo | Oscilación que crece en cada vuelta en vez de amortiguarse. Se amplifica en cada eslabón de una cadena real. |
¿Sabías que...?
🏭 Nació observando fábricas reales
Jay Forrester, ingeniero del MIT, fundó la Dinámica de Sistemas en los años 50 después de estudiar por qué las fábricas de General Electric tenían ciclos de contratación y despido que oscilaban mucho más de lo que explicaba la demanda real de sus productos.
🎲 Un juego que hace sentir el efecto látigo
El MIT diseñó "The Beer Distribution Game": equipos que gestionan distintos eslabones de una cadena de suministro de cerveza, sin poder comunicarse entre sí. Casi siempre termina en oscilaciones enormes, aunque cada jugador tome decisiones razonables — la inestabilidad es del sistema, no de las personas.
🍼 El caso que le dio nombre
Procter & Gamble notó que los pedidos de pañales que recibía de sus distribuidores fluctuaban muchísimo más que las compras reales de los consumidores finales, que son casi constantes. Ese caso fue el que popularizó el término "efecto látigo" (bullwhip effect) en cadenas de suministro.