Simulación Basada en Agentes · Tema 23

Retroalimentación

Cuando el efecto refuerza o frena la causa: bolas de nieve, termostatos y pastos que se pelan.

01 · Punto de partida

La causa que se muerde la cola

En el Tema 22 todo estaba conectado. Ahora seguimos una flecha que vuelve: más bocas pelan el pasto y menos pasto frena las bocas (Tema 8), más rumor trae más bocas que rumorean, más frenos atrás frenan más adelante. El efecto se vuelve causa de sí mismo.

Ese retorno es la retroalimentación: el motor de explosiones, equilibrios y oscilaciones. Sin ella el modelo es fila de fichas; con ella es sistema vivo.

  • ¿El efecto suma o resta a su causa?
  • ¿Vuelve al instante o con retardo?
  • ¿Hay tope que frene o crece hasta romper?
  • ¿El equilibrio se alcanza suave u oscilando?

02 · Definición

Refuerzo, freno y retardo

Todo bucle combina dirección, tope y tiempo de vuelta:

▲

Refuerzo (+)

Más lleva a más: contagios, rumores, interés compuesto. Sin freno termina en explosión o colapso.

▼

Freno (−)

Más lleva a menos: pasto que se acaba, precio que sube si todos compran. Busca equilibrio.

◷

Retardo

El efecto tarda en volver: rebaño que rebrota tarde, pedido que llega mañana. Con freno genera oscilaciones.

El mismo retorno en cada dominio.
MundoBucle +Bucle −
Praderamás bocas, más pastoreomenos pasto, menos bocas
Rumormás bocas, más avisosmenos ingenuos, menos avisos
Tráficofreno atrás, más frenosdistancia que se reabre y libera
Mercadosuba que atrae comprasprecio alto que espanta compras

03 · Bucles

Bola de nieve que desboca frente a termostato que equilibra

El refuerzo solo acelera; el freno solo guía. Juntos con retardo dibujan crecimiento en S, picos y ciclos.

Bucle positivo

Bola de nieve

Cada vuelta suma: x += r·x. Contagio, rumor y pánico crecen exponencial hasta chocar con algún tope.

Bucle negativo

Termostato

Cada exceso resta: x += r·x·(1 − x/K). El tope K frena y el sistema se asienta en capacidad.

Bucle
Cadena causal que vuelve al inicio con signo: + amplifica, − corrige. Todo sistema vivo tiene varios.
Equilibrio
Nivel donde refuerzo y freno se igualan: el stock deja de moverse aunque todo siga girando.
Sobreimpulso
Pasarse del equilibrio por retardo: el freno llega tarde y hay que volver. Retardo más freno oscila.
Capacidad de carga
Tope K que el mundo sostiene (Tema 8). El freno logístico la vuelve equilibrio estable.

04 · Ciclo

La ronda que devuelve el efecto

Cada paso calcula el efecto y lo devuelve con su signo, en este orden:

actuar→medir→devolver
  1. 1
    Actuar sobre el stock.

    Comer, contagiar, comprar: el flujo de esta ronda mueve el nivel.

  2. 2
    Medir el efecto.

    Cuánto stock queda, cuántos ingenuos restan, qué precio marcó.

  3. 3
    Devolver con signo.

    Sumar refuerzo o restar freno en la próxima ronda, con su retardo.

05 · Representación en Python

Exponencial que explota, logístico que se asienta

El refuerzo puro multiplica; el freno multiplica por lo que falta hasta el tope. La diferencia es una resta.

Python en tu navegador. Subí la tasa y observá cuándo la S se pasa de largo y oscila.

x, r = 5.0, 0.3
for _ in range(3):
    x = x + r * x
print(round(x, 1))

Da 11,0 en 3 pasos: 5 → 6,5 → 8,4 → 11. Sin freno la bola no para.

Freno que busca el tope

El factor (1 − x/K) apaga el crecimiento al acercarse a la capacidad.

x, r, K = 5.0, 0.5, 100.0
for _ in range(5):
    x = max(0.0, x + r * x * (1 - x / K))
print(round(x, 1))

06 · Exploración

