You are on page 1of 9

Simulation Modeling and Analysis

' : . '. K^'i'-S*.';'*/,.iSr ; :^-W'*.v".>i'-i.-,'.--; i -...> ..'.; !;..; .".,.':,s : .y.--,:',.-:.V:>:

FOURTH EDITION

Averill M. Law
President Averill M. Law & Associates, Inc. Tucson, Arizona, USA www.averill-law.com

Boston Burr Ridge, IL Dubuque, IA Madison, Wl New York San Francisco St. Louis Bangkok Bogota Caracas Kuala Lumpur Lisbon London Madrid Mexico City Milan Montreal New Delhi Santiago Seoul Singapore Sydney Taipei Toronto

CONTENTS

List of Symbols Preface Chapter 1 1.1 1.2 1.3 Basic Simulation Modeling The Nature of Simulation Systems, Models, and Simulation Discrete-Event Simulation 1.3.1 Time-Advance Mechanisms 1.3.2 Components and Organization of a Discrete-Event Simulation Model Simulation of a Single-Server Queueing System 1.4.1 Problem Statement 1.4.2 Intuitive Explanation 1.4.3 Program Organization and Logic 1.4.4 C Program 1.4.5 Simulation Output and Discussion 1.4.6 Alternative Stopping Rules 1.4.7 Determining the Events and Variables Simulation of an Inventory System 1.5.1 Problem Statement 1.5.2 Program Organization and Logic 1.5.3 C Program 1.5.4 Simulation Output and Discussion Parallel/Distributed Simulation and the High Level Architecture 1.6.1 Parallel Simulation 1.6.2 Distributed Simulation and the High Level Architecture Steps in a Sound Simulation Study Other Types of Simulation 1.8.1 Continuous Simulation 1.8.2 Combined Discrete-Continuous Simulation 1.8.3 Monte Carlo Simulation 1.8.4 Spreadsheet Simulation

xv xvii 1 1 3 6 7 9 12 12 18 27 32 39 41 45 48 48 50 53 60 61 62 64 66 70 70 72 73 74
Vll

1.4

1.5

1.6

1.7 1.8

Vlll

CONTENTS

1.9 Advantages, Disadvantages, and Pitfalls of Simulation Appendix 1A: Fixed-Increment Time Advance Appendix 1B: A Primer on Queueing Systems 1B.1 Components of a Queueing System IB.2 Notation for Queueing Systems IB.3 Measures of Performance for Queueing Systems Problems Chapter 2 Modeling Complex Systems 2.1 Introduction 2.2 List Processing in Simulation 2.2.1 Approaches to Storing Lists in a Computer 2.2.2 Linked Storage Allocation 2.3 A Simple Simulation Language: simlib 2.4 Single-Server Queueing Simulation with simlib 2.4.1 Problem Statement 2.4.2 simlib Program 2.4.3 Simulation Output and Discussion 2.5 Time-Shared Computer Model 2.5.1 Problem Statement 2.5.2 simlib Program 2.5.3 Simulation Output and Discussion 2.6 Multiteller Bank With Jockeying 2.6.1 Problem Statement 2.6.2 simlib Program 2.6.3 Simulation Output and Discussion 2.7 Job-Shop Model 2.7.1 Problem Statement 2.7.2 simlib Program 2.7.3 Simulation Output and Discussion 2.8 Efficient Event-List Manipulation Appendix 2A: Problems C Code for simlib

76 78 79 80 80 81 84 91 91 92 92 93 99 108 108 108 113 114 114 115 123 126 126 127 137 140 140 142 153 155 156 169

Chapter 3 Simulation Software


3.1 Introduction 3.2 Comparison of Simulation Packages with Programming Languages 3.3 Classification of Simulation Software 3.3.1 General-Purpose vs. Application-Oriented Simulation Packages

187
187 188 189 189

CONTENTS

IX

3.4

3.5

3.6 3.7 Chapter 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7

3.3.2 Modeling Approaches 3.3.3 Common Modeling Elements Desirable Software Features 3.4.1 General Capabilities 3.4.2 Hardware and Software Requirements 3.4.3 Animation and Dynamic Graphics 3.4.4 Statistical Capabilities 3.4.5 Customer Support and Documentation 3.4.6 Output Reports and Graphics General-Purpose Simulation Packages 3.5.1 Arena 3.5.2 Extend 3.5.3 Other General-Purpose Simulation Packages Object-Oriented Simulation Examples of Application-Oriented Simulation Packages Review of Basic Probability and Statistics Introduction Random Variables and Their Properties Simulation Output Data and Stochastic Processes Estimation of Means, Variances, and Correlations Confidence Intervals and Hypothesis Tests for the Mean The Strong Law of Large Numbers The Danger of Replacing a Probability Distribution by its Mean Appendix 4A: Problems Comments on Covariance-Stationary Processes

