Giter Club home page Giter Club logo

Comments (3)

ChrisRackauckas avatar ChrisRackauckas commented on June 11, 2024

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.

elevien avatar elevien commented on June 11, 2024

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.

ChrisRackauckas avatar ChrisRackauckas commented on June 11, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.