Comments (3)
Yes, that sounds like it would work. The rates are all stored in the discrete_jump_aggregation
, so you can definitely double the size of the problem and create a DiscreteCallback
which implements the algorithm from the paper. I don't think it would be possible to handle the variable rate callbacks with this algorithm though (the way to extend it would require doing everything via the SDE multi-level Monte Carlo method).
Also, note that there isn't a tau-leaping implementation yet, but it should be fairly simple to make a new aggregator
following the template of Direct()
, and have it instead just do the tau-leaping algorithm (and other variants of it). It seems then like there should be a way to make a construct_coupling
implementation from that paper which is independent of the choice of the constant rate jump aggregator.
(Note the "new" terminology: I denote these as "aggregators" since what things like Gillespie's method does is aggregate all of the constant rate jumps into one callback, leaving the word "algorithm" for the ODE/SDE algorithm since the main goal is to couple all of them... if you know of a better term I'm open for suggestions).
from jumpprocesses.jl.
For the split coupling it seems construct coupling
can be implemented without creating a new DiscreteCallback
directly, and this is entirely independent of the aggregator. This is nice, since many researchers may be more interested in playing around with different coupled representations than the specific algorithm.
Would you like construct_coupling
to be implemented within this package? I can put in a PR once I clean up my implementation and make some tests.
from jumpprocesses.jl.
This is nice, since many researchers may be more interested in playing around with different coupled representations than the specific algorithm.
Yeah, my main goal with all of this is to have a massive base for testing new algorithms. That already exists for differential equations through DiffEqDevTools + interop to all the C/FORTRAN solvers. I think for this to be really interesting, DiffEqDevTools/DiffEqProblemLibrary should get some tools for analyzing the timing and error of different jump problems / discrete aggregators. I'm not sure of a good way to do this though, because I'm not sure of any good discrete stochastic problems to test on with analytically known mean/variances. And this would only test in a "weak" sense: is there a way to strong test errors of jump equations? If you know of one, please share. Otherwise the only way to test errors is to do a massive simulation and get the values very exact, which can be a costly way to test.
Would you like construct_coupling to be implemented within this package?
For sure, this is a good place for it to go.
from jumpprocesses.jl.
Related Issues (20)
- Improve docstrings
- Simulating jump problems require non-integer tspan values HOT 3
- Interface for Jump simulations seems non-ideally messy? HOT 7
- possible interpolation bug in hybrid systems HOT 1
- Including global variables that participate in MassActionJumps in spatial systems HOT 10
- Remarks about docs [JuliaCon Proceedings review] HOT 4
- Remarks about paper [JuliaCon Proceedings review] HOT 1
- Remarks about package [JuliaCon Proceedings review] HOT 7
- Dynamical ODE and SDE solvers fail when they are combined with VariableRateJump. HOT 1
- Method ambiguities reported by Aqua HOT 2
- mutating parameter vector needs to call reset_aggregated_jumps! HOT 7
- Reenable formatter once SciMLStyle is fixed.
- Certain Continuous Callbacks does not work for JumpProcessess HOT 14
- Remarks about paper - episode 2 [JuliaCon Proceedings review] HOT 5
- Add / use cache-optimized indexed priority queue in NRM-based methods. HOT 1
- figure out why CI is now taking a ridiculous amount of time HOT 2
- Uniformization Direct Methods
- network free solvers
- Better documentation of `remake` mutating original problems
- Discrete events with repeated dosage fails for JumpSystems (fine ofr e.g. ODEs) HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jumpprocesses.jl.