def test_episodes_reproducible(): num_dcs = 5 num_customers = 2 # scale up to 200 num_commodities = 10 # scale up to 50 orders_per_day = 2 # was going to be 0.1 but ran too slow. # orders_per_day = 2 dcs_per_customer = 2 demand_mean = 500 demand_var = 150 num_steps = 10 # 1 month # num_episodes = 500 num_episodes = 1 reproducibility.set_seeds(0) runner_donothing_1 = experiment_runner.create_donothing_experiment_runner( num_dcs, num_customers, dcs_per_customer, demand_mean, demand_var, num_commodities, orders_per_day, num_steps) runner_donothing_1.run_episodes( num_steps, num_episodes, orders_per_day, experiment_name=f"donothing_reproducible_test_1") reproducibility.set_seeds(0) runner_donothing_2 = experiment_runner.create_donothing_experiment_runner( num_dcs, num_customers, dcs_per_customer, demand_mean, demand_var, num_commodities, orders_per_day, num_steps, ) runner_donothing_2.run_episodes( num_steps, num_episodes, orders_per_day, experiment_name=f"donothing_reproducible_test_2") a = pd.read_csv( "data/results/donothing_reproducible_test_1/ep_0/movement_detail_report.csv" )[['source_name', 'destination_name']] b = pd.read_csv( "data/results/donothing_reproducible_test_2/ep_0/movement_detail_report.csv" )[['source_name', 'destination_name']] compare = pd.concat([a, b], axis=1) compare.columns = ['s1', 'd1', 's2', 'd2'] print(compare) print("Equality: ", a.equals(b)) assert a.equals(b)
def run_agent_66_custom_agent(): print("===RUNNING agent66===") reproducibility.set_seeds(0) print("Check this array to ensure reproducibility") print("Reproducibility agent66", np.random.randint(0, 500, size=(5, 1))) runner_bestfit = experiment_runner.create_agent_66_experiment_runner( num_dcs, num_customers, dcs_per_customer, demand_mean, demand_var, num_commodities, orders_per_day, num_steps) runner_bestfit.run_episodes(num_steps, num_episodes, orders_per_day, experiment_name=f"z_debug_agent_highest") print("===DONE agent66===")
def run_bestfit(): print("===RUNNING BESTFIT===") reproducibility.set_seeds(0) print("Check this array to ensure reproducibility") print("Reproducibility BESTFIT", np.random.randint(0, 500, size=(5, 1))) runner_bestfit = experiment_runner.create_bestfit_experiment_runner( num_dcs, num_customers, dcs_per_customer, demand_mean, demand_var, num_commodities, orders_per_day, num_steps) runner_bestfit.run_episodes(num_steps, num_episodes, orders_per_day, experiment_name=f"bestfit_few_warehouses_v3") print("===DONE BESTFIT===")
def run_donothing(): print("!!!RUNNING donothing!!!") reproducibility.set_seeds(0) print("Check this array to ensure reproducibility") print("Reproducibility donothing", np.random.randint(0, 500, size=(5, 1))) runner_donothing = experiment_runner.create_donothing_experiment_runner( num_dcs, num_customers, dcs_per_customer, demand_mean, demand_var, num_commodities, orders_per_day, num_steps, ) runner_donothing.run_episodes( num_steps, num_episodes, orders_per_day, experiment_name=f"donotrhing_few_warehouses_v3") print("!!!DONE donothing!!!")
def run_random(): print("***RUNNING RANDOM***") reproducibility.set_seeds(0) print("Check this array to ensure reproducibility") print("Reproducibility RANDOM", np.random.randint(0, 500, size=(5, 1))) runner_random = experiment_runner.create_random_experiment_runner( num_dcs, num_customers, dcs_per_customer, demand_mean, demand_var, num_commodities, orders_per_day, num_steps, ) runner_random.run_episodes(num_steps, num_episodes, orders_per_day, experiment_name=f"dumb_few_warehouses_v3") print("***DONE RANDOM***")
def run_dqn(): print("!!!RUNNING DQN!!!") reproducibility.set_seeds(0) print("Check this array to ensure reproducibility") print("Reproducibility DQN", np.random.randint(0, 500, size=(5, 1))) runner_dqn = experiment_runner.create_dqn_experiment_runner( num_dcs, num_customers, dcs_per_customer, demand_mean, demand_var, num_commodities, orders_per_day, num_steps, ) runner_dqn.run_episodes(num_steps, num_episodes, orders_per_day, experiment_name=f"dqn2_few_warehouses_v3") runner_dqn.agent.save_weights("models/dqn2_few_warehouses_v3.h5") print("!!!DONE DQN!!!")