def test_api_solve_dsa(): dcop = dcop_graphcoloring_3() # Agents dcop.add_agents(create_agents('a', [1, 2, 3], capacity=50)) assignment = solve(dcop, 'dsa', 'adhoc', timeout=3)
def test_api_solve_dpop(): dcop = dcop_graphcoloring_3() # Agents dcop.add_agents(create_agents('a', [1, 2, 3], capacity=50)) assignment = solve(dcop, 'dpop', 'oneagent', timeout=3) assert assignment['v1'] == 'R' assert assignment['v2'] == 'G' assert assignment['v3'] == 'R'
def test_api_distribute_dsa_adhoc(): from pydcop.computations_graph import factor_graph from pydcop.distribution import adhoc from pydcop.algorithms import dsa dcop = dcop_graphcoloring_3() agents = create_agents('a', [1, 2, 3], capacity=100) dcop._agents_def = agents cg = factor_graph.build_computation_graph(dcop) dist = adhoc.distribute(cg, dcop.agents.values(), computation_memory=dsa.computation_memory, communication_load=dsa.communication_load) assert dist.is_hosted(['v1', 'v2', 'v3'])
def test_api_distribute_maxsum_ilp_compref(): from pydcop.computations_graph import factor_graph from pydcop.distribution import ilp_compref from pydcop.algorithms import maxsum dcop = dcop_graphcoloring_3() agents = create_agents('a', range(1, 4), capacity=100) dcop._agents_def = agents cg = factor_graph.build_computation_graph(dcop) dist = ilp_compref.distribute(cg, dcop.agents.values(), computation_memory=maxsum.computation_memory, communication_load=maxsum.communication_load) assert dist.is_hosted(['v1', 'v2', 'v3'])
def test_api_distribute_dsa_oneagent(): from pydcop.computations_graph import factor_graph from pydcop.distribution import oneagent from pydcop.algorithms import dsa dcop = dcop_graphcoloring_3() # 5 constraints and 3 variable => 8 computations : we need 8 agents agents = create_agents('a', range(1, 9), capacity=100) dcop._agents_def = agents cg = factor_graph.build_computation_graph(dcop) dist = oneagent.distribute(cg, dcop.agents.values(), computation_memory=dsa.computation_memory, communication_load=dsa.communication_load) assert dist.is_hosted( ['v1', 'v2', 'v3', 'cost_1', 'cost_2', 'cost_3', 'c2', 'c1']) for agt in agents: assert len(dist.computations_hosted(agt)) == 1