Hands-On Simulation Modeling with Python Develop Simulation Models for Improved Efficiency and Precision in the Decision-Making Process, 2nd Edition

Hands-On Simulation Modeling with Python, Second Edition teaches you how to leverage Python to develop simulation models and use various Python packages. The book will help you explore various numerical simulation algorithms and concepts, such as the Markov Decision Process, Monte Carlo methods, and...

Descripción completa

Detalles Bibliográficos
Autor principal: Ciaburro, Giuseppe (-)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham : Packt Publishing, Limited 2022.
Edición:2nd ed
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009711815106719
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright and Credits
  • Dedication
  • Contributors
  • Table of Contents
  • Preface
  • Part 1: Getting Started with Numerical Simulation
  • Chapter 1: Introducing Simulation Models
  • Technical requirements
  • Introducing simulation models
  • Decision-making workflow
  • Comparing modeling and simulation
  • Pros and cons of simulation modeling
  • Simulation modeling terminology
  • Classifying simulation models
  • Comparing static and dynamic models
  • Comparing deterministic and stochastic models
  • Comparing continuous and discrete models
  • Approaching a simulation-based problem
  • Problem analysis
  • Data collection
  • Setting up the simulation model
  • Simulation software selection
  • Verification of the software solution
  • Validation of the simulation model
  • Simulation and analysis of results
  • Exploring Discrete Event Simulation (DES)
  • Finite-state machine (FSM)
  • State transition table (STT)
  • State transition graph (STG)
  • Dynamic systems modeling
  • Managing workshop machinery
  • Simple harmonic oscillator
  • The predator-prey model
  • How to run efficient simulations to analyze real-world systems
  • Summary
  • Chapter 2: Understanding Randomness and Random Numbers
  • Technical requirements
  • Stochastic processes
  • Types of stochastic processes
  • Examples of stochastic processes
  • The Bernoulli process
  • Random walk
  • The Poisson process
  • Random number simulation
  • Probability distribution
  • Properties of random numbers
  • The pseudorandom number generator
  • The pros and cons of a random number generator
  • Random number generation algorithms
  • Linear congruential generator
  • Random numbers with uniform distribution
  • Lagged Fibonacci generator
  • Testing uniform distribution
  • Chi-squared test
  • Uniformity test
  • Exploring generic methods for random distributions.
  • The inverse transform sampling method
  • The acceptance-rejection method
  • Random number generation using Python
  • Introducing the random module
  • Generating real-value distributions
  • Randomness requirements for security
  • Password-based authentication systems
  • Random password generator
  • Cryptographic random number generator
  • Introducing cryptography
  • Randomness and cryptography
  • Encrypted/decrypted message generator
  • Summary
  • Chapter 3: Probability and Data Generation Processes
  • Technical requirements
  • Explaining probability concepts
  • Types of events
  • Calculating probability
  • Probability definition with an example
  • Understanding Bayes' theorem
  • Compound probability
  • Bayes' theorem
  • Exploring probability distributions
  • The probability density function
  • Mean and variance
  • Uniform distribution
  • Binomial distribution
  • Normal distribution
  • Generating synthetic data
  • Real data versus artificial data
  • Synthetic data generation methods
  • Data generation with Keras
  • Data augmentation
  • Simulation of power analysis
  • The power of a statistical test
  • Power analysis
  • Summary
  • Part 2: Simulation Modeling Algorithms and Techniques
  • Chapter 4: Exploring Monte Carlo Simulations
  • Technical requirements
  • Introducing the Monte Carlo simulation
  • Monte Carlo components
  • First Monte Carlo application
  • Monte Carlo applications
  • Applying the Monte Carlo method for Pi estimation
  • Understanding the central limit theorem
  • Law of large numbers
  • The central limit theorem
  • Applying the Monte Carlo simulation
  • Generating probability distributions
  • Numerical optimization
  • Project management
  • Performing numerical integration using Monte Carlo
  • Defining the problem
  • Numerical solution
  • Min-max detection
  • The Monte Carlo method
  • Visual representation.
  • Exploring sensitivity analysis concepts
  • Local and global approaches
  • Sensitivity analysis methods
  • Sensitivity analysis in action
  • Explaining the cross-entropy method
  • Introducing cross-entropy
  • Cross-entropy in Python
  • Binary cross-entropy as a loss function
  • Summary
  • Chapter 5: Simulation-Based Markov Decision Processes
  • Technical requirements
  • Introducing agent-based models
  • Overview of Markov processes
  • The agent-environment interface
  • Exploring MDPs
  • Understanding the discounted cumulative reward
  • Comparing exploration and exploitation concepts
  • Introducing Markov chains
  • Transition matrix
  • Transition diagram
  • Markov chain applications
  • Introducing random walks
  • One-dimensional random walk
  • Simulating a 1D random walk
  • Simulating a weather forecast
  • Bellman equation explained
  • Dynamic programming concepts
  • Principle of optimality
  • Bellman equation
  • Multi-agent simulation
  • Schelling's model of segregation
  • Python Schelling model
  • Summary
  • Chapter 6: Resampling Methods
  • Technical requirements
  • Introducing resampling methods
  • Sampling concepts overview
  • Reasoning about sampling
  • Pros and cons of sampling
  • Probability sampling
  • How sampling works
  • Exploring the Jackknife technique
  • Defining the Jackknife method
  • Estimating the coefficient of variation
  • Applying Jackknife resampling using Python
  • Demystifying bootstrapping
  • Introducing bootstrapping
  • Bootstrap definition problem
  • Bootstrap resampling using Python
  • Comparing Jackknife and bootstrap
  • Applying bootstrapping regression
  • Explaining permutation tests
  • Performing a permutation test
  • Approaching cross-validation techniques
  • Validation set approach
  • Leave-one-out cross-validation
  • k-fold cross-validation
  • Cross-validation using Python
  • Summary.
  • Chapter 7: Using Simulation to Improve and Optimize Systems
  • Technical requirements
  • Introducing numerical optimization techniques
  • Defining an optimization problem
  • Explaining local optimality
  • Exploring the gradient descent technique
  • Defining descent methods
  • Approaching the gradient descent algorithm
  • Understanding the learning rate
  • Explaining the trial and error method
  • Implementing gradient descent in Python
  • Understanding the Newton-Raphson method
  • Using the Newton-Raphson algorithm for root finding
  • Approaching Newton-Raphson for numerical optimization
  • Applying the Newton-Raphson technique
  • The secant method
  • Deepening our knowledge of stochastic gradient descent
  • Approaching the EM algorithm
  • EM algorithm for Gaussian mixture
  • Understanding Simulated Annealing (SA)
  • Iterative improvement algorithms
  • SA in action
  • Discovering multivariate optimization methods in Python
  • The Nelder-Mead method
  • Powell's conjugate direction algorithm
  • Summarizing other optimization methodologies
  • Summary
  • Chapter 8: Introducing Evolutionary Systems
  • Technical requirements
  • Introducing SC
  • Fuzzy logic (FL)
  • Artificial neural network (ANN)
  • Evolutionary computation
  • Understanding genetic programming
  • Introducing the genetic algorithm (GA)
  • The basics of GA
  • Genetic operators
  • Applying a GA for search and optimization
  • Performing symbolic regression (SR)
  • Exploring the CA model
  • Game-of-life
  • Wolfram code for CA
  • Summary
  • Part 3: Simulation Applications to Solve Real-World Problems
  • Chapter 9: Using Simulation Models for Financial Engineering
  • Technical requirements
  • Understanding the geometric Brownian motion model
  • Defining a standard Brownian motion
  • Addressing the Wiener process as random walk
  • Implementing a standard Brownian motion.
  • Using Monte Carlo methods for stock price prediction
  • Exploring the Amazon stock price trend
  • Handling the stock price trend as a time series
  • Introducing the Black-Scholes model
  • Applying the Monte Carlo simulation
  • Studying risk models for portfolio management
  • Using variance as a risk measure
  • Introducing the Value-at-Risk metric
  • Estimating VaR for some NASDAQ assets
  • Summary
  • Chapter 10: Simulating Physical Phenomena Using Neural Networks
  • Technical requirements
  • Introducing the basics of neural networks
  • Understanding biological neural networks
  • Exploring ANNs
  • Understanding feedforward neural networks
  • Exploring neural network training
  • Simulating airfoil self-noise using ANNs
  • Importing data using pandas
  • Scaling the data using sklearn
  • Viewing the data using Matplotlib
  • Splitting the data
  • Explaining multiple linear regression
  • Understanding a multilayer perceptron regressor model
  • Approaching deep neural networks
  • Getting familiar with convolutional neural networks
  • Examining recurrent neural networks
  • Analyzing long short-term memory networks
  • Exploring GNNs
  • Introducing graph theory
  • Adjacency matrix
  • GNNs
  • Simulation modeling using neural network techniques
  • Concrete quality prediction model
  • Summary
  • Chapter 11: Modeling and Simulation for Project Management
  • Technical requirements
  • Introducing project management
  • Understanding what-if analysis
  • Managing a tiny forest problem
  • Summarizing the Markov decision process
  • Exploring the optimization process
  • Introducing MDPtoolbox
  • Defining the tiny forest management example
  • Addressing management problems using MDPtoolbox
  • Changing the probability of a fire starting
  • Scheduling project time using the Monte Carlo simulation
  • Defining the scheduling grid
  • Estimating the task's time.
  • Developing an algorithm for project scheduling.