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 may be assigned;
- is a function
that maps every possible variable assignment to a cost. This function can also be thought of as defining constraints between variables however the variables must not Hermitian; - 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.
Read more about this topic: Distributed Constraint Optimization, Definitions