, Volume 19, Issue 1, pp 1–29 | Cite as

Explaining circuit propagation

  • Kathryn Glenn Francis
  • Peter J. Stuckey


The circuit constraint is used to constrain a graph represented by a successor for each node, such that the resulting edges form a circuit. Circuit and its variants are important for various kinds of tour-finding, path-finding and graph problems. In this paper we examine how to integrate the circuit constraint, and its variants, into a lazy clause generation solver. To do so we must extend the constraint to explain its propagation. We consider various propagation algorithms for circuit and examine how best to explain each of them. We compare the effectiveness of each propagation algorithm once we use explanation, since adding explanation changes the trade-off between propagation complexity and power. Simpler propagators, although less powerful, may produce more reusable explanations. Even though the most powerful propagator considered for circuit and variants creates huge explanations, we find that explanation is highly advantageous for solving problems involving this kind of constraint.


Circuit Constraint propagation Explanation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Beldiceanu, N., & Contejean, E. (1994). Introducing global constraints in CHIP. Mathematical and Computer Modelling, 20(12), 97–123.CrossRefzbMATHGoogle Scholar
  2. 2.
    Beldiceanu, N., Flener, P., Lorca, X. (2005). The tree constraint. In Integration of AI and OR Techniques in constraint programming for combinatorial optimization problems (Vol. 3524, pp. 64–78). Berlin, Heidelberg: Springer.CrossRefGoogle Scholar
  3. 3.
    Beldiceanu, N., Flener, P., Lorca, X. (2008). Combining tree partitioning, precedence, and incomparability constraints. Constraints, 13(4), 459–489.CrossRefzbMATHMathSciNetGoogle Scholar
  4. 4.
    Caseau, Y., & Laburthe, F. (1997). Solving small TSPs with constraints. In Proceedings of the 14th international conference on logic programming (ICLP97) (pp. 316–330).Google Scholar
  5. 5.
    cycle constraint. Global constraint catalog: Accessed Dec 2012
  6. 6.
    Downing, N., Feydy, T., Stuckey, P. (2012). Explaining alldifferent. In M. Reynolds & B. Thomas (Eds.), Proceedings of the australasian computer science conference (ACSC 2012). CRPIT (Vol. 122, pp. 115–124). Melbourne, Australia: ACS.Google Scholar
  7. 7.
    Fages, J., & Lorca, X. (2011). Revisiting the tree constraint. In Principles and practice of constraint programming—CP 2011 (Vol. 6876, pp. 271–285). Berlin, Heidelberg: Springer.CrossRefGoogle Scholar
  8. 8.
    Fages, J., & Lorca, X. (2012). Improving the asymmetric TSP by considering graph structure. arXiv:1206.3437.
  9. 9.
    Katsirelos, G. (2008). Nogood processing in CSPs. PhD thesis, University of Toronto.Google Scholar
  10. 10.
    Katsirelos, G., & Bacchus, F. (2005). Generalized nogoods in CSPs. In Proceedings, the 20th national conference on artificial intelligence and the 17th innovative applications of artificial intelligence conference, 9–13 July 2005, Pittsburgh, Pennsylvania, USA (pp. 390–396).Google Scholar
  11. 11.
    Kaya, L., & Hooker, J. (2006). A filter for the circuit constraint. In F. Benhamou (Ed.), Principles and practice of constraint programming—CP 2006 (Vol. 4204, pp. 706–710). Berlin, Heidelberg: Springer.CrossRefGoogle Scholar
  12. 12.
    Marriott, K., Nethercote, N., Rafeh, R., Stuckey, P., Garcia de la Banda, M., Wallace, M. (2008). The design of the zinc modelling language. Constraints, 13(3), 229–267.CrossRefzbMATHMathSciNetGoogle Scholar
  13. 13.
    Moskewicz, M., Madigan, C., Zhao, Y., Zhang, L., Malik, S. (2001). Chaff: Engineering an efficient SAT solver. In Proceedings of 38th conference on design automation (DAC’01) (pp. 530–535).Google Scholar
  14. 14.
    Nethercote, N., Stuckey, P., Becket, R., Brand, S., Duck, G., Tack, G. (2007). Minizinc: Towards a standard CP modelling language. In C. Bessiere (Ed.), Proceedings of the 13th international conference on principles and practice of constraint programming. LNCS (Vol. 4741, pp. 529–543). Springer-Verlag.Google Scholar
  15. 15.
    Ohrimenko, O., Stuckey, P., Codish, M. (2009). Propagation via lazy clause generation. Constraints, 14(3), 357–391.CrossRefzbMATHMathSciNetGoogle Scholar
  16. 16.
    Quesada, L., Van Roy, P., Deville, Y., Collet, R. (2006). Using dominators for solving constrained path problems. In Practical aspects of declarative languages, proceedings 8th international symposium, PADL 2006, Charleston, SC, USA, 9–10 January 2006. Lecture notes in computer science (Vol. 3819, pp. 73–87).Google Scholar
  17. 17.
    Schulte, C., & Stuckey, P. (2008). Efficient constraint propagation engines. ACM Transactions on Programming Languages and Systems, 31(1), Article No. 2.Google Scholar
  18. 18.
    Schulte, C., & Tack, G. (2009). Weakly monotonic propagators. In Principles and practice of constraint programming-CP 2009 (pp. 723–730).Google Scholar
  19. 19.
    Schulte, C., Lagerkvist, M., Tack, G. GECODE—an open, free, efficient constraint solving toolkit. Accessed Dec 2012
  20. 20.
    Tarjan, R. (1972). Depth-first search and linear graph algorithms. SIAM Journal on Computing, 1(2), 146–160.CrossRefzbMATHMathSciNetGoogle Scholar
  21. 21.
    van Hoeve, W. (2001). The alldifferent constraint: A survey. arXiv:cs/0105015. Accessed Dec 2012

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  1. 1.National ICT Australia, Department of Computing and Information SystemsThe University of MelbourneParkvilleAustralia

Personalised recommendations