Simulación Basada en Agentes · Tema 26

Heterogeneidad de agentes

Diversidad de tipos y comportamientos: precoces que prenden y tardíos que aseguran.

01 · Punto de partida

Clones no hacen historia

Hasta ahora casi todos los agentes eran gemelos: mismo umbral, misma velocidad, mismo gusto. Pero los mercados mezclan ahorristas con arriesgados, las epidemias a quietos con movedizos, las mudanzas a tolerantes con exigentes. La heterogeneidad es esa mezcla: tipos distintos con reglas distintas en el mismo mundo.

Y la mezcla manda: sin precoces que se animen primero no hay cascada, sin tardíos que duden no hay freno. Lo homogéneo se promedia; lo diverso sorprende.

  • ¿Qué varía: umbral, velocidad, gusto, rol?
  • ¿Cuántos tipos y en qué proporción?
  • ¿La diferencia ayuda o frena la cascada?
  • ¿Qué pasa si los vuelvo a todos iguales?

02 · Definición

Tipos, proporciones y reparto

Toda diversidad se declara en tres números, no en adjetivos:

🎭

Tipos

Los papeles: precoz de umbral bajo, tardío de umbral alto, movedizo veloz. Cada tipo con parámetros propios.

%

Proporciones

Cuántos de cada uno: 10 % precoces bastan para prender. La minoría activa manda más que la mayoría quieta.

⚖

Reparto

Cómo se sortean: mezcla al azar con semilla o barrios por tipo. El mapa del reparto cambia el resultado.

La misma mezcla en cada dominio.
MundoTiposQuién prende
Cascadaumbrales bajos y altosprecoces que se suman primero
Mercadoahorristas y arriesgadosarriesgados que prueban primero
Epidemiaquietos y movedizosmovedizos que conectan barrios
Tráficocamiones y autosautos que cambian de carril

03 · Mezclas

Clones que se frenan frente a mezcla que prende

Todos iguales con umbral alto no se mueven; mezclados con pocos precoces incendian. El promedio esconde el mecanismo.

Población homogénea

Gemelos predecibles

Un solo umbral: todos exigen 50 %. O prende todo junto o muere todo junto: sin precoces no hay chispa.

Población heterogénea

Mezcla que escala

Umbrales repartidos: base ± diversidad. Los precoces prenden, los medios siguen y los tardíos cierran.

Heterogeneidad
Diferencias declaradas entre agentes: parámetros, no opiniones. Se mide con varianza y proporciones.
Precoces / tardíos
Umbral bajo que se suma primero contra umbral alto que exige multitud. La cascada necesita ambos.
Diversidad
Ancho del reparto alrededor de la base: ±0 es clon, ±0,2 es mezcla. Pone el combustible.
Rol
Papel con regla propia: comprador y vendedor, depredador y presa. Más que parámetro, otra función.

04 · Ciclo

El experimento que aísla la mezcla

Cada afirmación sobre diversidad se prueba contra clones, en este orden:

tipificar→repartir→contrastar
  1. 1
    Tipificar.

    Definir tipos con parámetros propios y proporciones que sumen 100 %.

  2. 2
    Repartir con semilla.

    Sotear quién es quién y dónde vive cada uno: el reparto se guarda.

  3. 3
    Contrastar con clones.

    Correr mezcla contra todos iguales con el promedio: si difieren, la mezcla importaba.

05 · Representación en Python

Tipos con parámetros propios

El tipo vive en el agente como dato: cada uno guarda su umbral. La media miente, la lista decide.

Python en tu navegador. Subí la diversidad y observá cómo nacen precoces aunque la base sea exigente.

import random
random.seed(3)
base, diversidad = 0.4, 0.2
umbrales = [min(0.9, max(0.05, base + random.uniform(-diversidad, diversidad))) for _ in range(5)]
print([round(u, 2) for u in umbrales])

Con base 0,4 y ±0,2 hay precoces bajo 0,3 y tardíos sobre 0,5: la misma media, otra historia.

Medir por tipo, no solo total

El global por tipo delata quién prendió primero.

activos = [True, True, False, False, False]
precoces = [True, True, False, True, False]
print(sum(a and p for a, p in zip(activos, precoces)), "precoces activos")

