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.