Skip to main content
Log in

A new distributed algorithm for efficient generalized arc-consistency propagation

  • Published:
Autonomous Agents and Multi-Agent Systems Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11

Similar content being viewed by others

Notes

  1. The address of an agent, as defined in [54], represents the unique identity of the agent in the agent communication graph.

  2. Although not explicitly stated in [21], \(\mathsf {DisAC9}\) implicitly assumes a complete agent communication graph, as it uses the distributed snapshot algorithm [8, 44].

  3. This technique was first introduced in [21].

  4. 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.

  5. 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.

  6. Here by ‘modulo semi-private information’, we mean that we do not consider leak of semi-private information as privacy loss.

  7. In this paper, unless otherwise stated, \(\mathsf {DisAC3.1}\) always refers to the original Algorithm 2.

  8. In this paper, unless otherwise stated, \(\mathsf {DisGAC3.1}\) always refers to the original Algorithm 4.

  9. 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.

  10. 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.

  11. 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.

  12. Website https://www.cril.univ-artois.fr/~lecoutre/benchmarks.html.

  13. Website http://www.cril.univ-artois.fr/CSC09/.

  14. 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

  1. Awerbuch, B., & Gallager, R. (1987). A new distributed algorithm to find breadth first search trees. IEEE Transactions on Information Theory, 33(3), 315–322.

    Article  MATH  Google Scholar 

  2. Baudot, B., & Deville, Y. (1997). Analysis of distributed arc-consistency algorithms. Technical report, Université catholique de Louvain.

  3. Bessiere, C. (1994). Arc-consistency and arc-consistency again. Artificial Intelligence, 65(1), 179–190.

    Article  MathSciNet  Google Scholar 

  4. Bessiere, C., Freuder, E. C., & Régin, J. C. (1999). Using constraint metaknowledge to reduce arc consistency computation. Artificial Intelligence, 107(1), 125–148.

    Article  MathSciNet  MATH  Google Scholar 

  5. 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.

    Article  MathSciNet  MATH  Google Scholar 

  6. Boerkoel, J. C, Jr., & Durfee, E. H. (2013). Distributed reasoning for multiagent simple temporal problems. Journal of Artificial Intelligence Research, 47, 95–156.

    Article  MathSciNet  MATH  Google Scholar 

  7. 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.

    Chapter  Google Scholar 

  8. Chandy, K. M., & Lamport, L. (1985). Distributed snapshots: Determining global states of distributed systems. ACM Transactions on Computer Systems (TOCS), 3(1), 63–75.

    Article  Google Scholar 

  9. Chandy, K. M., & Misra, J. (1986). How processes learn. Distributed Computing, 1(1), 40–52.

    Article  MATH  Google Scholar 

  10. Chang, E. J. H. (1982). Echo algorithms: Depth parallel operations on general graphs. IEEE Transactions on Software Engineering, SE–8(4), 391–401.

    Article  Google Scholar 

  11. 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.

    Article  MATH  Google Scholar 

  12. Cooper, P. R., & Swain, M. J. (1992). Arc consistency: Parallelism and domain dependence. Artificial Intelligence, 58(1–3), 207–235.

    Article  MathSciNet  Google Scholar 

  13. Dechter, R., Meiri, I., & Pearl, J. (1991). Temporal constraint networks. Artificial Intelligence, 49(1–3), 61–95.

    Article  MathSciNet  MATH  Google Scholar 

  14. 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.

    Article  MathSciNet  MATH  Google Scholar 

  15. Dijkstra, E. W., & Scholten, C. S. (1980). Termination detection for diffusing computations. Information Processing Letters, 11(1), 1–4.

    Article  MathSciNet  MATH  Google Scholar 

  16. Eriksen, O, & Skyum, S. (1985). Symmetric distributed termination. DAIMI report series 14(189).

  17. 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).

  18. 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.

  19. Grinshpoun, T., & Tassa, T. (2016). P-syncbb: A privacy preserving branch and bound dcop algorithm. Journal of Artificial Intelligence Research, 57(1), 621–660.

    Article  MathSciNet  MATH  Google Scholar 

  20. 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).

  21. Hamadi, Y. (2002). Optimal distributed arc-consistency. Constraints, 7(3–4), 367–385.

    Article  MathSciNet  MATH  Google Scholar 

  22. 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).

  23. 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).

  24. 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).

  25. 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).

  26. Huffman, D. A. (1971). Impossible objects as nonsense sentences. Machine Intelligence, 6(1), 295–323.

    Google Scholar 

  27. Huhns, M. N., & Bridgeland, D. M. (1991). Multiagent truth maintenance. IEEE Transactions on Systems, Man, and Cybernetics, 21(6), 1437–1445.

    Article  Google Scholar 

  28. 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.

  29. 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.

    Article  Google Scholar 

  30. Léauté, T., & Faltings, B. (2013). Protecting privacy through distributed computation in multi-agent decision making. Journal of Artificial Intelligence Research, 47, 649–695.

    Article  MathSciNet  MATH  Google Scholar 

  31. Li, S., Liu, W., & Wang, S. (2013). Qualitative constraint satisfaction problems: An extended framework with landmarks. Artificial Intelligence, 201, 32–58.

    Article  MathSciNet  MATH  Google Scholar 

  32. Lynch, N. A. (1996). Distributed algorithms. Burlington: Morgan Kaufmann.

    MATH  Google Scholar 

  33. Mackworth, A. K. (1977). Consistency in networks of relations. Artificial Intelligence, 8(1), 99–118.

    Article  MathSciNet  MATH  Google Scholar 

  34. 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.

    Article  Google Scholar 

  35. Maruyama, H. (1990). Structural disambiguation with constraint propagation. In ACL (pp. 31–38).

  36. Mason, C. L., & Johnson, R. R. (1988). Datms: A framework for distributed assumption based reasoning. Technical report, Lawrence Livermore National Lab., CA (USA).

  37. Matocha, J., & Camp, T. (1998). A taxonomy of distributed termination detection algorithms. Journal of Systems and Software, 43(3), 207–221.

    Article  Google Scholar 

  38. Mattern, F. (1987). Algorithms for distributed termination detection. Distributed Computing, 2(3), 161–175.

    Article  Google Scholar 

  39. Mayo, J., & Kearns, P. (1994). Distributed termination detection with roughly synchronized clocks. Information Processing Letters, 52(2), 105–108.

    Article  Google Scholar 

  40. Meisels, A., & Zivan, R. (2007). Asynchronous forward-checking for discsps. Constraints, 12(1), 131–150.

    Article  MathSciNet  MATH  Google Scholar 

  41. Mohr, R., & Henderson, T. C. (1986). Arc and path consistency revisited. Artificial Intelligence, 28(2), 225–233.

    Article  Google Scholar 

  42. Montanari, U. (1974). Networks of constraints: Fundamental properties and applications to picture processing. Information Sciences, 7, 95–132.

    Article  MathSciNet  MATH  Google Scholar 

  43. Nguyen, T., & Deville, Y. (1998). A distributed arc-consistency algorithm. Science of Computer Programming, 30(1–2), 227–250.

    Article  MathSciNet  MATH  Google Scholar 

  44. Raynal, M. (2013). Distributed termination detection. In Distributed algorithms for message-passing systems (pp. 367–399). Berlin: Springer.

  45. Samal, A., & Henderson, T. (1987). Parallel consistent labeling algorithms. International Journal of Parallel Programming, 16(5), 341–364.

    Article  MathSciNet  MATH  Google Scholar 

  46. 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).

  47. 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.

  48. Silaghi, M. (2002). A comparison of distributed constraint satisfaction approaches with respect to privacy. In In DCR. Citeseer.

  49. 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.

  50. 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.

    Article  Google Scholar 

  51. Topor, R. W. (1984). Termination detection for distributed computations. Information Processing Letters, 18(1), 33–36.

    Article  Google Scholar 

  52. Venkatesan, S. (1989). Reliable protocols for distributed termination detection. IEEE Transactions on Reliability, 38(1), 103–110.

    Article  Google Scholar 

  53. 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.

    Article  MathSciNet  MATH  Google Scholar 

  54. 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.

    Article  Google Scholar 

  55. Yokoo, M., & Hirayama, K. (2000). Algorithms for distributed constraint satisfaction: A review. Autonomous Agents and Multi-Agent Systems, 3(2), 185–207.

    Article  Google Scholar 

  56. Yokoo, M., Suzuki, K., & Hirayama, K. (2005). Secure distributed constraint satisfaction: Reaching agreement without revealing private information. Artificial Intelligence, 161(1), 229–245.

    Article  MathSciNet  MATH  Google Scholar 

  57. 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).

  58. 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).

Download references

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

Authors

Corresponding author

Correspondence to Sanjiang Li.

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 jwe 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 (uv) to its queue (line 36), and applies function \(\textsc {Revise}\) to (uv) (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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10458-018-9388-x

Keywords

Navigation