190 192 193 193 195 195 197 198 199 200 200 206 211 212 213 214 214 214 226 228 232 237 238 239 239

Chapter 5 Building Valid, Credible, and Appropriately Detailed Simulation Models 5.1 5.2 5.3 5.4 Introduction and Definitions Guidelines for Determining the Level of Model Detail Verification of Simulation Computer Programs Techniques for Increasing Model Validity and Credibility 5.4.1 Collect High-Quality Information and Data on the System 5.4.2 Interact with the Manager on a Regulr Basis 5.4.3 Maintain a Written Assumptions Document and Perform a Structured Walk-Through 5.4.4 Validate Components of the Model by Using Quantitative Techniques

243 243 246 248 253 253 255 255 257

CONTENTS

Validate the Output from the Overall Simulation Model 5.4.6 Animation 5.5 Management's Role in the Simulation Process 5.6 Statistical Procedures for Comparing Real-World Observations and Simulation Output Data 5.6.1 Inspection Approach 5.6.2 Confidence-Interval Approach Based on Independent Data 5.6.3 Time-Series Approaches 5.6.4 Other Approaches Problems Chapter 6 Selecting Input Probability Distributions 6.1 Introduction 6.2 Useful Probability Distributions 6.2.1 Parameterization of Continuous Distributions 6.2.2 Continuous Distributions 6.2.3 Discrete Distributions 6.2.4 Empirical Distributions 6.3 Techniques for Assessing Sample Independence 6.4 Activity I: Hypothesizing Families of Distributions 6.4.1 Summary Statistics 6.4.2 Histograms 6.4.3 Quantile Summaries and Box Plots 6.5 Activity II: Estimation of Parameters 6.6 Activity III: Determining How Representative the Fitted Distributions Are 6.6.1 Heuristic Procedures 6.6.2 Goodness-of-Fit Tests 6.7 The ExpertFit Software and an Extended Example 6.8 Shifted and Truncated Distributions 6.9 Bezier Distributions 6.10 Specifying Multivariate Distributions, Correlations, and Stochastic Processes 6.10.1 Specifying Multivariate Distributions 6.10.2 Specifying Arbitrary Marginal Distributions and Correlations 6.10.3 Specifying Stochastic Processes 6.11 Selecting a Distribution in the Absence of Data 6.12 Models ofArrival Processes 6.12.1 Poisson Processes 6.12.2 Nonstationary Poisson Processes 6.12.3 BatchArrivals

5.4.5

259 264 264 265 265 269 272 272 273 275 275 281 281 282 301 301 312 315 316 318 320 326 330 330 340 353 359 361 362 363 366 367 370 375 375 377 379

CONTENTS

XI

6.13 Assessing the Homogeneity of Different Data Sets Appendix 6A: Tables of MLEs for the Gamma and Beta Distributions Problems Chapter 7 Random-Number Generators 7.1 Introduction 7.2 Linear Congruential Generators 7.2.1 Mixed Generators 7.2.2 Multiplicative Generators 7.3 Other Kinds of Generators 7.3.1 More General Congruences 7.3.2 Composite Generators 7.3.3 Feedback Shift Register Generators 7.4 Testing Random-Number Generators 7.4.1 Empirical Tests 7.4.2 Theoretical Tests 7.4.3 Some General Observations on Testing Appendix 7A: Appendix 7B: Problems Chapter 8 Generating Random Variates 8.1 Introduction 8.2 General Approaches to Generating Random Variates 8.2.1 Inverse Transform 8.2.2 Composition 8.2.3 Convolution 8.2.4 Acceptance-Rejection 8.2.5 Ratio ofUniforms 8.2.6 Special Properties 8.3 Generating Continuous Random Variates 8.3.1 Uniform 8.3.2 Exponential 8.3.3 ra-Erlang "8.3.4 Gamma 8.3.5 Weibull 8.3.6 Normal 8.3.7 Lognormal 8.3.8 Beta 8.3.9 Pearson Type V 8.3.10 Pearson Type VI 8.3.11 Log-Logistic Portable C Code for a PMMLCG Portable C Code for a Combined MRG

380 381 384 389 389 393 395 396 398 398 399 401 405 406 410 414 415 417 419 422 422 424 424 433 436 437 444 446 447 448 448 449 449 452 453 454 455 456 456 456

Xll

CONTENTS

