introduction to lsd - labsimdev.org · introduction simulation models lsd simulation...

127
Introduction Simulation Models LSD Simulation programs References Introduction to Lsd Marco Valente 1 Tommaso Ciarli 2 Andr ´ e Lorentz 2 1 University of L’Aquila & LEM, S’Anna School, Pisa [email protected] 2 Max Planck Institute of Economics, Germany [email protected] [email protected] SIME Training Course BETA, Strasbourg University May 10-14 2010

Upload: tranhanh

Post on 03-Aug-2018

265 views

Category:

Documents


0 download

TRANSCRIPT

Introduction Simulation Models LSD Simulation programs References

Introduction to Lsd

Marco Valente1 Tommaso Ciarli2 Andre Lorentz2

1University of L’Aquila & LEM, S’Anna School, [email protected]

2Max Planck Institute of Economics, [email protected]@econ.mg.de

SIME Training CourseBETA, Strasbourg University

May 10-14 2010

Introduction Simulation Models LSD Simulation programs References

Outline

1 IntroductionA brief motivation for simulations in economicsACE: agent based systemsBroad methodological issuesHands on

2 Simulation ModelsDefinition of simulation modelsModel structureModel configurationSimulating in LSD

3 LSD Simulation programs

4 References

Introduction Simulation Models LSD Simulation programs References

Outline

Objective: learning how to use simulations implemented in Lsdto make research in Economics

PlanIntroduction: goals and plan of the courseDefinitions: a normal form of a simulation model.Introduction to Lsd: equations, structures andconfigurations of models.Tutorials: implementation of increasingly complexexample models.Methodology: How to develop and assess scientificknowledge by means of simulation models.

Introduction Simulation Models LSD Simulation programs References

Outline

Objective: learning how to use simulations implemented in Lsdto make research in EconomicsPlan

Introduction: goals and plan of the course

Definitions: a normal form of a simulation model.Introduction to Lsd: equations, structures andconfigurations of models.Tutorials: implementation of increasingly complexexample models.Methodology: How to develop and assess scientificknowledge by means of simulation models.

Introduction Simulation Models LSD Simulation programs References

Outline

Objective: learning how to use simulations implemented in Lsdto make research in EconomicsPlan

Introduction: goals and plan of the courseDefinitions: a normal form of a simulation model.

Introduction to Lsd: equations, structures andconfigurations of models.Tutorials: implementation of increasingly complexexample models.Methodology: How to develop and assess scientificknowledge by means of simulation models.

Introduction Simulation Models LSD Simulation programs References

Outline

Objective: learning how to use simulations implemented in Lsdto make research in EconomicsPlan

Introduction: goals and plan of the courseDefinitions: a normal form of a simulation model.Introduction to Lsd: equations, structures andconfigurations of models.

Tutorials: implementation of increasingly complexexample models.Methodology: How to develop and assess scientificknowledge by means of simulation models.

Introduction Simulation Models LSD Simulation programs References

Outline

Objective: learning how to use simulations implemented in Lsdto make research in EconomicsPlan

Introduction: goals and plan of the courseDefinitions: a normal form of a simulation model.Introduction to Lsd: equations, structures andconfigurations of models.Tutorials: implementation of increasingly complexexample models.

Methodology: How to develop and assess scientificknowledge by means of simulation models.

Introduction Simulation Models LSD Simulation programs References

Outline

Objective: learning how to use simulations implemented in Lsdto make research in EconomicsPlan

Introduction: goals and plan of the courseDefinitions: a normal form of a simulation model.Introduction to Lsd: equations, structures andconfigurations of models.Tutorials: implementation of increasingly complexexample models.Methodology: How to develop and assess scientificknowledge by means of simulation models.

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Why simulations

Interaction of objects (agents) as a complex problem 7→ theform of a sandpile, the weather tomorrow, avoiding trafficcues (‘intelligent holidays’)

Economics as a social scienceSocial interaction as a complex problem with individualbehaviour (less straightforward then physical behaviour)

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Why simulations

Interaction of objects (agents) as a complex problem 7→ theform of a sandpile, the weather tomorrow, avoiding trafficcues (‘intelligent holidays’)Economics as a social science

Social interaction as a complex problem with individualbehaviour (less straightforward then physical behaviour)

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Why simulations

Interaction of objects (agents) as a complex problem 7→ theform of a sandpile, the weather tomorrow, avoiding trafficcues (‘intelligent holidays’)Economics as a social scienceSocial interaction as a complex problem with individualbehaviour (less straightforward then physical behaviour)

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Why simulations: some examples

Minority games: going out tonight? [try to imagine you donot have a mobile phone] [Arthur, 1994]

Urban segregation [Schelling, 1971]The desk at which you are sitting or where you would sit ata convention/cinema/etc... [Schelling, 1978]Buy a good in a supermarket, locate a firm, decideproduction, fix a price

ACEAgent–Based Computational Economics: “the computationalstudy of economic processes modelled as dynamic systems ofinteracting agents” (L. Tesfatsion)

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Why simulations: some examples

Minority games: going out tonight? [try to imagine you donot have a mobile phone] [Arthur, 1994]Urban segregation [Schelling, 1971]

The desk at which you are sitting or where you would sit ata convention/cinema/etc... [Schelling, 1978]Buy a good in a supermarket, locate a firm, decideproduction, fix a price

ACEAgent–Based Computational Economics: “the computationalstudy of economic processes modelled as dynamic systems ofinteracting agents” (L. Tesfatsion)

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Why simulations: some examples

Minority games: going out tonight? [try to imagine you donot have a mobile phone] [Arthur, 1994]Urban segregation [Schelling, 1971]The desk at which you are sitting or where you would sit ata convention/cinema/etc... [Schelling, 1978]

Buy a good in a supermarket, locate a firm, decideproduction, fix a price

ACEAgent–Based Computational Economics: “the computationalstudy of economic processes modelled as dynamic systems ofinteracting agents” (L. Tesfatsion)

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Why simulations: some examples

Minority games: going out tonight? [try to imagine you donot have a mobile phone] [Arthur, 1994]Urban segregation [Schelling, 1971]The desk at which you are sitting or where you would sit ata convention/cinema/etc... [Schelling, 1978]Buy a good in a supermarket, locate a firm, decideproduction, fix a price

ACEAgent–Based Computational Economics: “the computationalstudy of economic processes modelled as dynamic systems ofinteracting agents” (L. Tesfatsion)

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Why simulations: some examples

