Jump to content

Distributed constraint optimization

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by SyntaxPC (talk | contribs) at 14:42, 12 May 2007 (Added a link to DisCSP). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Distributed constraint optimization (DCOP) is the distributed analogue to constraint optimization. A DCOP is a problem in which a group of agents must distributedly choose values for a set of variables such that the cost of a set of constraints over the variables is either minimized or maximized.

Definitions

DCOP

A DCOP can be defined as a tuple , where:

  • is a set of agents;
  • is a set of variables, ;
  • is a set of domains, , where each is a finite set containing the values to which its associated variable my be assigned;
  • is function[1][2]
    that maps every possible variable assignment to a cost. This function can also be thought of as defining constraints between variables;
  • is a function mapping variables to their associated agent. implies that it is agent 's responsibility to assign the value of variable . Note that it is not necessarily true that is either an injection or surjection; and
  • is an operator that aggregates all of the individual costs for all possible variable assignments. This is usually accomplished through summation:
    .

The objective of a DCOP is to have each agent assign values to its associated variables in order to either minimize or maximize for a given assignment of the variables.

Context

A Context is a variable assignment for a DCOP. This can be thought of as a function mapping variables in the DCOP to their current values:

Note that a context is essentially a partial solution and need not contain values for every variable in the problem; therefore, implies that the agent has not yet assigned a value to variable . Given this representation, the "domain" (i.e., the set of input values) of the function f can be thought of as the set of all possible contexts for the DCOP. Therefore, in the remainder of this article we may use the notion of a context (i.e., the function) as an input to the function.

Example problems

Distributed Graph Coloring

The graph coloring problem is as follows: given a graph and a set of colors , assign each vertex, , a color, , such that the number of adjacent vertices with the same color is minimized.

As a DCOP, there is one agent per vertex that is assigned to decide the associated color. Each agent has a single variable whose associated domain is of cardinality (there is one domain value for each possible color). For each vertex , create a variable in the DCOP with domain . For each pair of adjacent vertices , create a constraint of cost 1 if both of the associated variables are assigned the same color:

The objective, then, is to minimize .

Distributed Multiple Knapsack Problem

The Distributed Multiple- variant of the Knapsack problem is as follows: given a set of items of varying volume and a set of knapsacks of varying capacity, assign each item to a knapsack such that the amount of overflow is minimized. Let be the set of items, be the set of knapsacks, be a function mapping items to their volume, and be a function mapping knapsacks to their capacities.

To encode this problem as a DCOP, for each create one variable with associated domain . Then for all possible context :

where is a function such that

Algorithms

Algorithm Name Year Introduced Complexity Correctness/
Completeness
Implementations
NCBB
No-Commitment Branch and Bound[3]
2006 Memory: Polynomial (or any-space[4]) Proven Reference Implementation: not publicly released

DCOPolis ( GNU LGPL)

DPOP
Distributed Pseudotree Optimization Procedure[5]
2004 Memory: Exponential Proven Reference Implementation: FRODO (free but proprietary)

DCOPolis ( GNU LGPL)

OptAPO
Asynchronous Partial Overlay[6]
2004 Proven, but proof of completeness has been challenged[7] Reference Implementation: OptAPO

DCOPolis ( GNU LGPL; In Development)

Adopt
Asynchronous Backtracking[8]
2003 Memory: Polynomial (or any-space[9]) Proven Reference Implementation: Adopt

DCOPolis ( GNU LGPL)

See also

Notes and references

  1. ^ "" denotes the power set of
  2. ^ "" and "" denote the Cartesian product.
  3. ^ Chechetka, Anton; Sycara, Katia (May), "No-Commitment Branch and Bound Search for Distributed Constraint Optimization" (PDF), Proceedings of the Fifth International Joint Conference on Autonomous Agents and Multiagent Systems, pp. 1427–1429 {{citation}}: Check date values in: |date= and |year= / |date= mismatch (help)
  4. ^ Chechetka, Anton; Sycara, Katia (March), "An Any-space Algorithm for Distributed Constraint Optimization" (PDF), Proceedings of the AAAI Spring Symposium on Distributed Plan and Schedule Management {{citation}}: Check date values in: |date= and |year= / |date= mismatch (help)
  5. ^ Petcu, Adrian; Faltings, Boi (September), "A Distributed, Complete Method for Multi-Agent Constraint Optimization" (PDF), Proceedings of the Fifth International Workshop on Distributed Constraint Reasoning {{citation}}: Check date values in: |date= and |year= / |date= mismatch (help)
  6. ^ Mailler, Rober; Lesser, Victor (2004), "Solving Distributed Constraint Optimization Problems Using Cooperative Mediation" (PDF), Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems, IEEE_Computer_Society, pp. 438–445
  7. ^ Grinshpoun, Tal; Zazon, Moshe; Binshtok, Maxim; Meisels, Amnon (2007), "Termination Problem of the APO Algorithm" (PDF), Proceedings of the Eighth International Workshop on Distributed Constraint Reasoning, pp. 117–124
  8. ^ Modi, Pragnesh Jay; Shen, Wei-Min; Tambe, Milind; Yokoo, Makoto (2003), "An asynchronous complete method for distributed constraint optimization" (PDF), Proceedings of the second international joint conference on autonomous agents and multiagent systems, ACM Press, pp. 161–168
  9. ^ Matsui, Toshihiro; Matsuo, Hiroshi; Iwata, Akira (February), "Efficient Method for Asynchronous Distributed Constant Optimization Algorithm" (PDF), Proceedings of Artificial Intelligence and Applications, pp. 727–732 {{citation}}: Check date values in: |date= and |year= / |date= mismatch (help)