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
Example #2
0
# 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)
Example #3
0
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")
Example #4
0

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)