Minority games: going out tonight? [try to imagine you donot have a mobile phone] [Arthur, 1994]Urban segregation [Schelling, 1971]The desk at which you are sitting or where you would sit ata convention/cinema/etc... [Schelling, 1978]Buy a good in a supermarket, locate a firm, decideproduction, fix a price

ACEAgent–Based Computational Economics: “the computationalstudy of economic processes modelled as dynamic systems ofinteracting agents” (L. Tesfatsion)

Introduction Simulation Models LSD Simulation programs References

A brief motivation for simulations in economics

Do we need simulations? It depends

von Neuman and Morgenstern, Games and EconomicBehavior“It is to be expected that mathematical discoveries of a staturecomparable to that of the calculus will be needed in order toproduce decisive progress in [game theory]... it is unlikely that amere repetition of the tricks which served us so well in physicswill do for social phenomena.”

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

A broad definition of ACE (because broad is the approach)

Population of individual (economic) ‘agents’Each agent has internal states and rules of behavior;implementation as an objectAgents are autonomous or semi–autonomousAgents interact with one another and possibly with anenvironment (local/social interactions)Agents are purposive (self–interested, satisficing, utilitymaximizing locally)

Aggregate structure emerges from agent interactionsSubsequent generations of agents emerge from theinteractions of their ancestors (selection 7→ evolution)

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

A broad definition of ACE (because broad is the approach)

Population of individual (economic) ‘agents’Each agent has internal states and rules of behavior;implementation as an objectAgents are autonomous or semi–autonomousAgents interact with one another and possibly with anenvironment (local/social interactions)Agents are purposive (self–interested, satisficing, utilitymaximizing locally)Aggregate structure emerges from agent interactionsSubsequent generations of agents emerge from theinteractions of their ancestors (selection 7→ evolution)

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

Main features

Heterogeneous agents: no representative agent, focus ondistribution of behavior instead of average behavior

Bounded rationality: impossible to give agents full rationality andinformation in non–trivial environments (Simon)‘Local’ interactions: heterogeneous and abstract topology (e.g.,graph, social network, space), not only through indirect pricingDynamic systems: paths to asymptotic equilibria andnon–equilibrium processes (systems can be completely unstable— business cycles, sequences of over–reactions)Each realization a sufficiency theorem

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

Main features

Heterogeneous agents: no representative agent, focus ondistribution of behavior instead of average behaviorBounded rationality: impossible to give agents full rationality andinformation in non–trivial environments (Simon)

‘Local’ interactions: heterogeneous and abstract topology (e.g.,graph, social network, space), not only through indirect pricingDynamic systems: paths to asymptotic equilibria andnon–equilibrium processes (systems can be completely unstable— business cycles, sequences of over–reactions)Each realization a sufficiency theorem

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

Main features

Heterogeneous agents: no representative agent, focus ondistribution of behavior instead of average behaviorBounded rationality: impossible to give agents full rationality andinformation in non–trivial environments (Simon)‘Local’ interactions: heterogeneous and abstract topology (e.g.,graph, social network, space), not only through indirect pricing

Dynamic systems: paths to asymptotic equilibria andnon–equilibrium processes (systems can be completely unstable— business cycles, sequences of over–reactions)Each realization a sufficiency theorem

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

Main features

Heterogeneous agents: no representative agent, focus ondistribution of behavior instead of average behaviorBounded rationality: impossible to give agents full rationality andinformation in non–trivial environments (Simon)‘Local’ interactions: heterogeneous and abstract topology (e.g.,graph, social network, space), not only through indirect pricingDynamic systems: paths to asymptotic equilibria andnon–equilibrium processes (systems can be completely unstable— business cycles, sequences of over–reactions)

Each realization a sufficiency theorem

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

Main features

Heterogeneous agents: no representative agent, focus ondistribution of behavior instead of average behaviorBounded rationality: impossible to give agents full rationality andinformation in non–trivial environments (Simon)‘Local’ interactions: heterogeneous and abstract topology (e.g.,graph, social network, space), not only through indirect pricingDynamic systems: paths to asymptotic equilibria andnon–equilibrium processes (systems can be completely unstable— business cycles, sequences of over–reactions)Each realization a sufficiency theorem

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

Some applications in economics and business

Strategy and organisation: Carley and Pietrula, Lomi andLarsen

Modularity: [Ethiraj et al., 2007, Frenken et al., 1999,Kauffman et al., 2000, Marengo and Dosi, 2005,Ciarli et al., 2008]

Growth [Nelson and Winter, 1982], Lorentz, Fagiolo andDosi [Llerena and Lorentz, 2004, Ciarli, 2004,Ciarli and Valente, 2005]Firms location [David et al., 1998]Firms and technological change [Dawid, 2005,Teitelbaum and Dowlatabadi, 2000, Yildizoglu, 2002]Markets [Kirman and Vriend, 2000]

Introduction Simulation Models LSD Simulation programs References

ACE: agent based systems

Some applications in economics and business

Industrial cycles [Windrum and Birchenhall, 2005]Labour market: Tesfatsion, [Fagiolo et al., 2004], Richiardiand LeombruniFinancial markets (a huge number):[Delli Gatti et al., 2004], Delli gatti and Stiglitz, Cont,econophisycsMacro instability: [Bak et al., 1993, Dosi et al., 2006,Ciarli and Valente, 2007], Weisbuch and BattistonMacro: Howitt, DuffyFirms coalition and network formation: Cowan and Jonard,Page, Huberman, Axtell...........

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Methodological assumptions

1 Research models must not replicate the reality,necessarily.

2 Research models must explain reality.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Methodological assumptions

1 Research models must not replicate the reality,necessarily.

2 Research models must explain reality.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Methodological assumptions

A few comments are required:1 We talk about research simulation models. Other

applications may differ.

2 The pivotal concept is what we mean by reality. Economicevents are ill-defined, lacking direct measures, and neverreplicate through history.

3 Explaining needs a formal definition, too. We will provideone, showing that it is both intuitive and rigourous.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Methodological assumptions

A few comments are required:1 We talk about research simulation models. Other

applications may differ.2 The pivotal concept is what we mean by reality. Economic

events are ill-defined, lacking direct measures, and neverreplicate through history.

3 Explaining needs a formal definition, too. We will provideone, showing that it is both intuitive and rigourous.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Methodological assumptions

A few comments are required:1 We talk about research simulation models. Other

applications may differ.2 The pivotal concept is what we mean by reality. Economic

events are ill-defined, lacking direct measures, and neverreplicate through history.

3 Explaining needs a formal definition, too. We will provideone, showing that it is both intuitive and rigourous.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Methodological assumptions

