In Computer Science or related computational fields, there is no true randomness but pseudo-randomness. It is useful to have pseudo-random number generator as it would help to re-run the same set of experiments with same set of "random numbers". This is achieved by giving a "seed" to these random number generators.
Running a single experiment multiple times and averaging the results is more likely to give us the accurate result.
ie., The probability or accuracy will increase with the greater number of experiment runs.
For a defined domain (state space) of values, each value has equal likelihood of being picked.
Computation/Function that will return same output for same input.
Note: Same as a Pure Function in FP
A system is defined as a set of states.
For Markov Chains, the system transitions from one state to another. The system/transition satisfies Markov Property
Markov Property implies that the transition to next state does not depend on previous state but only current state. That is, it is said to be "Memoryless".
Goal of Monte Carlo Method/Experiments (MCm) is to run an experiment multiple times for a random set of inputs and to average out the results to find the most likely result we can expect in real life.
This can be done an actual experiment or a simulation.
Taken from wiki
* - ie., model the system/process as a pure function and evaluate using random inputs.
Ip :: List[value]
pd :: Ip => value
fn :: value => result
n iterations of fn(pd)
Prior to MCm, simulations would perform many (all?) deterministic computations and a random sample of results was used to determine the reliability of the simulations.
MCm inverts this. It starts with a random sample of inputs and then averages all the outputs of the deterministic computation to reduce error in the final result.
Simulation: Simulation is an abstract/mathematical representation of a system (reality) Monte Carlo Method: Technique used to solve a mathematical/statistical problem Monte Carlo Simulation: Use Monte Carlo method with multiple sample of inputs to get a statistical/data driven model of an abstract system.
LoLN is a statistical method of computing values.
MCm(sim) relies upon the principle of LoLN to guarantee that the final result it computes is the most likely result if the system plays out across the whole domain/state space.
Markov Chain Monte Carlo method uses a set of inputs generated from a markov chain that represents the likely set of states.