Exemple #1
0
    def test_factor(self):
        fn = lambda c: ord(c) - ord('a')

        dist = Distribution({'a': 1, 'b': 2})
        dist.factor('a', 0.5)
        self.almostEqual(list(dist.as_numpy_array(fn)), [0.2, 0.8])

        dist = Distribution({'a': 1, 'b': 2, 'c': 3})
        dist.factor('b', 3)
        self.almostEqual(list(dist.as_numpy_array(fn)), [0.1, 0.6, 0.3])
Exemple #2
0
    def get_transition_mus_and_probs(self, mu, a):
        """Gets information about possible transitions for the action.

        This is the equivalent of self.mdp.get_transition_states_and_probs() for
        generalized states. So, it returns a list of (next_mu, prob) pairs,
        where next_mu must be a generalized state.
        """
        s = self.extract_state_from_mu(mu)
        base_result = self.mdp.get_transition_states_and_probs(s, a)
        most_likely_state, _ = max(base_result, key=lambda tup: tup[1])
        dist = Distribution(dict(base_result))
        dist.factor(most_likely_state, self.calibration_factor)
        return list(dist.get_dict().items())