We will sustain that the scientific use of simulation modelsconsist in two logical steps:

Find explanations of interesting simulated events, as ifanalysing the record of a virtual history

Evaluate whether the same explanations, mutatismutandis, apply to the real world cases, too.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Methodological assumptions

We will sustain that the scientific use of simulation modelsconsist in two logical steps:

Find explanations of interesting simulated events, as ifanalysing the record of a virtual historyEvaluate whether the same explanations, mutatismutandis, apply to the real world cases, too.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Simulation models vs programs

Simulation models and simulation programs are distinctentities.

Simulation models as abstract, logical constructs, much like atheorem or a mathematical system of equations. They aredefined by logical/mathematical operations located in time.

A simulation model may be implemented with a variety of tools:mental experiments, pencil and paper, Excel spreadsheet, etc.Complex models require computer programs, but, in thesecases, the most challenging task is to develop the softwaretools necessary to make sense of massive amounts of data.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Simulation models vs programs

Simulation models and simulation programs are distinctentities.

Simulation models as abstract, logical constructs, much like atheorem or a mathematical system of equations. They aredefined by logical/mathematical operations located in time.

A simulation model may be implemented with a variety of tools:mental experiments, pencil and paper, Excel spreadsheet, etc.Complex models require computer programs, but, in thesecases, the most challenging task is to develop the softwaretools necessary to make sense of massive amounts of data.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Simulation models vs programs

Simulation models and simulation programs are distinctentities.

Simulation models as abstract, logical constructs, much like atheorem or a mathematical system of equations. They aredefined by logical/mathematical operations located in time.

A simulation model may be implemented with a variety of tools:mental experiments, pencil and paper, Excel spreadsheet, etc.Complex models require computer programs, but, in thesecases, the most challenging task is to develop the softwaretools necessary to make sense of massive amounts of data.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Simulation programme

Using a standard programming language the most difficult taskis not the coding of the model. Rather it is the coding ofancillary tools necessary to declare the model’s elements,assign initial values, export results, etc.

Using LSD, conversely, the modeller focuses only on the model,and the system automatically generates professional tools tocontrol and access any aspect of the model.

Introduction Simulation Models LSD Simulation programs References

Broad methodological issues

Simulation programme

Using a standard programming language the most difficult taskis not the coding of the model. Rather it is the coding ofancillary tools necessary to declare the model’s elements,assign initial values, export results, etc.

Using LSD, conversely, the modeller focuses only on the model,and the system automatically generates professional tools tocontrol and access any aspect of the model.

Introduction Simulation Models LSD Simulation programs References

Hands on

Topics of the course

During the course we will approach the following topics:

Design: decide what the model should be like to contributeto a research project.

Implementation: turning an abstract idea into a workingsimulation program.Interpretation: extracting knowledge from simulationmodels.

Introduction Simulation Models LSD Simulation programs References

Hands on

Topics of the course

During the course we will approach the following topics:

Design: decide what the model should be like to contributeto a research project.Implementation: turning an abstract idea into a workingsimulation program.

Interpretation: extracting knowledge from simulationmodels.

Introduction Simulation Models LSD Simulation programs References

Hands on

Topics of the course

During the course we will approach the following topics:

Design: decide what the model should be like to contributeto a research project.Implementation: turning an abstract idea into a workingsimulation program.Interpretation: extracting knowledge from simulationmodels.

Introduction Simulation Models LSD Simulation programs References

Hands on

Topics of the course

In the rest of this introductory talk we will address the followingissues:

1 Define a normal form for simulation models.

2 Describe the LSD overall structure.3 Indicate the steps required to use a simulation model.

Introduction Simulation Models LSD Simulation programs References

Hands on

Topics of the course

In the rest of this introductory talk we will address the followingissues:

1 Define a normal form for simulation models.2 Describe the LSD overall structure.

3 Indicate the steps required to use a simulation model.

Introduction Simulation Models LSD Simulation programs References

Hands on

Topics of the course

In the rest of this introductory talk we will address the followingissues:

1 Define a normal form for simulation models.2 Describe the LSD overall structure.3 Indicate the steps required to use a simulation model.

Introduction Simulation Models LSD Simulation programs References

Definition of simulation models

Definition of simulation models

A simulation model is defined independently from the mediumimplementing it. We need a definition of simulation model suchthat we can perfectly identify the results produced by runningthe model.

Simulation model: generic definition of how Xt is computed:Xt = f (Xt−k ,Yt , α)Simulation run: sequence(s) of values across simulation timesteps. {X1,X2, ...,Xt , ...,XT}

Introduction Simulation Models LSD Simulation programs References

Definition of simulation models

Definition of simulation models

A simulation model is defined independently from the mediumimplementing it. We need a definition of simulation model suchthat we can perfectly identify the results produced by runningthe model.Simulation model: generic definition of how Xt is computed:Xt = f (Xt−k ,Yt , α)

Simulation run: sequence(s) of values across simulation timesteps. {X1,X2, ...,Xt , ...,XT}

Introduction Simulation Models LSD Simulation programs References

Definition of simulation models

Definition of simulation models

A simulation model is defined independently from the mediumimplementing it. We need a definition of simulation model suchthat we can perfectly identify the results produced by runningthe model.Simulation model: generic definition of how Xt is computed:Xt = f (Xt−k ,Yt , α)Simulation run: sequence(s) of values across simulation timesteps. {X1,X2, ...,Xt , ...,XT}

Introduction Simulation Models LSD Simulation programs References

Definition of simulation models

Time driven models

Notice that we choose to refer to time driven simulation models,as opposed to event driven models.The two styles of modelling are equivalent, since one can beturned into the other.

Introduction Simulation Models LSD Simulation programs References

Definition of simulation models

Definition properties

The definition of simulation model we provide is meant tosatisfy two requirements:

1 Univocal. The definition must be unambiguous, makingimpossible to include implementations of the same modelbut generating different results.

2 User friendly. It must be as close as possible to (one of)the way(s) people usually refer to models in naturallanguage.

Introduction Simulation Models LSD Simulation programs References

Definition of simulation models

Definition properties

The definition of simulation model we provide is meant tosatisfy two requirements:

1 Univocal. The definition must be unambiguous, makingimpossible to include implementations of the same modelbut generating different results.

2 User friendly. It must be as close as possible to (one of)the way(s) people usually refer to models in naturallanguage.

Introduction Simulation Models LSD Simulation programs References

Model structure

Definition of simulation models

