Skip to main content Accessibility help
×
Home
Hostname: page-component-747cfc64b6-fkkrz Total loading time: 0.729 Render date: 2021-06-15T17:39:46.010Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "metricsAbstractViews": false, "figures": true, "newCiteModal": false, "newCitedByModal": true, "newEcommerce": true }

Backjumping is Exception Handling

Published online by Cambridge University Press:  16 November 2020

ED ROBBINS
Affiliation:
University of Kent, Canterbury, CT2 7NF, UK, (e-mails: edd.robbins@gmail.com, a.m.king@kent.ac.uk)
ANDY KING
Affiliation:
University of Kent, Canterbury, CT2 7NF, UK, (e-mails: edd.robbins@gmail.com, a.m.king@kent.ac.uk)
JACOB M. HOWE
Affiliation:
City, University of London, EC1V 0HB, UK, (e-mail: j.m.howe@city.ac.uk)
Rights & Permissions[Opens in a new window]

Abstract

ISO Prolog provides catch and throw to realize the control flow of exception handling. This pearl demonstrates that catch and throw are inconspicuously amenable to the implementation of backjumping. In fact, they have precisely the semantics required: rewinding the search to a specific point and carrying of a preserved term to that point. The utility of these properties is demonstrated through an implementation of graph coloring with backjumping and a backjumping SAT solver that applies conflict-driven clause learning.

Type
Original Article
Creative Commons
Creative Common License - CCCreative Common License - BY
This is an Open Access article, distributed under the terms of the Creative Commons Attribution licence (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted re-use, distribution, and reproduction in any medium, provided the original work is properly cited.
Copyright
© The Author(s), 2020. Published by Cambridge University Press

References

Baljeu, A. 2005. Using Exceptions to Implement Backjumping? comp.lang.prolog newsgroup discussion. URL: http://coding.derkeiler.com/Archive/Prolog/comp.lang.prolog/2005-09/msg00048.html.Google Scholar
Bentley, J. 1986. Programming Pearls. Addison-Wesley: New Jersey.Google Scholar
Bruynooghe, M. 1980. Analysis of dependencies to improve the behaviour of logic programs. In International Conference on Automated Deduction. Lecture Notes in Artificial Intelligence, vol. 87. Springer, 293–305.Google Scholar
Bruynooghe, M. 2004. Enhancing a search algorithm to perform intelligent backtracking. Theory Practice of Logic Programming 4, 3, 371380.CrossRefGoogle Scholar
Carlsson, M. and Mildner, P. 2012. SICStus Prolog – the first 25 years. Theory and Practice of Logic Programming 12, 1–2, 3566.CrossRefGoogle Scholar
Cooper, K. D., Harvey, T. J. and Kennendy, K. 2006. A Simple, Fast Dominance Algorithm. Technical Report TR-06-33870, Rice University, Computer Science. URL: http://www.cs.rice.edu/~keith/EMBED/dom.pdf.Google Scholar
De Bosschere, K. and Jacquet, J. 1993. Multi-Prolog: Definition, operational semantics and implementation. In International Conference on Logic Programming. MIT Press, 299–313.Google Scholar
De Kleer, J. 1986. An Assumption-based TMS. Artificial Intelligence 28, 2, 127162.CrossRefGoogle Scholar
Dechter, R. 1990. Enhancement schemes for constraint processing: Backjumping, learning, and cutset decomposition. Artificial Intelligence 41, 273312.CrossRefGoogle Scholar
Deransart, P., Ed-Dbali, A. and Cervoni, L. 1996. Prolog: The Standard. Springer.CrossRefGoogle Scholar
Drabent, W. 2018. Logic + Control: On program construction and verification. Theory Practice of Logic Programming 18, 1, 129.Google Scholar
Gaschnig, J. 1979 . Performance Measurement and Analysis of Certain Search Algorithms. Ph.D. thesis, Carnegie Mellon University, Department of Computer Science, Pittsburgh, Pennsylvania 15213. CMU-CS-79-124.Google Scholar
Howe, J. M. and King, A. 2010. A pearl on SAT solving in Prolog. In Functional and Logic Programming. Lecture Notes in Computer Science, vol. 6009. Springer, 165–174.Google Scholar
Howe, J. M. and King, A. 2012. A pearl on SAT and SMT solving in Prolog. Theoretical Computer Science 435, 4355.CrossRefGoogle Scholar
Kondrak, G. and van Beek, P. 1997. A theoretical evaluation of selected backtracking algorithms. Artifical Intelligence 89, 365387.CrossRefGoogle Scholar
Kowalski, R. A. 1979. Algorithm = Logic + Control. Communication of the ACM 22, 7, 424436.CrossRefGoogle Scholar
Marques-Silva, J. P., Lynce, I. and Malik, S. 2009. Conflict-driven clause learning SAT solvers. In Handbook of Satisfiability, Biere, A., Heule, M., Van Maaren, H. and Walsh, T., Eds. IOS Press, 131153.Google Scholar
Marques-Silva, J. P. and Sakallah, K. A. 1996. GRASP – A new search algorithm for satisfiability. In Computer Aided Design. IEEE, 220–227.Google Scholar
Moskewicz, M., Madigan, C., Zhao, Y., Zhang, L. and Malik, S. 2001. Chaff: Engineering an efficient SAT solver. In Design Automation Conference. ACM Press, 530535.Google Scholar
Robbins, E., Howe, J. M. and King, A. 2015. Theory propagation and reification. Science of Computer Programming 111, 1, 322.CrossRefGoogle Scholar
Stallman, R. and Sussman, G. J. 1977. Forward reasoning and dependency-directed backtracking in a system for computer-aided circuit analysis. Artificial Intelligence 9, 135196.CrossRefGoogle Scholar
Wielemaker, J., Schrijvers, T., Triska, M. and Lager, T. 2012. SWI-Prolog. Theory and Practice of Logic Programming 12, 1–2, 6796.CrossRefGoogle Scholar
Supplementary material: File

Robbins et al. supplementary material

Robbins et al. supplementary material
Download Robbins et al. supplementary material(File)
File 77 KB
You have Access
Open access

Send article to Kindle

To send this article to your Kindle, first ensure no-reply@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about sending to your Kindle. Find out more about sending to your Kindle.

Note you can select to send to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Backjumping is Exception Handling
Available formats
×

Send article to Dropbox

To send this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Dropbox.

Backjumping is Exception Handling
Available formats
×

Send article to Google Drive

To send this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Google Drive.

Backjumping is Exception Handling
Available formats
×
×

Reply to: Submit a response

Please enter your response.

Your details

Please enter a valid email address.

Conflicting interests

Do you have any conflicting interests? *