HOME

TheInfoList



OR:

In
probability theory Probability theory is the branch of mathematics concerned with probability. Although there are several different probability interpretations, probability theory treats the concept in a rigorous mathematical manner by expressing it through a set o ...
, tau-leaping, or τ-leaping, is an approximate method for the
simulation A simulation is the imitation of the operation of a real-world process or system over time. Simulations require the use of models; the model represents the key characteristics or behaviors of the selected system or process, whereas the ...
of a
stochastic system In probability theory and related fields, a stochastic () or random process is a mathematical object usually defined as a family of random variables. Stochastic processes are widely used as mathematical models of systems and phenomena that appea ...
. It is based on the
Gillespie algorithm In probability theory, the Gillespie algorithm (or the Doob-Gillespie algorithm or ''Stochastic Simulation Algorithm'', the SSA) generates a statistically correct trajectory (possible solution) of a stochastic equation system for which the reaction ...
, performing all reactions for an interval of length tau before updating the propensity functions. By updating the rates less often this sometimes allows for more efficient simulation and thus the consideration of larger systems. Many variants of the basic algorithm have been considered.


Algorithm

The algorithm is analogous to the
Euler method In mathematics and computational science, the Euler method (also called forward Euler method) is a first-order numerical procedure for solving ordinary differential equations (ODEs) with a given initial value. It is the most basic explicit m ...
for deterministic systems, but instead of making a fixed change x(t+\tau)=x(t)+\tau x'(t) the change is x(t+\tau)=x(t)+P(\tau x'(t)) where P(\tau x'(t)) is a Poisson distributed random variable with mean \tau x'(t). Given a state \mathbf(t)=\ with events E_j occurring at rate R_j(\mathbf(t)) and with state change vectors \mathbf_ (where i indexes the state variables, and j indexes the events), the method is as follows: # Initialise the model with initial conditions \mathbf(t_0)=\. # Calculate the event rates R_j(\mathbf(t)). # Choose a time step \tau. This may be fixed, or by some algorithm dependent on the various event rates. # For each event E_j generate K_j \sim \text(R_j\tau), which is the number of times each event occurs during the time interval [t,t+\tau). # Update the state by #:\mathbf(t+\tau)=\mathbf(t)+\sum_j K_jv_ #:where v_ is the change on state variable X_i due to event E_j. At this point it may be necessary to check that no populations have reached unrealistic values (such as a population becoming negative due to the unbounded nature of the Poisson variable K_j). # Repeat from Step 2 onwards until some desired condition is met (e.g. a particular state variable reaches 0, or time t_1 is reached).


Algorithm for efficient step size selection

This algorithm is described by Cao et al. The idea is to bound the relative change in each event rate R_j by a specified tolerance \epsilon (Cao et al. recommend \epsilon=0.03, although it may depend on model specifics). This is achieved by bounding the relative change in each state variable X_i by \epsilon/g_i, where g_i depends on the rate that changes the most for a given change in X_i. Typically g_i is equal the highest order event rate, but this may be more complex in different situations (especially epidemiological models with non-linear event rates). This algorithm typically requires computing 2N ''auxiliary values'' (where N is the number of state variables X_i), and should only require reusing previously calculated values R_j(\mathbf). An important factor in this since X_i is an integer value, then there is a minimum value by which it can change, preventing the relative change in R_j being bounded by 0, which would result in \tau also tending to 0. # For each state variable X_i, calculate the auxiliary values #: \mu_i(\mathbf) = \sum_j v_ R_j(\mathbf) #: \sigma_i^2(\mathbf) = \sum_j v_^2 R_j(\mathbf) # For each state variable X_i, determine the highest order event in which it is involved, and obtain g_i # Calculate time step \tau as #: \tau = \min_i This computed \tau is then used in Step 3 of the \tau leaping algorithm.


References

{{Reflist Chemical kinetics Computational chemistry Monte Carlo methods Stochastic simulation