Rev (
We use the
term Agent-Based Computational Modelling to make reference to all the research
who involve modelling and simulation of agents using computers. I have to
confess that when I say that I am working in Economics with Agent Based
Modelling I don’t agree at all with myself about what I am saying. Why?.
Because although the semantic of the phrase is well known among people who work
with this method, it is not a clear title for people who make Economic. (not
all the economist are working with Agent Based Modelling and Simulations in
economics).
Economists
have been constructing Agent Based Modelling since the very beginning of the
economics science. Probably we must describe differences between agents that
some economists still use and agents that we can construct based on information
technology tools if we want to emphasize differences.
As
economist we have to find out description of the economic world in order to
obtain solutions for resource distribution problems. To do the job, (If you
ever play any computer game like SimCity or Age of Empire you probably have in
your mind how much complex could be this task) we need as many tools as we can
afford and here is where Artificial Economies (AE) come to help us.
If you had
have the opportunity of face economist who are doing research now sure you
should be surprised about how they construct really fantastic abstract models
for describing what is going on with the economy. I do not know a lot about
economic but I am quite sure that we can obtain explanations for almost any kind
of phenomena that you can imagine from the economic world and with all the
possible level of complexities. You can agree or not with that’s explanation,
you can think that they are incomplete but I am quite sure that any individual
phenomena has already been explained.
Economist
have been modelling the reality trapped in a trade off between what they want
explain and how is possible of been explained. Usually economist had been
complementing their models with natural language. So the idea is simple, according
to how smart you are (or how much you master the tools to construct model) you
can construct a model of the reality inside the “framework” of your model and
what you can’t include in your model just complement with assumption and
natural language. I consider that ACE increase our capacity to include facts in
our model, of course without been so smart. In other words ACE give the chance
of putting more weights toward what we want explain instead of how we explain
it.
During my
short career in ACE I have hear many great advantages that computer bring in
scene. Tesfatsion (2000) emphasize the role of ACE as
a methodology that blend concepts from evolutionary economics, cognitive
science and computer science to understand why global regularities emerge from
local interaction in decentralized economies, to work normatively as
computational laboratories within which alternative socioeconomics structures
can be studied and tested with regard to the effect on individual and social
welfare comparing results against analytical, econometrics and human-subject
laboratories studies and the formulation and testing of conceptually integrated
socioeconomics theories compatible with theory and data from different fields
ranging from social to natural sciences.
At this
point I have to introduce why my intuition claim that economist should work
with ACE. The key word is Integration.
I think that this is the most important characteristic that ACE proposes to
improve how we describe social systems. Let me explain what I mean by
integration.
When we
work with social sciences is easy to find in the literature or in our thoughts
many explanations for the same phenomena, and possible you will find that those
explanations are consistent, and sure should think that those explanations can
live together in the same environment. So why not integrate everything and
check the possible dynamic that you can obtain from this kind of multiple
mechanism interaction? May be you could obtain a totally different result if
you integrate your explanations at the same time. Why is difficult to put all
this explanations to work together in order to explain the same phenomena with
more consistency?
Models
created to explain some phenomena outside of ACE generally follow this
sequence. First you have a clear definition about the problem that you want to
explain, next you compose a kind of first complicated model using a language
“A”, which have formal and very consistence characteristic, that produce an
explanation of the problem at the same time you are constructing some fuzzy
explanation about how is possible that the agents inside your model done what
you are saying that your agent will do, namely you are describing a mechanism,
but in some different language “B” which use to be some flexible language. You
repeat this two steps many times until what you want to explain is consistent
with a simple version of your model, which is described in the language “A” and
the mechanism that you describe using the language “B”. Generally in Economics
we use mathematics as language “A” and natural language as language “B”.
Working
with ACE becomes a very iterative process between two levels of abstraction.
The level when we are dealing with what we want to explain, (the more abstract
level) and the level of mechanisms which deal with how our explanations works
all together but this iterative process is developed using the same language, algorithms. So we have the express the
mechanism in the same language that we describe our model. Basically we show
how is it possible that our solution reach some result without any magic
behaviour for any of our agents in our simulation.
As every
ACE model have the specification of the mechanism, (In the paper by Marengo, Dosi, M they refer this like the difference between
Normative and Positive Learning, or what usually is called constructive
explanation) in the same consistent language level[1] we
always have the chance of blend one model with other in order to observe if
some new regularities can emerge from the combination of ideas. And more
important we have the possibility to integrate.
But
integration not just mean take different model from economics and put to work
all together. Integration also means to have a common environment where we can
approach the explanation about reality combining different sciences like
biology, phyisics, sociology, politics, demography
etc…
Let me
explain with a very simple game why is important to combine explanations,
Parron
introduce two games, A and B. In the game A the player win with probability
0.5+ε and with probability 0.5-ε he lost. Let’s assume that win
means that the loser has to give to the winner 1 dollar. Of course player 1 has
good chances in this game.
In other hand game B, is defined little bite more
complex. We can describe like this, if the present capital is multiple of 3,
then the chance of winning for player is 1/10-ε, if the capital is not
multiple of 3 the chance of winning is 3/4-ε.
Let’s assume that we are the bank and we offer playing
this games. If a player play each of this games independently the bank will
lost. The paradox is that if we offer game A or game B randomly the Bank win.
This
section is an attempt of describing some point that are relevant in any ACE
project.
(i) Describe what are
the relevant institutions that you are facing in your problem.
(ii) Construct or search for relevant
analytical models able to describe your result in simple environment. This
analytical result would be useful as benchmark of your simulations.
(iii) Construct ACE model which explain the
emergence of these institution using as benchmark the analytical model. These
are your building blocks.
(iv) Calibrate your ACE model with data in
order to test the explain the reality.
(v) Integrate your building block in order to
observe what is the new emergent pattern.
(vi) Check different institutions. And describe
how results change.
Tesfatsion,
L.(2000). Introduction to the CE Special Issue on Agent Based Computational
Economics. Journal of Economics Dynamics
and Control.
[1] I am not thinking here about the problem that we could have for different syntaxes in programming language. I am thinking in the abstract idea of an algorithm.