Simulaciones en Economía

Anuncio
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
Descargar