The Art of Simulation

The ‘Art of Simulation’ is one of the most cited books published on simulation. It was aimed at statisticians, applied mathematicians and those engaged in the ‘new science of Operational Research’. Tocher himself was a highly intelligent and erudite man who was an acknowledged expert in all three areas. It is a book written from one enthusiast to another and it is not an easy read for the faint hearted. The book is full of useful algorithms and techniques with the most exciting and novel developments in the last few chapters. The original review in the Operational Research Quarterly by CM Berners-Lee (1967) said ‘The merit of this classic is that it is based on a foundation of statistical theory. The first half of this book lays this base so as to make it clear why each refinement of statistical technique must be introduced if satisfactory results are to be achieved. In particular, many workers in this area will be grateful for the clear and comprehensive treatment of pseudo-random number generation, which is fundamental to digital simulation’. Tocher begins the book by explaining a range of sampling methods, starting with the Top Hat method, working through various inversion methods, rejection methods and multivariate sampling methods. He then applies these, as appropriate, to the more common parametric distributions. A chapter on random number generators is followed by one on pseudo-random number generators. Having explained and developed these tools, Tocher shows how they may be used in sampling experiments, such as deriving the shape of Student’s t-distribution. In the second half of the book Tocher develops what Berners-Lee (1967) called ‘compact and elegant notation’ for representing simple computer programs and, subsequently, for presenting more complicated simulation logic. The diagrammatic technique which I understand is the basis of Tocher’s GSP simulation language, is a flow diagram approach showing the detailed program logic. The program statements and decisions are linked by arrows to show program flow. The first models to be developed in the book, using this approach, are simple queuing problems. These are not so simple that they can be solved analytically, however. Chapter 10 builds up to a time advance approach showing how it is possible to model many servers, different types of customer, and to calculate queue lengths and waiting times. Whereas this chapter is server oriented, the next is customer oriented and here Tocher introduces what we would now call a ‘next event list’, which of course lies at the heart of any discrete event simulation engine. There is a detailed discussion of various ways of implementing an appropriate ordered linked list. The next chapter considers more complex situations where there are machines that need to co-operate and thus have to wait for each other, creating delays as they do so. Tocher likens the situation to ‘stochastic gear wheels clicking round irregularly’. He introduces the wheel diagram to link the activities together; this is now known as the activity cycle diagram, a widely accepted tool for formulating and visualizing simulation models. He also explains how to distinguish between B (bound) and C (conditional) activities and shows how this more general structure may be applied to quite complex examples such as: the processes within an electric steel-making furnace, the passage of traffic across time-sequenced traffic lights and the queues of passengers waiting for buses on a circular bus route. Structuring these models using the time advance approach, B and C activities (later know as the three phase method) is where the ‘art’ of simulation joins the science. The final chapter about experimentation explains how to use control variate and antithetic variable methods for variance reduction and shows the benefits of doing so. It also recommends the use of common random numbers. Journal of Simulation (2008) 2, 153–154 r 2008 Operational Research Society Ltd. All rights reserved. 1747-7778/08