Clojure中的概率自动机/有限状态机

时间:2016-02-16 18:22:30

标签: java clojure finite-automata state-machine

有没有人知道Clojure中概率有限状态机/自动机的任何好资源?我知道https://github.com/ztellman/automathttps://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的情况下进行建模但是我也碰巧知道什么是有效的状态转换(可以建立在状态转换函数中。)

0 个答案:

没有答案