-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
History-sensitive hazard rates #22
Comments
How is initialization of the clocks ,e.g. in a Petri net model, handled at present? It's important for non-exponential passage times - as a simple test case, you could have a gamma distribution of passage times. Is it possible to specify the initialization state of the clocks? |
Hi, I'm not sure I follow what you mean by initialization of clocks. When a match is discovered, we draw from a potentially non-exponential distribution of waiting times to determine when that rewrite will fire. Are you talking about how, at t=0, there is an artifact of a bunch of matches coming into existence at the same time? |
You've got it; at t=0, you need to have a history of the states of the system (this could be that they all start at the beginning of the waiting time distribution, but it should be more general), just as you would provide to a delay differential equation system. |
@sdwfrost the clocks are taken care of by CompetingClocks.jl (formerly named Fleck.jl, we had to rename the package due to issues getting "Fleck" accepted on the general repo). When a clock is enabled the |
Thanks @slwu89! I think you're on the right track; the ideal API would be to have some |
Here is a trichotomy of ways the hazard rate of a rewrite rule could be triggered:1
As a motivating example: consider$\Xi = {sick,verySick}$ . The moment we enter the sick state, we are triggered to die in four years. However, three years in, we transition to verySick, which has as its rule that one has two years to live. With the stateful-but-not-historical approach, becoming very sick adds a year to one's life!
Another motivating example: consider a rewrite rule with a probability measure that is a decaying exponential$e^{-\alpha(t-5)}$ which is delayed 5 seconds from when the match occurs. If $\alpha$ is a continuous variable that is updated at very short intervals via continuous dynamics, then we will certainly change its value before 5 seconds have passed, and thus by the stateful approach we would constantly be resetting the 5 second clock and the event would never fire.
Currently we do not implement historical dependency, but it is something consider if we find ourselves limited by the stateful approach (and compensating for it by sticking lots of historical details into the schema itself).
Footnotes
We'll ignore the parameterization via absolute clock time for simplicity ↩
This is for simplicity; in reality we have slightly more data, i.e. a choice of X in Ob(ACSet) and morphism L->X ↩
The text was updated successfully, but these errors were encountered: