AlgebraicJulia / AlgebraicJulia/AlgebraicABMs.jl

History-sensitive hazard rates

未关闭
#22 5 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Julia
星标
10
派生
4
PR 合并指标
30 天内没有已合并 PR

描述

Here is a trichotomy of ways the hazard rate of a rewrite rule could be triggered:[^1]

1. Stateless: we simply provide a probability measure $Meas$ which is sampled whenever a match is found.
2. Stateful: Let $\Xi:=Ob(ACSet)$.[^2] We provide a function $\Xi \rightarrow Meas$, which is sampled whenever a match is found. However, because the event may happen in the future, our world state could change before the event is triggered. There are a few ways we could deal with this, but by default we would cancel the timer, and resample a new event with the new state.
3. Historical: We provide a function $\sum_{t \in [0,\infty)} \Xi^{[0,t]} \rightarrow Meas$, which takes any trajectory (of some length) and gives a probability measure. In this case, we are not forced to draw from our single $\Xi \rightarrow Meas$ function at the current time $\Xi$ has changed, but we can take into account what has happened.

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).

[^1]: We'll ignore the parameterization via absolute clock time for simplicity
[^2]: This is for simplicity; in reality we have slightly more data, i.e. a choice of X in Ob(ACSet) and morphism L->X

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。