Exemplo n.º 1
0
def test_create_agents_from_range():
    agts = create_agents("a",
                         range(20),
                         default_route=2,
                         default_hosting_costs=7)
    assert isinstance(agts["a08"], AgentDef)
    assert len(agts) == 20
Exemplo n.º 2
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)
Exemplo n.º 3
0
def test_dcop_add_agents_from_dict():
    dcop = DCOP()
    agts = create_agents('a', [1, 2, 3])
    dcop.add_agents(agts)

    assert dcop.agent('a1').name == 'a1'
    assert dcop.agent('a2').name == 'a2'
    assert dcop.agent('a3').name == 'a3'
Exemplo n.º 4
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'
Exemplo n.º 5
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'])
Exemplo n.º 7
0
def test_solve_max(toy_pb):

    variables, constraints = toy_pb

    dcop = DCOP(name="toy",
                variables={v.name: v
                           for v in variables},
                constraints={c.name: c
                             for c in constraints},
                objective="max")
    dcop.add_agents(create_agents("a", [1, 2, 3, 4]))

    assignment = solve(dcop, "syncbb", "oneagent")

    # Note: this is supposed to be exactly the same pb as bellow
    assert assignment == {"vA": "G", "vB": "R", "vC": "R", "vD": "G"}
Exemplo n.º 8
0
def test_solve_min(toy_pb):

    variables, constraints = toy_pb

    dcop = DCOP(name="toy",
                variables={v.name: v
                           for v in variables},
                constraints={c.name: c
                             for c in constraints},
                objective="min")
    dcop.add_agents(create_agents("a", [1, 2, 3, 4]))

    assignment = solve(dcop, "syncbb", "oneagent")

    # Note: this is exactly the same pb as in the file bellow
    # dcop = load_dcop_from_file(["/pyDcop/tests/instances/graph_coloring_tuto.yaml"])

    assert assignment == {"vA": "G", "vB": "G", "vC": "G", "vD": "G"}
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
Exemplo n.º 10
0
def test_create_agents_with_capacity():
    agts = create_agents("a", range(20), capacity=100)
    assert isinstance(agts["a18"], AgentDef)
    assert agts["a05"].capacity == 100
    assert len(agts) == 20
Exemplo n.º 11
0
def test_api_create_several_agents():

    agents = create_agents('a', [1, 2, 3])
    assert agents['a1'].name == 'a1'
    assert 'a3' in agents