In the following we list the elements composing a simulationmodel, providing definitions such that no ambiguity is left aboutthe simulation results produced with the model.

Introduction Simulation Models LSD Simulation programs References

Model structure

Variables

Variables are labels, or symbols, that at each time step areassociated to one and only one numerical value.The numerical value of a variable is computed executing anequation, defined as any computational elaboration of othervalues.Xt = fX (...)

Introduction Simulation Models LSD Simulation programs References

Model structure

Parameters

Parameters are labels associated to numerical values.Parameters do not change value of their own accord.

α

Introduction Simulation Models LSD Simulation programs References

Model structure

Functions

Functions are, like variables, numerical values computed asresult of an equation. However, the values generated byfunctions are not associated to time steps, but are computed onrequest during the execution of other equations.

X = f (...)

Introduction Simulation Models LSD Simulation programs References

Model structure

Objects

In almost any case a model is designed to contain manycopies, or instances, of variables, parameters and functions.They share the same label and properties (i.e. equations) butare distinguished and independent from one another.In mathematical format we normally use vectors, using thesame label with different indexes:

~X = {X 1,X 2, ...,X i , ...,X n}

Introduction Simulation Models LSD Simulation programs References

Model structure

Objects

However, in “hierarchical” models, vector-basedrepresentations are extremely annoying. For example, considera variable supposed to refer to a firm (among many), operatingin a market (among many) which is part of a country (amongmany). Such a variable would need three indexes to beaccessed, for the firm, market and country it refers to.

Moreover, troubles emerge when we deal with dynamic models.Adding a new firm requires to extend all the vectors referring tothis entity.

Programming languages have developed a more powerfulconcept, that includes vectors, but it is far more general:objects.

Introduction Simulation Models LSD Simulation programs References

Model structure

Objects

Objects are containers, storing together different types ofelements that are, somehow, forming an identifiable unit.Programming using objects is far simpler (and less dangerous)than using vectors. Moreover, objects are particularly useful forsimulations, since the unit representing an object can easily beassociated to the real-world entity that the model refers to.

Introduction Simulation Models LSD Simulation programs References

Model structure

Definition of simulation models

Object-based representations are equivalent to a matrix-basedrepresentation.

Object-basedObOne1 ObOne2 ... ObOneN

~X X 1 X 2 ... X N

Vect

or-

base

d

~Y Y 1 Y 2 ... Y N

~α α1 α2 ... αN

~ObTwo ObTwo1 ObTwo2 ... ObTwoN

Object-based representations are far more flexible than vectors,easily expressing, for example, the equivalent of nestedmatrices and matrices with different number of rows in eachcolumn.

Introduction Simulation Models LSD Simulation programs References

Model structure

Definition of simulation models

Object-based representations are equivalent to a matrix-basedrepresentation.

Object-basedObOne1 ObOne2 ... ObOneN

~X X 1 X 2 ... X N

Vect

or-

base

d

~Y Y 1 Y 2 ... Y N

~α α1 α2 ... αN

~ObTwo ObTwo1 ObTwo2 ... ObTwoN

Object-based representations are far more flexible than vectors,easily expressing, for example, the equivalent of nestedmatrices and matrices with different number of rows in eachcolumn.

Introduction Simulation Models LSD Simulation programs References

Model structure

Model Structure

In summary, we can call the structure of a model the set of thefollowing elements:

1 Variables. Symbols associated to a single value at eachtime step, computed according to a specified equation.

2 Parameters. Symbols associated to values not changingof their own accord.

3 Functions. Symbols providing values computed by anequation on request by other equations (independentlyfrom the time).

4 Objects. Units containing a set of other elements.

Introduction Simulation Models LSD Simulation programs References

Model configuration

Model Configuration

The structure of a model is an abstract description of themodel, defining how the values of a generic time step t can becomputed on the base of the values inherited from time stept − 1.

The structure of a model is still an ambiguous description, sincethe same structure will, in general, produce different resultsdepending on the numerical values assigned at t = 0. Let’s seewhich numerical values for each type of element can affect theresults.

Introduction Simulation Models LSD Simulation programs References

Model configuration

Model Configuration

The structure of a model is an abstract description of themodel, defining how the values of a generic time step t can becomputed on the base of the values inherited from time stept − 1.

The structure of a model is still an ambiguous description, sincethe same structure will, in general, produce different resultsdepending on the numerical values assigned at t = 0. Let’s seewhich numerical values for each type of element can affect theresults.

Introduction Simulation Models LSD Simulation programs References

Model configuration

Model Configuration

The first numerical value is the number of objects, since italso determines the number of other elements.

Notice that the assignment of objects’ numbers may be quiteelaborated, with different number of entities for different“branches” of the model.

Introduction Simulation Models LSD Simulation programs References

Model configuration

Model Configuration

Obviously, every parameter must be assigned an initial value.But also, possibly, some variables and functions may requireone or more values.

Consider the equationXt = Yt−1 + αAt time t = 1, the very first step of the simulation, the equationbecomes:X1 = Y0 + αY0 cannot be produced by the model, since 1 is the first timestep. Consequently, the modeller that must assign to Y alagged (or past) value for Y as part of the initialization of themodel.

Introduction Simulation Models LSD Simulation programs References

Model configuration

Model Configuration

Obviously, every parameter must be assigned an initial value.But also, possibly, some variables and functions may requireone or more values.Consider the equationXt = Yt−1 + α

At time t = 1, the very first step of the simulation, the equationbecomes:X1 = Y0 + αY0 cannot be produced by the model, since 1 is the first timestep. Consequently, the modeller that must assign to Y alagged (or past) value for Y as part of the initialization of themodel.

Introduction Simulation Models LSD Simulation programs References

Model configuration

Model Configuration

Obviously, every parameter must be assigned an initial value.But also, possibly, some variables and functions may requireone or more values.Consider the equationXt = Yt−1 + αAt time t = 1, the very first step of the simulation, the equationbecomes:X1 = Y0 + αY0 cannot be produced by the model, since 1 is the first timestep. Consequently, the modeller that must assign to Y alagged (or past) value for Y as part of the initialization of themodel.

Introduction Simulation Models LSD Simulation programs References

Model configuration

Model Configuration

An equation may also require more than one lag. Consider, forexample, the following equation:Xt = Yt−3 + αFor the first 3 time steps the model requires the values of Y−2,Y−1 and Y0, and therefore the user must assign three laggedvalues to Y in order to avoid ambiguities.

Functions also may require “lagged” values, though they do notrefer to previous time steps, but to previous calls, or executions,of the function’s equation.

