Hola, soy Uri Wilensky de la Universidad Northwestern
y soy el autor de NetLogo. Es un gusto
para mí estar hoy con ustedes. Son afortunados
de estar en las competentes manos de Bill Rand.
Bill trabajó conmigo en Northwestern y
escribimos un libro de texto sobre
modelación basada en agentes con NetLogo.
Voy a dar una pequeña introducción a la
modelación basada en agentes con NetLogo.
Voy a ubicar esta introducción en un
escenario inusual.
Quiero que nos remontemos en el tiempo
hacia finales del primer milenio, alrededor
del año 1000, cuando los números romanos
llegaron por primera vez a Europa.
Disculpen, cuando los números indoarábigos
llegaron a Europa. Hasta ese momento los
europeos habían utilizado la numeración romana.
Cuando usaban el sistema romano,
esta numeración no tiene notación por posición,
una notación posicional.
Y la representación de los números podía volverse
muy, muy, muy grande.
Además, las operaciones de multiplicación
y especialmente división eran sumamente
difíciles de hacer con números romanos.
A pesar de que los científicos reconocieron
rápidamente que el sistema indoarábigo era
muy superior para la aritmética, tomó mucho
tiempo para que estas ideas y prácticas se
difundieran extensamente en Europa.
Este fenómeno de cambio
en la codificación/el lenguaje en un campo
del conocimiento, es lo que mi colega
Seymour Papert y yo llamamos "Reestructuraciones".
La estructuración es la codificación del
conocimiento en un dominio como función
de la infraestructura figurativa empleada para expresarlo.
Y la reestructuración es el cambio de una codificación a otra.
Una de las consecuencias poderosas que
tuvo la reestructuración Romana-Indoarábiga
fue que antes, eran pocas las personas
que podían multiplicar y dividir,
y los demás debían llevar sus problemas a
alguna de estas personas importantes
quienes los resolvían y devolvían las
respuestas después de un largo tiempo.
Mientras que después de la reestructuración,
la gran mayoría podía aprender
los algoritmos básicos de la aritmética,
y la ciencia pudo avanzar de formas
importantes dado que le fue posible
utilizar grandes cifras y la notación posicional.
Ya que introduje eso, ahora podemos
preguntar ¿cuáles son las cosas difíciles e importantes
que se le complican a la gente actualmente?
Un área de interés hoy en día es la
dificultad para entender los Sistemas Complejos.
Y es un campo de estudio listo para una reestructuración de este estilo.
Con Sistemas Complejos me refiero
simplemente a aquellos sistemas compuestos
de muchas partes que interactúan entre ellas,
y en los cuales, sin un control centralizado ni un diseñador,
emergen patrones globales
de las interacciones y decisiones locales de las partes.
Ejemplos comunes de éstos incluyen
a los ecosistemas, los sistemas económicos,
los sistemas inmunes, la bolsa de valores.
Todos son casos donde las interacciones
de las partes crean patrones globales.
Y utilizo la palabra 'emergente' y 'fenómeno emergente'
para describir los patrones de organización que emergen,
que resultan de las interacciones de los
muchos diferentes agentes distribuidos,
u objetos distribuidos.
Y para estos patrones, es grande y notoria la dificultad para entenderlos.
Así que la emergencia es complicada en dos maneras diferentes.
Si se conoce la conducta 'micro' de los elementos, la manera en la que interactúan,
es muy difícil predecir cómo será el patrón global.
Y por el contrario, cuando se conoce el patrón global,
resulta difícil encontrar la microestructura responsable de generarlo.
Es decir, las reglas de los agentes y las partes que interactúan.
De hecho, podrían pensar en este segundo problema
como una parte importante del proyecto de la Ciencia.
Observamos estas macro-regularidades en el mundo
y luego tratamos de entender qué elementos están
involucrados en el surgimiento de esos patrones.
La tecnología puede ayudarnos mediante
la creación de nuevas representaciones
al igual que la numeración indoarábiga
ayudó a la gente a resolver complicados
problemas matemáticos y científicos.
Del mismo modo, la tecnología computacional
permite crear nuevas representaciones de
sistemas complejos para ser capaces de entenderlos.
Precisamente eso hacemos ahora mediante
la simulación de estos sistemas,
creando a los elementos o agentes individuales
dándoles reglas de interacción,
y dejando que las interacciones se desarrollen.
La modelación basada en agentes es exactamente eso.
Un agente es un elemento autónomo e individual
de una simulación que tiene propiedades, acciones y conductas particulares.
La actividad de la modelación basada en agentes
es la de observar fenómenos en el mundo,
e intentar diseccionarlos en sus elementos o agentes,
y descubrir las reglas que realmente generen los fenómenos de interés.
La modelación basada en agentes (MBA) es ampliamente utilizada
en las ciencias naturales, sociales, en las ingenierías
y otras profesiones de muchas maneras distintas.
Hace aproximadamente 20 años,
yo desarrollé el lenguaje NetLogo como una forma de hacer modelación basada en agentes,
guíandome con dos principios.
Primero, "umbral bajo", ya que es un lenguaje que debe ser
muy accesible para que la gente pueda comenzar a modelar rápidamente.
Supongo que ustedes juzgarán si logré ese objetivo.
Y segundo, "límite alto", en el sentido de que se debe poder hacer
ciencia verdaderamente compleja, difícil e innovadora, dentro de este ambiente de MBA.
Les mostraré tres ejemplos de cómo pueden
modelar sistemas complejos y patrones emergentes con NetLogo.
El primero que enseñaré es un incendio forestal.
Ya cargué este modelo ahora, es un modelo de un incendio forestal en NetLogo.
Pueden ver estos pixeles verdes que
representan a los árboles del bosque.
Hay una barra deslizante aquí llamada 'densidad', colocada en 57 por ciento.
Eso significa que 57 por ciento del espacio vacío está ocupado por árboles.
O más o menos 57 por ciento.
Pueden notar que en el límite izquierdo hay un borde de fuego.
Este modelo está construido con reglas muy sencillas.
Cada árbol puede ver hacia su norte, su este, su sur y su oeste.
Si detecta que hay fuego en cualquiera de estas direcciones, se enciende y se quema.
Si no detecta fuego, no hace nada.
Esa es la totalidad de las reglas del modelo, más algunas sobre los colores.
Cuando presiono el botón de inicio (go)
la simulación comenzará a correr.
Como pueden ver, el fuego se está extendiendo ligeramente
y ahora se apagó.
Pueden percatarse de que no incendió una gran parte del bosque,
y podemos intentar de nuevo con la misma densidad.
Lo corremos de nuevo, y cada vez será
un poco diferente porque la distribución
de los árboles cambia cada vez.
Pueden notar que en ambos casos con la densidad de 57%, no se quemó mucho bosque.
Pero si elevo la densidad a 64 por ciento,
y ahora dejamos que el fuego se extienda,
obtenemos un incendio mucho más dramático y mucho más extendido en el bosque.
Quizá esto es un poco sorprendente debido
a que estamos acostumbrados a pensar que
una densidad apenas mayor, o bien,
una X un poco más grande lleva a una Y un poco más grande.
Asimismo una densidad ligeramente mayor
llevaría a un incendio ligeramente más grande.
No estamos acostumbrados a estos cambios dramáticos.
Pero en sistemas complejos esto es un fenómeno bastante común,
junto con la noción del umbral, o del punto crítico, o también conocido como el punto de inflexión,
donde tan sólo un poco de más densidad
conlleva a un incendio dramática y cualitativamente diferente.
O extensión del incendio.
El siguiente ejemplo que mostraré se llama
Modelo de Depredación Lobo - Oveja.
Aquí estan los lobos y las ovejas
interactuando en un ecosistema.
Las reglas de este modelo son un poco más complicadas.
Cada lobo y cada oveja inicia con una reserva de energía,
y cada movimiento les resta un poco de su energía.
Pero si un lobo y una oveja se encuentran,
y en este modelo hay una simplificación
dado que lobos y ovejas se mueven aleatoriamente.
Entonces si un lobo y una oveja se encuentran, el lobo se come a la oveja.
Y si la energía del lobo cae por debajo de cero el lobo muere,
pero al comer ovejas gana energía, evidentemente.
Veamos qué pasa cuando corremos el modelo.
Podemos ver tanto en la gráfica de la izquierda
como en el visualizador principal del modelo
que estamos obteniendo algún tipo de ciclo, al menos al principio, de los lobos y las ovejas.
Pero ahora todos los lobos murieron porque no había suficientes ovejas, sus números bajaron.
Y ahora como las ovejas ya no están restringidas, van a poblar sin límites el mundo del modelo.
Y si lo corro nuevamente, puede llegar a un resultado distinto, o al mismo.
Puede ocurrir que los lobos se coman a todas las ovejas,
y ellos permanecerían pero sin alimento, y entonces se extinguirían.
Esos son los dos estados atractores de este tipo de modelo.
Y parece que en este caso particular, las ovejas van a dominar otra vez.
Se entiende ahora la idea de que podemos
dar reglas individuales a cada lobo y oveja,
y después ver el resultado en sus niveles de población.
Mi último ejemplo será tomado de las ciencias sociales
y fue originalmente planteado por el economista Thomas Schelling,
quien estuvo en Harvard en los sesentas,
y quien escribió el famoso libro "Micromotivos y Macroconducta"
en el cual examina la cuestión de cómo las interacciones entre individuos generan resultados a nivel poblacional.
En este caso él estaba interesado en el fenómeno de segregación residencial.
Planteó un mundo en el que existen dos tipos de agentes, unos rojos y otros verdes,
dispuestos a vivir juntos, pero con cierta tolerancia.
Si su vecindad está ocupada por muchos del otro tipo,
si un rojo está rodeado por demasiados verdes,
o un verde está rodeado por demasiados rojos,
entonces se vuelven infelices y se mudan.
Le pareció interesante averiguar qué pasaría en ese mundo.
Y aquí, esta barra deslizante de "porcentaje deseado de similares" se encuentra en 30 por ciento.
Esto quiere decir que rojos y verdes están satisfechos de vivir rodeados,
a lo más, de 70 por ciento de agentes distintos a ellos.
Pero cuando sobrepasa este porcentaje, comienzan a mudarse a otras partes.
Si corremos el modelo, podemos notar que surgen vecindarios muy segregados.
Schelling originalmente modeló su idea usando tableros de ajedrez
y monedas de 5, 10 y 25 centavos,
y trabajó muchos meses para conseguir estos resultados.
En cambio con MBA podemos observar
la velocidad con la que obtenemos resultados de segregación.
Este tipo de modelos en las ciencias sociales
solían ser bastante controversiales, y quizá todavía lo son hasta cierto punto.
Algunas personas podrían argumentar que
la gente no tiene reglas sencillas como las hormigas,
y que en este caso los prejuicios podrían ser un factor importante para la segregación,
pero lo que Schelling mostró fue que para cumplir el objetivo social de eliminar la segregación residencial,
no es suficiente usar los prejuicios como palanca,
porque mientras exista apenas una mínima preferencia por los de tu mismo tipo,
se producirá segregación.
Estos fueron tres ejemplos del uso de NetLogo
para representar y modelar estos fenómenos un tanto complejos.
Quiero señalarles que existen ecuaciones complejas que
normalmente dominan la manera en que se modelan estos fenómenos.
Este es el ejemplo de propagación del fuego
donde hay una ecuación del flujo de un fluido y una ecuación de calor, son ecuaciones diferenciales parciales.
Mientras que en NetLogo pueden representarse mediante reglas fáciles y código sencillo.
De forma semejante, para el modelo de depredación,
hay un par de ecuaciones diferenciales,
pero nuevamente, éstas pueden representarse mediante un sencillo código.
Para concluir, la perspectiva de la modelación basada en agentes
es que los patrones a gran escala (macro) en la naturaleza y en la sociedad
son generalmente o acaso siempre el resultado de la interacción y acumulación de una gran cantidad de elementos,
cada uno de los cuales con reglas individuales de acción y de interacción.
Para entender un buen número de fenómenos del mundo,
podemos modelarlos y simularlos
como elementos que obedecen unas cuantas reglas sencillas.
Muchas gracias, sé que disfrutarán la clase de Bill.