def generate_random_scenario(num_issues, domain_size, num_constraints, dim_probs, width_probs): lisp_output = subprocess.check_output([ util.get_lisp_compiler_path(), '-l', util.get_lisp_scenariogen_path(), '-e', "(enrique :numissues " + str(num_issues) + " :domainsize " + str(domain_size) + " :numconstraints " + str(num_constraints) + " :dimprobs '" + dim_probs + " :widthprobs '" + width_probs + ")" ]) lisp_id = lisp_output.decode("utf-8").strip()[1:-1] hex_id = uuid.uuid4().hex[:10].upper() subprocess.check_output([ 'mv', util.get_scenario_path(num_issues, domain_size, num_constraints) + str(lisp_id) + '.xml', util.get_scenario_path(num_issues, domain_size, num_constraints) + str(hex_id) + '.xml' ]) return hex_id
# domain_size = 2 # num_constraints = 3 # scenario_id = '9EE0527DCA' # num_issues = 2 # domain_size = 2 # num_constraints = 100 num_issues = 1 domain_size = 3 num_constraints = 5 scenario_id = '6D9AA1D636' # scenario_id = generate_uniform_random_scenario(num_issues, domain_size, num_constraints) scenario = ET.parse( util.get_scenario_path(num_issues, domain_size, num_constraints) + scenario_id + '.xml') import time halving = True print("Ready to start solving scenario ", scenario_id) print("num_issues = ", num_issues) print("domain_size = ", domain_size) print("num_constraints = ", num_constraints) t0 = time.time() # if halving: # maximizer, max_value = halving_strategy(scenario) # else: #maximizer, max_value = solve_welfare_max(scenario, bounds=(100, 1000)) maximizer, max_value = solve_welfare_max(scenario, verbose=True)
import xml.etree.ElementTree as ET from util import util from valuations import read_xml as xml def f(p1, p2): print("p1 = ", p1) print("p2 = ", p2) print(f(1, 2)) print({1: 2}.items()) exit() scenario = ET.parse(util.get_scenario_path(5, 5, 5) + 'C25F2639FE' + '.xml') u_funcs = xml.read_ufuns(scenario) contract = (2.0, 3.0, 1.0, 3.0, 3.0) contract = (1.9, 4.0, 4.0, 4.0, 4.0) contract = (2.2, 1.2, 1.9, 2.7, 3.6) agent_1_value = xml.query_ufun(contract, 0, u_funcs) agent_2_value = xml.query_ufun(contract, 1, u_funcs) print(agent_1_value + agent_2_value) exit() from typing import List print("test")
mediators_id_to_name = {1: 'WelfareMax', 2: 'PolyMediatorIndividual2', 3: 'PolyMediatorIndividual3', 4: 'PolyMediatorIndividual4', 5: 'BayesMediatorSocial', 6: 'BayesMediatorSocial2', 7: 'BayesMediatorSocial3', 8: 'BayesMediatorSocial4', 9: 'GPMediatorIndividual', 10: 'GPMediatorSocial', 11: 'PolyMediatorSocial2', 12: 'PolyMediatorSocial3', 13: 'PolyMediatorSocial4' } for s in r: # Read parameters of the scenario. db_scenario_id, xml_id, num_issues, domain_size, num_constraints = s[0], s[1], s[2], s[3], s[4] lower_bounds = [0.0 for i in range(0, num_issues)] upper_bounds = [float(domain_size - 1) for i in range(0, num_issues)] scenario = ET.parse(util.get_scenario_path(num_issues, domain_size, num_constraints) + xml_id + '.xml') # Get the utility functions from the scenarios. u_funcs = xml.get_ufuns(scenario) # Construct the base parameters used by all mediators. mediator_base_params = dict([('num_issues', num_issues), ('num_agents', 2), ('u_funcs', u_funcs), ('lower_bounds', lower_bounds), ('upper_bounds', upper_bounds), ('num_init_random_points', num_init_random_points), ('num_random_restarts', num_random_restarts)]) # Run each mediator. for mediator_db_id in range(1, 14): if check_mediator_result(c, db_scenario_id, mediator_db_id): print("Running ", mediators_id_to_name[mediator_db_id], " for \t", s, "...", end='', flush=True) the_mediator = mediator_triage(mediator_db_id, mediator_base_params)