Table of Contents

Preface

Part 1: Getting Started with Numerical Simulation

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

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

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

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

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

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

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

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

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

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

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

Exploring triangular distribution

Summary

12

Simulating Models for Fault Diagnosis in Dynamic Systems

Technical requirements

Introducing fault diagnosis

Understanding fault diagnosis methods

The machine-learning-based approach

Fault diagnosis model for a motor gearbox

Fault diagnosis system for an unmanned aerial vehicle

Summary

13

What’s Next?

Summarizing simulation modeling concepts

Generating random numbers

Applying Monte Carlo methods

Addressing the Markov decision process

Analyzing resampling methods

Exploring numerical optimization techniques

Using artificial neural networks for simulation

Applying simulation models to real life

Modeling in healthcare

Modeling in financial applications

Modeling physical phenomenon

Modeling fault diagnosis system

Modeling public transportation

Modeling human behavior

Next steps for simulation modeling

Increasing the computational power

Machine-learning-based models

Automated generation of simulation models

Summary

Index

Other Books You May Enjoy

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.14.141.115