Our objective in this text is to provide a basic treatment of the important aspects of discrete-event simulation, with particular emphasis on examples to illustrate simulation principles and applications in manufacturing, services, and computing. The fifth edition, like all earlier editions, is meant for an upper-level-undergraduate or master's-level introduction to simulation, or for a second course with applications. We have updated the material extensively and revised some chapters completely. The associated website www.bcnn.net is an essential companion to the text. Although the book remains independent of any particular simulation language, we have continued the trend begun in the fourth edition of providing Excel-based examples and simulation support tools.

The first part of the book, entitled Introduction to Discrete-Event System Simulation, encompasses Chapters 1 through 4. Chapter 1, Introduction to Simulation , addresses the questions:

  • What is simulation?
  • What is it for?
  • When is it the right tool?
  • What are its advantages and disadvantages?
  • What are the types of simulations?
  • How do you carry out a simulation project?

In this edition abstracts of many real simulation cases have been added.

Chapter 2, Simulation Examples in a Spreadsheet, introduces simulation with a series of demonstrations in Excel. To introduce random numbers, the chapter starts with simple examples to simulate coin tossing, and to simulate random service and arrival times using simple discrete distributions. From there, the instructor may choose any of the later extended examples for queueing, inventory, and other types of systems. All examples are based on a common framework, emphasizing model definition, the state variables needed for the Excel implementation, input specification, outputs, and performance measures---all in a simplified manner accessible to the student before covering the statistical review in Chapter 5. The Excel implementations, available on the website, are useful for hands-on experimentation to illustrate simulation concepts and as a starting point for some of the exercises at the end of the chapter.

While Excel is useful for teaching simulation concepts, for demonstrating the effect of statistical variability, and especially for analyzing and presenting results, it has severe limitations as a basis for simulation itself. Therefore Chapter 3, General Principles, discusses a generic framework centered on the key concepts of events and processes that is used as the basis for the implementation of nearly all discrete-event simulation software. Chapter 4, Simulation Software, provides a history of simulation and examples in GPSS and Java. We also include an updated discussion of the features and capabilities of currently available simulation software. Simulation software evolves rapidly, therefore, follow the Web links given in this chapter to access the latest vendor information.

The second part of the book, entitled Mathematical and Statistical Models and comprising Chapters 5 and 6, provides background material in statistics and queueing that is useful in simulation. Chapter 5, Statistical Models in Simulation , collects, in one location, the statistical background needed for the remainder of the book. In Chapter 6, Queueing Models, we introduce waiting-line concepts, a few simple steady-state queueing models, and performance measures for queueing systems. In this edition we have added a case study on rough-cut modeling of queueing systems prior to simulation. Some calculations are illustrated in MATLAB code. The spreadsheet QueueingTools.xls computes queueing performance measures for all of the models in the chapter.

The third part of the book, entitled Random Numbers , discusses random-number generation in Chapter 7, and random-variate generation in Chapter 8. Its purpose is to introduce the concepts and some of the algorithms for generating simulation inputs, not so that a student can implement state-of-the-art methods, but so that they can use the tools intelligently and critically. The spreadsheet RandomNumberTools.xls contains implementations in Visual Basic for Applications (VBA) of a long-period random-number generator, such as those described in Chapter 7, Random-Number Generation ; as well as implementations of the random-variate generation algorithms in Chapter 8, Random-Variate Generation .

The fourth part of the book, entitled Analysis of Simulation Data , encompasses Chapter 9 on input modeling, Chapter 10 on verification and validation, and Chapters 11 and 12 on output analysis.

Chapter 9, Input Modeling , focuses on the use of data to drive a simulation, specifically, choosing the statistical distributions to represent a model's random input variables. In this edition, the core example has been replaced with a series of brief mini-cases that illustrate the difficulties that can occur in input modeling, particularly violations of the usual ``i.i.d.'' assumption. Input modeling when no data are available is also described.

Chapter 10, Verification and Validation of Simulation Models , addresses the questions: How do we know our model is ``correct''? How accurate is it? What techniques can we use to assess the model's accuracy and correctness?

In this edition, the chapters on the analysis of simulation output have been renamed: Chapter 11 is Estimation of Absolute Performance and Chapter 12 is Estimation of Relative Performance . This reflects our opinion that the key issue is not how many systems designs are being simulated, but on whether performance in isolation, or relative to something else, is of interest. All examples in both chapters have been replaced with more timely applications. The spreadsheet SimulationTools.xls implements many of the statistical procedures in these two chapters as menu-driven applications. In addition, the material in Chapter 12 on metamodeling now emphasizes issues that are special to simulation experiments as opposed to regression analysis in general.

The fifth and last part of the book, entitled Applications , has chapters on manufacturing and material handling systems, and on networked computer systems.

Chapter 13, Simulation of Manufacturing and Material-Handling Systems , discusses some of the issues and performance measures specific to manufacturing and material handling, and includes an extended example and analysis of a small job shop.

Chapter 14, Simulation of Networked Computer Systems , combines elements of 4/e Chapters 14 and 15, removing the material on simulation of CPUs and memory, and adding new material relevant to the simulation of wirelessly networked systems. In particular we describe common models of user mobility, and illustrate the range of complexities in models of radio propagation.

Discrete-Event System Simulation can serve as a textbook in the following types of courses:

  • An introductory simulation course in engineering, computer science, or management (Chapters 1 through 9 and selected parts of Chapters 10 through 12 when no companion language text is used; if a companion language text is used, skip Chapter 4, and use the application Chapters 13 and 14, as appropriate);
  • A second course in simulation (all of Chapters 10 through 12, a companion language text, and an outside project; add Chapter 13 or 14, as appropriate)
We gratefully acknowledge General Motors R & D for permission to use software the third author created for them as the basis for SimulationTool.xls , and the assistance of Feng Yang and Jun Xu for modifying the software for use with this book. Ira Gerhardt translated examples written in Maple for previous editions of the book into the MATLAB examples in this edition.