#"EqualSay_G1_Default", #"Random_Dictator", #"Player1_Dictator", #"EqualSay_G2_Default", #"EqualSay_G1_Default", #"Player1_Dictator", #"Random_Dictator", ] #transition = transitions[0] transition = "EqualSay_G1_Default" # 1.0 - 10**(-2) = 0.99 -> exponent = num decimal places delta = 1.0 - 10**(-11) S8_game = S_8_Game(c=c, b1=1.8, b2=b2, game_transition_dynamics=transition) S12_game = S_12_Game(c=c, b1=1.8, b2=b2, game_transition_dynamics=transition) S16_game = S_16_Game(c=c, b1=1.8, b2=b2, game_transition_dynamics=transition) games = [S8_game, S12_game, S16_game] folder_timestamp = time.strftime("date_%Y_%m_%d_%H_%M_%S") params_str = "c_{:.2f}_b2_{:.2f}_delta_{:.10f}".format(c, b2, delta) b1_list = np.arange(1.0, 3.2, 0.14) def run_dict(b1_list): d = {} parent_folder = "data/full_coop_spe/dict/{:s}/"\ .format(params_str)
transitions = [ #"EqualSay_G1_Default", #"Random_Dictator", #"Player1_Dictator", "EqualSay_G2_Default", #"EqualSay_G1_Default", #"Player1_Dictator", #"Random", ] transition = transitions[0] # 1.0 - 10**(-2) = 0.99 -> exponent = num decimal places delta = 1.0 - 10**(-5) S08_game = S_8_Game(c=c, b1=1.8, b2=b2, game_transition_dynamics=transition) S12_game = S_12_Game(c=c, b1=1.8, b2=b2, game_transition_dynamics=transition) S16_game = S_16_Game(c=c, b1=1.8, b2=b2, game_transition_dynamics=transition) games = [S08_game, S12_game, S16_game] s_08_strat = (1, 0, 0, 1, 1, 0, 0, 0) s_12_strat = (1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0) v_s08 = S08_game.get_stationary_dist(s_08_strat, s_08_strat, S08_game.f) v_s12 = S12_game.get_stationary_dist(s_12_strat, s_12_strat, S12_game.f) print("v_s08: ", v_s08[0]) print("v_s12: ", v_s12[0]) s_08_strat_allc2 = (1, 1, 1, 1, 0, 0, 0, 0) s_08_strat_allc1 = (1, 1, 1, 1, 1, 1, 1, 1)
lst1 = [10**-4, 10**-3, 10**-2, 10**-1, 10**0, 10**1, 10**2] lst2 = [2, 4, 8, 16, 32, 64, 128] lst3 = [10**-1, 10**0, 10**1] lst4 = [10**-4, 10**-3, 10**-2, 10**-2, 10**-1] lst5 = [10**-4] param_to_change, param_list = ("N", lst2) fixed_b1 = 1.8 hacky_spe_b1 = 1.84 transition = "EqualSay_G2_Default" game = S_12_Game(c=c, b1=fixed_b1, b2=b2, game_transition_dynamics=transition) # define folder name folder_timestamp = time.strftime("date_%Y_%m_%d_%H_%M_%S") subfolder = "param_effect_fixed/{:s}/{:s}/".format(param_to_change, folder_timestamp) data_folder = "data/{:s}".format(subfolder) img_folder = data_folder def do_runs(param_value, params_dict, spe_d): data_filename = "{:s}{:s}_{:2f}.csv".format( data_folder, param_to_change, param_value) #get_filename(param_value)
data_folder = get_folder(folder_timestamp, directory="data/game_comp/") img_folder = get_folder(folder_timestamp, directory="imgs/game_comp/") print("\nData Folder: {:s}\n".format(data_folder)) #b1_list = np.arange(1.0, 3.2, 0.56) #b1_list = [1.8] #b1_list = np.arange(1.0, 3.2, 0.14) transition = transitions[0] games = [ #S_2_Game(c=1.0, b1=1.2), #S_4_Game(c=1.0, b1=b2), #S_4_Game(c=1.0, b1=b1), #S_8_Game(c=1.0, b1=b1, b2=b2, game_transition_dynamics=transitions[0]), S_12_Game(c=1.0, b1=b1, b2=b2, game_transition_dynamics=transitions[0]), #S_16_Game(c=1.0, b1=b1, b2=b2, game_transition_dynamics=transitions[0]), ] def do_run(run_id, data_folder, game_str, num_timesteps, params_dict, game_b1): data_filename = data_folder + game_str + "_game_b1_{:.2f}".format(game_b1) \ + "_run_{:d}".format(run_id) + ".csv" # announce what we are calculating print("Game: {:s}, Run: {:d}".format(game_str, run_id)) # get data start_time = time.time() player_c_list = get_evolution_all(num_timesteps, params_dict, game_b1) elapsed_time = time.time() - start_time
transitions = [ #"NA", "EqualSay_G2_Default", #"EqualSay_G1_Default", #"Unilateral_Dictator", #"Random_Dictator", #"Random", ] # b1_list = np.arange(1.0, 3.2, 0.14) games = [ #S_2_Game(c=1.0, b1=1.2), #S_4_Game(c=1.0, b1=2.0), #S_8_Game(c=1.0, b1=2.0, b2=1.2, game_transition_dynamics=transitions[0]), S_12_Game(c=1.0, b1=2.0, b2=1.2, game_transition_dynamics=transitions[0]), S_16_Game(c=1.0, b1=2.0, b2=1.2, game_transition_dynamics=transitions[0]), ] save_params_dict = { # test params "num_runs": num_runs, "num_timesteps": num_timesteps, # evolutionary params "N": 100, "eps": 0.001, "beta": 2.0, "strategy_type": "pure", # or "stochastic"
print("\nFolder: {:s}\n".format(folder)) b1_list = [1.8] b1 = 1.8 c = 1.0 b2 = 1.2 #np.arange(1.0, 3.2, 0.14) # games = [ # S_4_Game(c=1.0, b1=2.0), # S_12_Game(c=1.0, b1=2.0, b2=1.2), S_16_Game(c=1.0, b1=2.0, b2=1.2) # ] games = [S_8_Game(c, b1, b2), S_12_Game(c, b1, b2), S_16_Game(c, b1, b2)] def get_filepath(game_str, eps, beta, num_timesteps): params_str = "{:s}_T_{:.2e}".format(game_str, num_timesteps) filepath = folder + params_str + ".csv" return filepath def write_b1_effect_data(): eps, beta = get_params(["eps", "beta"], params_dict) for num_timesteps in num_timesteps_list: for game in games:
from class_one_games import S_2_Game, S_4_Game from class_two_games import S_8_Game, S_12_Game, S_16_Game from simulation_evolution_avgs import * import pandas as pd import pathlib # to create directory if needed from parameters import * from helper_functions import save_dict, read_dict param_to_change, param_list = ("N", [128]) b1_list = np.arange(1.0, 3.2, 0.14) game = S_12_Game(c=c, b1=1.8, b2=b2, game_transition_dynamics="EqualSay_G2_Default") # define folder name folder_timestamp = time.strftime("date_%Y_%m_%d_%H_%M_%S") subfolder = "param_effect/{:s}/{:s}/".format(param_to_change, folder_timestamp) data_folder = "data/{:s}".format(subfolder) img_folder = data_folder def save_params(folder, params_filename="params"): # create directory pathlib.Path(folder).mkdir(parents=True, exist_ok=True) dict_to_save = {key: val for key, val in save_params_dict.items()}
import numpy as np import matplotlib.pyplot as plt import time from class_one_games import S_2_Game, S_4_Game from class_two_games import S_12_Game, S_16_Game from helper_functions import * from simulation_evolution_avgs import * # Parameters num_timesteps = 10**4 game = S_12_Game(c=1.0, b1=2.0, b2=1.2, \ game_transition_dynamics = "EqualSay_G2_Default", num_timesteps= num_timesteps) params_dict = { "game": game, "N": 100, "eps": 0.001, "beta": 2.0, "host": tuple(0.005 for _ in range(game.strat_len)), "strategy_type": "pure", # or "stochastic" } b1_list = np.arange(1.0, 3.2, 0.42) start_time = time.time() #g1_cc_avg, g2_cc_avg, g1_rate = get_evolution_avgs(num_timesteps, params_dict) get_b1_evolution_data(num_timesteps, b1_list, params_dict) elapsed_time = time.time() - start_time print("Elapsed Time: {:.2f} min".format(elapsed_time / 60.0))