Recitations on Simulation using Python and Simpy
This repo contains recitations (hands-on lectures) on simulation. These were originally created for IEOR4404 Simulation at Columbia University in Fall 2021.
Some of these lectures do not make much sense without the accompanying recordings. Feel free to contact me and I'll be happy to send you links to those recordings.
Recitation 1: some sampling methods
- Accept-reject sampling
- Simple Monte-Carlo integration
- The Box-Muller method for sampling normal RVs
Recitation 2: introduction to Python for Simulation
- Variables, flow control, data structures
- External libraries, numpy, matplotlib
Recitation 3: diving into randomness
- 2D Monte Carlo integration
- Three ways to sample from Homogeneous Poisson processes
Recitation 4: more Poisson processes and intro to queueing systems
- Sampling from 1D and 2D Poisson processes
- Simulating single-server queueing systems from scratch
Recitation 5: non-homogeneous Poisson processes
- Sampling from non-homogeneous Poisson processes
- Revision for the mid-term exam
Recitation 6: systems simulation with simpy
- Life sim
Recitation 7: more systems simulation
- Simulation of a web app
Recitation 8: antithetic systems simulation
- Simulating a café with antithetic variance reduction
Recitation 9: variance reduction
- When the antithetic method fails
- Contorl variates
- Importance sampling
Recitation 10: hyperparameter optimization
- An example of hyperparameter optimization with
hyperopt