def __init__(self, S, A, R, p):
    "\n\t\tParameters\n\t\t----------\n\t\tS : int\n\t\t\tNumber of states\n\t\tA : matrix\n\t\t\tA[s][a] is True iff a is permitted in s\n\t\tR : list\n\t\t\tA list of reward generators\n\t\tp : matrix\n\t\t\tp[s][a][s'] = p(s'|s,a)\n\t\t"
    self.S = list(range(S))
    (self.A, self.R, self.p) = (A, R, p)
    self.no_of_states = S
    self.no_of_actions = len(A[0])
Parameters
----------
S : int
        Number of states
A : matrix
        A[s][a] is True iff a is permitted in s
R : list
        A list of reward generators
p : matrix
        p[s][a][s'] = p(s'|s,a)
def __init__(self, S, A, R, p):
    "\n\t\tParameters\n\t\t----------\n\t\tS : int\n\t\t\tNumber of states\n\t\tA : matrix\n\t\t\tA[s][a] is True iff a is permitted in s\n\t\tR : list\n\t\t\tA list of reward generators\n\t\tp : matrix\n\t\t\tp[s][a][s'] = p(s'|s,a)\n\t\t"
    self.S = list(range(S))
    (self.A, self.R, self.p) = (A, R, p)
    self.no_of_states = S
    self.no_of_actions = len(A[0])