Reviewed by
Alessandro Raimondi
University of Turin
Following Gilbert and Terna (2000) descriptions of real world can be of three types: verbal descriptions, logic or mathematical descriptions, and functional or simulation models. Verbal models are characterized by the highest level of flexibility, but at the same time are those less immediate in terms of generalization degree, and are not computable making larger the distance between ideas theorization and empirical verification. A mathematical model instead offers a well defined content and a larger degree of generalization: it's computable, and it can be used to calculate the values of the parameters that define the process we are analysing since it is nothing more than a system of equation that describes the relationships among variables. Both these representations share a high degree of abstraction and, in the formalization case, also of simplification. Functional models on the contrary are closer to real world, less abstracted and more able to be generalized: a model in conflict with physical laws can be described with words, and can also be formalized with mathematics, but it cannot be reproduced in reality.
Unfortunately in social sciences is not so easy to create experiments or functional models, and the lack of repeatability of phenomena and the extreme subjectivity of the elements that rise them make difficult to define in a unique and unambiguous way the cause and effect relationships. Society can be observed, and can be described through verbal or formal models, the last supported by quantitative and statistical analysis: but it is impossible to recreate in a physical laboratory effective representations, and this makes more difficult to study and understand phenomena starting from the constituent elements.
Society is composed by individuals. Human beings are neither perfectly rational nor perfectly predictable. In non linear systems like economy, and society in a more broader sense, chaos theory shows that the minimal indefiniteness in the knowledge of initial conditions will inexorably grow, leading to meaningless forecasts. Although simplifications and ad hoc assumptions are the only way to treat a complex reality with refined mathematical formalizations, assumptions not consistent with reality will lead to solve wrongly defined questions.
With simulation we directly create phenomena and forecasts concerning the behaviour of a system: simulation is real, since the dynamic of the system is happening taking place from time to time. Reproducing reality is fundamental in order to achieve a better comprehension of it, both from the side of the scientist who observes, and from that of the individual involved in the process, who is often not conscious of its role in the system nor of the consequences of his actions or of the reasons why he acts in a certain way.
Modelling is an iterative process, which includes mapping the problem from the real world to its model in the world of models (the abstraction process), model analysis and policy implementations, till mapping the solution back to the real system. Strategies, structures and decision rules used in the real world can be represented and tested in virtual world of the model: feedbacks alter our mental models and lead to the design of new strategies, new structures and new decision rules.
In static analytical modelling the results functionally depend simply on the input, that is, a number of parameters. In the case of complex dynamic systems analytical solution usually does not exist or may be very hard to find: that's the reason why it can be useful to apply simulation modelling. A simulation model may be considered as a set of rules that define how the system being modelled will change in the future given its present state: execution of the model takes it through discrete or continuous state changes over time.
In addressing real world systems Borshchev & Filippov (2004) arrange both problems and corresponding paradigms in simulation modelling on a scale of levels of abstraction. At the detailed level stands physical modelling where individual objects with exact sizes, distances, velocities and timings matter, that is to say mechanical control system, exact physical trajectories and so on. A bit higher we find warehouse logistics models or transportation models. A middle to high abstraction range can be reserved to supply chains and traffic macro models. However at the top of the chart systems are typically analysed in terms of aggregate values, global feedbacks, trends: let us think about markets, competition, population dynamics and so forth.
Paradigms correspond to abstraction. Dynamic Systems or physical modelling is at the bottom of the chart: this paradigm is used in mechanical, electrical, chemical and other technical engineering disciplines as a standard part of the design process. Mathematically it is the more powerful instrument (the MATLAB Simulink is the perfect example): it expresses models through a number of state variables and algebraic differential equations of various forms over these variables. In contrast with the System Dynamics, integrated variables have direct physical meaning and are not aggregate of any entities. The mathematical diversity and complexity in dynamic systems domain can be much higher than in system dynamics, and the tools used for dynamic system simulation could easily solve any System Dynamics problem: but, Dynamic System tools do not support the way System Dynamics modellers think.
System Dynamics dealing with aggregates is located at the highest abstraction level: as we know, as long as the model works only with aggregates, items in the same stock are indistinguishable; and the modeller has to think in terms of global structural dependencies and has to provide accurate quantitative data. Discrete Event modelling is used at low to middle abstraction: it is indeed an approach based on the concept of entities, resources and block charts describing entity flows and resource sharing: it can be considered as a definition of a global entity processing algorithm, typically wit stochastic elements. Agent Based Modelling, in the end, is being used across all abstraction levels. Agents may model objects of very diverse nature and scale: at the physical level agents may be pedestrians or cars or robots, at the middle level customers, at the higher level competing companies. Since they are essentially decentralized, there is no place in an ABM models where the global system behaviour dynamics would be defined.
The three books object of this review deal with simulation techniques, and in particular with two of the paradigms mentioned above: namely Discrete Event and Dynamic Systems.
In this fourth edition of "Simulation" Ross has a strong statistical approach: he deals with realistic replications of actual situations through stochastic models and then relies on simulation study to analyze it. The book first shows how a computer can be used to generate random (more precisely pseudorandom) numbers, and then how these random numbers can be used to generate the values of random variables to form arbitrary distributions. Through the concept of discrete events, random variables are used to generate the behaviour of a stochastic model over time. By continually generating the behaviour of the system estimators desired quantities of interest are obtained. Then Ross addresses the statistical questions of when to stop a simulation and what confidence to play in the resulting estimator: traditional variance reduction techniques are presented as long as statistical validation techniques. In the end Markow chains and MonteCarlo methods are presented being useful when the distribution of the number we want to simulate is not known. Ross offers a perspective which seems to be old fashioned: he departs from a strong formal approach, deals with theorems and looks less oriented at modern programming languages and simulation tools. It seems a reading that could be suitable for mathematicians and researchers used to approach system study through the analytical way, and interested in moving the first steps towards different methodologies.
In "Simulation Modeling and Analysis with ARENA", Altiok and Melamed start from the same point of view, but develop their arguments in a more friendly and practical way, thanks to the use of the Arena simulation tool and to an application oriented mood. The authors go straight to the point: in their path of research "simulation helps the analyst understand how well a systems performs under a given regime or a set of parameters." The book reviews the system-theoretic aspects of simulation, introduces Arena basics and facilities and addresses simulation related theory (input analysis, validation, output analysis, and correlation analysis). In the last part is application oriented. The field of application is clearly stated: the book is concerned with simulation modelling of industrial systems, which makes it difficult to be the first-choice tool for the social scientist.
According to the authors a simulation model calls for running a simulation program to produce sample histories: a set of statistics computed from these histories is then used to form performance measures of interest. Let's give an example: a production line is conceptually model as a queuing system. The analytical approach would create an analytical queuing system and proceed to solve them. The process simulation approach instead would create a computer representation of the queuing system and run it to produce a sufficient number of sample histories. Performance measures, such as average work in the system, distribution of waiting times and so on, would be constructed from the corresponding solutions as mathematical or simulation statistics, respectively.
In the discrete event simulation paradigm the simulation model possesses a state at any point in time. The state trajectory over time is abstracted as a piecewise constant function, whose jumps (discontinuities) are triggered by discrete events. In other words, the simulation state remains unchanged unless a simulation event occurs, at which point the model undergoes a state transition. The model evolution is governed by a clock and a chronologically ordered event list: each event is implemented as a procedure whose execution can change state variables and possibly schedule other events.
A more specialized paradigm is the transaction driven, in which there are two kinds of entities, transaction and resources. A resource is a service providing entity, typically stationary in space. A transaction is a mobile entity that moves among geographical locations (nodes). A transaction may experience delays while waiting for a resource due to contention. Transactions typically go through a life-cycle: they get created, spend time at various locations, contend for resources, and eventually depart from the system. The computed code describing a transaction's life cycle is called a process. Queuing elements figure prominently in this paradigm, since facilities typically contain resources and queues. Accordingly, performance measures of interest include statistics of delays in queues, the number of transaction in queues, utilization, uptimes and downtimes of resources subject to failure and lost demand, among many others.
MonteCarlo simulation models incorporate randomness by sampling random values from specified distributions: the random values are used (among other things) to schedule events at random times. Simulation based performance evaluation can be thought of as a statistical experiment:
1. The modeller performs multiple simulation runs, using independent sequences of random numbers. Each run is called a replication.
2. One or more performance measures are computed form each replication.
3. The performance values obtained are actually random and mutually independent, and together form a statistical sample. To obtain more reliable estimate of the true value of each performance metric, the corresponding values are averaged and confidence interval about them constructed.
The textbook develops its analysis through the use of the Arena software, which implements a programming paradigm that combines visual and textual programming. It has a Graphical User Interface built around the SIMAN language which consists of two classes of objects: blocks, basic logic construct that represent operations (seize, release), and elements that represent facilities (such as resources and queues). A session involves selecting module block/icons from a template panel, and placing them on a graphical model canvas (drag and drop); connecting modules graphically to indicate flows paths of transactions and or logical flow paths of control; parameterisation of modules or elements using a text editor; writing codes fragments in modules. Arena provides a module oriented simulation environment to model practically any scenario involving the flows of transactions through a set of processes.
Regarding methodological aspects, the book puts strong emphasis on statistical analysis. Input analysis is the activity of modelling random components and stands on data collection and analysis as long as on fitting a probabilistic model to empirical time series data. For model goodness Arena debugging facilities are presented. Regarding Output Analysis the main issues addressed are replication design, seeking to minimize the number of replications and their length, and still obtain reliable statistics; estimation of performance metrics, providing the data for computing point estimates and confidence intervals for system parameters of interest; and system analysis and experimentation, since statistical estimates are used in turn to understand system behaviour and generate performance prediction under various scenarios, such as different input parameters, scenarios of operation and so on. In the end correlation analysis is oriented at modelling correlated stochastic processes (autocorrelations and cross correlations), and studying the impact of correlations on performance measures of interest via sensitivity analysis.
The last part of the book deals with industrial applications modelling: production lines, which is primarily a resource allocation process; supply chain systems, where the mission is producing and distributing products in the right quantities to the right locations at the right time, while keeping costs down and customer service levels up; transportation systems, where decisions involve identifying system capacities and eliminating bottlenecks so as to increase system throughput; and computer information systems, in which the activity is predicting system performance for a given set of resource requirements in order to achieve a desired level of performance. The book comes with a CD-Rom including the Rockwell Arena software, and models and examples shown in the text.
Summing up Altiok & Melamed arrange an interesting and useful tool for discrete event simulation based on statistical analysis: however their approach is clearly intend as oriented towards the representation and simulation of industrial systems, and this could represent a limit in the usability for the social scientist.
The third book in this review is "Simulation of Dynamic Systems with Matlab and Simulink" by Klee. From the preface, the book is "is meant to serve as an introduction to the fundamental concepts of continuous system simulation, a branch of simulation applied to dynamic systems whose signals change over a continuum of points in time or space. Our concern is with mathematical models of continuous time systems (electric circuits, thermal processes, population dynamics, vehicle suspension, human physiology and so forth) and the discrete time system models created to simulate them."Therefore here we are in front of a different simulation paradigm, that is the Dynamic Systems one. The continuous system mathematical models consists of a combination of algebraic and ordinary differential equations. The discrete-time system models are a mix of algebraic and difference equations. Modelling and simulation are inextricably related: mathematical models are the starting point in the evolution of simulation models.
In principle the behaviour of dynamic systems can be explained by mathematical equations and formulae which embody either scientific principles or empirical observations, or both, related to the system. When the system parameters and variable change continuously over time or space, the models consist of coupled algebraic and differential equations.
Simulation models are commonly obtained from discrete time approximations of continuous time mathematical models. Much of the book is therefore devoted to the process of obtaining simulation models in this way: more than one simulation model can be developed from a single mathematical model of a system.
The exploration of simulation starts from the knowledge on how LTI (linear time invariant) dynamic system behave: indeed linear systems appear as building blocks in more complex systems. Our intuitive understanding of the entire system is enhanced by recognizing the fundamental behaviour of its linear components. Control systems are often times composed of linear continuous time components interconnected to produce a desirable response to commanded as well as uncontrollable or disturbance inputs. Speaking of control systems, the mathematical model of the process being controlled is often nonlinear: however a properly designed regulatory control system will limit excursions of the process variables. In the second chapter is presented how to representing simple continuous-time systems in state variable form and generate discrete time model approximations of them, which can be solved in a recursive fashion. The other chapters present numerical integration methods to manage and solve the approximation of the formalized systems. Problems as simulation accuracy and approximation are addressed.
MATLAB and Simulink (see: http://www.themathworks.com) are the tools used to get through these research path. In many cases dynamic systems are composed of individual components and subsystems. The relationship of a system's component to each other and the role they serve in the overall system design is often times easier to comprehend when presented in visual form rather than by inspection of the mathematical models. Control systems for ground vehicles, aircraft, robotic devices, and so on are typically presented in graphical form as block diagrams. The block are both static and dynamic depending on the component it represents.
It is useful to reduce the block in a block diagram of a continuous-time dynamic system to a level which exposes the pure integrators. The user is then given the flexibility of approximating individual integrators using different numerical algorithms.
From the Simulink web page:
"Simulink is an environment for multidomain simulation and Model-Based Design for dynamic and embedded systems. It provides an interactive graphical environment and a customizable set of block libraries that let you design, simulate, implement, and test a variety of time-varying systems, including communications, controls, signal processing, video processing, and image processing. Solvers are numerical integration algorithms that compute the system dynamics over time using information contained in the model. Simulink provides solvers to support the simulation of a broad range of systems, including continuous-time (analog), discrete-time (digital), hybrid (mixed-signal), and multirate systems of any size. [...] A classic block diagram model of a dynamic system graphically consists of blocks and lines (signals). The history of these block diagram models is derived from engineering areas such as Feedback Control Theory and Signal Processing. A block within a block diagram defines a dynamic system in itself. The relationships between each elementary dynamic system in a block diagram are illustrated by the use of signals connecting the blocks. Collectively the blocks and lines in a block diagram describe an overall dynamic system."
The book is plenty of interesting and clear examples, but despite the commendable intention of giving a blueprint in Dynamic System that could be useful for any field of research. Its engineering imprint is quite undeniable: for the most, analyzed systems regard aircrafts, automotive and physics. Nor this should be seen as a limit, but it has to be clear that the tool does not specifically address social systems: however many of the fundamentals of control theory (which relies on feedback structures) can be shared between the various disciplines.
Referring to simulation tools and paradigms for the social scientist it seems that other instruments could be more useful and attainable to the purpose of reproducing and analyzing the behavior of social systems. As already said, the Dynamic System approach is able to model a wide variety of situations and problems: control systems theory deals with dynamic systems, that is system whose behavior changes over time, which covers almost everything. But, as the reading of Klee shows, it assumes strong mathematical skills and effort.
On the contrary, through the use of the System Dynamics paradigm the modeler is involved in an analysis of the real world system through the graphical representation of stock and flows, and, what is more important, of cause-effect relationships. The feedback structure of a system generates its behavior: cause effect relationships are fundamental in order to map the feedback structures of systems. In System Dynamics modeling equations and solvers lay behind, but need not to be managed by the scientist: the tool supports a different way of thinking, that in working with aggregates leads to a powerful approach for social sciences research.
Going from continuum towards discrete mathematics, the variables that represent the state of the system can assume definite values representing alternative events, while the time variable has a finite number of states. Gell-Mann (1994) defines such kind of mathematics based on rules, since the changes that take place in the system depend in the state of the system in that precise instant: we can represent system consisting of many individual adaptive agents, each one of them being itself a complex adaptive system. Usually agents evolve schemes that describe the behavior of other agents and teach how to react to it: the mathematics based on rules become a mathematics based on agents. Through agent-based modelling we can define decentralized rules and behavior, as long as heterogeneous characteristics for individual elements.
Another MATLAB interesting tool which is not mentioned by Klee as it deals with modeling of event-driven systems, is Stateflow: event-driven systems transition from one operating mode to another in response to events and conditions. These systems are often used to model logic for dynamically controlling a physical device such as a fan, motor, or pump. Event-driven systems can be modeled as finite-state machines. Finite-state machines represent operating modes as states: as an example, a house fan can have states such as High, Medium, Low, and Off. To construct finite-state machines, Stateflow software provides graphical objects that you can drag and drop from a design palette to create charts in which a series of transitions directs a flow of logic from one state to another. Stateflow charts run as blocks in a Simulink model. The Stateflow block connects to other blocks in the model by input and output signals. Through these connections, Stateflow software and Simulink software share data and respond to events that are broadcast between model and chart.
In Raimondi (2003) Stateflow is used as a logic control machine to simulate the functioning of a firm through the formalization of the jES (java Enterprise Simulator) model developed by Terna (2002): the formalism is based on the dualism between things to be done, and who is going to do such things. The interaction between the two class of objects (orders and units) generates the behavior of the virtual enterprise. Through the use of matrices and logical conditions Stateflow offers the chance to recreate a model strongly rooted in the Agent Based Modeling paradigm and with a management of the information completely decentralized: this makes it a tool which definitely deserves the social scientist attention. (The model, as an example of what Stateflow can do, can be downloaded at: http://web.econ.unito.it/terna/tesi/raimondi/labsses.zip.)
Both Altiok and Melamed and Klee are interesting tools, though quite different in perspective and methodology. The former evolves statistical methods and techniques in order to work on the input and generation of affordable data: the stress is on data analysis and stochastic distributions modeling. The latter looks at mathematical modelling and integration methods in order to define the function that approximates in the most reliable way the behaviour of the formalized system: this makes it a reading for scientists with a strong mathematical background, and for engineers in a first row. However, its clear treatment of differential equation mathematics and numerical integration methods makes Klee a must have reading that should take place in every simulator's bookshelf.
GELL-MANN M (1994) The Quark and the Jaguar. New York: Freeman and Company.
GILBERT N and TERNA P (2000) How to build and use agent-based models in social science. Mind and Society, I(1): 57-72.
RAIMONDI A (2003) Un modello di Simulazione di Impresa con MATLAB, Simulink e Stateflow. Master Degree Thesis, University of Turin. Available at: http://web.econ.unito.it/terna/tesi/raimondi/raimondi.zip.
TERNA P (2002) Simulazione ad agenti in contesti di impresa. Sistemi Intelligenti, XIV(1): 33-51.
Return to Contents of this issue
© Copyright Journal of Artificial Societies and Social Simulation, 2008