Introduction Simulation Models LSD Simulation programs References

Model configuration

Model Configuration

An equation may also require more than one lag. Consider, forexample, the following equation:Xt = Yt−3 + αFor the first 3 time steps the model requires the values of Y−2,Y−1 and Y0, and therefore the user must assign three laggedvalues to Y in order to avoid ambiguities.

Functions also may require “lagged” values, though they do notrefer to previous time steps, but to previous calls, or executions,of the function’s equation.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Definition of simulation models

A simulation model is therefore perfectly defined once wedescribe in detail the following elements:

Equations: set of routines to compute values for eachvariable and function in the model

Configuration:Structure: list of variables, parameters, functions andobjectsInitialization: number of objects, values for parameters,lagged values for variables and functionsSim. settings: num. of time steps, num. of simulation runs,pseudo-random sequences, visualization and savingoptions.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Definition of simulation models

A simulation model is therefore perfectly defined once wedescribe in detail the following elements:

Equations: set of routines to compute values for eachvariable and function in the modelConfiguration:

Structure: list of variables, parameters, functions andobjects

Initialization: number of objects, values for parameters,lagged values for variables and functionsSim. settings: num. of time steps, num. of simulation runs,pseudo-random sequences, visualization and savingoptions.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Definition of simulation models

A simulation model is therefore perfectly defined once wedescribe in detail the following elements:

Equations: set of routines to compute values for eachvariable and function in the modelConfiguration:

Structure: list of variables, parameters, functions andobjectsInitialization: number of objects, values for parameters,lagged values for variables and functions

Sim. settings: num. of time steps, num. of simulation runs,pseudo-random sequences, visualization and savingoptions.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Definition of simulation models

A simulation model is therefore perfectly defined once wedescribe in detail the following elements:

Equations: set of routines to compute values for eachvariable and function in the modelConfiguration:

Structure: list of variables, parameters, functions andobjectsInitialization: number of objects, values for parameters,lagged values for variables and functionsSim. settings: num. of time steps, num. of simulation runs,pseudo-random sequences, visualization and savingoptions.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

LSD simulation models

LSD allows users to generate a simulation program definingonly the elements of a simulation model according to the formatproposed above.

Furthermore, LSD provides programs complete with interfaces,debugger, graphics etc. allowing the full analysis of the results.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Using models in practice

Though we will discuss the methodology of simulations forresearch at the end of the course, it is worth mentioningpractical suggestions that we will derive. That is, we brieflyreview what type of activities a researcher is required toperform.

These are somehow similar to that of a programmer, though theresearcher has a further requirement: understand how itsmodel works and present its content (model and result) toscrutiny.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Using models in practice

1 Purpose: decide what is phenomenon to explain (NODESCRIPTION!).

2 Design: define the list and nature of the elements part ofthe model.

3 Implement the structure: write the code to implement themodel in the chosen language.

4 Implement the configuration: assign initialization to thestructure.

5 Interpret/document: individuate the relevant resultsproduced by the model, and explain them convincingly.

6 Revise and extend: modify 1, 2, 3, 4 and 5, and expandthe model when satisfied.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Using models in practice

1 Purpose: decide what is phenomenon to explain (NODESCRIPTION!).

2 Design: define the list and nature of the elements part ofthe model.

3 Implement the structure: write the code to implement themodel in the chosen language.

4 Implement the configuration: assign initialization to thestructure.

5 Interpret/document: individuate the relevant resultsproduced by the model, and explain them convincingly.

6 Revise and extend: modify 1, 2, 3, 4 and 5, and expandthe model when satisfied.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Using models in practice

1 Purpose: decide what is phenomenon to explain (NODESCRIPTION!).

2 Design: define the list and nature of the elements part ofthe model.

3 Implement the structure: write the code to implement themodel in the chosen language.

4 Implement the configuration: assign initialization to thestructure.

5 Interpret/document: individuate the relevant resultsproduced by the model, and explain them convincingly.

6 Revise and extend: modify 1, 2, 3, 4 and 5, and expandthe model when satisfied.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Using models in practice

1 Purpose: decide what is phenomenon to explain (NODESCRIPTION!).

2 Design: define the list and nature of the elements part ofthe model.

3 Implement the structure: write the code to implement themodel in the chosen language.

4 Implement the configuration: assign initialization to thestructure.

5 Interpret/document: individuate the relevant resultsproduced by the model, and explain them convincingly.

6 Revise and extend: modify 1, 2, 3, 4 and 5, and expandthe model when satisfied.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Using models in practice

1 Purpose: decide what is phenomenon to explain (NODESCRIPTION!).

2 Design: define the list and nature of the elements part ofthe model.

3 Implement the structure: write the code to implement themodel in the chosen language.

4 Implement the configuration: assign initialization to thestructure.

5 Interpret/document: individuate the relevant resultsproduced by the model, and explain them convincingly.

6 Revise and extend: modify 1, 2, 3, 4 and 5, and expandthe model when satisfied.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Using models in practice

1 Purpose: decide what is phenomenon to explain (NODESCRIPTION!).

2 Design: define the list and nature of the elements part ofthe model.

3 Implement the structure: write the code to implement themodel in the chosen language.

4 Implement the configuration: assign initialization to thestructure.

5 Interpret/document: individuate the relevant resultsproduced by the model, and explain them convincingly.

6 Revise and extend: modify 1, 2, 3, 4 and 5, and expandthe model when satisfied.

Introduction Simulation Models LSD Simulation programs References

Simulating in LSD

Using models in practice

The success of a project depends crucially on the adoption of agradual approach. A model should initiallly implement a tinypart of the elements one eventually wants to place in themodel. Only when the implemented part is tested and itsbehaviour fully understood, then a new module may be added.

Writing in one shot the whole model, is a sure recipe of failure.Most likely, the model will be so full of bugs, that fixing them willbe impossible. Furthermore, even in the case that the bugs areremoved, the model behaviour will have no chance of beinginterpreted and understood.

Introduction Simulation Models LSD Simulation programs References

LSD goals

A simulation model, even though perfectly defined, is still a longway from being simulation program, as much stating a theoremis quite different from proving it.

A simulation program requires a long list of computationallycomplicated technical code. Such code does not concern themodel directly, but make possible for the model to run on thecomputer, and its results to be readable by humans.

Introduction Simulation Models LSD Simulation programs References

LSD goals

A simulation model, even though perfectly defined, is still a longway from being simulation program, as much stating a theoremis quite different from proving it.

