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 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.
 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.