pydcop.distribution.oilp_cgdp
OILP-CGDP : Optimal ILB-based distribution for Computation Graph
This is a generic distribution method, which works for any computation graph (constraint graph, factor graph, etc.).
This method optimizes the distribution for: * hosting costs * communication cost, made of communication load (betwwen two computation)
and route costs (between two agents)
A weighted sum is used to aggregate these two objectives.
Agents’s capacities are used as hard constraints for the distribution.
References
AAMAS 2018
- capacity_fonc(agents_def: Iterable[AgentDef]) Callable[[str], float]
- Parameters:
agents_def –
- Returns:
a function that gives the agent’s capacity given it’s name
- distribute(computation_graph: ComputationGraph, agentsdef: Iterable[AgentDef], hints: DistributionHints | None = None, computation_memory=None, communication_load=None, timeout=600) Distribution
- Parameters:
computation_graph –
agentsdef –
hints –
computation_memory –
communication_load –
- footprint_fonc(cg: ComputationGraph, computation_memory: Callable[[ComputationNode], float]) Callable[[str], float]
- Parameters:
cg (ComputationGraph) – the computation graph
computation_memory (Callable) –
- a function giving a memory footprint from a computation node and a set of links
in the computation graph
- Returns:
a function that returns the memory footprint of a computation given it’s name
- Return type:
Callable