A simulation program requires a long list of computationallycomplicated technical code. Such code does not concern themodel directly, but make possible for the model to run on thecomputer, and its results to be readable by humans.

Introduction Simulation Models LSD Simulation programs References

LSD goals

The technical code consists of any piece of code required toexecute a simulation and analyse its result, though not beingstrictly part of the model. For example, this code must ensurethat:

The simulation time step is correctly initialized andupdated.

The variables are computed at the correct moment withinthe time step.Users can supply the appropriate type of initialization.Results are collected and presented in suitable ways.Errors are caught before crashing the program, andadequate information is provided.Unexpected results can be reproduced, investigated andclarified....

Introduction Simulation Models LSD Simulation programs References

LSD goals

The technical code consists of any piece of code required toexecute a simulation and analyse its result, though not beingstrictly part of the model. For example, this code must ensurethat:

The simulation time step is correctly initialized andupdated.The variables are computed at the correct moment withinthe time step.

Users can supply the appropriate type of initialization.Results are collected and presented in suitable ways.Errors are caught before crashing the program, andadequate information is provided.Unexpected results can be reproduced, investigated andclarified....

Introduction Simulation Models LSD Simulation programs References

LSD goals

The technical code consists of any piece of code required toexecute a simulation and analyse its result, though not beingstrictly part of the model. For example, this code must ensurethat:

The simulation time step is correctly initialized andupdated.The variables are computed at the correct moment withinthe time step.Users can supply the appropriate type of initialization.

Results are collected and presented in suitable ways.Errors are caught before crashing the program, andadequate information is provided.Unexpected results can be reproduced, investigated andclarified....

Introduction Simulation Models LSD Simulation programs References

LSD goals

The technical code consists of any piece of code required toexecute a simulation and analyse its result, though not beingstrictly part of the model. For example, this code must ensurethat:

The simulation time step is correctly initialized andupdated.The variables are computed at the correct moment withinthe time step.Users can supply the appropriate type of initialization.Results are collected and presented in suitable ways.

Errors are caught before crashing the program, andadequate information is provided.Unexpected results can be reproduced, investigated andclarified....

Introduction Simulation Models LSD Simulation programs References

LSD goals

The technical code consists of any piece of code required toexecute a simulation and analyse its result, though not beingstrictly part of the model. For example, this code must ensurethat:

The simulation time step is correctly initialized andupdated.The variables are computed at the correct moment withinthe time step.Users can supply the appropriate type of initialization.Results are collected and presented in suitable ways.Errors are caught before crashing the program, andadequate information is provided.

Unexpected results can be reproduced, investigated andclarified....

Introduction Simulation Models LSD Simulation programs References

LSD goals

The technical code consists of any piece of code required toexecute a simulation and analyse its result, though not beingstrictly part of the model. For example, this code must ensurethat:

The simulation time step is correctly initialized andupdated.The variables are computed at the correct moment withinthe time step.Users can supply the appropriate type of initialization.Results are collected and presented in suitable ways.Errors are caught before crashing the program, andadequate information is provided.Unexpected results can be reproduced, investigated andclarified....

Introduction Simulation Models LSD Simulation programs References

LSD goals

LSD’s aims is to allow users to provide only a simulationmodel ’s configuration and equations. The system automaticallygenerates any technical code required for a professionalsimulation program.

LSD users define independently the different parts of themodel, and the system assembles them in a programgenerating fast and flexible simulation runs, or detailed errormessages.

Crucially, the elements in the model are considered asseparated modules, that the system assembles as required. Itis therefore extremely simple to develop, assess and revise amodel implemented with LSD.

Introduction Simulation Models LSD Simulation programs References

LSD goals

LSD’s aims is to allow users to provide only a simulationmodel ’s configuration and equations. The system automaticallygenerates any technical code required for a professionalsimulation program.

LSD users define independently the different parts of themodel, and the system assembles them in a programgenerating fast and flexible simulation runs, or detailed errormessages.

Crucially, the elements in the model are considered asseparated modules, that the system assembles as required. Itis therefore extremely simple to develop, assess and revise amodel implemented with LSD.

Introduction Simulation Models LSD Simulation programs References

LSD goals

LSD’s aims is to allow users to provide only a simulationmodel ’s configuration and equations. The system automaticallygenerates any technical code required for a professionalsimulation program.

LSD users define independently the different parts of themodel, and the system assembles them in a programgenerating fast and flexible simulation runs, or detailed errormessages.

Crucially, the elements in the model are considered asseparated modules, that the system assembles as required. Itis therefore extremely simple to develop, assess and revise amodel implemented with LSD.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

Coding a LSD models can be done only by writing the code forthe model’s equations.

The closest metaphor to a LSD model is

a system of discrete equations, one for each variable.

The equations of a LSD models are defined as independentchunks of code, with references to the model made only via thelabels of required elements.

At run time the Lsd Simulation Manager re-arranges theequations calling them as necessary to perform the necessarycomputation.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

Coding a LSD models can be done only by writing the code forthe model’s equations. The closest metaphor to a LSD model is

a system of discrete equations, one for each variable.

The equations of a LSD models are defined as independentchunks of code, with references to the model made only via thelabels of required elements.

At run time the Lsd Simulation Manager re-arranges theequations calling them as necessary to perform the necessarycomputation.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

Coding a LSD models can be done only by writing the code forthe model’s equations. The closest metaphor to a LSD model is

a system of discrete equations, one for each variable.

The equations of a LSD models are defined as independentchunks of code, with references to the model made only via thelabels of required elements.

At run time the Lsd Simulation Manager re-arranges theequations calling them as necessary to perform the necessarycomputation.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

Coding a LSD models can be done only by writing the code forthe model’s equations. The closest metaphor to a LSD model is

a system of discrete equations, one for each variable.

The equations of a LSD models are defined as independentchunks of code, with references to the model made only via thelabels of required elements.

At run time the Lsd Simulation Manager re-arranges theequations calling them as necessary to perform the necessarycomputation.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

LSD is endowed with an automatic scheduling. The modellerneeds not to consider when a particular equation is executedwithin a time step. The LSM automatically (and constantly)re-arranges the order as implied by the equations.For example, consider the following “model”:

Xt = FX (Yt)

Yt = FY (Xt−1)

The system interprets the equations so that Y must be updatedbefore X . Changing order of execution entails simply to changethe index for the lags within the equations’ code.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

In general a model contains many copies of each element, saymany Market’s may contain each many Firm’s etc. In asimulation run it must be ensured that each copy of a variablemakes use of the “correct” copies of the elements required in itsequations. As, for example, Qi = f (K i ,pj).

