Computer Simulations
Preface
Prerequisites
Learning ethics
Introduction
What is a Computer simulation?
A computer simulation is the running of a probabilistic models that performs on a computer developed to replicate the characterists of a system through a mathematical model.
The mathematical model's intents imitate the real-world processes focusing on an interesting area, one that is called a system, and the computer simulation’s goal is understanding how it behaves. When we’re getting exact information, we’re obtaining the analytical solution, such models don’t fit with computer simulation. However, when you have a complex system finding an analytical solution is hard o impossible, so you need simulations to find numerical solutions, estimate the system behavior and it shed some light on your research questions.
You ought not to simulate its behavior when you can solve it analytically, it is easier to do the experiments directly, the costs are higher than the budget, or you cannot verify the model. You ought to have a complex system.
As maybe you have noted, we have some crucial concepts, in the one hand a system where we definite it as a collection of entities altogether interact to the accomplishment of some aim where its state is the collection of variables at an instant of time that authors classifies them as discrete and continuous. In another hand, the models are mathematical models that estimate complex systems’ behavior normally queue systems, differential equations, or agents with probabilistic behavior.
Why does Computer simulation matter to you?
Simulation allows you to find answers in your mathematical model and give you synthetic data for machine learning models.
Advantages and disadvantages of simulation. Areas of application.
Research
Ecosystem
Standards, jobs, industry, roles, …
Software
Once upon a time when you have to develop in special languages such as Simula or GGPSS, but today you can develop in whatever programming language you like, indeed a spreadsheet is enough to show results. Of course, developers have developed some libraries or systems based on some theory and include interactive animations that you could do easily. Some of those are
- JeLSIM - Java eLearning SIMulations. Jelsim Builder,
- NetLogo and AgentSheets are programmable microworlds allowing all sorts of agent/cells simulations
- Arena
- SIMAN
- OESjs
- Some multi-purpose cognitive/classroom tools like Freestyler do have embedded simulation tools.
Check out other ones on https://en.wikipedia.org/wiki/List_of_computer_simulation_software
SIMSCRIPT
Simulations Framework
Components of a system
Discrete and continuous systems.
Model of a system.
Types of models; Discrete-Event System Simulation
Steps in a simulation study
Case of study
Story
Computer simulation have been started on August 13, 1942, when John V. Neumann and S.Ulam simulates the nuclear weapon behavior in the Manhattan project developing the Monte Carlo method. Nowadays computer simulation serves to understand business, military, and scientific systems.
FAQ
Worked examples
Part I. Discrete Event Simulation
“Nothing in Nature is random. A thing appears random only through the incompleteness of our knowledge.” Baruch Spinoza. Ethics.
Elements of probability on focus simulation
A stochastic process is a collection of random variables that represent the behavior of a system over an indexed monotonic increasing variable . A nondeterministic process doesn’t equal a stochastic process. Stochastic process. Stochastic simulation.
Random variables
Random number generator (RNG)
A random number is realization of a random variable that is drawn from the distribution of that random variable as described by its probability density function . Because it is easier to transform in other distributions, the random variable is distributed according the uniform distribution, i.e. .
Middle-square method
Linear congruential generator
Generating Discrete Random Variables
Número pseudoaleatorio.
Una variable pseudoaleatoria es aquella generada por una función determinista.
Inverse transform sampling
https://programming.guide/generate-random-value-with-distribution.html
Generating Continuous Random variables
Methods for sampling distributions
In your simulations, you may encounter situations where certain random distributions are not available in your preferred programming language, library or environment. To address this, you can use methods such as Inverse Transform Sampling and the Box-Muller Transform.
Inverse Transform Sampling is a method for generating random numbers from any probabilistic distribution. given its cumulative distribution function (CDF). For any real random variable distributed according to a cumulative distribution function , the random variable has the distribution where is a uniform random variable on . Formally, and .
Proof.
Example.
Now, we want to create our random number generator that follows the exponential distribution which is Its CDF is , therefore . Now if you introduce a random number that follows a uniform distribution on , you get a random number generator that follows the exponential distribution.
from random import random
def exponential_random(lamb=2):
u=random()
return -ln(1-u)/lamb
Poisson processes
Gaussian Process
Discrete-Time Markov Chains
Monte Carlo methods
Monter Carlo methods is an heuristic algorithm that follows
- Generate N random inputs.
- Perform the simulation for each input.y
- Aggregate the output of the simulation.
for i in random_inputs():
x=agg(simulate(i))
if reaches_the_condition(x):
return (i,x)
Finding
n=1000
f=len([_ for _ in range(n) if euclidean([random(),random()]) <= 1])
4*f/l
https://geometrycollective.github.io/monte-carlo/
Cross-entropy methods
Population Genetics
Statistical Analysis of Simulated data
Statistical Validation techniques
Exercises
Summary
FAQ
Reference Notes
The discrete event simulation approach
Introduction
Discrete-Event Simulation
Waiting for lines concepts
Probability distributions
Paradigms are Event worldview, Processing Network Worldview, and Object worldview.
- Queue Network —waiting lines. GPSS and SIMAN/AREA
- Event-Based Simulation paradigm with SIMSCRIPT
- Object-Orientation and the (co-routine-based) Process Interaction paradigm with Simula
Simulator tools
JSIM graph
Single-Server Queue System
A queuing system with two servers in Series
A queuing System with two parallel servers
An Inventory system
An Insurance Risk Model
A repair problem
Parallel/Distributed Simulation
List Processing in Simulation
Time-Shared Computer Model
Multiteller Bank with Jockeying
Job-Shop Model
Efficient Event-List Management
Worked examples
Variance-Reduction Techniques
Experimental Design and Optimization
Output data analysis for a single system
Comparing Alternative system configurations
Agent-Based Simulation and System Dynamics
Simulation of Manufacturing systems
Software
Projects
Part II. Continuous and nonlinear Event Simulation
An introduction to computer simulation. M.M. Woolfson and G.J. Pert
Computer Aided Simulations
Differential equations
Example
…
Mechanics
Types
The Monte Carlo method
Particle methods
Continuum physics — the finite-difference method
Continuum physics
Complex models
Validation and testing
Finite-difference methods
Simulation with particles
The Monte Carlo method
The wave equation
The finite-element method
Cross-Entropy Method
https://web.mit.edu/6.454/www/www_fall_2003/gew/CEtutorial.pdf
Soft-body and rigid body dynamics
Computational fluid dynamics
Next steps
References
[1] Daniel P. Maki Maynard Thompson, Mathematical Modeling and Computer Simulation
[2] W. David Kelton, Randall P. Sadowski, Nancy B. Zupick, Simulation with Arena, 6th edition. (McGraw-Hill Professional, 2014). ISBN 978-0-07-337628-8
[3] Altiok, Tayfur and Benjamin Melamed.Simulation Modeling and Analysis with ARENA. Elsevier, Inc., 2007. ISBN 978-0-12-370523-5
[4] Rossetti, Manuel D. Simulation Modeling with Arena. John Wiley & Sons, Inc., 2010. ISBN 978-0-470-09726-7
[5] Sturrock, D.T., Pegden, C.D., Introduction to SIMAN, Simulation Conference, 1990. Proceedings.,
[6] Winter C. Dennis Pegden, Robert E. Shannon, Randall P. Sadowski, Introduction to Simulation Using Siman, McGraw-Hill 1995
[7] Fishman, G. (2013). Discrete-event simulation: modeling, programming, and analysis. Springer Science & Business Media.
[8] Gordon, G. (1969). System simulation. Ed. PrenticeHall.
[9] Kelton, W. D., & Law, A. M. (2000). Simulation modeling and analysis. Boston: McGraw Hill.
[10] Michael Pidd. Computer Simulation in Management Science
[11] Young, Joseph and Findley, Michael. 2014. "Computational Modeling to Study Conflicts and Terrorism." Routledge Handbook of Research Methods in Military Studies edited by Soeters, Joseph; Shields, Patricia and Rietjens, Sebastiaan. pp. 249–260. New York: Routledge,
[12] R. Frigg and S. Hartmann, Models in Science. Entry in the Stanford Encyclopedia of Philosophy.
[13] E. Winsberg Simulation in Science. Entry in the Stanford Encyclopedia of Philosophy.
[14] S. Hartmann, The World as a Process: Simulations in the Natural and Social Sciences, in: R. Hegselmann et al. (eds.), Modelling and Simulation in the Social Sciences from the Philosophy of Science Point of View, Theory and Decision Library. Dordrecht: Kluwer 1996, 77–100.
[15] E. Winsberg, Science in the Age of Computer Simulation. Chicago: University of Chicago Press, 2010.
[16] P. Humphreys, Extending Ourselves: Computational Science, Empiricism, and Scientific Method. Oxford: Oxford University Press, 2004.
[17] James J. Nutaro (2011). Building Software for Simulation: Theory and Algorithms, with Applications in C++. John Wiley & Sons. ISBN 978-1-118-09945-2.
[18] Desa, W. L. H. M., Kamaruddin, S., & Nawawi, M. K. M. (2012).
[19] Tutorial: Web-Based Simulation with OESjs. (2023, January 31). Retrieved from https://sim4edu.com/reading/introtutorial
[20] Nature in Code Biology in Javascript - Learning programming while discovering the rules that govern life by Marcel Salathe
Modeling of Aircraft Composite Parts Using Simulation. Advanced Material Research, 591–593, 557–560.
"Simulation Modeling and Analysis" by Law. Other fine choices include "Discrete-Event System Simulation" by Banks, Carson, & Nelson, "Principles of Discrete-Event Simulation" by Fishman, "Discrete-Event Simulation: A First Course" by Leemis & Park, or "Graphical Simulation Modeling and Analysis Using SIGMA for Windows" by Schruben
Discrete Event Simulation Engineering. (2023, January 31). Retrieved from https://sim4edu.com/reading/des-engineering
Winter Simulation Conference Archive
,
pick any year, and check out the articles in either the introductory or
advanced tutorials. I'd particularly recommend Schriber's
Inside Discrete-Event Simulation Software: How It Works and Why It Matters
series, and
Fundamentals of Simulation Modeling
by Sanchez.
"Discrete-Event System Simulation" by Banks, Carson, Nelson & Nicol
and "Simulation Modeling and Analysis" by Law & Kelton to be most
helpful)
'Simulation' by Ross
is another very useful resource.
Simulation modeling and analysis by Averill M. Law
https://hrms.secab.org/resource/450_15CS834_SMS_SIETNotes_NEW.pdf
BANKS J., J. S. Carson and B. L. Nelson 1996. Discrete-Event System Simulation,
second edition. Prentice-Hall, Englewood Cliffs, NJ.
GORDON G. 1996. System Simulation, second edition. Prentice-Hall, Englewood Cliffs,
NJ.
LAW A. and W. D. Kelton 1991. Simulation Modeling and Analysis, second edition.
McGraw-Hill, New York, NY.
SCHRUBEN L. W. 1983. Simulation modeling with event graphs. Communications of
the ACM, 26:957-963
https://pascua.iit.comillas.edu/aramos/simio/transpa/s_Simulation_reduced_final.pdf
"* Simulations | AP CSP | Khan Academy." 2 Mar. 2023, www.khanacademy.org/computing/ap-computer-science-principles/x2d2f703b37b450a3:simulations.
Collaboration., Dylan Nelson for the Tng. "IllustrisTNG - Main." 2 Mar. 2023, www.tng-project.org.
Hands-On Simulation Modeling with Python - Second Edition by Giuseppe Ciaburro
Modeling and Simulation in Python by Allen B. Downey
Introduction to Modeling and Simulation by Mark W. Spong