def __init__(self, tr: SSf) -> None: if verify_mp(tr): self.all_states_list: Sequence[S] = list(get_all_states(tr)) self.transitions: SSf = { s: get_lean_transitions(v) for s, v in tr.items() } else: raise ValueError
def __init__(self, info: Mapping[S, Mapping[A, Tuple[Mapping[S, float], float]]], gamma: float) -> None: if verify_mdp(info): d = {k: zip_dict_of_tuple(v) for k, v in info.items()} d1, d2 = zip_dict_of_tuple(d) self.all_states: Set[S] = get_all_states(info) self.state_action_dict: Mapping[S, Set[A]] = \ get_actions_for_states(info) self.transitions: Mapping[S, Mapping[A, Mapping[S, float]]] = \ {s: {a: get_lean_transitions(v1) for a, v1 in v.items()} for s, v in d1.items()} self.rewards: Mapping[S, Mapping[A, float]] = d2 self.gamma: float = gamma self.terminal_states: Set[S] = self.get_terminal_states() else: raise ValueError