Exemplo n.º 1
0
 def test_multiprocessing_works(self):
     experiment = _setup_experiment()
     experiment.num_workers = 5
     experiment.num_steps = 10
     experiment.num_runs = 5
     result = attention_allocation_experiment.run(experiment)
     result = json.loads(result)
def mle_agent_epsilon_5_resource_all_dynamics():
    """Run experiments on a greedy-epsilon mle agent, epsilon=0.6, across dynamics."""
    dynamic_values_to_test = [0.0, 0.01, 0.05, 0.1, 0.15]
    experiment = _setup_experiment()
    experiment.agent_class = allocation_agents.MLEProbabilityMatchingAgent
    experiment.agent_params = allocation_agents.MLEProbabilityMatchingAgentParams(
    )
    experiment.agent_params.burn_steps = 25
    experiment.agent_params.epsilon = 0.5
    experiment.agent_params.window = 100

    reports_dict = {}

    for value in dynamic_values_to_test:
        experiment.env_params.dynamic_rate = value
        json_report = attention_allocation_experiment.run(experiment)
        report = json.loads(json_report)

        print('\n\nMLE Agent, 6 attention units, epsilon=0.5')
        _print_discovered_missed_incidents_report(value, report)
        output_filename = 'mle_epsilon.5_6units_%f.json' % value
        with open(os.path.join(FLAGS.output_dir, output_filename), 'w') as f:
            json.dump(report, f)

        reports_dict[value] = json_report
    return reports_dict
Exemplo n.º 3
0
 def test_MLEProbabilityMatchingAgent_works(self):
     experiment = _setup_experiment()
     experiment.agent_class = allocation_agents.MLEProbabilityMatchingAgent
     experiment.agent_params = allocation_agents.MLEProbabilityMatchingAgentParams(
         burn_steps=25, window=100)
     result = attention_allocation_experiment.run(experiment)
     # Tests that the result is a valid json string.
     result = json.loads(result)
Exemplo n.º 4
0
 def test_MLEGreedyAgent_works(self):
     experiment = _setup_experiment()
     experiment.agent_class = allocation_agents.MLEGreedyAgent
     experiment.agent_params = allocation_agents.MLEGreedyAgentParams(
         burn_steps=5, window=10, alpha=5.0)
     result = attention_allocation_experiment.run(experiment)
     # Tests that the result is a valid json string.
     result = json.loads(result)
def uniform_agent_resource_all_dynamics():
    """Run experiments on a uniform agent across dynamic rates."""

    dynamic_values_to_test = [0.0, 0.01, 0.05, 0.1, 0.15]
    experiment = _setup_experiment()
    experiment.agent_class = test_util.DummyAgent

    reports_dict = {}

    for value in dynamic_values_to_test:
        print('Running an experiment...')
        experiment.env_params.dynamic_rate = value
        json_report = attention_allocation_experiment.run(experiment)
        report = json.loads(json_report)

        print('\n\nUniform Random Agent, 6 attention units')
        _print_discovered_missed_incidents_report(value, report)
        output_filename = 'uniform_6units_%f.json' % value
        with open(os.path.join(FLAGS.output_dir, output_filename), 'w') as f:
            json.dump(report, f)

        reports_dict[value] = json_report
    return reports_dict
def mle_greedy_alpha5_agent_resource_all_dynamics():
    """Run experiments on a greedy-epsilon mle agent, epsilon=0.1, across dynamics."""
    dynamic_values_to_test = [0.0, 0.01, 0.05, 0.1, 0.15]
    experiment = _setup_experiment()
    experiment.agent_class = allocation_agents.MLEGreedyAgent
    experiment.agent_params = allocation_agents.MLEGreedyAgentParams(
        burn_steps=25, window=100, alpha=0.75)

    reports_dict = {}

    for value in dynamic_values_to_test:
        print('Running an experiment...')
        experiment.env_params.dynamic_rate = value
        json_report = attention_allocation_experiment.run(experiment)
        report = json.loads(json_report)

        print('\n\nMLE Greedy Fair Agent, 6 attention units, alpha=0.75')
        _print_discovered_missed_incidents_report(value, report)
        output_filename = 'mle_greedy_fair_alpha75_6units_%f.json' % value
        with open(os.path.join(FLAGS.output_dir, output_filename), 'w') as f:
            json.dump(report, f)

        reports_dict[value] = json_report
    return reports_dict
Exemplo n.º 7
0
 def test_report_is_replicable(self):
     experiment = _setup_experiment()
     json_report = attention_allocation_experiment.run(experiment)
     json_report_second = attention_allocation_experiment.run(experiment)
     self.assertEqual(json_report, json_report_second)
Exemplo n.º 8
0
 def test_report_valid_json(self):
     # Tests that the experiment can run.
     experiment = _setup_experiment()
     result = attention_allocation_experiment.run(experiment)
     # Tests that the result is a valid json string.
     result = json.loads(result)