Exemple #1
0
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)
Exemple #2
0
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'
Exemple #3
0
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