def n_players_plots(alg_list, noise=0.1, ranking=Copeland, horizon=1000): alg_names = [str(alg(0, ranking)) for alg in alg_list] print('alg_names', alg_names) players = [1000,200,100,40,20,10] # [20,18,16,14,12,10] n_trials = [1, 10, 10, 30, 30,30] # [10,10,10,10,10,10] # cum_regs = np.zeros((len(players), len(alg_list))) for num_players in players: ds = GenDataset analysis = Analysis(alg_list, dataset=ds, name=str(ds(0,0))+'_noise'+str(noise)+'_Copeland', ranking_procedure=ranking, noise=noise, n_trials = n_trials[players.index(num_players)], n_players=num_players, horizon=horizon) cum_reg = analysis.get_cum_regret_n(t=horizon-1) cum_regs[players.index(num_players),:] = cum_reg print('cum_reg', cum_regs) with open('players_test_'+str(players.index(num_players))+'.txt','w') as f: f.write(str(cum_regs.tolist())) f.close() plot_n_cumregrets(cum_regs, alg_names, players) plot_n_cumregrets(cum_regs, alg_names, players, axis='log') plot_n_cumregrets(cum_regs, alg_names, players, axis='loglog')
def n_noise_plots(alg_list, noises, n_trials=10, num_players=10, ranking=Copeland, horizon=100, ds=NormalGenDataset): alg_names = [str(alg(0, ranking)) for alg in alg_list] print('alg_names', alg_names) n_trials = [n_trials] * len(noises) cum_regs = np.zeros((len(noises), len(alg_list))) for noise in noises: analysis = Analysis(alg_list, dataset=ds, name=str(ds(0,0))+'_noise'+str(noise)+'_Copeland', ranking_procedure=ranking, noise=noise, n_trials = n_trials[noises.index(noise)], n_players=num_players, horizon=horizon) cum_reg = analysis.get_cum_regret_n(t=horizon-1) cum_regs[noises.index(noise),:] = cum_reg print('cum_reg', cum_regs) with open('noises_test_'+str(noises.index(noise))+'.txt','w') as f: f.write(str(cum_regs.tolist())) f.close() if ds == NormalGenDataset: ds_label = "Dataset Generated by Normal" elif ds == GenDataset: ds_label = "Dataset Generated by Bernoulli" else: raise "Unrecognized dataset" plot_n_cumregrets(cum_regs, alg_names, noises, ds_label=ds_label) plot_n_cumregrets(cum_regs, alg_names, noises, axis='log', ds_label=ds_label) plot_n_cumregrets(cum_regs, alg_names, noises, axis='loglog', ds_label=ds_label)