Distributed constraint optimization
Distributed constraint optimization (DCOP or DisCOP) 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 minimized. Distributed Constraint Satisfaction is a framework for describing a problem in terms of constraints that are known and enforced by distinct participants (agents). The constraints are described on some variables with predefined domains, and have to be assigned to the same values by the different agents.
Problems defined with this framework can be solved by any of the algorithms that are designed for it.
The framework was used under different names in the 1980s. The first known usage with the current name is in 1990.[citation needed]
Definitions
DCOP
The main ingredients of a DCOP problem are agents and variables. Importantly, each variable is owned by an agent; this is what makes the problem distributed. Formally, a DCOP is a tuple [math]\displaystyle{ \langle A, V, \mathfrak{D}, f, \alpha, \eta \rangle }[/math], where:
- [math]\displaystyle{ A }[/math] is the set of agents, [math]\displaystyle{ \{a_1, \dots, a_{|A|}\} }[/math].
- [math]\displaystyle{ V }[/math] is the set of variables, [math]\displaystyle{ \{v_1, v_2, \dots, v_{|V|}\} }[/math].
- [math]\displaystyle{ \mathfrak{D} }[/math] is the set of variable-domains, [math]\displaystyle{ \{D_1, D_2, \dots, D_{|V|}\} }[/math], where each [math]\displaystyle{ D_j \in \mathfrak{D} }[/math] is a finite set containing the possible values of variable [math]\displaystyle{ v_j }[/math].
- If [math]\displaystyle{ D_j \in \mathfrak{D} }[/math] contains only two values (e.g. 0 or 1), then [math]\displaystyle{ v_j }[/math] is called a binary variable.
- [math]\displaystyle{ f }[/math] is the cost function. It is a function[1][math]\displaystyle{ f : \bigcup_{S \subseteq V} \times_{v_j \in S} D_j \to \R }[/math] that maps every possible partial assignment to a cost. Usually, only few values of [math]\displaystyle{ f }[/math] are non-zero, and it is represented as a list of the tuples that are assigned a non-zero value. Each such tuple is called a constraint. Each constraint [math]\displaystyle{ C }[/math] in this set is a function [math]\displaystyle{ f_C: D_1\times\cdots\times D_k \to \R }[/math] assigning a real value to each possible assignment of the variables. Some special kinds of constraints are:
- Unary constraints - constraints on a single variable, i.e., [math]\displaystyle{ f_C: D_j \to \R }[/math] for some [math]\displaystyle{ v_j\in V }[/math].
- Binary constraints - constraints on two variables, i.e, [math]\displaystyle{ f_C: D_{j_1} \times D_{j_2} \to \R }[/math] for some [math]\displaystyle{ v_{j_1}, v_{j_2} \in V }[/math].
- [math]\displaystyle{ \alpha }[/math] is the ownership function. It is a function [math]\displaystyle{ \alpha: V \to A }[/math] mapping each variable to its associated agent. [math]\displaystyle{ \alpha(v_j) \mapsto a_i }[/math] means that variable [math]\displaystyle{ v_j }[/math] "belongs" to agent [math]\displaystyle{ a_i }[/math]. This implies that it is agent [math]\displaystyle{ a_i }[/math]'s responsibility to assign the value of variable [math]\displaystyle{ v_j }[/math]. Note that [math]\displaystyle{ \alpha }[/math] is not necessarily an injection, i.e., one agent may own more than one variables. It is also not necessarily a surjection, i.e., some agents may own no variables.
- [math]\displaystyle{ \eta }[/math] is the objective function. It is an operator that aggregates all of the individual [math]\displaystyle{ f }[/math] costs for all possible variable assignments. This is usually accomplished through summation:[math]\displaystyle{ \eta(f) \mapsto \sum_{s \in \bigcup_{S \subseteq V} \times_{v_j \in S} D_j} f(s). }[/math]
The objective of a DCOP is to have each agent assign values to its associated variables in order to either minimize or maximize [math]\displaystyle{ \eta(f) }[/math] for a given assignment of the variables.
Assignments
A value assignment is a pair [math]\displaystyle{ (v_j, d_j) }[/math] where [math]\displaystyle{ d_j }[/math] is an element of the domain [math]\displaystyle{ D_j }[/math].
A partial assignment is a set of value-assignments where each [math]\displaystyle{ v_j }[/math] appears at most once. It is also called a context. This can be thought of as a function mapping variables in the DCOP to their current values:[math]\displaystyle{ t : V \to (D \in \mathfrak{D}) \cup \{\emptyset\}. }[/math]
Note that a context is essentially a partial solution and need not contain values for every variable in the problem; therefore, [math]\displaystyle{ t(v_i) \mapsto \emptyset }[/math] implies that the agent [math]\displaystyle{ \alpha(v_i) }[/math] has not yet assigned a value to variable [math]\displaystyle{ v_i }[/math]. Given this representation, the "domain" (that is, 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 [math]\displaystyle{ t }[/math] function) as an input to the [math]\displaystyle{ f }[/math] function.
A full assignment is an assignment in which each [math]\displaystyle{ v_j }[/math] appears exactly once, that is, all variables are assigned. It is also called a solution to the DCOP.
An optimal solution is a full assignment in which the objective function [math]\displaystyle{ \eta(f) }[/math] is optimized (i.e., maximized or minimized, depending on the type of problem).
Example problems
Various problems from different domains can be presented as DCOPs.
Distributed graph coloring
The graph coloring problem is as follows: given a graph [math]\displaystyle{ G = \langle N, E \rangle }[/math] and a set of colors [math]\displaystyle{ C }[/math], assign each vertex, [math]\displaystyle{ n\subset N }[/math], a color, [math]\displaystyle{ c \leq C }[/math], 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 [math]\displaystyle{ |C| }[/math] (there is one domain value for each possible color). For each vertex [math]\displaystyle{ n_i \leq N }[/math], there is a variable [math]\displaystyle{ v_i \in V }[/math] with domain [math]\displaystyle{ D_i = C }[/math]. For each pair of adjacent vertices [math]\displaystyle{ \langle n_i, n_j \rangle \in E }[/math], there is a constraint of cost 1 if both of the associated variables are assigned the same color: [math]\displaystyle{ (\forall c \subseteq C : f(\langle v_i, c \rangle, \langle v_j, c \rangle ) \mapsto 1). }[/math] The objective, then, is to minimize [math]\displaystyle{ \eta(f) }[/math].
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 [math]\displaystyle{ I }[/math] be the set of items, [math]\displaystyle{ K }[/math] be the set of knapsacks, [math]\displaystyle{ s : I \to \N }[/math] be a function mapping items to their volume, and [math]\displaystyle{ c : K \to \N }[/math] be a function mapping knapsacks to their capacities.
To encode this problem as a DCOP, for each [math]\displaystyle{ i \in I }[/math] create one variable [math]\displaystyle{ v_i \in V }[/math] with associated domain [math]\displaystyle{ D_i = K }[/math]. Then for all possible contexts [math]\displaystyle{ t }[/math]:[math]\displaystyle{ f(t) \mapsto \sum_{k \in K} \begin{cases} 0 & r(t,k) \leq c(k), \\ r(t,k)-c(k) & \text{otherwise}, \end{cases} }[/math]where [math]\displaystyle{ r(t,k) }[/math] represents the total weight assigned by context [math]\displaystyle{ t }[/math] to knapsack [math]\displaystyle{ k }[/math]:[math]\displaystyle{ r(t,k) = \sum_{v_i \in t^{-1}(k)} s(i). }[/math]
Distributed item allocation problem
The item allocation problem is as follows. There are several items that have to be divided among several agents. Each agent has a different valuation for the items. The goal is to optimize some global goal, such as maximizing the sum of utilities or minimizing the envy. The item allocation problem can be formulated as a DCOP as follows.[2]
- Add a binary variable vij for each agent i and item j. The variable value is "1" if the agent gets the item, and "0" otherwise. The variable is owned by agent i.
- To express the constraint that each item is given to at most one agent, add binary constraints for each two different variables related to the same item, with an infinite cost if the two variables are simultaneously "1", and a zero cost otherwise.
- To express the constraint that all items must be allocated, add an n-ary constraint for each item (where n is the number of agents), with an infinite cost if no variable related to this item is "1".
Other applications
DCOP was applied to other problems, such as:
- coordinating mobile sensors;
- meeting and task scheduling.
Algorithms
DCOP algorithms can be classified in several ways:[3]
- Completeness - complete search algorithms finding the optimal solution, vs. local search algorithms finding a local optimum.
- Search strategy - best-first search or depth-first branch-and-bound search;
- Synchronization among agents - synchronous or asynchronous;
- Communication among agents - point-to-point with neighbors in the constraint graph, or broadcast;
- Communication topology - chain or tree.
ADOPT, for example, uses best-first search, asynchronous synchronization, point-to-point communication between neighboring agents in the constraint graph and a constraint tree as main communication topology.
Synchronous Branch and BoundAlgorithm Name | Year Introduced | Memory Complexity | Number of Messages | Correctness (computer science)/ Completeness (logic) |
Implementations |
---|---|---|---|---|---|
ABT Asynchronous Backtracking |
1992 | Note: static ordering, complete | |||
AWC Asynchronous Weak-Commitment |
1994 | Note: reordering, fast, complete (only with exponential space) | |||
DBA Distributed Breakout Algorithm |
1995 | Note: incomplete but fast | FRODO version 1[yes|permanent dead link|dead link}}] | ||
1997 | Complete but slow | ||||
IDB
Iterative Distributed Breakout |
1997 | Note: incomplete but fast | |||
AAS Asynchronous Aggregation Search |
2000 | aggregation of values in ABT | |||
DFC Distributed Forward Chaining |
2000 | Note: low, comparable to ABT | |||
ABTR Asynchronous Backtracking with Reordering |
2001 | Note: reordering in ABT with bounded nogoods | |||
DMAC Maintaining Asynchronously Consistencies |
2001 | Note: the fastest algorithm | |||
Secure Computation with Semi-Trusted Servers[citation needed] | 2002 | Note: security increases with the number of trustworthy servers | |||
Secure Multiparty Computation For Solving DisCSPs (MPC-DisCSP1-MPC-DisCSP4)[citation needed] |
2003 | Note: secure if 1/2 of the participants are trustworthy | |||
Adopt Asynchronous Backtracking[4] |
2003 | Polynomial (or any-space[5]) | Exponential | Proven | Reference Implementation: Adopt |
OptAPO Asynchronous Partial Overlay[6] |
2004 | Polynomial | Exponential | Proven, but proof of completeness has been challenged[7] | Reference Implementation: "OptAPO". Artificial Intelligence Center. SRI International. http://www.ai.sri.com/~mailler/optapo.html. |
DPOP Distributed Pseudotree Optimization Procedure[8] |
2005 | Exponential | Linear | Proven | Reference Implementation: FRODO (GNU Affero GPL) |
NCBB No-Commitment Branch and Bound[9] |
2006 | Polynomial (or any-space[10]) | Exponential | Proven | Reference Implementation: not publicly released |
CFL Communication-Free Learning[11] |
2013 | Linear | None Note: no messages are sent, but assumes knowledge about satisfaction of local constraint | Incomplete |
Hybrids of these DCOP algorithms also exist. BnB-Adopt,[3] for example, changes the search strategy of Adopt from best-first search to depth-first branch-and-bound search.
Asymmetric DCOP
An asymmetric DCOP is an extension of DCOP in which the cost of each constraint may be different for different agents. Some example applications are:[12]
- Event scheduling: agents who attend the same event might derive different values from it.
- Smart grid: the increase in price of electricity in loaded hours may be different agents.
One way to represent an ADCOP is to represent the constraints as functions: [math]\displaystyle{ f_C: D_1\times\dots\times D_k \to \R^k }[/math]
Here, for each constraint there is not a single cost but a vector of costs - one for each agent involved in the constraint. The vector of costs is of length k if each variable belongs to a different agent; if two or more variables belong to the same agent, then the vector of costs is shorter - there is a single cost for each involved agent, not for each variable.
Approaches to solving an ADCOP
A simple way for solving an ADCOP is to replace each constraint [math]\displaystyle{ f_C: D_1\times\cdots\times D_k \to \mathbb{R}^k }[/math] with a constraint [math]\displaystyle{ f_C': D_1\times\cdots\times D_k \to \mathbb{R} }[/math], which equals the sum of the functions [math]\displaystyle{ f_C^1 + \cdots + f_C^k }[/math]. However, this solution requires the agents to reveal their cost functions. Often, this is not desired due to privacy considerations.[13][14][15]
Another approach is called Private Events as Variables (PEAV).[16] In this approach, each variable owns, in addition to his own variables, also "mirror variables" of all the variables owned by his neighbors in the constraint network. There are additional constraints (with a cost of infinity) that guarantee that the mirror variables equal the original variables. The disadvantage of this method is that the number of variables and constraints is much larger than the original, which leads to a higher run-time.
A third approach is to adapt existing algorithms, developed for DCOPs, to the ADCOP framework. This has been done for both complete-search algorithms and local-search algorithms.[12]
Comparison with strategic games
The structure of an ADCOP problem is similar to the game-theoretic concept of a simultaneous game. In both cases, there are agents who control variables (in game theory, the variables are the agents' possible actions or strategies). In both cases, each choice of variables by the different agents result in a different payoff to each agent. However, there is a fundamental difference:[12]
- In a simultaneous game, the agents are selfish - each of them wants to maximize his/her own utility (or minimize his/her own cost). Therefore, the best outcome that can be sought for in such setting is an equilibrium - a situation in which no agent can unilaterally increase his/her own gain.
- In an ADCOP, the agents are considered cooperative: they act according to the protocol even if it decreases their own utility. Therefore, the goal is more challenging: we would like to maximize the sum of utilities (or minimize the sum of costs). A Nash equilibrium roughly corresponds to a local optimum of this problem, while we are looking for a global optimum.
Partial cooperation
There are some intermediate models in which the agents are partially-cooperative: they are willing to decrease their utility to help the global goal, but only if their own cost is not too high. An example of partially-cooperative agents are employees in a firm. On one hand, each employee wants to maximize their own utility; on the other hand, they also want to contribute to the success of the firm. Therefore, they are willing to help others or do some other time-consuming tasks that help the firm, as long as it is not too burdensome on them. Some models for partially-cooperative agents are:[17]
- Guaranteed personal benefit: the agents agree to act for the global good if their own utility is at least as high as in the non-cooperative setting (i.e., the final outcome must be a Pareto improvement of the original state).
- Lambda-cooperation: there is a parameter [math]\displaystyle{ \lambda\in[0,1] }[/math]. The agents agree to act for the global good if their own utility is at least as high as [math]\displaystyle{ (1-\lambda) }[/math] times their non-cooperative utility.
Solving such partial-coopreation ADCOPs requires adaptations of ADCOP algorithms.[17]
See also
Notes and references
- ↑ "[math]\displaystyle{ \times }[/math]" or "×" denotes the Cartesian product.
- ↑ Netzer, Arnon; Meisels, Amnon; Zivan, Roie (2016-03-01). "Distributed envy minimization for resource allocation". Autonomous Agents and Multi-Agent Systems 30 (2): 364–402. doi:10.1007/s10458-015-9291-7. ISSN 1387-2532. https://doi.org/10.1007/s10458-015-9291-7.
- ↑ 3.0 3.1 Yeoh, William; Felner, Ariel; Koenig, Sven (2008), "BnB-ADOPT: An Asynchronous Branch-and-Bound DCOP Algorithm", Proceedings of the Seventh International Joint Conference on Autonomous Agents and Multiagent Systems, 2, pp. 591–8, ISBN 9780981738116, http://idm-lab.org/bib/abstracts/Koen08d.html
- ↑ The originally published version of Adopt was uninformed, see Modi, Pragnesh Jay; Shen, Wei-Min; Tambe, Milind; Yokoo, Makoto (2003), "An asynchronous complete method for distributed constraint optimization", Proceedings of the second international joint conference on autonomous agents and multiagent systems, ACM Press, pp. 161–168, http://teamcore.usc.edu/papers/2003/modi-aamas03.pdf. The original version of Adopt was later extended to be informed, that is, to use estimates of the solution costs to focus its search and run faster, see Ali, Syed; Koenig, Sven; Tambe, Milind (2005), "Preprocessing Techniques for Accelerating the DCOP Algorithm ADOPT", Proceedings of the fourth international joint conference on autonomous agents and multiagent systems, ACM Press, pp. 1041–8, doi:10.1145/1082473.1082631, ISBN 1595930930, http://teamcore.usc.edu/papers/2005/aamas-paper.pdf. This extension of Adopt is typically used as reference implementation of Adopt.
- ↑ Matsui, Toshihiro; Matsuo, Hiroshi; Iwata, Akira (February 2005), "Efficient Method for Asynchronous Distributed Constraint Optimization Algorithm", Proceedings of Artificial Intelligence and Applications, pp. 727–732, http://www.matlab.nitech.ac.jp/~matsuo/AIA05-1.pdf
- ↑ Mailler, Roger; Lesser, Victor (2004), "Solving Distributed Constraint Optimization Problems Using Cooperative Mediation", Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems, IEEE Computer Society, pp. 438–445, ISBN 1581138644, ftp://mas.cs.umass.edu/pub/mailler/mailler-569.pdf
- ↑ Grinshpoun, Tal; Zazon, Moshe; Binshtok, Maxim; Meisels, Amnon (2007), "Termination Problem of the APO Algorithm", Proceedings of the Eighth International Workshop on Distributed Constraint Reasoning, pp. 117–124, http://liawww.epfl.ch/Publications/Archive/DCR07Proceedings.pdf
- ↑ Petcu, Adrian; Faltings, Boi (August 2005), "DPOP: A Scalable Method for Multiagent Constraint Optimization", Proceedings of the 19th International Joint Conference on Artificial Intelligence, IJCAI 2005, Edinburgh, Scotland, pp. 266-271, http://liawww.epfl.ch/cgi-bin/Pubs/single_entry?bibtex_key=Petcu2005
- ↑ Chechetka, Anton; Sycara, Katia (May 2006), "No-Commitment Branch and Bound Search for Distributed Constraint Optimization", Proceedings of the Fifth International Joint Conference on Autonomous Agents and Multiagent Systems, pp. 1427–9, doi:10.1145/1160633.1160900, ISBN 1595933034, http://www.ri.cmu.edu/pub_files/pub4/chechetka_anton_2006_2/chechetka_anton_2006_2.pdf
- ↑ Chechetka, Anton; Sycara, Katia (March 2006), "An Any-space Algorithm for Distributed Constraint Optimization", Proceedings of the AAAI Spring Symposium on Distributed Plan and Schedule Management, http://www.ri.cmu.edu/pub_files/pub4/chechetka_anton_2006_1/chechetka_anton_2006_1.pdf
- ↑ Duffy, K.R.; Leith, D.J. (August 2013), "Decentralized Constraint Satisfaction", IEEE/ACM Transactions on Networking 21 (4): 1298–1308, doi:10.1109/TNET.2012.2222923
- ↑ 12.0 12.1 12.2 Grinshpoun, T.; Grubshtein, A.; Zivan, R.; Netzer, A.; Meisels, A. (2013-07-30). "Asymmetric Distributed Constraint Optimization Problems" (in en). Journal of Artificial Intelligence Research 47: 613–647. doi:10.1613/jair.3945. ISSN 1076-9757. https://www.jair.org/index.php/jair/article/view/10828.
- ↑ Greenstadt, Rachel; Pearce, Jonathan P.; Tambe, Milind (2006-07-16). "Analysis of privacy loss in distributed constraint optimization". Proceedings of the 21st National Conference on Artificial Intelligence - Volume 1. AAAI'06 (Boston, Massachusetts: AAAI Press): 647–653. ISBN 978-1-57735-281-5. https://dl.acm.org/doi/abs/10.5555/1597538.1597642.
- ↑ Maheswaran, Rajiv T.; Pearce, Jonathan P.; Bowring, Emma; Varakantham, Pradeep; Tambe, Milind (2006-07-01). "Privacy Loss in Distributed Constraint Reasoning: A Quantitative Framework for Analysis and its Applications" (in en). Autonomous Agents and Multi-Agent Systems 13 (1): 27–60. doi:10.1007/s10458-006-5951-y. ISSN 1573-7454. https://doi.org/10.1007/s10458-006-5951-y.
- ↑ Yokoo, Makoto; Suzuki, Koutarou; Hirayama, Katsutoshi (2002). Van Hentenryck, Pascal. ed (in en). Secure Distributed Constraint Satisfaction: Reaching Agreement without Revealing Private Information. Lecture Notes in Computer Science. 2470. Berlin, Heidelberg: Springer. 387–401. doi:10.1007/3-540-46135-3_26. ISBN 978-3-540-46135-7. https://link.springer.com/chapter/10.1007/3-540-46135-3_26.
- ↑ Rajiv T. Maheswaran, Milind Tambe, Emma Bowring, Jonathan P. Pearce, Pradeep Varakantham (2004). "Taking DCOP to the Real World: Efficient Complete Solutions for Distributed Multi-Event Scheduling". https://www.computer.org/csdl/proceedings-article/aamas/2004/20920310/12OmNvjyxDN.
- ↑ 17.0 17.1 Zivan, Roie; Grubshtein, Alon; Friedman, Michal; Meisels, Amnon (2012-06-04). "Partial cooperation in multi-agent search". Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems - Volume 3. AAMAS '12 (Valencia, Spain: International Foundation for Autonomous Agents and Multiagent Systems) 3: 1267–1268. ISBN 978-0-9817381-3-0. https://dl.acm.org/doi/abs/10.5555/2343896.2343956.
Books and surveys
- Fioretto, Ferdinando; Pontelli, Enrico; Yeoh, William (2018), "Distributed Constraint Optimization Problems and Applications: A Survey", Journal of Artificial Intelligence Research 61: 623–698, doi:10.1613/jair.5565, http://www.jair.org/papers/paper5565.html
- Faltings, Boi (2006), "Distributed Constraint Programming", in Walsh, Toby, Handbook of Constraint Programming, Elsevier, ISBN 978-0-444-52726-4, http://www.elsevier.com/wps/find/bookdescription.cws_home/708863/description A chapter in an edited book.
- Meisels, Amnon (2008), Distributed Search by Constrained Agents, Springer, ISBN 978-1-84800-040-7
- Shoham, Yoav; Leyton-Brown, Kevin (2009), Multiagent Systems: Algorithmic, Game-Theoretic, and Logical Foundations, New York: Cambridge University Press, ISBN 978-0-521-89943-7, http://www.masfoundations.org See Chapters 1 and 2; downloadable free online.
- Yokoo, Makoto (2001), Distributed constraint satisfaction: Foundations of cooperation in multi-agent systems, Springer, ISBN 978-3-540-67596-9
- Yokoo, M. Hirayama K. (2000), "Algorithms for distributed constraint satisfaction: A review", Autonomous Agents and Multi-Agent Systems 3 (2): 185–207, doi:10.1023/A:1010078712316
Original source: https://en.wikipedia.org/wiki/Distributed constraint optimization.
Read more |