01 · Punto de partida
Inteligencia de barrio
En los Temas 16 y 17 el reloj decidía cuándo cambia cada uno. Ahora manda el qué: ¿con qué información decide? Ninguna hormiga cuenta la colonia, ningún conductor promedia la ciudad, ningún vecino pesa toda la manzana. Cada uno mira a los de al lado y aplica una cuenta corta.
Esa cuenta corta es la regla local: pocos vecinos, un umbral y una acción propia. Sin jefe, sin mapa global y sin memoria infinita. Lo global vendrá después (Tema 19) como consecuencia, no como orden.
- ¿A cuántos vecinos mira y hasta qué distancia?
- ¿Qué cuenta hace: cuántos, qué fracción, qué distancia?
- ¿Qué umbral separa actuar de esperar?
- ¿Funciona igual con 40 que con 40.000?
02 · Definición
Cercanía, cuenta y umbral
Toda regla local combina dónde mira, qué calcula y cuándo dispara:
Cercanía
El horizonte declarado: radio, k vecinos o celda lindera (Tema 13). Fuera del horizonte no hay datos.
Cuenta
La estadística corta: cuántos activos, qué fracción parecida, qué distancia mínima. Una línea, no un informe.
Umbral
El valor que parte actuar de esperar: si vecinos ≥ 2 me activo. Moverlo cambia el modelo entero.
| Mundo | Cuenta local | Umbral típico |
|---|---|---|
| Contagio | vecinos activos en radio | ≥ 1 para contagiarse |
| Schelling | fracción parecida en cuadra | < 30 % para mudarse |
| Vida | vivas en Moore | 2–3 para sobrevivir |
| Tráfico | hueco al de adelante | < frenado para frenar |
03 · Alcance
Local que escala frente a global que centraliza
La regla global promedia todo y decide perfecta; la local se equivoca por barrio pero funciona con millones sin jefe.
Regla local
Ojos de vecino
Lee k cercanos: si activos_cerca ≥ u → actuar. Barata, robusta a fallas y ciega a lo lejano: de ahí salen olas y manchas.
Regla global
Ojos de alcalde
Lee el total: si fracción_global > p → actuar. Coordina de golpe pero exige centro que todo lo ve y no escala.
- Horizonte
- Alcance de la cuenta: radio, k o celda. Todo lo que está más allá no entra aunque sea importante.
- Umbral
- Número que dispara la acción. Bajo propaga todo; alto apaga todo: el modelo vive en el medio.
- Robustez
- Seguir funcionando si cae un agente o falla un sensor. Lo local no tiene centro que romper.
- Escalabilidad
- Costar parecido con 40 que con 40.000. Lo local con k acotado escala; lo global con totales no (Temas 46–47).
04 · Ciclo
El paso que mira al lado
Cada agente filtra, cuenta y compara antes de actuar, en este orden:
- 1Mirar cerca.
Pedir solo el vecindario declarado (Tema 13) con su horizonte y tope.
- 2Comparar umbral.
Contar activos, fracción o distancia y chequear contra el umbral.
- 3Actuar propio.
Cambiar estado, moverse o emitir sin pedir permiso global.
05 · Representación en Python
Contar cerca y comparar
La función recibe al agente y su lista de vecinos, nunca el mundo. La decisión es una comparación de una línea.
Python en tu navegador. Subí el umbral y observá cómo la misma vecindad deja de activar.
def decidir(activos_cerca, umbral=1):
return activos_cerca >= umbral
print(decidir(0), decidir(1), decidir(3))
Con umbral 1 basta un vecino activo; con umbral 3 hacen falta tres: el número manda, no la intención.
Vecinos primero, regla después
Primero se filtra por radio, después se cuenta: la regla nunca toca posiciones globales.
import math
pos = [(0.2, 0.2), (0.25, 0.22), (0.9, 0.9)]
activo = [True, False, False]
def activos_cerca(i, radio=0.15):
xi, yi = pos[i]
n = 0
for j, (x, y) in enumerate(pos):
if j != i and math.hypot(x - xi, y - yi) < radio and activo[j]:
n += 1
return n
print(activos_cerca(1), decidir(activos_cerca(1)))
06 · Exploración
Laboratorio: el umbral que enciende el barrio
Los agentes están quietos con 3 focos activos. En 10 rondas síncronas cada uno se activa si tiene al menos umbral vecinos activos dentro del horizonte. Las líneas tenues son vecindades de este mapa. ¿Cuánto horizonte hace falta para que el barrio se encienda?
Poco alcanza si está cerca
si activos_cerca ≥ umbral → activar
Con horizonte 0,20 y umbral 2, el brote es parcial.
Cada punto es un agente fijo: amarillo activo, verde aún no. Las líneas grises son vecindades dentro del horizonte. El modelo corre 10 rondas síncronas con doble buffer. Pulsá Nueva réplica para otros focos.
Preguntas para explorar
- Con horizonte mínimo y umbral 1, ¿se enciende el mapa? ¿Por qué sin alcance no hay cuenta que valga?
- Con horizonte grande y umbral 4, ¿alcanza la cercanía o el umbral apaga todo? Probá umbral 1 con el mismo horizonte.
- Duplicá los agentes sin tocar horizonte ni umbral. ¿Suben los activos? ¿Qué dice eso de densidad y regla?
Ver respuestas sugeridas
- No: casi nadie tiene vecinos y la cuenta da cero. El horizonte crea los candidatos; sin candidatos el umbral nunca se cumple.
- El umbral alto apaga: exige 4 activos cerca y casi nadie los reúne. Con umbral 1 el mismo horizonte enciende todo: el número manda.
- Sí: más densidad da más vecinos en el mismo horizonte y el umbral se cumple más fácil. La regla fija convierte mapa en destino.
07 · Comprensión
Confusiones frecuentes
«Local es mirar a todos los cercanos»
Cercanos con tope: sin horizonte y sin k la vecindad crece con la densidad y deja de ser local. Local es declarado y acotado.
«El umbral se ajusta solo»
El umbral es parámetro del modelo, no magia: se declara, se barre y se reporta (Tema 41). Ajustarlo a mano hasta que guste es sobreajuste.
«Si es simple no explica nada»
La simpleza es la hipótesis: contagio con ≥ 1, Schelling con 30 %, Vida con 2–3. Lo complejo emerge después (Tema 20), no se programa.
«Local no necesita orden declarado»
La cuenta local también necesita foto o turno (Temas 16–17): con sync avanza parejo, con async encadena. Regla y orden se declaran juntos.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: comparar umbrales
Ejecutá y verificá qué umbral enciende con 2 activos cerca. Luego probá con 0 y con 4.
def decidir(n, umbral):
return n >= umbral
for u in [1, 2, 3]:
print(u, decidir(2, u))
Ver solución razonada
Da True, True, False: con 2 cerca encienden umbrales 1 y 2, no el 3. La misma vecindad, tres modelos.
Ejercicio 2: predecir la fracción
Sin ejecutar primero: 2 parecidos de 6 vecinos con umbral de huida < 30 %. ¿Se muda? Comprobalo después.
parecidos, total = 2, 6
print(parecidos / total < 0.3)
Ver solución
Da False: 33 % supera el 30 % y se queda. Con 1 parecido daría True y se mudaría: el borde del umbral decide barrios (Tema 29).
Ejercicio 3: horizonte que crea vecinos
Dos agentes a 0,18. ¿Son vecinos con horizonte 0,15? ¿Y con 0,20? Escribí la condición.
Ver una posible respuesta
d = 0.18
print(d < 0.15, d < 0.20)
Da False, True: el horizonte dibuja la red antes de contar. Sin radio no hay vecinos ni regla que valga.
09 · Síntesis
Ideas para recordar
- Local es mirar cerca, contar poco y comparar un umbral: sin mapa global.
- Horizonte crea candidatos y umbral decide: juntos dibujan olas y manchas.
- Lo local escala y es robusto; lo global coordina pero centraliza y no escala.
- La firma decidir solo recibe conteos: si pide el mundo, ya no es local.
- En Python, filtrar por radio primero y decidir con ≥ umbral después.
En el próximo tema estudiaremos el comportamiento global: patrones del conjunto a partir de lo local.