J Algo de Historia
Muchos campos diferentes han aportado ideas y métodos a ABM. En este apéndice, nos centraremos en los antecedentes clave de las tecnologías ABM de la informática y campos computacionales asociados. Además de los campos computacionales, notamos que también ha habido fuertes contribuciones de biología, física, ingeniería y ciencias sociales. En biología, estas contribuciones vino en gran parte de la ecología y el desarrollo independiente del modelado individual junto a ABM (DeAngelis y Gross, 1992). Primer plano de modelado individual El papel del comportamiento individual de animales o plantas en un ecosistema, en lugar de trabajar con variables de nivel de población (DeAngelis y Mooij, 2005). Además, como ABM, IBM los modelos a menudo se ubican dentro de paisajes o entornos particulares, y los modeladores de IBM centrarse en cómo los paisajes pueden afectar en gran medida los resultados de un modelo (Grimm & Railsback, 2005). Gran parte de la metodología de IBM se ha incorporado al trabajo de ABM. En física, los modelos de Ising se usaron para describir el magnetismo y mostraron que modelos simples podrían producir transición de fase. Estos modelos también fueron precursores de la telefonía celular. autómatas Como se describe en el capítulo 3, el físico Per Bak creó el clásico Sandpile modelo, que Bak usó para ilustrar el concepto de criticidad autoorganizada (SOC). Él pasó a aplicar métodos basados en la física a fenómenos complejos en muchos contenidos dominios (como el modelo Fire en el capítulo 3 y varios modelos bursátiles) y mostraron La relación de las leyes de poder con SOC. En ingeniería, ingeniería de procesos y cibernética, entre otras áreas de investigación, contribuido al desarrollo de ABM. En ingeniería de procesos, el objetivo es diseñar un óptimo resultados dados comportamientos de bajo nivel, que pueden considerarse como un marco similar a ABM, pero con un objetivo diferente Como tal, algunas de las herramientas y métodos de ingeniería de procesos. También son útiles en el contexto de ABM. El campo de la cibernética se separó del proceso. e ingeniería de control, centrándose en las propiedades generales de la retroalimentación en los sistemas. Esto llevó a las nociones de cambios de fase del sistema, es decir, áreas de espacio de parámetros donde pequeños cambios puede tener consecuencias desproporcionadas (Wiener, 1961). En una línea similar, como la ingeniería. los modelos se volvieron más complejos, tenían que lidiar con la estocasticidad, lo que llevó a la técnicas de simulación de Monte Carlo (Metropolis & Ulam, 1949), en las que los modelos son ejecutar repetidamente para comprender su rango de salidas o buscar una salida óptima. Al igual que con los ingenieros de procesos y cibernéticos, los científicos sociales se dieron cuenta de que Las complejidades de las organizaciones sociales no fueron capturadas suficientemente por los modelos disponibles herramientas. Como resultado, los científicos sociales comenzaron a usar modelos algorítmicos y computacionales para Describir los fenómenos sociales. Estos modelos podrían ser razonados y predicciones falsificables podría hacerse a partir de ellos, lo que permite probar los modelos. Esto proporcionó social científicos con un método para comparar datos empíricos con datos predichos similares a los de científicos naturales (Lave y marzo de 1975). Los modelos de teoría de juegos de Nash (1950) fueron algunos de los primeros intentos de capturar el comportamiento humano en ecuaciones matemáticas. La mayoría de Estos modelos iniciales de ciencias sociales utilizaron datos agregados promediados entre individuos. por Por ejemplo, el famoso modelo del Club de Roma hizo suposiciones muy simples sobre cómo el mundo la población aumentaría y cómo se consumirían los recursos (Meadows, 1972). Estos esfuerzos dieron lugar con el tiempo al modelado dinámico de sistemas (SDM; Forrester, 1961), que propuso crear modelos utilizando existencias (las cantidades de bienes, entidades u objetos en ubicaciones particulares) y flujos (las tasas de aumento o disminución de estas existencias). SDM los modeladores hicieron contribuciones importantes a los sistemas complejos, pero porque los elementos en Los modelos de System Dynamics eran cantidades en masa, un paso lógico era bajar un nivel, modelando los individuos que componen la cantidad en masa. Por lo tanto, para los modeladores interesados en SDM, el modelado basado en agentes fue una progresión natural que permitió un examen más profundo del comportamiento de individuos heterogéneos. De hecho, en parte debido a esta necesidad de ciencia para comprender el comportamiento individual en un marco cada vez más rico, algunas de las Los primeros modelos basados en agentes surgieron en las ciencias sociales. El modelo de segregación de Schelling (discutido en el capítulo 3) es considerado por muchos como uno de los primeros modelos basados en agentes alguna vez ideado, a pesar de que se realizó manualmente usando un tablero de ajedrez y monedas (Schelling, 1971). El libro de Schelling Micromotives and Macrobehavior (1978) demostró cómo las acciones a nivel individual podrían dar lugar a sorprendentes patrones sociales. Su El modelo de segregación mostró que la segregación de la vivienda ocurriría incluso si ningún individuo lo quiere, siempre y cuando las personas tengan preferencia, no pertenezcan a una minoría extrema en su barrio. En la última década, hemos sido testigos de un tremendo crecimiento en el campo de la teoría de redes. y la incorporación de soporte para redes como un elemento central del modelado basado en agentes. Este trabajo fue iniciado por el matemático Euler en el siglo XIX para resolver el problema. de los siete puentes de Konigsberg (ver Newman, 2010). En la década de 1950 y principios de los 60, os matemáticos Erd ö sy R é nyi caracterizaron redes aleatorias (1960), que fue entonces seguido por el modelo Barabasi-Albert sobre redes de apego preferenciales (1999). Trabajo por psicólogos como Stanley Milgram sugirió que la longitud de camino promedio en humanos Las redes son cortas (seis grados de separación) (1967), una idea que luego se formalizó en los Watts y modelos de red Strogatz de mundos pequeños (1998). Este tipo de redes y sus Los métodos de análisis asociados se han convertido en elementos básicos del modelado basado en agentes. Una historia completa de las raíces de ABM en otros campos y el papel de dichos campos en el orígenes de ABM está más allá del alcance de este apéndice. Aquí, sin embargo, exploraremos Algunos descubrimientos clave que dieron forma al desarrollo de ABM. Presentamos aquí seis viñetas. que describen varios de los principales antecedentes de las tecnologías ABM.
J.1 Autómatas celulares y modelado basado en agentes
John von Neumann contribuyó en gran medida a una gran cantidad de campos científicos, incluidos mecánica cuántica, teoría de juegos económicos y ciencias de la computación. El húngaro nacido Se decía que el matemático había sido “el último de los grandes matemáticos” que poseía el “intelecto más centelleante de este siglo.”A finales de la década de 1940, von Neumann, teniendo inventó la arquitectura moderna de la computadora, se interesó en tratar de crear Máquinas artificiales que podrían reproducirse de forma autónoma. Él especuló que la humanidad eventualmente necesitaría extraer otros objetos celestes, y esa es la forma más efectiva de realizar operaciones mineras a gran escala (como extraer una luna entera o un asteroide cinturón) sería el uso de máquinas autorreplicantes, aprovechando su exponencial crecimiento. Influenciado por su trabajo en la primera computadora (ENIAC; von Neumann et al., 1987), él Imaginé que esta máquina de reproducción artificial tenía un largo conjunto de instrucciones en una cinta. Esta cinta contendría no solo una descripción de toda la máquina, sino también una descripción de la cinta que describe esta máquina. Von Neumann buscó determinar cómo encapsular una máquina completa (más las instrucciones para construir esa misma máquina) dentro de una sola cinta de programa Colaborando con su colega Stanislaw Ulam, los dos comenzaron a pensar de una máquina de cálculo que se cierne sobre un lago de partes, que recogería partes de el lago y juntarlos para construir otra máquina que era un duplicado exacto del original (Von Neumann y Burks, 1966). Esta máquina sería muy simple en su operación: miraría las piezas debajo de él, consideraría su propio estado y, sobre la base de una tabla de reglas, alterar su propio estado. Sobre la base de este experimento mental, von Neumann finalmente creó una versión procesal simplificada del gran lago, que él llamó un celular autómata (CA). Utilizando CA, von Neumann finalmente pudo diseñar una reproducción hipotética máquina usando veintinueve estados diferentes (¡usando lápiz y papel cuadriculado!) que llamó un constructor universal (Burks, 1970). Aunque una máquina física aún no había sido construido, el Universal Constructor fue prueba del concepto de que una máquina auto-reproductora podría ser construido Además, introdujo la noción de universalidad. La máquina fue llamada un constructor universal, ya que la descripción de la máquina en la cinta podría modificarse y extendido de manera arbitraria; siempre que contuviera el constructor adecuado instrucciones, continuaría funcionando. Efectivamente, esto significaba que von Neumann tenía no solo construyó una máquina capaz de autorreplicarse, sino también una que podría sufrir evolución, ya que las instrucciones podrían modificarse y agregarse al comienzo de cada generación sucesiva para proporcionar más y más capacidades. El constructor universal original de Von Neumann era difícil de manejar, ya que requería una CA donde cada ubicación de celosía tenía veintinueve estados diferentes; un espacio de reglas tan grande era Difícil de comprender. Sin embargo, en 1970, John Conway creó un celular mucho más simple autómata, que llamó el “Juego de la vida” (discutido en detalle en el capítulo 2). Debido a la falta de suficiente poder computacional, Conway utilizó una placa Go para llevar a cabo su experimentos y no una computadora. “La vida” se hizo popular cuando Martin Gardner publicó El juego en su popular columna Scientific American (Gardner, 1970). Como vimos en el capítulo 2, la CA que se le ocurrió a Conway fue muy simple. El juego de la vida de Conway tenía tres reglas: (1) Si una celda tenía exactamente tres vecinos (de sus ocho vecinos inmediatos), pasaría de estar muerto a estar vivo (nacimiento); (2) Si tuviera dos o tres vecinos y estaba vivo, permanecería vivo (sin cambios); (3) Si tuviera alguna otra combinación de vecinos, iría al estado muerto (soledad o hacinamiento). Cuando Conway sembró el juego con un conjunto aleatorio de células vivas y muertas, el sistema crearía patrones hermosos e intrincados de objetos interesantes. Muchos de ellos pueden ser visto en el capítulo 2. Notablemente, aunque la regla de vida de Conway requería solo dos dimensiones, dos estados (vivos o muertos) y nueve entradas (la celda y sus ocho vecinos), Conway y otros probaron que su regla de “Vida” (Berlekamp et al., 1982) contenía el material necesario para la auto-reproducción, es decir, el sistema podría crear una entidad computacional que podría También cree entidades computacionales adicionales. Sin embargo, el poder del Juego de la Vida sí No termina ahí. En 2009, Adam Goucher construyó una computadora / constructor universal dentro de Conway El juego de la vida que demostró que las reglas del juego de la vida eran suficientes calcular todos los posibles problemas (Hutton, 2010). Casi al mismo tiempo que algunos de los primeros trabajos de Conway, y después del trabajo de von Neumann fallecido en 1957, Arthur W. Burks, uno de los colaboradores de von Neumann, siguió examinando CA como parte del grupo Logic of Computers de la Universidad de Michigan. Eventualmente editó una colección de la mayoría de los documentos originales sobre CA en un libro titulado Theory of Self- Reproducción de autómatas (von Neumann y Burks, 1966). Burks también se graduó asesor de John H. Holland, quien se discute en una viñeta posterior. El trabajo de Burks preservó el estudio de las AC hasta que Stephen Wolfram lo revivió a principios de la década de 1980 (Wolfram, 1983). Wolfram hizo varias contribuciones notables al campo de las AC. Por ejemplo, él realizó una encuesta exhaustiva de todas las reglas CA unidimensionales para celdas con un barrio de solo sus vecinos izquierdo y derecho (radio = 1). Incluso esta simple clase de Las AC exhiben un comportamiento sorprendentemente complejo. Wolfram los dividió en cuatro clases: estado final uniforme, estado final cíclico, estado final aleatorio y estado final complejo. Wolfram demostró que los patrones pueden generar muchos patrones encontrados en la naturaleza. Wolfram y Ed Fredkin del MIT despertó mucha controversia cuando hicieron la afirmación de que todo el universo puede modelarse utilizando CA o, aún más sorprendente, la posibilidad de que el universo mismo era un CA (Wolfram, 2002; Fredkin, 1990). La relación histórica entre CA y ABM es algo desordenada. Muchos autores han escrito que las AC condujeron directamente al desarrollo de ABM. De hecho, las CA se pueden ver como ABM simples donde todos los agentes son estacionarios: en contraste con los CA, más generales Los ABM también pueden incluir agentes que se mueven explícitamente. Su capacidad de tener agentes móviles. permite a los investigadores representar y modelar objetos en movimiento de forma más natural. Como resultado de Por esta similitud, se podría suponer que los ABM fueron un desarrollo científico natural de CAs. Sin embargo, hay poca evidencia de que los desarrolladores de los primeros ABM; por ejemplo, Schelling y sus colegas comenzaron con una CA a partir de la cual se desarrolló un ABM. Más de estos investigadores estaban al tanto del trabajo de CA, pero, a juzgar por entrevistas con varios de ellos, parece que desarrollaron la noción de modelado basado en agentes independiente de El trabajo en curso en la teoría de CA. En muchos sentidos, las AC (y el Juego de la vida de Conway en particular) exhiben muchas de las propiedades de los modelos modernos basados en agentes. Cada celda se puede ver como un agente con un Descripción simple del estado. Las acciones que toma para cambiar su estado en función de su las entradas vecinas son similares a las acciones que los agentes toman en respuesta a las interacciones locales. Las CA de Von Neumann estuvieron entre los primeros intentos de crear modelos computacionales de un sistema biologico. Además, la escala de tiempo discreta de la CA es muy similar a la La noción de ABM de un planificador y “ticks”. Además, las nociones de autorreproducción, universalidad y procesos evolutivos son todos conceptos que viven como mecanismos dentro de ABM. El modelo Life de Conway también exhibió muchos comportamientos que a menudo se ven en los ABM. El resultado final del modelo es difícil de predecir sobre la base de las entradas iniciales, y allí son patrones emergentes que solo pueden describirse a un nivel superior al nivel micro (por ejemplo, luces intermitentes y planeadores). Por último, el trabajo de Wolfram para clasificar las reglas de CA en clases de El comportamiento fue un ejemplo temprano de los intentos de la ciencia de la complejidad de entender nuestro mundo tomando grandes cantidades de fenómenos dispares y clasificándolos en grupos que ayúdanos a entender las similitudes entre sistemas que, a primera vista, parecen completamente no relacionado.
J.2 Algoritmos genéticos, John Holland y sistemas adaptativos complejos
En informática, los algoritmos se han diseñado tradicionalmente como artefactos de ingeniería. La inspiración para estos algoritmos provino de aplicaciones de ingeniería como el ensamblaje líneas, construcción de puentes e incluso sistemas de alcantarillado. A finales de la década de 1960, un joven eléctrico ingeniero con el nombre de John Holland se topó con el trabajo de Donald Hebb. En el de Hebb libro Organización del comportamiento (1949), el psicólogo había escrito sus ideas sobre cómo Las neuronas pueden considerarse algoritmos simples. Frank Rosenblatt (1962) fue influenciado mediante estas ideas para construir un modelo computacional de neuronas humanas, al que llamó perceptrón. Rosenblatt utilizó este modelo para resolver problemas informáticos convencionales en Las formas que él afirmó eran similares a la forma en que la mente humana resuelve los problemas. Esta la técnica eventualmente resultaría en el campo moderno de las redes neuronales. En este naciente campo, Holanda tenía una idea poderosa: se dio cuenta de que un perceptrón era esencialmente un modelo de cómo una neurona se adapta a las entradas y salidas. Por lo tanto, el perceptrón no era solo una estática modelo de la mente, pero también, uno de adaptación mental al mundo. Holanda comenzó a me pregunto si fue posible hacer que este modelo de adaptación sea más universal. Específicamente, comenzó a pensar en la adaptación evolutiva y cómo podría modelar una computadora evolución. Presagiando un principio general de sistemas complejos, Holland intentó generalizar su modelo teórico en un dominio, extraiga su núcleo computacional y aplíquelo más ampliamente a otros dominios. La adaptación parecía (al menos en algún nivel) existir en, por ejemplo, tanto las neuronas en el cerebro como las especies se adaptan a los cambios climáticos. Mediante la extracción La esencia de la adaptación a un principio universal, Holanda arrojó nueva luz sobre ambos estos ejemplos al conectarlos a muchos otros sistemas adaptativos, anunciando una señal visión de una perspectiva de sistemas complejos. En 1975, John Holland publicó su monografía Adaptation in Natural and Artificial Sistemas Este trabajo fue la culminación de sus primeros años en la investigación de la adaptación. y resultó en la idea del algoritmo genético (GA). En esencia, los GA crean una población de soluciones a un problema, evaluar qué tan efectivas son las soluciones para resolver un problema, y luego combinar y mutar las mejores soluciones para crear una nueva población. Esta nueva La población puede ser evaluada y el proceso, repetido. El GA fue un desarrollo único en informática en que postuló el uso de modelos biológicos para resolver computacional problemas evolucionando poblaciones de soluciones a problemas de búsqueda. Holanda describe el uso de GA para “jugar”, entre otros conceptos. Sus pensamientos sobre computadoras y el juego estuvo muy influenciado por el trabajo de Samuel en el aprendizaje automático y damas (Samuel, 1959). Holland pensó que las computadoras podrían resolver aún más complejas problemas si el programa de juego no solo pudiera cambiar sus acciones sino también sus estrategias tiempo extraordinario. Imaginó la evolución de las estrategias computacionales para usar al jugar. Estas ideas condujeron naturalmente a la reificación de agentes adaptativos que pueden cambiar y adaptarse a sus alrededores. Holland comenzó su estudio de los agentes adaptativos tanto como había estudiado previamente la evolución. sistemas; comenzó con datos del mundo real y luego desarrolló modelos informáticos de esos sistemas, investigando sistemas donde los agentes adaptativos ya existían. Holanda tenía Involucrarse desde el principio (alrededor de 1985) con el Instituto Santa Fe (SFI), un instituto de investigación dedicado al estudio de sistemas complejos. En una reunión en el Instituto Santa Fe en septiembre 1987, Holland presentó sus ideas de cómo la economía entera podría ser vista como un Sistema adaptativo complejo compuesto por agentes adaptativos (Holland, 1995). Ideas de holanda eran extensiones de sus puntos de vista sobre la computación evolutiva desde que vio la economía mundo como otra ecología donde los individuos se adaptaron y evolucionaron con el tiempo. En esta reunión Holland conoció a Brian Arthur, quien fue suficientemente influenciado por el trabajo de Holland para desarrollar uno de los primeros modelos en economía que no dependían de individuos con cantidades infinitas de conocimiento y poder computacional infinito. En cambio, los agentes emplearon a Herbert Simon concepto de racionalidad limitada, donde los agentes están limitados en su poder computacional (Simon, 1982). Este modelo, llamado el problema de El Farol Bar (Arthur, 1994), fue uno de los primeros ABM que mostraron que un modelo muy simple podría arrojar luz sobre un complejo teórico disciplina como la economía. Durante este tiempo, muchos investigadores del Instituto Santa Fe, como Holland, Arthur, Anderson, Arrow y Pines, se interesaron en modelar el economía como un complejo sistema evolutivo. Este esfuerzo de investigación resultaría en uno de los primeros modelos clásicos basados en agentes, el Mercado de Valores Artificiales de Santa Fe (Arthur et al., 1997). En agosto de 1986, un grupo de investigadores, entre ellos Holland, Kenneth Arrow y W. Brian Arthur, se reunió en SFI por el CEO de Citicorp, John Reed, debido a un mutuo Frustración con la capacidad de los métodos de modelado tradicionales para capturar la complejidad de el mundo. En muchos sentidos, esta reunión y el respaldo financiero de Citicorp, permitieron SFI se convertirá en uno de los mayores contribuyentes tanto en el campo de los sistemas complejos como el del modelado basado en agentes. SFI también desarrolló uno de los primeros modelos basados en agentes kits de herramientas diseñados para investigadores, Swarm (Minar et al., 1996). Enjambre y kits de herramientas similares han permitido que el uso de modelos basados en agentes crezca más rápidamente, simplificando enormemente El proceso de creación de ABM al proporcionar al investigador bibliotecas preconstruidas con muchas de las herramientas estándar necesarias para construir simulaciones ABM. Holanda también fue influenciada desde el principio por un grupo de sus compañeros en la Universidad de Michigan: Burks, Axelrod, Cohen y Hamilton. Todos estos investigadores (que juntos llamaron ellos mismos, el grupo BACH) serían influyentes en el campo de los sistemas complejos, y algunos incluso incursionaron en el modelado basado en agentes. Axelrod creó el torneo de prisioneros Estrategias de dilema (Axelrod, 1984) que mostraron estrategias simples (como el conocida estrategia de Tit-for-Tat) podría funcionar bien en los juegos sociales siempre que los agentes empleando las estrategias interactuó con otros agentes varias veces. Cohen desarrolló el Modelo de Organizaciones de Basura (Cohen et al., 1972), que describió las organizaciones como “anarquía organizada” en la que las decisiones se toman por interacciones entre cuatro independientes flujos: problemas, soluciones, participantes y oportunidades de elección. Alrededor de esto mismo período de tiempo, Holland comenzó a investigar una generalización del algoritmo genético, El sistema clasificador. Basado en el principio de una jerarquía predeterminada, el sistema clasificador evolucionaría reglas o “clasificadores” que traducirían entradas en salidas para satisfacer un objetivo. El sistema clasificador contenía una población de reglas simples que funcionaban juntas para modelar fenómenos complejos Esto es similar a la forma en que el ABM contiene una población de agentes simples que trabajan juntos para modelar un fenómeno complejo. Por otra parte, el clasificador El sistema fue un primer intento de crear agentes verdaderamente adaptativos, ya que contenía un algoritmo para que los agentes desarrollen estrategias arbitrariamente complejas. En los años siguientes, Holland trabajó con dos estudiantes de posgrado, Melanie Mitchell. y Stephanie Forrest. Juntos, comenzaron a explorar el uso del algoritmo genético en diversos escenarios relacionados con la vida artificial (Mitchell y Forrest, 1994). Mitchell demostró (1998) que los algoritmos genéticos podrían encontrar mejores soluciones para los autómatas celulares clásicos problemas. Luego realizó una investigación básica y escribió un libro de texto introductorio sobre complejos sistemas (2009) que describieron la relación entre complejidad y computación, evolución e inteligencia artificial. Casi al mismo tiempo, la serie de modelos ECHO fue desarrollado (Holanda, 1993), que fue un primer intento de construir modelos basados en agentes donde los agentes no tenían objetivos explícitos. En cambio, los agentes hicieron uso de recursos en el ambiente y los usó para mantenerse con vida. Los agentes se vieron obligados a encontrar formas de ganar más recursos a través del comercio, el conflicto o la cosecha, y para encontrar formas de defenderse. Sin embargo, nada de esto se codificó explícitamente en el modelo; en cambio, el sistema solo se codificó para que los agentes sin recursos suficientes murieran, un principio conocido como Función de aptitud implícita. A pesar de que Holanda nunca implementó ECHO, describió muchos de los mecanismos básicos en uso en los ABM de hoy. Si quieres ver una implementación de ECHO, hay una versión en la sección de Biología de NetLogo Biblioteca de modelos. ECHO influyó en el trabajo inicial en el modelado de la vida artificial y todavía se usa como un nivel alto Descripción del proceso evolutivo. Muchas de las ideas de Holanda sobre ECHO los modelos se resumieron en la serie de conferencias Ulam de 1995 de Holanda en el Instituto Santa Fe, que fue publicado como Hidden Order (1995). Hidden Order es uno de los primeros libros en Esbozar los principios básicos de ABM y presentarlos como una adaptación adaptativa fundamental a compleja. sistemas. Estas ideas se amplían y revisan en el libro de Holanda de 1998, Emergence. Forrest continuaría expandiéndose sobre estas ideas y creando sistemas inmunes artificiales (AIS; Hofmeyr y Forrest, 2000). AIS crea poblaciones de agentes dentro de una computadora cuya única tarea es determinar si la actividad dentro de la computadora es normal; si no es, los agentes deben aislar y detener la actividad. Este proceso es muy similar a cómo el el sistema inmune del cuerpo humano funciona, y los AIS son como tales ABM del sistema inmune humano sistema colocado en un entorno informático. El trabajo de Echoes of Holland se puede ver en todo ABM no solo a través de su influencia en modeladores individuales y su trabajo de campo, pero también en los muchos primeros principios que él desarrollado. Su noción de que hay muchos tipos diferentes de adaptación, desde neuronal hasta evolutiva a lo económico, tener una estructura común ha influido mucho en el modelado basado en agentes. Además, el interés de Holanda en el cómputo paralelo de la búsqueda basada en la población Las técnicas para el sistema clasificador para el modelado neuronal siguen siendo centrales en el agente modelando hoy.
J.3 Seymour Papert, Logo y la tortuga
A fines de la década de 1960, Seymour Papert fue nombrado codirector de Inteligencia Artificial del MIT Laboratorio junto con su colega Marvin Minsky. Papert había llegado al MIT después terminando su doctorado en matemáticas en Cambridge y pasó varios años estudiando el pensamiento matemático de los niños con Piaget en el Instituto Jean Piaget en Ginebra, Suiza. Poco después de su llegada al MIT, comenzó a colaborar con científicos de Bolt Beranek y Newman, que tenía un laboratorio de investigación en Cambridge. Juntos, Papert, Feurzeig, Bobrow y Solomon (ver Feurzeig et al, 1969) crearon un lenguaje de programación, Logo, diseñado para ser utilizado por niños. Logo heredó gran parte de su forma y sintaxis del lenguaje Lisp, que se usó prominentemente en el trabajo de Inteligencia Artificial. 1 Papert creía que dar acceso a los niños a la programación les permitiría convertirse en computacionales pensadores y darles acceso a ideas poderosas como la depuración y la recursividad (Papert, 1980). Llamó a este enfoque educativo construccionismo. Después de trabajar con Logo para un año, Papert inventó la “tortuga”, un objeto que estaba controlado por el lenguaje Logo. Algunas tortugas tempranas eran mecánicas (Walter, 1950) y estaban atadas a la computadora, pero pronto La tortuga se volvió virtual. Las tortugas tenían propiedades como la ubicación en la pantalla, un “encabezado” (dirección) que estaban mirando y una pluma que llevaban. Cada tortuga obedeció un logotipo central comandos, como “avanzar”, “girar a la izquierda”, etc. Al emitir comandos a la tortuga, los niños pudieron dibujar figuras geométricas clásicas, así como repetitivas y recursivas cifras que eran bastante complejas pero que se programaban fácilmente en el medio computacional. Posteriormente, el logotipo se introdujo en las escuelas, con la participación de millones de niños en todo el mundo. en actividades de Logo Construccionista (Harel & Papert, 1990; Papert, 1987). Mucho de El éxito del logotipo se atribuyó a la tortuga. Papert describió a la tortuga como un “cuerpo sintonizado” objeto (1980): un usuario podría proyectarse en la tortuga y, para descubrir qué comandos que se deben dar, los usuarios podrían imaginar lo que harían con sus cuerpos para lograr el efecto deseado. Entonces, para dibujar un cuadrado, el usuario avanzaría, giraría a la derecha, avanzar la misma cantidad, y así sucesivamente. En miles de aulas Logo, niños “jugaría tortuga” y aprendería tanto sobre figuras geométricas como sobre cómo programar de esta manera. La tortuga Logo puede haber sido el primer agente computacional en el sentido que pensamos de agentes en modelos basados en agentes hoy. Al igual que los agentes de NetLogo, la tortuga Logo tiene una ubicación y dirección, y su poder se basa en que los usuarios puedan proyectarse en él, que es imaginar ser una tortuga NetLogo tomó gran parte de su sintaxis de Logo y la expandió La idea de una sola tortuga para miles de tortugas. Las tortugas NetLogo suelen “dibujar” con sus cuerpos en lugar de con bolígrafos, y es la configuración de sus cuerpos lo que crea un Visualización de NetLogo (Wilensky, 2001). NetLogo también tomó prestado el eslogan “umbral bajo, techo alto”de Logo, lo que significa que debería ser lo suficientemente simple para que los principiantes sean capaz de trabajar con él de inmediato y, sin embargo, lo suficientemente potente como para que los expertos realicen sus Investigue con él (Tisue y Wilensky, 2004). Además, NetLogo se basó en la sintaxis del logotipo hacer que la lectura sea lo más cercana posible al inglés. La influencia de Papert y Logo puede verse no solo en NetLogo, sino también en la forma que muchas plataformas de modelado basadas en agentes conceptualizan a los agentes como entidades con sus propias propiedades y acciones. La mayoría de las primeras plataformas de modelado basadas en agentes, como Swarm (Minar et al., 1996) y Repast (Collier, 2001), consideraron dada la necesidad de visualizar agentes en una pantalla 2D, de la misma manera que la tortuga Logo se proyectó en una pantalla 2D.
J.4 Programación Orientada a Objetos y el Modelo de Actor
La concepción original de “función” dentro de un lenguaje de programación era un procedimiento simple eso tomaría un solo número y generaría un solo número o, en el mejor de los casos, tomaría como ingrese una matriz de números y genere una matriz de números. No fue hasta la invención del lenguaje Lisp por John McCarthy en 1958 en el MIT de que esta noción de función era expandido. McCarthy (1960) se basó en el cálculo lambda de la Iglesia Alonzo (1932) para crear un lenguaje de programación donde las funciones podrían tomar como entrada otras funciones y pasar volver como salida una nueva función. Este nuevo desarrollo trata las funciones como objetos de primera clase dentro del lenguaje de programación Lisp y los datos numéricos y matriciales renombrados como formas restringidas de la entrada y salida funcional completa que permite Lisp. Esto vastamente expandió el poder computacional de las funciones ya que ahora no solo podían responder a entradas numéricas y variables, pero también entradas funcionales. Aunque Lisp era un poderoso lenguaje de programación, aún mantenía esas funciones y los datos estaban separados. Esta es una estrategia razonable cuando las funciones son muy simples, como suma y resta, y cuando los datos son muy simples, como enteros y flotantes números de puntos Sin embargo, a medida que avanzaban las técnicas de ingeniería de software, se hizo evidente era necesario un poder de gestión de datos y funcional más complicado. Por ejemplo, ¿Cómo se describe un operador de “suma” que funciona en un conjunto universal de objetos? que van desde enteros hasta registros de direcciones y bases de datos completas? Para resolver este problema, varios A los investigadores se les ocurrió la idea de vincular las funciones a los datos que manipularon. Ole-Johan Dahl y Kristen Nygaard en Noruega se dieron cuenta al diseñar simulaciones de barcos marítimos que la forma más fácil de describir un barco, incluidos todos los atributos y comportamientos que podría tener, era colocar el barco en una clase de barcos similares (Holmevik, 1994). Para facilitar este proceso, Dahl y Nygaard crearon la programación Simula lenguaje, el primer lenguaje de programación que combina datos y funciones en un objeto único o “clase”. Sin embargo, no se utilizó el término “programación orientada a objetos” hasta el desarrollo de Smalltalk por Alan Kay y sus colegas (Kay, 1993). Simula y Smalltalk fueron los primeros idiomas que permitieron la encapsulación de objetos, una forma de enlazar múltiples unidades funcionales y elementos de datos en un todo cohesivo. La programación orientada a objetos también condujo a una nueva forma de pensar sobre el modelado. Si podemos encapsular objetos y métodos juntos, luego podemos crear clases que representen diferentes objetos en nuestro universo. Por ejemplo, en el modelo de las hormigas discutido en el capítulo 1, podemos crear una clase que represente el objeto hormiga. Puede representar tanto lo que la hormiga puede hacer en el mundo (moverse, comer, soltar feromonas, etc.) y lo que sabe la hormiga (dónde se dirige, si ha encontrado comida, etc.). No hasta la creación de lenguajes orientados a objetos. podrían muchas de las propiedades de los modelos basados en agentes ser fácilmente instanciadas en construcciones computacionales. Aunque Smalltalk y Simula eran elegantes y muy expresivos en su capacidad de enviar mensajes de un objeto a otro, Carl Hewitt, investigador del MIT, pensó que eran demasiado complejo Hewitt quería crear un modelo computacional donde la central computacional la construcción era un mensaje que pasaba y, además, quería enfatizar la concurrencia computación sobre computación en serie. Desarrolló así el modelo de actor, que era colocado en pie formal por Bishop y Steiger (Hewitt et al., 1973). El era grandemente influenciado a lo largo de este desarrollo por Papert y el modelo de cómputo de la pequeña persona (Hewitt & Baker, 1977), así como el trabajo de Kay sobre programación orientada a objetos (1993), pero Hewitt propuso una filosofía de diseño simplificada en la que los objetos computacionales serían conocidos como “actores”. " Los actores tienen un conjunto muy limitado de cosas que pueden hacer, pero a pesar de esto son capaces de actuar Cálculos complejos. Los actores pueden enviar y recibir mensajes, crear otros actores y tienen comportamientos que les permiten manipular mensajes. Cada actor tiene un correo dirección, y los actores solo pueden enviar mensajes a otros actores cuya dirección postal ya tengo. La única manera de que un actor sepa la dirección de correo de otro actor es mediante que se les envíe en un mensaje. Por lo tanto, todas las interacciones son locales; no hay estado global de conocimiento de todas las direcciones postales. Además, dado que los actores pueden aprender nuevos correos aborda además de olvidar las antiguas, la topología de las interacciones en el mundo de los actores es dinámico, a diferencia de uno basado en la distancia física o algún otro atributo estático de el mundo. Además, los actores pueden secuenciarse de manera que cada uno realice una pequeña parte de un cálculo general, que permite al programador componer múltiples actores en uno actor. Por último, los actores son inherentemente concurrentes, capaces de calcular resultados en paralelo de forma independiente el uno del otro. Con el tiempo, el concepto de actores se integró en la programación orientada a objetos (OO), y muchos de los aspectos de los actores todavía están presentes en lenguajes como C ++, Objective-C y Cacao además de ABM. Varios aspectos de los actores influyeron mucho en el desarrollo de ABM incluso independiente de la programación OO. Por ejemplo, OO carece de énfasis en cómputo concurrente pero ese fue un elemento clave de los actores. Aunque casi todos ABM los idiomas son necesariamente en serie (dado que las computadoras asequibles actuales son todas en serie), muchos de ellos todavía intentan simular computación concurrente. Además, incluso cuando el idioma no admite concurrencia, los creadores de modelos a menudo diseñan sus modelos para operar Al mismo tiempo, ya sea mediante el entrelazado de acciones o mediante una actualización asincrónica.Desde el mundo real, ya sean partículas rebotando, ovejas y lobos moviéndose en una pradera, o los votantes que deciden cómo votar, opera en paralelo, tanto ABM como actores han enfatizado la computación paralela. Otra característica presente en Actors que se comparte con ABM es la noción de interacciones locales. Los actores solo pueden comunicarse con actores que ya conocen; no hay global directorio de direcciones de correo. Nuevamente, esto hace eco del “mundo real”, ya que puede ser difícil encuentre una dirección para un nombre aleatorio: a menudo tiene que comunicarse con personas que ya conoce sepa ponerse en contacto con personas que no conoce. Después de todo, es raro que un solo El agente en el mundo real tiene la capacidad de acceder a cualquier recurso que desee; en cambio, a menudo tiene una lista de recursos a los que tiene acceso, y luego debe decidir cómo acceder a esos recursos. ABM también se basa en interacciones locales, ya que son los mecanismos por los cuales lo real El mundo típicamente funciona. Además de tener una topología local de interacción, la topología de actores también es dinámica: es decir, los actores pueden aprender nuevas direcciones y olvidarse de las antiguas, al igual que los agentes que se mueven un paisaje a menudo interactúa con diferentes agentes en diferentes pasos de tiempo. No solo esto conservar la memoria, ya que los agentes y actores no tienen que recordar a todos los que tienen alguna vez se reunieron, pero también les permite cambiar y adaptarse a entornos fluctuantes. Muchas de las propiedades que poseen los agentes también son propiedades de los actores. Por ejemplo, Se describe que los agentes tienen comportamientos, y también los actores. Los agentes se describen como pasadores mensajes a otros agentes y esta idea ha influido en muchas plataformas ABM para adoptar esta misma metáfora Muchas de las construcciones centrales de OOP y el lenguaje de actores tienen mucho influenciado o migrado directamente a las principales plataformas ABM.
J.5 Paralelismo de datos
A mediados de la década de 1980, Danny Hillis completó su tesis doctoral en el MIT sobre arquitectura de una computadora paralela que él llamó una “máquina de conexión.”A diferencia del clásico von Neumann arquitectura de la mayoría de las otras computadoras en ese momento, la máquina de conexión (o CM) no manejar todos sus cálculos a través de una sola unidad central de procesamiento (Hillis, 1989). En lugar hizo uso de miles de procesadores de bajo costo y baja capacidad conectados entre sí en un “hipercubo” para que cada procesador pueda comunicarse con cualquier otro procesador con solo un pocos procesadores intermedios en el medio. El CM empleó una arquitectura que se llamaba, “Instrucción única, datos múltiples”, generalmente abreviado SIMD, que daría lo mismo instrucción a cada uno de los miles de procesadores, cada uno de los cuales contenía elementos de datos. Hillis fundó una empresa, Thinking Machines, para fabricar y vender la computadora. Al principio, la máquina se percibía como difícil de programar, ya que el procesamiento en serie estándar los idiomas no funcionaban eficientemente con la máquina. A finales de la década de 1980, especial Se crearon lenguajes paralelos como StarLisp (una versión paralela de Lisp) y C-Star para programar el CM. El CM-2 tenía 65.536 procesadores, y para usarlos eficientemente Era importante no tener algunos procesadores esperando a otros. La forma más fácil de hacer. se trataba de utilizar métodos “paralelos a datos”, en los que los datos se distribuían de manera uniforme procesadores, cada uno de los cuales ejecutó simultáneamente la misma instrucción en sus datos. (En Por el contrario, la mayoría de las máquinas paralelas en ese momento usaban métodos de control paralelo por los cuales eran múltiples hilos de ejecución paralelos.) Los científicos de Thinking Machines idearon Algunas aplicaciones nuevas y potentes para el CM. Uno de los primeros fue una mejora forma de recuperación de documentos (Stanfill y Kahle, 1986). Supongamos que uno tuviera un ejemplo de documento que era relevante y quería encontrar otros. Podrías codificar el documento conocido como una consulta de términos de búsqueda. Cada procesador se cargó con un documento de la base de datos, y cada uno respondió a la consulta puntuando la proximidad de su documento en término-espacio para el documento de consulta. Entonces se podrían recuperar los documentos con la puntuación más alta. y repetir. Otra aplicación desarrollada para aprovechar la arquitectura paralela. giraba en torno al reconocimiento de objetos. En la aplicación de reconocimiento de objetos, una colección de los objetos bidimensionales de una gran base de datos de objetos conocidos se colocaron en una tabla y La tarea de la máquina era producir una imagen etiquetada con cada objeto reconocido. UNA El científico de Thinking Machine, Lew Tucker, ideó un algoritmo que generó hipótesis que se cargaron en cada procesador y luego, de manera similar a la aplicación de recuperación de documentos, cada hipótesis se calificó comparándola con la matriz 2D de píxeles capturados por la cámara (Tucker, Feynman y Fritzsche, 1988). El enfoque paralelo de datos era adecuado para calcular rápidamente los autómatas celulares, como descrito anteriormente. El físico Richard Feynman, junto con Stephen Wolfram, desarrollaron Una aplicación de flujo de fluido basada en un autómata celular (Tucker y Robertson, 1988). Feynman había demostrado que casi todos los flujos de fluidos podían modelarse independientemente del tipo de partícula, usando una red hexagonal. Entonces Feynman y Wolfram eligieron esférica partículas y calculó el cambio en cada hexágono de la red en estilo paralelo de datos. El resultado fue una hermosa visualización de fluidos turbulentos. Ambos ejemplos anteriores han sido tomados por modeladores basados en agentes y pueden ejecutarse en hardware en serie utilizando métodos ABM. El paradigma paralelo de datos SIMD en última instancia no tuvo éxito en el mercado de hardware y fue eclipsado por más rápido, más sofisticado, pero menos paralelos, procesadores. Pero, sus métodos de dar la misma instrucción a múltiples procesadores influyeron los lenguajes ABM, que también daban instrucciones únicas a múltiples agentes distribuidos En esencia, el modelo paralelo de datos fue adoptado por ABM, pero principalmente promulgada en máquinas en serie. De hecho, uno de los primeros lenguajes de ABM, StarLogo, se escribió en StarLisp y originalmente implementado en una máquina de conexión.
J.6 Gráficos por computadora, sistemas de partículas y boids
Los gráficos por computadora han avanzado notablemente con el resto de la informática con el tiempo. A medida que las computadoras se han vuelto cada vez más rápidas, las pantallas de las computadoras han mejorado para renderizar visualizaciones cada vez más realistas e imágenes basadas en computadora. Desde gráficos por computadora tiene como objetivo tomar una imagen dentro de la cabeza del autor y traducirla en una imagen representación, tiene mucha similitud con el modelado por computadora. En modelado por computadora El objetivo es tomar un modelo conceptual y traducirlo en un artefacto computacional. Así, No sorprende que los gráficos por computadora hayan influido en el modelado basado en agentes. Al principio de los gráficos por computadora, muchos desarrolladores usaron una gran combinación de planos superficies para representar objetos. Esto resultó ser una buena primera aproximación: después de todo, la vasta La mayoría de nuestro rango visual generalmente está ocupado por superficies, como paredes y techos, El cielo o un camino delante de nosotros. Sin embargo, las superficies no son una representación adecuada por menos fenómenos claramente definidos como el humo, las estrellas o la luz (Blinn, 1982). Para modelar estos fenómenos, los desarrolladores de gráficos por computadora recurrieron a representaciones puntuales. Los puntos podrían se les dará tamaño, posición y velocidad y se creará una representación más natural para estos fenómenos que las superficies. Además, los puntos eran más fáciles de trabajar (y sus reglas de movimiento, cuando se describe de manera procesal) eran más fáciles de tratar que las superficies. los El enfoque basado en puntos para gráficos por computadora se conoció como sistemas de partículas (Reeves, 1983). Tales sistemas tienen mucho en común con el modelado basado en agentes porque puede simular fenómenos emergentes visualmente salientes, como el humo que sale de un chimenea, modelando las partículas individuales de humo y escribiendo reglas simples de cómo interactúan para visualizar el patrón global resultante. Modelos basados en agentes igualmente usa reglas simples de interacción basada en agentes y luego te permite observar el global fenómeno. Inspirado por el uso de sistemas de partículas y el trabajo antes mencionado sobre tortugas y logotipo lenguaje de programación, Craig Reynolds fue más allá del concepto de partículas como pequeñas, objetos confusos para usar sistemas de partículas para describir el movimiento de las aves que acuden (Reynolds, 1987), que describimos en el capítulo 7. Reynolds llamó a estos flocados genéricos las criaturas “boids” y usaron tres reglas simples para describir su comportamiento: Los Boids de separación no deben acercarse demasiado a ningún otro objeto en el entorno. Los Boids de alineación deben dirigirse hacia el mismo rumbo que sus compañeros locales Los Boids de Cohesión deberían moverse hacia el centro de su grupo local A pesar de la simplicidad de estas tres reglas, Reynolds pudo lograr un flocado realista simulaciones De hecho, la interacción local de estas reglas no solo permitió a Reynolds desarrollar un modelo que parecía reunirse a nivel global, pero que también representaba a cada uno de los más pequeños partes para parecer rebaños. Por lo tanto, si se introdujera un obstáculo en el camino del rebaño, podría dividirse fácilmente en dos bandadas, moverse alrededor del objeto y luego volver a ensamblarse El otro lado del objeto. Todo esto se logró sin ninguna codificación especial para manejar la evitación de objetos. El modelo “Boids” fue en muchos sentidos un modelo basado en agentes, aunque este término no Sin embargo, entrar en uso. Los boids individuales realizaron un seguimiento de sus propios atributos pero contribuyeron a un fenómeno global que surgió de sus propias interacciones locales. El hecho de que el los rebaños pudieron adaptarse a situaciones novedosas (por ejemplo, la introducción de un objeto extraño) sin interrumpir el patrón emergente es un ejemplo clásico de cómo un ABM bien escrito es generalizable más allá de las condiciones para las cuales fue concebido originalmente. Desde ABM no requieren una descripción global del sistema, no necesitan anticipar todo lo posible eventos que pueden suceder. Poco después de la presentación de Reynolds del modelo Boids en SIGGRAPH ’87, Chris Langton organizó el primer taller sobre Vida Artificial, donde el modelo de Reynolds también fue presentado. La vida artificial se ha convertido en una comunidad que abarca muchos de estos diferentes métodos de computación en los que se utilizan computadoras para emular humanos y sistemas biológicos La Vida Artificial, por lo tanto, comenzó a usar sistemas como los Boids de Reynolds, Los autómatas celulares de von Neumann y los algoritmos genéticos de Holland. Aunque artificial La vida es distinta del modelado basado en agentes en que su objetivo es construir sistemas que reflejen objetos realistas dentro de una computadora, muchos de los métodos y técnicas de ABM y La vida artificial es bastante similar.
J.7 Conclusión
ABM ha recorrido un largo camino desde los días de Thomas Schelling (1971) lanzando monedas Un tablero de ajedrez. Estas seis viñetas han intentado arrojar algo de luz sobre las raíces de este campo. Sin embargo, el campo aún es bastante joven. Existe una considerable investigación que tiene aún no se ha llevado a cabo sobre cómo implementar mejor ABM, qué herramientas son más útiles para soportar ABM, y dónde aplicar mejor ABM. Está claro que ABM se ha convertido en un principal metodología y conjunto de herramientas para comprender sistemas complejos de las ciencias naturales, ciencias sociales e ingeniería. Esperamos que en este libro, hayamos proporcionado una cantidad suficiente Introducción para que pueda utilizar ABM de manera efectiva. También esperamos que los modelos basados en agentes convertirse en una alfabetización central para ciudadanos y científicos para que todos puedan usar modelos para razonar, y para que los medios públicos puedan usar modelos para apoyar argumentos e informar políticas.