LSD is an object-based language, and therefore it is impossible(besides impractical) to use indexes. By default, LSD findsautomatically the “correct” copy of the elements to use in anequation, using a automatic tagging system to retrieverequired elements.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

In general a model contains many copies of each element, saymany Market’s may contain each many Firm’s etc. In asimulation run it must be ensured that each copy of a variablemakes use of the “correct” copies of the elements required in itsequations. As, for example, Qi = f (K i ,pj).

LSD is an object-based language, and therefore it is impossible(besides impractical) to use indexes. By default, LSD findsautomatically the “correct” copy of the elements to use in anequation, using a automatic tagging system to retrieverequired elements.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

Note that both features make completely effortless themodification of a model, the extension adding new elements,and the re-use of its parts.

In practice, a LSD model is made of individual modules (theequations) which are related only by the labels of the elementsrequired for the computation.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

Note that both features make completely effortless themodification of a model, the extension adding new elements,and the re-use of its parts.

In practice, a LSD model is made of individual modules (theequations) which are related only by the labels of the elementsrequired for the computation.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

The language for expressing the equations can be consideredas composed by multiple layers.

Lacking any specific indication the system makes use of theinternal scheduler and retriever. This system covers most of thecases and makes the code extremely simple and readable.

A second layer entails the use of specific LSD commandsoverruling the default behaviour to express frequently usedoperations. E.g. “pick at random one of the elements in thisset”.

Finally, LSD is built on standard C++ so that any command orexternal library compatible with GNU C++ can be used withinthe model.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

The language for expressing the equations can be consideredas composed by multiple layers.

Lacking any specific indication the system makes use of theinternal scheduler and retriever. This system covers most of thecases and makes the code extremely simple and readable.

A second layer entails the use of specific LSD commandsoverruling the default behaviour to express frequently usedoperations. E.g. “pick at random one of the elements in thisset”.

Finally, LSD is built on standard C++ so that any command orexternal library compatible with GNU C++ can be used withinthe model.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

The language for expressing the equations can be consideredas composed by multiple layers.

Lacking any specific indication the system makes use of theinternal scheduler and retriever. This system covers most of thecases and makes the code extremely simple and readable.

A second layer entails the use of specific LSD commandsoverruling the default behaviour to express frequently usedoperations. E.g. “pick at random one of the elements in thisset”.

Finally, LSD is built on standard C++ so that any command orexternal library compatible with GNU C++ can be used withinthe model.

Introduction Simulation Models LSD Simulation programs References

LSD’s equations major features

The language for expressing the equations can be consideredas composed by multiple layers.

Lacking any specific indication the system makes use of theinternal scheduler and retriever. This system covers most of thecases and makes the code extremely simple and readable.

A second layer entails the use of specific LSD commandsoverruling the default behaviour to express frequently usedoperations. E.g. “pick at random one of the elements in thisset”.

Finally, LSD is built on standard C++ so that any command orexternal library compatible with GNU C++ can be used withinthe model.

Introduction Simulation Models LSD Simulation programs References

LSD technical components

LSD is distributed with a companion program called Lsd ModelManager which performs the following tasks:

1 Organize the projects and manage the required files.

2 Assist in the writing of the equations.3 Manage the compilation process.4 Provide indications on grammar errors in the equations’

code.

Introduction Simulation Models LSD Simulation programs References

LSD technical components

LSD is distributed with a companion program called Lsd ModelManager which performs the following tasks:

1 Organize the projects and manage the required files.2 Assist in the writing of the equations.

3 Manage the compilation process.4 Provide indications on grammar errors in the equations’

code.

Introduction Simulation Models LSD Simulation programs References

LSD technical components

LSD is distributed with a companion program called Lsd ModelManager which performs the following tasks:

1 Organize the projects and manage the required files.2 Assist in the writing of the equations.3 Manage the compilation process.

4 Provide indications on grammar errors in the equations’code.

Introduction Simulation Models LSD Simulation programs References

LSD technical components

LSD is distributed with a companion program called Lsd ModelManager which performs the following tasks:

1 Organize the projects and manage the required files.2 Assist in the writing of the equations.3 Manage the compilation process.4 Provide indications on grammar errors in the equations’

code.

Introduction Simulation Models LSD Simulation programs References

LSD technical components

Model Equation file"fun_mymodel.cpp"

Compilation

FailureGrammar

Error Messages

Success

Lsd Model Manager - LMM

Lsd system codesrc\lsdmain.cppsrc\object.cpp

src\variable.cpp...

Fix errors

Introduction Simulation Models LSD Simulation programs References

LSD technical components

On success LMM generates an executable called LSD ModelProgram embodying the equations of the model and offeringevery operation concerning the model:

1 Define, save and load model configurations.

2 Run single or multiple simulations.3 Analyse the results, at run-time and at the end of the

simulation.4 Investigate the model state before, during or after a run.5 Catch and report on errors at run time, keeping data

produced until the stop.6 Document a model with its own interfaces, or exporting

reports in HTML or Latex format

Introduction Simulation Models LSD Simulation programs References

LSD technical components

On success LMM generates an executable called LSD ModelProgram embodying the equations of the model and offeringevery operation concerning the model:

1 Define, save and load model configurations.2 Run single or multiple simulations.

3 Analyse the results, at run-time and at the end of thesimulation.

4 Investigate the model state before, during or after a run.5 Catch and report on errors at run time, keeping data

produced until the stop.6 Document a model with its own interfaces, or exporting

reports in HTML or Latex format

Introduction Simulation Models LSD Simulation programs References

LSD technical components

On success LMM generates an executable called LSD ModelProgram embodying the equations of the model and offeringevery operation concerning the model:

1 Define, save and load model configurations.2 Run single or multiple simulations.3 Analyse the results, at run-time and at the end of the

simulation.

4 Investigate the model state before, during or after a run.5 Catch and report on errors at run time, keeping data

produced until the stop.6 Document a model with its own interfaces, or exporting

reports in HTML or Latex format

Introduction Simulation Models LSD Simulation programs References

LSD technical components

On success LMM generates an executable called LSD ModelProgram embodying the equations of the model and offeringevery operation concerning the model:

1 Define, save and load model configurations.2 Run single or multiple simulations.3 Analyse the results, at run-time and at the end of the

simulation.4 Investigate the model state before, during or after a run.

5 Catch and report on errors at run time, keeping dataproduced until the stop.

6 Document a model with its own interfaces, or exportingreports in HTML or Latex format