06 · Exploración

Laboratorio: pocos precoces prenden todo

La misma cascada del Tema 22 con 3 focos y 12 rondas, pero los umbrales son base ± diversidad. Los de borde claro son precoces (umbral bajo) y los oscuros tardíos. Con diversidad 0 son clones; con diversidad alta unos prenden con nada y otros exigen multitud.

EXPERIMENTO 26

La mezcla decide

umbral = base ± diversidad

Los resultados numéricos aparecen debajo.
Cascada0 %
Precoces0 %
Tardíos0 %
LecturaApagada

Con base 0,40 y diversidad 0,20, los precoces prenden.

Cada punto es un agente: amarillo activo, verde aún no; borde claro precoz y oscuro tardío. Radio fijo 0,20 y 3 focos. Pulsá Nueva réplica para otro reparto con la misma mezcla.

Preguntas para explorar

  1. Con diversidad 0 y base alta, ¿prende? ¿Por qué los clones exigentes no tienen quién empiece?
  2. Subí la diversidad al máximo con la misma base. ¿Quién se activa primero: precoces o tardíos? Mirá los bordes.
  3. Repetí 5 veces sin tocar nada. ¿La cascada es estable? ¿Qué parte es mezcla y qué parte es mapa?
Ver respuestas sugeridas
  1. No: todos exigen lo mismo y la chispa no alcanza a nadie. Sin precoces no hay primer paso.
  2. Precoces: se suman con 1–2 vecinos y arrastran medios; tardíos cierran al final si la ola llega.
  3. No: el reparto de quién es precoz y dónde vive cambia cada sorteo. La mezcla pone el potencial, el mapa decide.

07 · Comprensión

Confusiones frecuentes

«Diverso es aleatorio»

Diverso es tipos declarados con proporciones y reparto con semilla. Aleatorio sin tipos es ruido, no heterogeneidad.

«El promedio representa»

El promedio de precoces y tardíos no prende ni frena como ninguno: la cascada vive en los extremos, no en la media.

«Más tipos siempre es mejor»

Cada tipo suma parámetros que hay que justificar y barrer. Dos tipos que explican valen más que diez que calzan.

«Heterogéneo no se compara»

Se compara contra clones con la media: si mezcla y clones dan lo mismo, la diversidad sobraba.

08 · Práctica guiada

Ejercicios con Python

Ejercicio 1: repartir umbrales

Ejecutá y verificá el rango de la mezcla. Luego llevá la diversidad a 0 y comprobá que nacen clones.

import random
random.seed(1)
base, div = 0.4, 0.2
print([round(base + random.uniform(-div, div), 2) for _ in range(4)])
Ver solución razonada

Da mezcla alrededor de 0,4 ± 0,2: precoces y tardíos en 4 sorteos. Con div = 0 daría cuatro 0,4: clones.

Ejercicio 2: predecir quién prende

Sin ejecutar primero: fracción 0,25 con umbrales 0,1 y 0,5. ¿Quién se suma?

print(0.25 >= 0.1, 0.25 >= 0.5)
Ver solución

Da True, False: el precoz prende y el tardío espera. La misma fracción, dos destinos: la mezcla en una línea.

Ejercicio 3: clones contra mezcla

Base 0,5 con diversidad 0 contra base 0,5 con ±0,3. ¿Cuál puede prender con fracción 0,3?

Ver una posible respuesta
print(0.3 >= 0.5, 0.3 >= 0.2)

Da False, True: los clones esperan y los precoces de la mezcla prenden. El contraste mezcla–clones es la prueba.

09 · Síntesis

Ideas para recordar

  • Heterogeneidad es tipos con proporciones y reparto con semilla, no ruido suelto.
  • Precoces prenden y tardíos sostienen: la cascada necesita ambos.
  • El promedio esconde el mecanismo: se mide por tipo.
  • Se contrasta contra clones con la media: si igualan, la mezcla sobraba.
  • En Python, umbral es base más uniforme con cotas y reporte por tipo.

En el próximo tema estudiaremos los autómatas celulares: rejillas donde cada celda es un agente simple.