8.3.12 Johnson Bounded 8.3.13 Johnson Unbounded 8.3.14 Bezier 8.3.15 Triangulr 8.3.16 Empirical Distributions 8.4 Generating Discrete Random Variates 8.4.1 Bernoulli 8.4.2 Discrete Uniform 8.4.3 Arbitrary Discrete Distribution 8.4.4 Binomial 8.4.5 Geometrie 8.4.6 Negative Binomial 8.4.7 Poisson 8.5 Generating Random Vectors, Correlated Random Variates, and Stochastic Processes 8.5.1 Using Conditional Distributions 8.5.2 Multivariate Normal and Multivariate Lognormal 8.5.3 Correlated Gamma Random Variates 8.5.4 Generating from Multivariate Families 8.5.5 Generating Random Vectors with Arbitrarily Specified Marginal Distributions and Correlations 8.5.6 Generating Stochastic Processes 8.6 Generating Arrival Processes 8.6.1 Poisson Processes 8.6.2 Nonstationary Poisson Processes 8.6.3 BatchArrivals Appendix 8A: Validity of the Acceptance-Rejection Method Appendix 8B: Setup for the Alias Method Problems Chapter 9 9.1 9.2 9.3 9.4 Output Data Analysis for a Single System Introduction Transient and Steady-State Behavior of a Stochastic Process Types of Simulations with Regard to Output Analysis Statistical Analysis for Terminating Simulations 9.4.1 Estimating Means 9.4.2 Estimating Other Measures of Performance 9.4.3 Choosing Initial Conditions 9.5 Statistical Analysis for Steady-State Parameters 9.5.1 The Problem of the Initial Transient 9.5.2 Replication/Deletion Approach for Means 9.5.3 Other Approaches for Means 9.5.4 Estimating Other Measures of Performance

456 457 457 457 45 8 459 460 460 460 465 465 465 466 466 467 468 469 470 470 471 472 473 473 477 477 478 479 485 485 488 490 494 495 504 507 508 508 517 519 533

CONTENTS

Xlll

9.6 Statistical Analysis for Steady-State Cycle Parameters 9.7 Multiple Measures of Performance 9.8 Time Plots of Important Variables Appendix 9A: Ratios of Expectations and Jackknife Estimators Problems Chapter 10 Comparing Alternative System Conngurations 10.1 Introduction 10.2 Confidence Intervals for the Difference Between the Expected Responses of Two Systems 10.2.1 APaired-f Confidence Interval 10.2.2 A Modified Two-Sample-f Confidence Interval 10.2.3 Contrasting the Two Methods 10.2.4 Comparisons Based on Steady-State Measures of Performance 10.3 Confidence Intervals for Comparing More than Two Systems 10.3.1 Comparisons with a Standard 10.3.2 All Pairwise Comparisons 10.3.3 Multiple Comparisons with the Best 10.4 Ranking and Selection 10.4.1 Selecting the Best of k Systems 10.4.2 Selecting a Subset of Size m Containing the Best of k Systems 10.4.3 Additional Problems and Methods Appendix 10A: Validity of the Selection Procedures Appendix 10B: Constants for the Selection Procedures Problems Chapter 11 Variance-Reduction Techniques 11.1 Introduction 11.2 Common Random Numbers 11.2.1 Rationale 11.2.2 Applicability 11.2.3 Synchronization 11.2.4 SomeExamples 11.3 Antithetic Variates 11.4 Control Variates 11.5 Indirect Estimation 11.6 Conditioning Problems

534 537 540 542 543 548 548 552 552 554 555 555 557 558 560 561 561 562 568 569 572 573 575 577 577 578 579 580 582 586 594 600 607 609 613

XIV

CONTENTS

Chapter 12 Experimental Design and Optimization 12.1 Introduction 12.2 2* Factorial Designs 12.3. 2k~p Fractional Factorial Designs 12.4 Response Surfaces and Metamodels 12.5 Simulation-Based Optimization 12.5.1 Optimum-Seeking Methods 12.5.2 Optimum-Seeking Packages Interfaced with Simulation Software Problems Chapter 13 13.1 13.2 13.3 Simulation of Manufacturing Systems Introduction Objectives of Simulation in Manufacturing Simulation Software for Manufacturing Applications 13.3.1 Flexsim 13.3.2 ProModel 13.3.3 Other Manufacturing-Oriented Simulation Packages 13.4 Modeling System Randomness 13.4.1 Sources of Randomness 13.4.2 Machine Downtimes 13.5 An Extended Example 13.5.1 Problem Description and Simulation Results 13.5.2 Statistical Calculations 13.6 A Simulation Case Study of a Metal-Parts Manufacturing Facility 13.6.1 Description of the System 13.6.2 Overall Objectives and Issues to Be Investigated 13.6.3 Development of the Model 13.6.4 Model Verification and Validation 13.6.5 Results of the Simulation Experiments 13.6.6 Conclusions and Benefits Problems Appendix References Subject Index

619 619 622 636 643 655 657 658 666 669 669 670 672 672 675 684 685 685 687 694 694 703 704 705 705 706 707 708 711 712 715 719 751

You might also like