Abstract
Generalized arc-consistency propagation is predominantly used in constraint solvers to efficiently prune the search space when solving constraint satisfaction problems. Although many practical applications can be modelled as distributed constraint satisfaction problems, no distributed arc-consistency algorithms so far have considered the privacy of individual agents. In this paper, we propose a new distributed arc-consistency algorithm, called \(\mathsf {DisAC3.1}\), which leaks less private information of agents than existing distributed arc-consistency algorithms. In particular, \(\mathsf {DisAC3.1}\) uses a novel termination determination mechanism, which allows the agents to share domains, constraints and communication addresses only with relevant agents. We further extend \(\mathsf {DisAC3.1}\) to \(\mathsf {DisGAC3.1}\), which is the first distributed algorithm that enforces generalized arc-consistency on k-ary (\(k\ge 2\)) constraint satisfaction problems. Theoretical analyses show that our algorithms are efficient in both time and space. Experiments also demonstrate that \(\mathsf {DisAC3.1}\) outperforms the state-of-the-art distributed arc-consistency algorithm and that \(\mathsf {DisGAC3.1}\) ’s performance scales linearly in the number of agents.
Similar content being viewed by others
Notes
The address of an agent, as defined in [54], represents the unique identity of the agent in the agent communication graph.
This technique was first introduced in [21].
Note that the sender’s “id” remains in the forwarded message, but this “id” does not need to be the real id of the sender, it can be a code name (cf. [30]), e.g., a randomly generated character string. In this case, two neighbours need to exchange their code names with each other before running the algorithm.
This is because when several messages from agent i are received, the “up to date” message will only bear the timestamp of the latest one.
Here by ‘modulo semi-private information’, we mean that we do not consider leak of semi-private information as privacy loss.
In this paper, unless otherwise stated, \(\mathsf {DisAC3.1}\) always refers to the original Algorithm 2.
In this paper, unless otherwise stated, \(\mathsf {DisGAC3.1}\) always refers to the original Algorithm 4.
Note that these two measures do not reflect the cost of the echo algorithm used in our distributed algorithms. However, since the number of agents are relatively small comparing to the number of variables of the input and the time complexity of the echo algorithm is only \(O({\hat{D}})\), where \({\hat{D}} \le p \le n\) is the diameter of the standard agent communication graph, the cost of the echo algorithm is negligible.
Note that Lai and Wu’s algorithm assumes fully-connected agent communication graphs, and every agent knows the identifications of all agents in the system.
Note that we do not compare #NCCCs between the modified \(\mathsf {DisAC3.1}\) and \(\mathsf {DisAC3.1}\), as termination detector is superimposed on the underling computation, i.e., it cannot intervene in the underling computation [15] and thus does not affect #NCCCs.
In this experiment, we measured the performance of the algorithm using the simulated time metric [49] where message latency is simulated by a random time from 0–10ms per message.
References
Awerbuch, B., & Gallager, R. (1987). A new distributed algorithm to find breadth first search trees. IEEE Transactions on Information Theory, 33(3), 315–322.
Baudot, B., & Deville, Y. (1997). Analysis of distributed arc-consistency algorithms. Technical report, Université catholique de Louvain.
Bessiere, C. (1994). Arc-consistency and arc-consistency again. Artificial Intelligence, 65(1), 179–190.
Bessiere, C., Freuder, E. C., & Régin, J. C. (1999). Using constraint metaknowledge to reduce arc consistency computation. Artificial Intelligence, 107(1), 125–148.
Bessiere, C., Régin, J. C., Yap, R. H., & Zhang, Y. (2005). An optimal coarse-grained arc consistency algorithm. Artificial Intelligence, 165(2), 165–185.
Boerkoel, J. C, Jr., & Durfee, E. H. (2013). Distributed reasoning for multiagent simple temporal problems. Journal of Artificial Intelligence Research, 47, 95–156.
Chandy, K. M., & Misra, J. (1985). A paradigm for detecting quiescent properties in distributed computations. In K. R. Apt (Ed.), Logics and models of concurrent systems (pp. 325–341). New York: Springer.
Chandy, K. M., & Lamport, L. (1985). Distributed snapshots: Determining global states of distributed systems. ACM Transactions on Computer Systems (TOCS), 3(1), 63–75.
Chandy, K. M., & Misra, J. (1986). How processes learn. Distributed Computing, 1(1), 40–52.
Chang, E. J. H. (1982). Echo algorithms: Depth parallel operations on general graphs. IEEE Transactions on Software Engineering, SE–8(4), 391–401.
Conry, S. E., Kuwabara, K., Lesser, V. R., & Meyer, R. A. (1991). Multistage negotiation for distributed constraint satisfaction. IEEE Transactions on Systems, Man, and Cybernetics, 21(6), 1462–1477.
Cooper, P. R., & Swain, M. J. (1992). Arc consistency: Parallelism and domain dependence. Artificial Intelligence, 58(1–3), 207–235.
Dechter, R., Meiri, I., & Pearl, J. (1991). Temporal constraint networks. Artificial Intelligence, 49(1–3), 61–95.
Dijkstra, E. W., Feijen, W. H., & Van Gasteren, A. M. (1986). Derivation of a termination detection algorithm for distributed computations. Information Processing Letters, 16(5), 217–219. https://doi.org/10.1016/0020-0190(83)90092-3.
Dijkstra, E. W., & Scholten, C. S. (1980). Termination detection for diffusing computations. Information Processing Letters, 11(1), 1–4.
Eriksen, O, & Skyum, S. (1985). Symmetric distributed termination. DAIMI report series 14(189).
Faltings, B., Léauté, T., & Petcu, A. (2008). Privacy guarantees through distributed constraint satisfaction. In 2008 IEEE/WIC/ACM international conference on web intelligence and intelligent agent technology (Vol. 2, pp. 350–358).
Grinshpoun, T. (2012). When you say (DCOP) privacy, what do you mean?—Categorization of DCOP privacy and insights on internal constraint privacy. In: J. Filipe, A. L. N. Fred (Eds.), ICAART 2012—Proceedings of the 4th international conference on agents and artificial intelligence (Vol. 1, pp. 380–386)—Artificial Intelligence, Vilamoura, Algarve, Portugal, 6–8 February, 2012. SciTePress.
Grinshpoun, T., & Tassa, T. (2016). P-syncbb: A privacy preserving branch and bound dcop algorithm. Journal of Artificial Intelligence Research, 57(1), 621–660.
Gu, J., Sosic, R. (1991). A parallel architecture for constraint satisfaction. In: International conference on industrial and engineering applications of artificial intelligence and expert systems (pp. 229–237).
Hamadi, Y. (2002). Optimal distributed arc-consistency. Constraints, 7(3–4), 367–385.
Hassine, A. B., & Ghedira, K. (2002). How to establish arc-consistency by reactive agents. In Proceedings of the 15th European conference on artificial intelligence (pp. 156–160).
Hassine, A. B., Ghedira, K., & Ho, T. B. (2004). New distributed filtering-consistency approach to general networks. In Proceedings of the 17th international conference on industrial and engineering applications of artificial intelligence and expert systems (pp. 708–717).
Huang, S. T. (1989). Detecting termination of distributed computations by external agents. In Proceedings of the 9th international conference on distributed computing systems (pp. 79–84).
Hubbe, P. D., & Freuder, E. C. (1992). An efficient cross product representation of the constraint satisfaction problem search space. In Proceedings of the tenth national conference on artificial intelligence (pp. 421–427).
Huffman, D. A. (1971). Impossible objects as nonsense sentences. Machine Intelligence, 6(1), 295–323.
Huhns, M. N., & Bridgeland, D. M. (1991). Multiagent truth maintenance. IEEE Transactions on Systems, Man, and Cybernetics, 21(6), 1437–1445.
Kong, S., Lee, J. H., & Li, S. (2018). Multiagent simple temporal problem: The Arc-consistency approach. In Thirty-Second AAAI Conference on Artificial Intelligence, AAAI’18. AAAI Press.
Lai, T. H., & Wu, L. F. (1995). An (n -1)-resilient algorithm for distributed termination detection. IEEE Transactions on Parallel and Distributed Systems, 6(1), 63–78.
Léauté, T., & Faltings, B. (2013). Protecting privacy through distributed computation in multi-agent decision making. Journal of Artificial Intelligence Research, 47, 649–695.
Li, S., Liu, W., & Wang, S. (2013). Qualitative constraint satisfaction problems: An extended framework with landmarks. Artificial Intelligence, 201, 32–58.
Lynch, N. A. (1996). Distributed algorithms. Burlington: Morgan Kaufmann.
Mackworth, A. K. (1977). Consistency in networks of relations. Artificial Intelligence, 8(1), 99–118.
Maheswaran, R. T., Pearce, J. P., Bowring, E., Varakantham, P., & Tambe, M. (2006). Privacy loss in distributed constraint reasoning: A quantitative framework for analysis and its applications. Autonomous Agents and Multi-Agent Systems, 13(1), 27–60.
Maruyama, H. (1990). Structural disambiguation with constraint propagation. In ACL (pp. 31–38).
Mason, C. L., & Johnson, R. R. (1988). Datms: A framework for distributed assumption based reasoning. Technical report, Lawrence Livermore National Lab., CA (USA).
Matocha, J., & Camp, T. (1998). A taxonomy of distributed termination detection algorithms. Journal of Systems and Software, 43(3), 207–221.
Mattern, F. (1987). Algorithms for distributed termination detection. Distributed Computing, 2(3), 161–175.
Mayo, J., & Kearns, P. (1994). Distributed termination detection with roughly synchronized clocks. Information Processing Letters, 52(2), 105–108.
Meisels, A., & Zivan, R. (2007). Asynchronous forward-checking for discsps. Constraints, 12(1), 131–150.
Mohr, R., & Henderson, T. C. (1986). Arc and path consistency revisited. Artificial Intelligence, 28(2), 225–233.
Montanari, U. (1974). Networks of constraints: Fundamental properties and applications to picture processing. Information Sciences, 7, 95–132.
Nguyen, T., & Deville, Y. (1998). A distributed arc-consistency algorithm. Science of Computer Programming, 30(1–2), 227–250.
Raynal, M. (2013). Distributed termination detection. In Distributed algorithms for message-passing systems (pp. 367–399). Berlin: Springer.
Samal, A., & Henderson, T. (1987). Parallel consistent labeling algorithms. International Journal of Parallel Programming, 16(5), 341–364.
Savaux, J., Vion, J., Piechowiak, S., Mandiau, R., Matsui, T., Hirayama, K., Yokoo, M., Elmane, S., & Silaghi, M. (2016). DisCSPs with privacy recast as planning problems for self-interested agents. In 2016 IEEE/WIC/ACM international conference on web intelligence (WI) (pp. 359–366).
Shavit, N., & Francez, N. (1986) A new approach to detection of locally indicative stability. In International colloquium on automata, languages, and programming (pp. 344–358). Springer.
Silaghi, M. (2002). A comparison of distributed constraint satisfaction approaches with respect to privacy. In In DCR. Citeseer.
Sultanik, E. A., Lass, R. N., & Regli, W .C. (2007). Dcopolis: A framework for simulating and deploying distributed constraint optimization algorithms. In Proceedings of the workshop on distributed constraint reasoning.
Sycara, K., Roth, S. F., Sadeh, N., & Fox, M. S. (1991). Distributed constrained heuristic search. IEEE Transactions on Systems, Man, and Cybernetics, 21(6), 1446–1461.
Topor, R. W. (1984). Termination detection for distributed computations. Information Processing Letters, 18(1), 33–36.
Venkatesan, S. (1989). Reliable protocols for distributed termination detection. IEEE Transactions on Reliability, 38(1), 103–110.
Wallace, R. J., & Freuder, E. C. (2005). Constraint-based reasoning and privacy/efficiency tradeoffs in multi-agent problem solving. Artificial Intelligence, 161(1), 209–227.
Yokoo, M., Durfee, E. H., Ishida, T., & Kuwabara, K. (1998). The distributed constraint satisfaction problem: Formalization and algorithms. IEEE Transactions on Knowledge and Data Engineering, 10(5), 673–685.
Yokoo, M., & Hirayama, K. (2000). Algorithms for distributed constraint satisfaction: A review. Autonomous Agents and Multi-Agent Systems, 3(2), 185–207.
Yokoo, M., Suzuki, K., & Hirayama, K. (2005). Secure distributed constraint satisfaction: Reaching agreement without revealing private information. Artificial Intelligence, 161(1), 229–245.
Zhang, Y., & Mackworth, A. K. (1991). Parallel and distributed algorithms for finite constraint satisfaction problems. In Proceedings of the 3th IEEE symposium on parallel and distributed processing (pp. 394–397).
Zhang, Y., & Yap, R. H. C. (2001). Making ac-3 an optimal algorithm. In Proceedings of the 17th international joint conference on artificial intelligence (pp. 316–321).
Acknowledgements
The authors sincerely thank the anonymous reviewers of Autonomous Agents and Multi-Agent Systems for their very helpful comments. The work of SL was partially supported by NSFC (No. 11671244), and the work of JL was partially supported by the Alexander von Humboldt Foundation.
Author information
Authors and Affiliations
Corresponding author
Appendix
Appendix
Proof of Lemma 1
Proof
\((1) \Rightarrow (2)\): Given an agent i, the property \(\textit{isIdle}[i]\) is set to \(\texttt {true}\) only in line 41 and line 44. If \(\textit{isIdle}[i]\) was set to \(\texttt {true}\) in line 41, then \(s_{ji} = r_{ij}\) for all \(j = 1, \ldots , p\) and there is an agent k who sent a “domain update” message \(m_{ki}\) with timestamp \(s_{ki}\) to agent i, and the corresponding “message sent” message \(m_{ki}^{\text {sent}}\) from agent k to the root agent has been received. Since \(s_{ki}=r_{ik}\), the root agent has also received the message \(m_{ki}^{\text {utd}}\), and thus, the root agent has received agent i’s first “up to date” message.
The other case, i.e., \(\textit{isIdle}[i]\) was set to \(\texttt {true}\) in line 44, immediately implies that the root agent have received an “up to date” message from agent i and \(s_{ji} = r_{ij}\) for all \(j = 1, \ldots , p\).
\((2) \Rightarrow (3)\): We prove this by contradiction.
First, suppose there is at least one “domain update” message that has not been confirmed by the root agent and let \(m_{ij}\) be such a message (sent from agent i to agent j) which bears the earliest timestamp s and let \(m_{ij}^{\text {sent}}\) and \(m_{ij}^{\text {utd}}\) be the corresponding “message sent” message and “up to date” message, respectively (cf. Sect. 3.2).
We first note that according to our assumption (2) the root agent already received agent i’s first “up to date” message \(m^0\) and \(s_{ik} = r_{ki}\) for all \(k = 1, \ldots , p\). Furthermore, because \(m_{ij}\) is the earliest message that has not been confirmed yet and the root agent receives messages in FIFO manner, no other messages from agent i to j sent later than \(m_{ij}\) have been confirmed by the root agent. Then it follows that both \(m_{ij}^{\text {sent}}\) and \(m_{ij}^{\text {utd}}\) have not been received by the root agent; otherwise, we would have either \(s_{ij} > r_{ji}\) or \(s_{ij} < r_{ji}\), contradicting our assumption.
Furthermore, agent i must have sent \(m_{ij}\) after sending \(m^0\) to the root agent; otherwise, as the root agent receives messages from agent i in a FIFO manner, it would have received \(m_{ij}^{\text {sent}}\) before receiving \(m^0\). Now that agent i sent \(m_{ij}\) after sending \(m^0\), it must have sent \(m_{ij}\) when it re-entered the first inner while-loop, i.e., it received a “domain update” message \(m_{ki}\) from an agent k after sending \(m^0\). Note that this message \(m_{ki}\) is not confirmed either, because the corresponding “up to date” message \(m_{ki}^{\text {utd}}\) from agent i to the root agent must be sent after \(m_{ij}^{\text {sent}}\), but \(m_{ij}^{\text {sent}}\) has not been received by the root agent. As \(m_{ki}\) bears an earlier timestamp than \(m_{ij}\), we have the contradiction that \(m_{ij}\) is an unconfirmed “domain update” message with the earliest timestamp. Thus, we can assume that all “domain update” messages have been confirmed.
Now suppose there is at least one agent running the first inner while-loop and let i be such an agent. Then, since agent i sent already its first “up to date” message to the root agent, agent i must have received a new message of type “domain update” so that it could re-enter the first inner while-loop. Let this “domain update” message \(m_{ki}\) be from an agent k. Then agent i has not yet sent the corresponding “up to date” message \(m_{ki}^{\text {utd}}\) to the root agent, as it has not finished the first inner while-loop. Thus \(m_{ki}\) has not been confirmed. This is a contradiction to our assumption that all “domain update” messages have been confirmed.
\((3) \Rightarrow (1)\): We prove this by contradiction.
We note first that the state of \(\textit{isIdle}[i]\) \((i = 1, \ldots , p)\) will remain fixed in the future, because all “domain update” messages have been confirmed and no agent is running the first inner while-loop, and thus, no new message of type “message sent” or “up to date” will be received by the root agent in the future. Suppose there is an agent i such that \(\textit{isIdle}[i] = \texttt {false}\). Then the agent must have received at least one “domain update” message from an agent k, otherwise \(s_{ji} = r_{ij} = -\infty \) for all \(j = 1, \ldots , p\) and as a consequence \(\textit{isIdle}[i]\) had to be set to \(\texttt {true}\) in line 44 after the root agent received the last “up to date” message of agent i.
Now suppose that \(m_{ki}\) is the last message that agent i received, which was sent from agent k, and let \(m_{ki}^{\text {sent}}\) and \(m_{ki}^{\text {utd}}\) be the corresponding “message sent” message and “up to date” message, respectively. Then, because \(m_{ki}\) has been confirmed, both \(m_{ki}^{\text {sent}}\) and \(m_{ki}^{\text {utd}}\) must have been received by the root agent. If \(m_{ki}^{\text {sent}}\) was received later, then the root agent must set \(\textit{isIdle}[i]\) to \(\texttt {true}\) in line 41, and if \(m_{ki}^{\text {utd}}\) was received later, the root agent must set \(\textit{isIdle}[i]\) to \(\texttt {true}\) in line 44. Both cases contradict our assumption that \(\textit{isIdle}[i] = \texttt {false}\). Hence, \(\textit{isIdle}[i] = \texttt {true}\) for all \(i = 1, \ldots , p\). \(\square \)
Proof of Lemma 2
Proof
We note first that at the beginning of the algorithm we have vacuously \(D_u^{i} \supseteq D_u\), as \(D_u^{i}\) is a copy of \(D_u\).
Now suppose \(D_u^{i} \supseteq D_u\) during the process of the algorithm. Then we note that \(D_u^{i} \not \supseteq D_u\) can only happen in line 18 of the algorithm, where there exists a variable \(v \in V_i\) with \(R_{uv} \in C_{ji}\) such that \(\textsc {Revise}(u, v)\) is true, i.e., there exists \(b \in D_u^{i}\) for which no \(a \in D_v\) exists with \((b, a) \in R_{uv}\) in which case we remove b from \(D_u^{i}\). Agent i then prompts agent j to replace \(D_v^{j}\) with the content of \(D_v\) (line 20). Agent j—we now switch the perspective and look at the algorithm from agent j’s point of view—then replaces \(D_v^{j}\) with the content of \(D_v\) (line 35) and adds among other arcs (u, v) to its queue (line 36), and applies function \(\textsc {Revise}\) to (u, v) (line 11). This deletes b from \(D_u\), as there is no \(a \in D_v^{j}\) with \((b,a) \in R_{uv}\). Thus, we have \(D_u^{i} \supseteq D_u\). \(\square \)
Rights and permissions
About this article
Cite this article
Kong, S., Lee, J.H. & Li, S. A new distributed algorithm for efficient generalized arc-consistency propagation. Auton Agent Multi-Agent Syst 32, 569–601 (2018). https://doi.org/10.1007/s10458-018-9388-x
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10458-018-9388-x