Integrating the Gillespie Algorithm with Swarm
From SwarmWiki
Integrating the Gillespie Algorithm with Swarm
Scott Christley
Dept. of Mathematics, Dept. of Computer Science, Center for Mathematical and Computational Biology, University of California, Irvine
The Gillespie algorithm is a discrete event procedure that can simulate the stochastic kinetics of chemical reactions in an exact way. Unlike classical continuous deterministic chemical kinetics which simulates the time-evolution of the chemical concentrations using ordinary differential equations (ODE), the Gillespie algorithm simulates each individual chemical reaction event as a stochastic process. When the number of molecules is low, then the Gillespie algorithm correctly simulates the mass-action stochastic kinetics for second- order and higher reactions, while ODE models incorrectly describe the expected value of the system nor can it give any insight into variability.
The Gillespie algorithm shares common concepts with agent-based modeling, specifically representation of a discrete number of agents where the agents behave according to probabilistic rules. One key difference is that the time of occurrence for each reaction event in the Gillespie algorithm is a random variable. Agent-based models typically represent entities of various scales with various levels of abstraction. Behaviors are scheduled (using the Swarm scheduler) at unit time intervals, sometimes without explicit units, and where time is relative between scales. This presents a challenge for integrating the Gillespie algorithm with agent-based models as a discrete time simulation only approximately solves the stochastic kinetics, and could provide incorrect results.
I will present some ideas for how the Gillespie algorithm can be integrated with agent-based models in an appropriate way such that the time-evolution of the system is correctly simulated. I will demonstrate these ideas with a modified Heatbugs application, and discuss various trade-offs.
- Presentation in PDF
![[Main Page]](/stylesheets/images/wiki.png)