有没有人知道Clojure中概率有限状态机/自动机的任何好资源?我知道https://github.com/ztellman/automat和https://github.com/cdorrat/reduce-fsm(但我不认为他们会按照我的意愿行事)。
见这里:https://en.wikipedia.org/wiki/Probabilistic_automaton
我的问题相当简单(我认为):我有多个状态,它们之间的转换是单数的,即现在它只是一个简单的固定分布。我仍然试图弄清楚这是否真的是一个FSM问题。
与我的问题几乎相同的例子:
假设我有以下状态:Q = {rain,snow,hail,fog,sun}
这些中的每一个都具有转换到特定状态的相关概率,即转换函数D = [0.1 0.1 0.6 0.1 0.1]
。这不是一个HMM,因为我没有任何观察,我只想模拟状态动态,即说可能采用FSM进行100个时间步骤:simulation = {rain,snow,hail,hail,sun,sun,sun,sun,sun,sun,...}
。状态转换表看起来像这样:
rain,snow,hail,fog,sun
rain 1 ,1 ,0 ,1 ,1
snow 1 ,1 ,0 ,1 ,0
hail 0 ,1 ,0 ,0 ,1
fog 1 ,1 ,0 ,0 ,1
sun 0 ,1 ,0 ,1 ,1
其中1
是有效转换,0
不是。令人困惑的是,我同时拥有有效转换的状态转换表和转换概率。现在我知道两者都有点荒谬(概率只是真实的近似值,转换表只是在实际问题中舍入为零)。
我想我想知道,这在伟大的FSM世界中的位置(这里是完整的新手)。请随意忽略转换函数或转换表,无论哪个在FSM世界中更有意义。这就是说我的问题本质上是我的系统几乎一直停留在一个状态 - 我不知道如何在没有D
的情况下进行建模但是我也碰巧知道什么是有效的状态转换(可以建立在状态转换函数中。)