# Algorithms

## The Gillespie Algorithm

Gillespie's algorithm, also known as the Stochastic Simulation Algorithm, was first described in 1976. It's a popular and, more importantly, exact, dynamic Monte Carlo method, used in the simulation of stochastic systems.

- DT Gillespie. A general method for numerically simulating the stochastic time evolution of coupled chemical reactions.
*Journal of Computational Physics***22**, 403-434 (1976). - DT Gillespie. Exact stochastic simulation of coupled chemical reactions.
*Journal of Physical Chemistry***81**, 2340–2361 (1977)

## Tau-Leaping

The tau-leaping algorithm is an approximation of Gillespie's algorithm that provides a trade-off between speed and accuracy. Instead of performing one event at a time, the tau-leaping algorithm estimates all of the events that occurred in a given interval of time [t, t+tau), based on the event rates at time t. It can run a great deal faster, but too large a step size can cause significant errors.

- Gillespie, DT. Approximate accelerated stochastic simulation of chemically reacting systems.
*Journal of Chemical Physics***115**, 1716–1711 (2001).

## Adaptive Tau-Leaping

Not yet implemented.

- Y Cao, DT Gillespie, and LR Petzold. The adaptive explicit-implicit tau-leaping method with automatic tau selection.
*Journal of Chemical Physics***126**, 224101 (2007).

## The Next-Reaction Method

Not yet implemented.

- MA Gibson and J Bruck. Efficient exact stochastic simulation of chemical systems with many species and many channels.
*Journal of Physical Chemistry A***104**, 1876–1889 (2000).