Assignment

Write a function probability that takes five arguments: i) an output sequence $$x$$, ii) an alphabet $$\Sigma$$ from which $$x$$ was constructed, iii) a sequence of states $$S$$, iv) a transition probability matrix $$T$$ and v) an emission probability matrix $$E$$ of an HMM ($$\Sigma$$, $$S$$, $$T$$, $$E$$). The function must return $$P(x)$$, i.e. the probability that HMM ($$\Sigma$$, $$S$$, $$T$$, $$E$$) emits $$x$$.

Example

>>> probability('xzyyzzyzyy', 'xyz', 'AB', [[0.303, 0.697], [0.831, 0.169]], [[0.533, 0.065, 0.402], [0.342, 0.334, 0.324]])
1.1005510319694851e-06
>>> probability('yyyzyxzyxxyyzyyyzxxyyzzzxzyyyyyzyxzzyxyxxzzyyzzxzzzzyyxxxzzyyzzzzzxzyyyzxyyyzyyzzyxzzxxxyxzyyxyxxyyx', 'xyz', 'ABC', [[0.375, 0.308, 0.317], [0.285, 0.416, 0.299], [0.515, 0.433, 0.052]], [[0.343, 0.501, 0.156], [0.188, 0.427, 0.385], [0.002, 0.122, 0.876]])
5.375251297986307e-49
>>> probability('yzyyxzxzxxxzxxyxzxxyzyyzyxyyzxzzxzyyyyzyyzxyzzyxzxzyyxyyxzzyyxzyzyyxzzxxyzzyyxzyxyyzyzzyyzxyxzzxyyyz', 'xyz', 'ABCD', [[0.225, 0.048, 0.4, 0.327], [0.048, 0.284, 0.348, 0.32], [0.627, 0.0, 0.053, 0.32], [0.069, 0.255, 0.248, 0.428]], [[0.344, 0.361, 0.295], [0.582, 0.248, 0.17], [0.752, 0.182, 0.066], [0.233, 0.242, 0.525]])
3.5935744486592154e-51