Laboratorio: la S que busca su tope

El stock arranca en 5 y cada ronda suma refuerzo r frenado por la capacidad K. La línea punteada es el tope: con tasa moderada la curva sube en S y se asienta; con tasa alta se pasa de largo y oscila antes de calmarse.

EXPERIMENTO 23

Refuerzo con freno

x += r·x·(1 − x/K)

Los resultados numéricos aparecen debajo.
Final0,0
Pico0,0
En tope0 %
LecturaCreciendo

Con tasa 0,50 y K 60, la curva se asienta en el tope.

El eje horizontal son rondas y el vertical es stock. La línea punteada marca la capacidad K y la curva el stock por ronda. La réplica reusa la misma curva porque el modelo es determinista: sirve para calibrar.

Preguntas para explorar

  1. Con tasa mínima y 0 rondas, ¿cuánto vale el final? ¿Por qué sin rondas no hay bucle aunque haya fórmula?
  2. Subí la tasa al máximo con K 60. ¿El pico supera el tope? ¿Qué freno lo trae de vuelta?
  3. Bajá K a 20 con la misma tasa. ¿El equilibrio se muda? ¿Qué decide el techo: la tasa o la capacidad?
Ver respuestas sugeridas
  1. Vale 5: el inicial sin iterar. El bucle exige rondas que devuelvan el efecto.
  2. Sí: el sobreimpulso pasa K y el factor (1 − x/K) se vuelve negativo y resta. Tasa alta con discreto oscila.
  3. Sí, a 20: el techo lo pone K, la tasa pone la velocidad y el sobreimpulso. Por eso se declaran separados.

07 · Comprensión

Confusiones frecuentes

«Positivo es bueno y negativo es malo»

Positivo amplifica y negativo estabiliza: el pánico es + malo y el termostato es − bueno. El signo es dirección, no moral.

«El equilibrio es reposo»

El equilibrio dinámico mueve flujos iguales en ambos sentidos: se come y rebrota lo mismo. Quieto el nivel, vivos los turnos.

«Más freno siempre calma»

El freno con retardo descalibra: llega tarde, se pasa y oscila. Calmar exige freno a tiempo, no freno grande.

«El tope sale solo»

El tope se declara con unidades y justificación (K del Tema 8). Sin capacidad el logístico es exponencial disfrazado.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: bola sin freno

Ejecutá y verificá la explosión. Luego agregá el factor (1 − x/100) y compará.

x, r = 5.0, 0.5
for _ in range(4):
    x = x + r * x
print(round(x, 1))
Ver solución razonada

Da 25,3: 5 → 7,5 → 11,2 → 16,9 → 25,3. Sin freno cada vuelta agranda la base de la siguiente.

Ejercicio 2: predecir el freno

Sin ejecutar primero: x = 90, K = 100, r = 0,5. ¿El incremento es grande o chico? Comprobalo después.

x, r, K = 90.0, 0.5, 100.0
print(round(r * x * (1 - x / K), 2))
Ver solución

Da 4,5: chico porque (1 − 0,9) = 0,1 apaga el refuerzo. Cerca del tope el freno manda.

Ejercicio 3: pasto que vuelve

Pasto 10, 6 bocas comen 2 y rebrota 0,5 por parche en 10 parches. ¿Sube o baja?

Ver una posible respuesta
pasto = 10 - 6 * 0.2 + 10 * 0.05
print(round(pasto, 2))

Baja a 9,3: el consumo total supera al rebrote total. Ese balance es el freno del Tema 8 con números.

09 · Síntesis

Ideas para recordar

  • Retroalimentación es efecto que vuelve con signo: + amplifica, − estabiliza.
  • Todo + necesita − con tope: sin freno hay explosión o colapso por diseño.
  • El retardo decide la forma: suave sin retardo, oscilante con retardo.
  • Equilibrio es flujos iguales, no reposo: el nivel quieto esconde turnos vivos.
  • En Python, logístico es refuerzo por lo que falta hasta K, truncado en cero.

En el próximo tema estudiaremos la no linealidad: pequeños cambios, grandes efectos.