Distributed constraint optimization

This is an old revision of this page, as edited by SyntaxPC (talk | contribs) at 00:31, 3 March 2006 (Fixed up the definition and added an example.). 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.

Definition

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   (where " " denotes the power set of  ) that maps every possible grouping of variable assignments 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 of the costs.

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.

Example

Consider 3-coloring a graph; 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 3 (there is one ___domain value for each possible color). Given the graph  , the following would be its representation as a DCOP for solving the 3-coloring problem:

  •  
  •  
  •  , where each  
  •   returns 0 in all but the following cases:
    •   (i.e. whenever   equals the value of  , the cost is infinite)
    •  
    •  
    •  
    •  
    •  
    •  
  •  

The objective, then, is to minimize  .