Simulation Modeling using the Java Simulation Library
Preface
About the Author
1
Simulation Modeling
1.1
Simulation Modeling
1.2
Why Simulate?
1.3
Types of Systems and Simulation Models
1.4
Simulation: Descriptive or Prescriptive Modeling?
1.5
Randomness in Simulation
1.6
Simulation Languages
1.7
Simulation Methodology
1.8
Overview of the Java Simulation Library
1.9
Exercises
2
Random Number Generation
2.1
Random Number Generator
2.2
Random Package
2.2.1
Creating and Using Streams
2.2.2
Common Random Numbers
2.2.3
Creating and Using Antithetic Streams
2.3
Frequently Asked Questions
3
Random Variate Generation and Probability Modeling
3.1
Continuous and Discrete Random Variables
3.2
Overview of Generation Algorithms
3.3
Creating and Using Random Variables
3.4
Modeling Probability Distributions
4
Collecting Statistics
4.1
Creating and Using a Statistic
4.2
Histograms and Frequencies
4.3
Batch Statistics
4.4
Summary
5
Monte Carlo Methods
5.1
Simple Monte Carlo Integration
5.2
Review of Statistical Concepts
5.2.1
Point Estimates and Confidence Intervals
5.2.2
Sample Size Determination
5.2.3
Determining the Sample Size for a Monte Carlo Simulation Experiment
5.3
Simulating the Game of Craps
5.4
The News Vendor Problem
5.5
Summary
6
Introduction to Discrete Event Modeling
6.1
Introduction
6.2
Discrete-Event Dynamic Systems
6.3
How the Discrete-Event Clock Works
6.4
Simulating a Queueing System By Hand
6.5
Modeling DEDS in the JSL
6.5.1
Event Scheduling
6.5.2
Simple Event Scheduling Examples
6.5.3
Up and Down Component Example
6.5.4
Modeling a Simple Queueing System
6.6
Summary
7
Modeling with Queues, Resources, and Stations
7.1
Terminology of Simulation Modeling
7.2
Entities and Attributes
7.3
Event Generators
7.4
The Station Package
7.4.1
Modeling Simple Queueing Stations
7.5
Sharing a Resource
7.6
Complex System Example
7.6.1
Conceptualizing the Model
7.6.2
Implementing the Model
7.6.3
Model Results
7.7
Summary
8
Analyzing Simulation Output
8.1
Types of Statistical Variables
8.2
Types of Simulation With Respect To Output Analysis
8.3
Analysis of Finite Horizon Simulations
8.3.1
Determining the Number of Replications
8.4
Finite Horizon Example
8.4.1
Conceptualizing the Model
8.4.2
Sequential Sampling for Finite Horizon Simulations
8.5
Analysis of Infinite Horizon Simulations
8.5.1
Assessing the Effect of Initial Conditions
8.5.2
Performing the Method of Replication-Deletion
8.5.3
The Method of Batch Means
8.5.4
Performing the Method of Batch Means
8.6
Comparing System Configurations
8.6.1
Comparing Two Systems
8.6.2
Multiple Comparisons
8.7
Summary
Appendix
A
Miscellaneous Utility Classes
A.1
Reporting
A.2
JSLMath
Class
A.3
The JSL Database
A.3.1
The JSL Database Structure
A.3.2
Creating and Using a Default JSL Database
A.3.3
Creating and Using JSL Databases
A.3.4
Querying the JSL Database
A.3.5
Additional Functionality
B
Generating Pseudo-Random Numbers and Random Variates
B.1
Pseudo Random Numbers
B.1.1
Random Number Generators
B.2
Generating Random Variates from Distributions
B.2.1
Inverse Transform Method
B.2.2
Convolution
B.2.3
Acceptance/Rejection
B.2.4
Mixture Distributions, Truncated Distributions, and Shifted Random Variables
B.3
Summary
B.4
Exercises
C
Probability Distribution Modeling
C.1
Random Variables and Probability Distributions
C.2
Modeling with Discrete Distributions
C.3
Fitting Discrete Distributions
C.3.1
Fitting a Poisson Distribution
C.3.2
Visualizing the Data
C.3.3
Estimating the Rate Parameter for the Poisson Distribution
C.3.4
Chi-Squared Goodness of Fit Test for Poisson Distribution
C.3.5
Chi-Squared Goodness of Fit Test
C.3.6
Using the fitdistrplus R Package on Discrete Data
C.3.7
Fitting a Discrete Empirical Distribution
C.4
Modeling with Continuous Distributions
C.5
Fitting Continuous Distributions
C.5.1
Visualizing the Data
C.5.2
Statistically Summarize the Data
C.5.3
Hypothesizing and Testing a Distribution
C.5.4
Kolmogorov-Smirnov Test
C.5.5
Visualizing the Fit
C.5.6
Using the Input Analyzer
C.6
Testing Uniform (0,1) Pseudo-Random Numbers
C.6.1
Chi-Squared Goodness of Fit Tests for Pseudo-Random Numbers
C.6.2
Higher Dimensional Chi-Squared Test
C.6.3
Kolmogorov-Smirnov Test for Pseudo-Random Numbers
C.6.4
Testing for Independence and Patterns in Pseudo-Random Numbers
C.7
Additional Distribution Modeling Concepts
C.8
Summary
C.9
Exercises
D
Queueing Theory
D.1
Single Line Queueing Stations
D.1.1
Queueing Notation
D.1.2
Littleās Formula
D.1.3
Deriving Formulas for Markovian Single Queue Systems
D.2
Examples and Applications of Queueing Analysis
D.2.1
Infinite Queue Examples
D.2.2
Finite Queue Examples
D.3
Non-Markovian Queues and Approximations
D.4
Summary of Queueing Formulas
D.4.1
M/M/1 Queue
D.4.2
M/M/c Queue
D.4.3
M/M/c/k Queue
D.4.4
M/G/c/c Queue
D.4.5
M/M/1/k Queue
D.4.6
M/M/c/k Queue
D.4.7
M/M/1/k/k Queue
D.4.8
M/M/c/k/k Queue
D.5
Exercises
E
Distributions
E.1
Discrete Distrbutions
E.2
Continuous Distrbutions
F
Statistical Tables
References
Published with bookdown
JSL - Java Simulation Library
A
Miscellaneous Utility Classes