In [2]:
from sympy import *; init_session()
from applpy import *
import numpy as np
In [2]:
P = np.array([
[0, 0.1, 0.5, 0, 0.2, 0.2, 0, 0],
[0.1, 0.2, 0, 0, 0.6, 0, 0, 0.1],
[0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0.2, 0, 0.8],
[0, 0.3, 0, 0, 0, 0.4, 0.1, 0.2],
[0, 0, 0, 0, 0, 0.6, 0, 0.4]
])
P2 = np.array([
[0.2,0,0,0.8,0],
[0,1,0,0,0],
[0,0.1,0.5,0,0.4],
[0.4,0,0,0.6,0],
[0,0.3,0,0,0.7]
])
In [6]:
X = MarkovChain(P =[
[0, 0.1, 0.5, 0, 0.2, 0.2, 0, 0],
[0.1, 0.2, 0, 0, 0.6, 0, 0, 0.1],
[0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0.2, 0, 0.8],
[0, 0.3, 0, 0, 0, 0.4, 0.1, 0.2],
[0, 0, 0, 0, 0, 0.6, 0, 0.4]
],
states = ['blue','green','purple','red',
'yellow', 'black', 'orange', 'white'])
In [7]:
X.classify_states()
Out[7]:
In [8]:
X.reducible
Out[8]:
In [3]:
X = MarkovChain(P =[
[0, 0.1, 0.5, 0, 0.2, 0.2, 0, 0],
[0.1, 0.2, 0, 0, 0.6, 0, 0, 0.1],
[0, 0, 1, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0, 0, 0],
[0, 0, 0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0.2, 0, 0.8],
[0, 0.3, 0, 0, 0, 0.4, 0.1, 0.2],
[0, 0, 0, 0, 0, 0.6, 0, 0.4]
])
X.reachability()
Out[3]:
In [ ]: