Simulaciones en Economía [Tercera parte] Modelización Basada en Agentes (Agent-Based Modelling) Xavier Vilà Dept. d'Economia i d'Història Econòmica UAB 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Contenido 1.- El Análisis Económico. 2.- La economía como Sistema Complejo 3- Modelos Computacionales Basados en Agentes 4.- Toolkits vs. programación 5.- Netlogo y ejemplos 5.1.- El modelo de Segregación de Schelling 5.2.- El modelo de Hotelling 6.- Otros usos, otros recursos 7.- El problema de la adecuación: Algoritmos Genéticos y Juegos Evolutivos 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico P.I.B Paro Inflación Tipo de Interés Interrelación 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Consumo etc... 1.- El Análisis Económico Macroeconomía: Estudia el comportamiento y la relación entre les variables agregadas Microeconomía: Estudia el comportamiento de los agentes económicos y el funcionamiento de los mercados y otras instituciones 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico El “método” del Análisis Económico Se basa en la construcción de modelos simplificadores de la realidad (matemáticos) para analizarlos de forma útil y obtener resultados No consiste ni en la observación ni en la descripción 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico El “método” del Análisis Económico “Teorema” Hipótesis 1 Hipótesis 2 ... Hipótesis n (Sobre los agentes y las instituciones) 4-Febrero-2010 Resultado (Demostración lógica formal) Simulaciones en (micro)Economía - UAB (Sobre la economía) 1.- El Análisis Económico El resultado no es cierto en la realidad 4-Febrero-2010 Al menos una de las hipótesis no es correcta Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico El resultado no es cierto en la realidad 4-Febrero-2010 Al menos una de las hipótesis no es correcta Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico El resultado no es cierto en la realidad 4-Febrero-2010 Al menos una de las hipótesis no es correcta Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico ... o la economía no se comporta lógicamente ... 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico El “método” del Análisis Económico “Ecuaciones” Ley 1 Ley 2 ... Ley n (Sobre las variables) 4-Febrero-2010 Ecuación 1 Ecuación 2 Resultado (Equilibrio) Ecuación n (Resolución formal) Simulaciones en (micro)Economía - UAB (Sobre la economía) 1.- El Análisis Económico - Al menos una de las “leyes” no es correcta El resultado no es cierto en la realidad 4-Febrero-2010 - Faltan “leyes” - Alguna “ley” ha Cambiado (!!) Simulaciones en (micro)Economía - UAB 1.- El Análisis Económico Limitaciones: Hipòtesis simplificadoras → “Tratabilidad” ● Omisión de factores relevantes ● Cambios estructurales ● Recursividad ● 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 2 L a E c o n o m í a c o m oS i s t e m a C o m p l e j o Gran número de componentes elementales Pautas de comportamiento auto-organizadas, sin diseño Amplificación de pequeñas fluctuaciones Fases de transición – Equilibrio Comportamiento difícil de predecir o explicar analíticamente Emergencia de pautas complejas a nivel “macro” a partir de comportamientos simples a nivel “micro” 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 2 L a E c o n o m í a c o m oS i s t e m a C o m p l e j o “Propiedades Emergentes” Cuando ponemos harina, huevos y azucar mezclados en un horno obtenemos algo más que una masa recalentada Cuando se mezclan compradores, vendedores y mercancías en un mercado obtenemos algo más que un grupo de agentes cargando mercancías de un lado al otro 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 2 L a E c o n o m í a c o m oS i s t e m a C o m p l e j o 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 3 Modelos Computacionales Basados en Agentes Computación versus Simulación Computación: Buscar las soluciones a un problema utilizando técnicas computacionales y/o algoritmos para el cálculo de estas soluciones Caja negra Importa el resultado final El interés está en la eficiencia, convergencia, que la solución sea correcta Simulación: Estudia el comportamiento de un sistema utilizando técnicas computacionales que simulan el comportamiento de sus componentes Caja de cristal Todo el proceso es importante El interés está en la complejidad del sistema, lo adecuado de les simulaciones, las pautas regulares que aparecen (emergen) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Computación u(x,y)=xy y=f(x) qd(p)=qo(p) (x*,p*) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Simulación [Modelos Basados en Agentes] (x*,p*) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Simulaciones La primera (?) simulación se realizó en ... 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Simulacions de Irving Fischer (1893) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB S i m u l a c i o n s d e I r v i n g F i s h e r( 1 9 2 5 ) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 4 Toolkits vs Programación Swarm – General-Purpose Simulation System (Objective C - Java, Open) AnyLogic - Multi-Paradigm Simulation Software (Java - Eclipse, Proprietary) Ascape - Agent Landscape (Java, Free Open Source) Repast - Recursive Porous Agent Simulation Toolkit (Java,Python,C#; Open) NetLogo - General purpose complexity modeling and simulation environment (Java - Multi-Platform, Freeware) ECJ - Evolutionary Computation Library (Java, Open Source) MASON - Multi-Agent Simulator On Networks (Java - ECJ, Open Source) (Más generales: AgentBuilder, AgentSheets, ...) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Swarm Swarm is a platform for agent-based models (ABMs) that includes: A conceptual framework for designing, describing, and conducting experiments on ABMs; Software implementing that framework and providing many handy tools; and A community of users and developers that share ideas, software, and experience. Swarm Development Group 4-Febrero-2010 Simulaciones en (micro)Economía - UAB AnyLogic AnyLogic is the first and only dynamic simulation tool that brings together System Dynamics, Process-centric (AKA Discrete Event), and Agent Based approaches within one modeling language and one model development environment XJ-Technologies, St.Petersburg, Russia 4-Febrero-2010 Simulaciones en (micro)Economía - UAB AnyLogic 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Ascape Ascape is an innovative tool for developing and exploring general-purpose agent-based models A high-level framework supports complex model design, while end-user tools make it possible for non-programmers to explore many aspects of model dynamics. Ascape is written entirely in Java Design and Development: Miles Parker (Metascape, LLC) Development: Mario Inchiosa, Josh Miller (NuTech Solutions, Inc.) Initiators: Joshua Epstein and Robert Axtell (The Brookings Institution) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Ascape 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Repast Repast Simphony is a free and open source agent-based modeling toolkit that offers users a rich variety of features Developers Mark Altaweel, Dariusz Blachowicz, Nick Collier. Tom Howe. Bob Najlis, Michael North, Jonathan Ozik, Miles Parker, Eric Tatara, Jerry R. Vos Repast Organization for Architecture and Development (ROAD) Initiators Sallach, Collier, Howe, North (University of Chicago) -> (Argonne National Laboratory) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Repast 4-Febrero-2010 Simulaciones en (micro)Economía - UAB NetLogo NetLogo is a cross-platform multi-agent programmable modeling environment, descendant of StarLogo Developed Uri Wilensky (and Team) at the Center for Connected Learning (Northwestern Univeristy) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB NetLogo 4-Febrero-2010 Simulaciones en (micro)Economía - UAB ECJ ECJ is a research EC system written in Java. It was designed to be highly flexible, with nearly all classes (and all of their settings) dynamically determined at runtime by a user-provided parameter file ECJ is developed at George Mason University's ECLab Evolutionary Computation Laboratory. By Sean Luke, Liviu Panait, Gabriel Balan, Sean Paus, Zbigniew Skolicki, Elena Popovici, Joseph Harrison, Jeff Bassett, Robert Hubley, and Alexander Chircop 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Mason MASON is a fast discrete-event multiagent simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, and also to provide more than enough functionality for many lightweight simulation needs. MASON contains both a model library and an optional suite of visualization tools in 2D and 3D. MASON is a joint effort between George Mason University's ECLab Evolutionary Computation Laboratory and the GMU Center for Social Complexity, and was designed by Sean Luke, Gabriel Catalin Balan, and Liviu Panait, with help from Claudio Cioffi-Revilla, Sean Paus, Keith Sullivan, Daniel Kuebrich, Joey Harrison, and Ankur Desai. 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo NetLogo es un entorno de programación para modelizar y simular fenómenos naturales y sociales Diseñado para simular sistemas complejos que evolucionan en el tiempo con miles de agentes actuando de forma concurrente Fácil de aprender y de utilizar Biblioteca considerable de modelos escritos que pueden ser utilizados y modificados Lenguaje de programación natural (scripting) Interficie de usuario simple y potente 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo Interficie gráfica Lenguaje de programación 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo La Interficie gráfica contiene tres tipos de objetos: Controles (controls) (Azul) Paràmetros (settings) (Verde) Informadores (views) (Beige) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo CONTROLES (Azul) Controlan la ejecución del programa Botones (Buttons) Centro de comandos (Command Center) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo Parámetres (Settings) (VERDE) Permiten modificar los parámetres del model Barras (Sliders) Interruptores (Switches) Menús (Choosers) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo Informadors (BEIGE) Dan información sobre el funcionamiento y los resultados del modelo Monitores Gráficos (Plots) Texto El “mundo” 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo El mundo: La ventana principal de NetLogo. Velocidad turtle/patch inspector (right-click) Tamaño 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo “Lenguage de programación” Agents Procedures Variables 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo Hay 3 tipos de agents en NetLogo: Patches Turtles Observer 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Patches No se mueven, pero son tan activos como los otros agentes Forman una cuadrícula en 2D conectada por los extremos (torus) Tienen coordenadas enteras (pxcor, pycor) min­pxcor < pxcor < max­pxcor min­pycor < pycor < max­pycor 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5 NetLogo 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Turtles Se mueven sobre los patches, no necesariamente en su centro Tienen coordenades decimales (xcor,ycor)y orientación (heading) para moverse Pueden tener diferentes formas (shape) y colores (color) 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Turtles 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Observer Puede crear nuevos agentes y controles Puede pasar órdenes a los patches y turtles Puede modificar los parámetros y los valores de las variables Puede dar información sobre el estado de la simulación Es el intérprete entre el investigador y los agentes 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Observer 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Procedures Para dar instrucciones a los agentes (a través del observador) disponemos de, primitives: instrucciones que forman parte de NetLogo Ex: forward,clear,if,turtles­with... procedures: instrucciones que crea el usuario a partir de las primitives Ex: to setup clear­all create­turtles 10 end 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Variables Las variables sirven para guardar valores numéricos o alfabéticos. Hay de 3 tipos Variables globales Variables propias de turtles y propias patches Variables locales 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 5.1 Ejemplo:Segregation En un mundo cuadriculado hay dos tipos de agentes: rojos y verdes Cada agente está dispuesto a convivir con vecinos del otro tipo, pero quiere que un cierto porcentaje sea de su mismo tipo Si un agente, en su ubicación, no tiene suficientes vecinos similares, buscará otra ubicación que esté libre ... ... y así sucesivamente hasta que todos esten satisfechos. Ex: Si se quiere un 30% de similares ... No Satisfecho 4-Febrero-2010 Satisfecho Simulaciones en (micro)Economía - UAB 5.2 Ejemplo: Hotelling Spatial Competition Game Suppose that there are two competing shops selling the same indistinguishable product at the same price, and that they must be located along the length of a street running north and south. Each shop owner wants to locate his shop such that he maximizes his own market share by drawing the largest number of customers. Customers are spread equally along the street. Suppose, finally, that each customer will always choose the nearest shop 1 4-Febrero-2010 2 Simulaciones en (micro)Economía - UAB What will be the location of the shops ? 1 4-Febrero-2010 2 Simulaciones en (micro)Economía - UAB First Guess . . . 1 4-Febrero-2010 2 Simulaciones en (micro)Economía - UAB But, what would you do if you were Shop 1 1 4-Febrero-2010 2 Simulaciones en (micro)Economía - UAB But, what would you do if you were Shop 1 1 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 2 You get more costumers than before ! 1 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 2 What will be the “best reply” by Shop 2 ? 1 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 2 What will be the “best reply” by Shop 2 ? 2 4-Febrero-2010 1 Simulaciones en (micro)Economía - UAB You get more costumers than before ! 2 4-Febrero-2010 1 Simulaciones en (micro)Economía - UAB If this dynamics continues, the unique stable point is 1 4-Febrero-2010 2 Simulaciones en (micro)Economía - UAB The two shops locate at the middle of the street ! 1 4-Febrero-2010 2 Simulaciones en (micro)Economía - UAB This is an example of “spatial clustering” of business There are real examples of this Car Dealers Oriental rug stores Computer (electronics) districts Michigan Avenue But this also may apply to other characteristics of businesses: Quality Sweetness Even to politics ! 4-Febrero-2010 Simulaciones en (micro)Economía - UAB This model can also explain the common complaint that, for instance, the presidential candidates of the two American political parties are "practically the same". Once each candidate is confirmed during primaries, they are usually established within their own partisan camps. The remaining undecided electorate resides in the middle of the political spectrum, and there is a tendency for the candidates to "rush for the middle" in order to appeal to this crucial bloc. Like the paradigmatic example, the assumption is that people will choose the least distant option, (in this case, the distance is ideological) and that the most votes can be had by being directly in the center. 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Primaries 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Nominees 4-Febrero-2010 Simulaciones en (micro)Economía - UAB Final campaign 4-Febrero-2010 Simulaciones en (micro)Economía - UAB What would happen if . . . 4-Febrero-2010 Simulaciones en (micro)Economía - UAB What would happen if . . . This is know as the Median Voter Theory, very popular in modern Political Science 4-Febrero-2010 Simulaciones en (micro)Economía - UAB 6 Otros usos, otros recursos Simulaciones y herramientas “reales” - JASA: Java Auction Simulator API (Steve Phelps, U of Liverpool) - jES: Java Enterprise Simulator (Pietro Terna, University of Torino) - TNG: A C++ Framework for Studying the Formation and Evolution of Trade Networks (Leigh Testfasion, Iowa State University) - AMES Market Package: Agent-Based Modeling of Electricity Systems (Iowa State University) - Santa Fe Artificial Stock Market (Blake LeBaron, Santa Fe Institute Paul E. Johnson, University of Kansas) y ... “Business Games”, Logistics Simulators, 4-Febrero-2010 Simulaciones en (micro)Economía - UAB