Introduction Simulation Models LSD Simulation programs References

LSD technical components

On success LMM generates an executable called LSD ModelProgram embodying the equations of the model and offeringevery operation concerning the model:

1 Define, save and load model configurations.2 Run single or multiple simulations.3 Analyse the results, at run-time and at the end of the

simulation.4 Investigate the model state before, during or after a run.5 Catch and report on errors at run time, keeping data

produced until the stop.

6 Document a model with its own interfaces, or exportingreports in HTML or Latex format

Introduction Simulation Models LSD Simulation programs References

LSD technical components

On success LMM generates an executable called LSD ModelProgram embodying the equations of the model and offeringevery operation concerning the model:

1 Define, save and load model configurations.2 Run single or multiple simulations.3 Analyse the results, at run-time and at the end of the

simulation.4 Investigate the model state before, during or after a run.5 Catch and report on errors at run time, keeping data

produced until the stop.6 Document a model with its own interfaces, or exporting

reports in HTML or Latex format

Introduction Simulation Models LSD Simulation programs References

LSD technical components

Lsd Model ProgramModel Configuration

- Model Structure (Objects,Variables and Parameters)- Initial values- Sim. settings- Running options

Define and Save

Load

Run Simulation

Failure

Logical ErrorMessages

Saved data series- Analysis of Results- Export data- Export graphs

Success

Model ReportUser-friendly hypertextual

documentation

Help

Create Report

Introduction Simulation Models LSD Simulation programs References

References I

Arthur, W. B. (1994).Inductive reasoning and bounded rationality.American Economic Review, 84:406.

Bak, P., Chen, K., Scheinkman, J., and Woodford, M.(1993).Aggregate fluctuations from independent sectoral shocks:Self–organized critically in a model of production andinventory dynamics.Ricerche Economiche, 47(1):3–30.

Introduction Simulation Models LSD Simulation programs References

References II

Ciarli, T. (2004).Patterns of industrial development in costa rica: Empirical‘validation’ of a firm–based growth model.In Wild@Ace 2004 Workshop on Industry and LabourDynamics. The Agent–Based Computational Approach,Moncalieri, Torino.

Ciarli, T., Leoncini, R., Montresor, S., and Valente, M.(2008).Technological change and the vertical organisation ofindustries.Journal of Evolutionary Economics, forthcoming.

Introduction Simulation Models LSD Simulation programs References

References III

Ciarli, T. and Valente, M. (2005).Firms interaction and industrial development: A simulationmodel.In Giuliani, E., Rabellotti, R., and Van Dijk, M. P., editors,Clusters Facing Competition: The Importance of ExternalLinkages. Ashgate, Aldershot.

Ciarli, T. and Valente, M. (2007).Production structure and economic fluctuations.LEM Working paper Series 2007/02, Laboratory ofEconomics and Management Sant’Anna School ofAdvanced Studies, Pisa.

Introduction Simulation Models LSD Simulation programs References

References IV

David, P. A., Foray, D., and Dalle, J.-M. (1998).Marshallian externalities and the emergence and spatialstability of technological enclaves.Economics of Innovation and New Technology, 6:147–182.

Dawid, H. (2005).Agent–based models of innovation and technical change.In Tesfatsion, L. and Judd, K. L., editors, Handbook ofComputational Economics, Volume 2: Agent-BasedComputational Economics. Borth–Holland.Preliminary downloadable version.

Introduction Simulation Models LSD Simulation programs References

References V

Delli Gatti, D., Di Guilmi, C., Gaffeo, E., Giulioni, G.,Gallegati, M., and Palestrini, A. (2004).A new approach to business fluctuations: Heterogeneousinteracting agents, scaling laws and financial fragility.Journal of Economic Behavior & Organization, 56:489–512.

Dosi, G., Fagiolo, G., and Roventini, A. (2006).An evolutionary model of endogenous business cycles.Computational Economics, 27:3–34.

Ethiraj, S. K., Levinthal, D. A., and Roy, R. R. (2007).The dual role of modularity: Innovation and imitation.Management Science, Forthcoming.

Introduction Simulation Models LSD Simulation programs References

References VI

Fagiolo, G., Dosi, G., and Gabriele, R. (2004).Matching, bargaining, and wage setting in an evolutionarymodel of labor market and output dynamics.Advances in Complex Systems, 14:237–273.

Frenken, K., Marengo, L., and Valente, M. (1999).Interdependencies, Nearly-Decomposability andAdaptation.In Brenner, T., editor, Computational Techniques forModelling Learning in Economics. Kluwer, BostonDordrecht and London.

Introduction Simulation Models LSD Simulation programs References

References VII

Kauffman, S. A., Lobo, J., and Macready, W. G. (2000).Optimal search on a technology landscape.Journal of Economic Behavior & Organization,43(2):141–166.

Kirman, A. and Vriend, N. J. (2000).Learning to be loyal. a study of the marseille fish market.In Delli Gatti, D., Gallegati, M., and Kirman, A., editors,Interaction and Market Structure. Essays on Heterogeneityin Economics (Lecture Notes in Economics andMathematical Systems 484), pages 33–56. Springer, Berlin.

Introduction Simulation Models LSD Simulation programs References

References VIII

Llerena, P. and Lorentz, A. (2004).Cumulative causation and evolutionary micro-foundedtechnical change: On the determinants of growth ratesdifferences.Revue Economique, 55(6):1191–1214.

Marengo, L. and Dosi, G. (2005).Division of labor, organizational coordination and marketmechanisms in collective problem-solving.Journal of Economic Behavior & Organization,58(2):303–326.

Nelson, R. R. and Winter, S. G. (1982).An Evolutionary Theory of Economic Change.Harvard University Press, Cambridge, MA.

Introduction Simulation Models LSD Simulation programs References

References IX

Schelling, T. C. (1971).Dynamic models of segregation.Journal of Mathematical Sociology, 1:143–186.

Schelling, T. C. (1978).Micromotives and Macrobehavior.W. W. Norton and Co., New York, NY.

Teitelbaum, D. and Dowlatabadi, H. (2000).A computational model of technological innovation at thefirm level.Computational and Mathematical Organization Theory,6(3):227–247.

Introduction Simulation Models LSD Simulation programs References

References X

Windrum, P. and Birchenhall, C. (2005).Structural change in the presence of network externalities:a co-evolutionary model of technological successions.Journal of Evolutionary Economics, 15:123–148.

Yildizoglu, M. (2002).Competing r&d strategies in an evolutionary industrymodel.Computational Economics, 19:51–65.