Tau-hoppande
Inom sannolikhetsteorin är tau-leaping , eller τ-leaping , en ungefärlig metod för simulering av ett stokastiskt system . Den är baserad på Gillespie-algoritmen , som utför alla reaktioner under ett intervall av längd tau innan uppdatering av benägenhetsfunktionerna. Genom att uppdatera priserna mindre ofta möjliggör detta ibland effektivare simulering och därmed hänsyn till större system.
Många varianter av den grundläggande algoritmen har övervägts.
Algoritm
Algoritmen är analog med Eulermetoden för deterministiska system, men istället för att göra en fast förändring
förändringen är
där är en Poisson- fördelad slumpvariabel med medelvärdet .
Givet ett tillstånd med händelser förekommer med hastigheten och med tillståndsändringsvektorer (där indexerar tillståndsvariablerna och indexerar händelserna), är metoden som följer:
- Initiera modellen med initiala villkor .
- Beräkna händelsehastigheterna .
- Välj ett tidssteg . Detta kan vara fixat eller med någon algoritm beroende på de olika händelsehastigheterna.
- För varje händelse genererar som är antalet gånger varje händelse inträffar under tidsintervallet .
- Uppdatera tillståndet med
- där är förändringen av tillståndsvariabel på grund av händelse . Vid denna tidpunkt kan det vara nödvändigt att kontrollera att inga populationer har nått orealistiska värden (som att en population blir negativ på grund av Poisson-variabeln K j {\displaystyle K_{j .
- Upprepa från steg 2 och framåt tills något önskat villkor är uppfyllt (t.ex. en viss tillståndsvariabel når 0, eller tiden uppnås).
Algoritm för effektivt val av stegstorlek
Denna algoritm beskrivs av Cao et al. Tanken är att begränsa den relativa förändringen i varje händelsehastighet med en specificerad tolerans (Cao et al. rekommenderar , även om det kan bero på modellspecifikationer). Detta uppnås genom att begränsa den relativa förändringen i varje tillståndsvariabel med där beror på den hastighet som ändras mest för en given förändring i . Typiskt lika med den högsta ordningens händelsefrekvens, men detta kan vara mer komplext i olika situationer (särskilt epidemiologiska modeller med icke-linjära händelsefrekvenser).
Denna algoritm kräver vanligtvis beräkning av hjälpvärden (där är antalet tillståndsvariabler ), och bör endast kräva återanvändning av tidigare beräknade värden . En viktig faktor i detta eftersom är ett heltalsvärde, då finns det ett minimivärde med vilket det kan ändras, vilket förhindrar att den relativa förändringen i begränsas med 0, vilket skulle resultera i att också tenderar till 0.
- För varje tillståndsvariabel beräknar du hjälpvärdena
- För varje tillståndsvariabel , bestäm den högsta ordningens händelse som den är involverad i och erhåll
- Beräkna tidssteg som
Denna beräknade används sedan i steg 3 i hoppalgoritmen.