Order this book
Paul E. Johnson
Department of Political Science, University of Kansas Lawrence, Kansas 66045, USA.
This book has some very exciting articles and raises a number of interesting questions. There is a sense in which it raises more problems than it solves, which is both a blessing and a curse. It is a blessing to have a clear, sharp set of problems laid out for study, but it is a curse to see how much there is to do.
One might fear that this volume is outdated because it was initiated from conference papers in 1997 and finalised in 1999. Some of the particulars, especially the discussion of particular programming languages and toolkits, are anachronistic. However, the central problem - the search for a common and workable set of tools for social science simulation - is as real today as it was then. Nigel Gilbert's introductory essay does an excellent job of framing the need for a set of shared tools to build models and analyse them.
While reading this volume, several issues that had been in the back of my mind were brought to the forefront. The first concerns the required qualifications for students (or professors) who want to do agent-based modelling and simulation. The second concerns the distinction between social science tools and tools for natural and physical sciences. Many of the articles touch on these problems, if only obliquely.
Since I expect students and other newcomers to simulation will be the primary audience of a review like this one, let me state my opinion as a starting point. First, I believe that people who want to do any serious social science simulation model building should master some medium level object-oriented computer language, like C++, Objective-C, or Java. All of these take the C language as the core and build from there. After a person has mastered any one of these, he/she can easily move between them because their semantics and notation for basic concepts are identical and their representations for objects and abstractions can be easily translated. There are plenty of other languages worth learning, of course, but their terminology will not be so easily translated. I am aware that object-oriented concepts have been introduced in Pascal and Fortran and that some extremely useful projects have been done with them. (Incidentally, it seems to me that people who aspire to be truly sophisticated programmers should learn LISP. Subjectively speaking, the smartest, most able computer folk I know have studied LISP at one time or another.)
Second, even if a person is proficient in one of these medium level languages, it is still valuable to have access to a programming library. One can avoid re-inventing the wheel by using a library of well-tested routines. One can capitalise on the optimisations of earlier work and also avoid introducing one's own mistakes. There are some aspects of simulation that are truly difficult and deserving of careful, experienced treatment. The weaknesses exposed in the random number generators in the wake of the publication of the Numerical Recipes collection should stand as evidence that even something so fundamental as random number generation can be a serious problem.
I don't mean that one should blindly "plug in" routines from a library. Rather, if the code is open source, one can attempt to understand their implementation and ascertain whether it is truly useful and relevant to a given project. The need to inspect the inner details of a programming library is a primary reason why I am an eager advocate of the position that any software worth using should be "open source." One should never trust a vendor's implementation if that vendor keeps the details secret. For further discussion, see these interesting articles by Pfaffenberger ("Linux in Higher Education: Open Source, Open Minds, Social Justice" Linux Journal, March 2, 2000) and Kiernan ("The 'Open Source Movement' Turns Its Eye to Science," Chronicle of Higher Education, November 5, 1999.)
Third, "Social science simulation" should not be a code-word for "simulation for dummies" or "modelling for unprepared people." While Gilbert clearly avoids doing so, some of the articles in this book seem to frame social simulation toolkits as tools for people who don't understand programming (see the comments by Urban, p. 87 and Rockloff, p. 117). I think that may be a harmful, creating the impression that useful research might someday result from the widespread use of "click and point" model building. Several of the articles in this volume raise the success of the "idiot proof" statistical packages (like SPSS) as evidence indicating the need for (and benefits from) a social science simulation toolkit. I admit that I have been an occasional user of SPSS since 1979 and that when one needs to produce averages, simple charts or linear models, SPSS works well enough. However, I don't teach my graduate students to use SPSS. People who use SPSS face certain limitations and are forced to use inappropriate tools or give up. People who have a programming background will typically be better users of these packages and more will more readily develop models that match their substantive interests.
If social simulation is not "simulation with training wheels", then, what distinguishes it? Suppose I boldly contend that agent-based modelling is the "effort to model encapsulated individual units (people, animals, trees and so on) selectively giving and receiving information." Agent-based modelling has had a lot of appeal in biology and ecology and has taken hold because it represents a shift to the individual level of analysis. When compared with the aggregate level differential equation models so common in ecological study, the individual-based simulation is clearly different and substantively interesting. In contrast many social sciences, such as political science, economics, psychology, and (to an extent) sociology, have for quite some time taken the individual person as the fundamental unit of analysis and so the simulation approach is not completely foreign to our typical theories. Rather than competing against abstract differential equations, agent-based simulation modelling in social science has to compete against, or at least contrast itself with, a host of other individual-level theories and tools, perhaps most importantly, game theory. But the agent-based methods are new and, somewhat frustratingly, vague in implications and imprecise in interpretation.
This volume truly brings into relief the fact that we collectively face the problem of translating some novel anecdotes and insights into a new and broadly based methodology. I am inclined to think that the best answers to the big methodological questions will eventually combine both insights from the top-down and the bottom-up. From the bottom, we have truly interesting research projects (consider the widely discussed El Farol Bar) that display examples of projects that work and yield insight. In this edited volume by Suleiman, Troitzsch and Gilbert, I found a number of specific models that were truly worth consideration. I especially recommend people to compare the findings of Hegselmann, Flache and Moller on opinion formation and social diversity (chapter 9) against those of Latané and Morio (chapter 11) and Kluver, Schmidt and Kier (chapter 18).
On the other hand, I think we will also benefit from the effort to develop truly general programming tools and methods of analysis. Many of the specific tools discussed in this volume are probably not competitive at the current time. I'm personally investing in Swarm), but there are many other programming libraries that can facilitate the model-building process. Beyond tools, however, we need a good set of common modelling strategies. In this edited volume, there is a very interesting article on sensitivity analysis by Chattoe, Saam and Moehring (chapter 13). More consideration of such problems that come up across a broad variety of modelling contexts is needed.
Return to Contents of this issue
© Copyright Journal of Artificial Societies and Social Simulation, 2003