Exemple #1
0
    def test_against_MUX(self):
        scenario = MUXProblem(training_cycles=10000, address_size=3)

        algorithm = xcs.XCSAlgorithm()
        algorithm.exploration_probability = .1
        algorithm.discount_factor = 0
        algorithm.do_ga_subsumption = True
        algorithm.do_action_set_subsumption = True

        best = None
        expected = .6

        for _ in range(2):
            logging.disable(logging.CRITICAL)
            try:
                scenario.reset()
                steps, total_reward, time_passed, population = xcs.test(
                    algorithm, scenario)
            finally:
                logging.disable(logging.NOTSET)

            average_reward = total_reward / steps
            self.assertGreater(average_reward, .49)
            self.assertLess(time_passed, 40)
            if average_reward >= expected:
                break
            elif best is None or best < average_reward:
                best = average_reward
        else:
            self.fail("Failed to achieve expected average reward level. "
                      "(Missed by %f.)" % (expected - best))
Exemple #2
0
 def setUp(self):
     self.scenario = MUXProblem(10)