Example #1
0
 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
Example #2
0
 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