def compute_distances_from_guardians(experiment_id): guardians = ['identity', 'uniformity', 'antagonism', 'stratification'] # guardians = ['antagonism'] for guardian in guardians: model = obj.Experiment(experiment_id) election_model = guardian election_2_id = 'guess' el.generate_elections(experiment_id, election_model=election_model, election_id=election_2_id, num_voters=100, num_candidates=10, special=0) # election_2 = obj.Election(experiment_id, election_2_id) scores = [] for i in range(model.num_elections): election_1_id = 'core_' + str(i) election_1 = obj.Election(experiment_id, election_1_id) election_2 = obj.Election(experiment_id, election_2_id) score = metr.get_distance(election_1, election_2, distance_name='positionwise', metric_name='emd') scores.append(score) print(election_1_id, round(score, 4)) path = os.path.join(os.getcwd(), "experiments", experiment_id, "controllers", "distances", guardian + '.txt') file_scores = open(path, 'w') for i in range(model.num_elections): file_scores.write(str(scores[i]) + "\n") file_scores.close()
def compute_distance_from_ant(experiment_id): model = obj.Experiment(experiment_id) num_elections = 1 x = 'x' scores = [] for i in range(model.num_elections): election_1_id = 'core_' + str(i) election_1 = obj.Election(experiment_id, election_1_id) election_model = 'antagonism' x = 50 election_2_id = 'guess' el.generate_elections(experiment_id, election_model=election_model, election_id=election_2_id, num_elections=num_elections, num_voters=model.num_voters, num_candidates=model.num_candidates, special=x) election_2 = obj.Election(experiment_id, election_2_id) score = metr.get_distance_from_unid(election_1, election_2) scores.append(score) print(election_1_id, round(score, 2)) path = os.path.join(os.getcwd(), "experiments", experiment_id, "controllers", "advanced", "ant.txt") file_scores = open(path, 'w') for i in range(model.num_elections): file_scores.write(str(scores[i]) + "\n") file_scores.close()
def compute_levels(experiment_id, election_model='identity'): model = obj.Experiment(experiment_id) # model_id = 'identity' num_voters = 100 num_candidates = 10 x = 'x' scores = [] for i in range(model.num_elections): election_1_id = 'core_' + str(i) election_2_id = 'guess' el.generate_elections(experiment_id, election_model=election_model, election_id=election_2_id, num_candidates=num_candidates, num_voters=num_voters, special=0) elections_ids = [election_1_id, election_2_id] score = metr.get_distance(experiment_id, elections_ids) print(election_1_id, score) scores.append(score) path = os.path.join(os.getcwd(), "experiments", experiment_id, "controllers", "advanced", "levels.txt") file_scores = open(path, 'w') for i in range(model.num_elections): file_scores.write(str(scores[i]) + "\n") file_scores.close()
def compute_highest_borda1m_map(experiment_id): model = obj.Experiment(experiment_id) scores = [] for i in range(model.num_elections): election_id = 'core_' + str(i) election = obj.Election(experiment_id, election_id) score = metr.get_highest_borda12_score(election) scores.append(score) print(election_id, score) file_name = os.path.join(os.getcwd(), "experiments", experiment_id, "controllers", "advanced", "highest_borda1m.txt") file_scores = open(file_name, 'w') for i in range(model.num_elections): file_scores.write(str(scores[i]) + "\n") file_scores.close()
def compute_highest_copeland_map(experiment_id): model = obj.Experiment(experiment_id) file_name = os.path.join(os.getcwd(), "experiments", experiment_id, "controllers", "advanced", "highest_copeland.txt") file_scores = open(file_name, 'w') for i in range(model.num_elections): election_id = "core_" + str(i) election = obj.Election(experiment_id, election_id) if not election.fake: score = metr.get_highest_copeland_score(election.potes, election.num_voters, election.num_candidates) else: score = -1 file_scores.write(str(score) + "\n") file_scores.close()