Jakob Nordström / Software

Software

On this webpage you find the most important pieces of software produced by the MIAO group with collaborators. In addition to what is listed below, you can always check out our GitLab repository gitlab.com/MIAOresearch/software. All of this is research-grade software, with some more rough edges than would ideally be the case, but if you need bleeding-edge technology, perhaps it could be worth checking out. 😉

Also, if you have any questions about our tools, or any bug reports, or anything else, please don't hesitate to let us know. Although we are a research group, and have very limited resources for software maintenance, we are still trying to do our best to produce high-quality code.

RoundingSat

RoundingSat is a solver and optimization engine for pseudo-Boolean formulas, i.e., 0-1 integer linear programs.

The basic pseudo-Boolean solver combines conflict-driven search based on the cutting planes proof system with techniques from integer linear programming (ILP) such as linear programming relaxations and cut generation. The optimization engine implements linear SAT-UNSAT search (a.k.a. model-improving search) and core-guided search using the solver as an oracle.

Some publications that describe features available in the public version of RoundingSat, and that we would ask you to cite if you use RoundingSat in your work, are listed below. (Please note that the name of the solver is RoundingSat and nothing else — there is no version of the solver called "HYBRID" or anything else, although for some mysterious reason some other reasearch papers have invented this name for the optimization engine based on RoundingSat.)

  • Jan Elffers and Jakob Nordström. Divide and Conquer: Towards Faster Pseudo-Boolean Solving. In Proceedings of the 27th International Joint Conference on Artificial Intelligence (IJCAI '18), pages 1291-1299, July 2018. PDF
  • Jo Devriendt. Watched Propagation of 0-1 Integer Linear Constraints. In Proceedings of the 26th International Conference on Principles and Practice of Constraint Programming (CP '20), Lecture Notes in Computer Science, volume 12333, pages 160-176, September 2020. PDF
  • Jo Devriendt, Stephan Gocht, Emir Demirović, Jakob Nordström, and Peter Stuckey. Cutting to the Core of Pseudo-Boolean Optimization: Combining Core-Guided Search with Cutting Planes Reasoning. In Proceedings of the 35th AAAI Conference on Artificial Intelligence (AAAI '21), pages 3750-3758, February 2021. PDF
  • Jo Devriendt, Ambros Gleixner, and Jakob Nordström. Learn to Relax: Integrating 0-1 Integer Linear Programming with Conflict-Driven Pseudo-Boolean Search. Constraints, January 2021. (Special issue for CPAIOR '20.) PDF

Some experimental features that have not (or at least not yet) made it into the main branch of the solver are described in the following papers:

  • Jan Elffers and Jakob Nordström. A Cardinal Improvement to Pseudo-Boolean Solving. In Proceedings of the 34th AAAI Conference on Artificial Intelligence (AAAI '20), pages 1495-1503, February 2020. PDF
  • Buser Say, Jo Devriendt, Jakob Nordström, and Peter Stuckey. Theoretical and Experimental Results for Planning with Learned Binarized Neural Network Transition Models. In Proceedings of the 26th International Conference on Principles and Practice of Constraint Programming (CP '20), Lecture Notes in Computer Science, volume 12333, pages 917-934, September 2020. PDF

VeriPB

VeriPB is a verifier for pseudo-Boolean proofs. The proof format is based on the cutting planes proof system studied in proof complexity, enhanced with some extension rules to support derivation steps like definitions of new variables. This proof system turns out to be quite a convenient foundation for so-called certifying solvers in combinatorial solving and optimization paradigms like:

  • Boolean satisfiability (SAT) solving, including advanced techniques for which there is no support for efficient proof logging using other tools
  • MaxSAT solving and (linear) pseudo-Boolean optimization
  • Subgraph solving algorithms (for, e.g., clique, subgraph isomorphism, and maximum common subgraph)
  • Constraint programming solvers
  • Presolving in 0-1 integer linear programming

Since 2023, VeriPB has been used as one of the proof checkers in the SAT Competition, and in 2024 it was also used in the Pseudo-Boolean Competition.

All of this is a very active area of research, and the MIAO group with collaborators have so far published the following papers:

  • Jan Elffers, Stephan Gocht, Ciaran McCreesh, and Jakob Nordström. Justifying All Differences Using Pseudo-Boolean Reasoning. In Proceedings of the 34th AAAI Conference on Artificial Intelligence (AAAI '20), pages 1486-1494, February 2020. PDF
  • Stephan Gocht, Ciaran McCreesh, and Jakob Nordström. Subgraph Isomorphism Meets Cutting Planes: Solving with Certified Solutions. In Proceedings of the 29th International Joint Conference on Artificial Intelligence (IJCAI '20), pages 1134-1140, July 2020. PDF
  • Stephan Gocht, Ross McBride, Ciaran McCreesh, Jakob Nordström, Patrick Prosser, and James Trimble. Certifying Solvers for Clique and Maximum Common (Connected) Subgraph Problems. In Proceedings of the 26th International Conference on Principles and Practice of Constraint Programming (CP '20), Lecture Notes in Computer Science, volume 12333, pages 338-357, September 2020. PDF
  • Stephan Gocht and Jakob Nordström. Certifying Parity Reasoning Efficiently Using Pseudo-Boolean Proofs. In Proceedings of the 35th AAAI Conference on Artificial Intelligence (AAAI '21), pages 3768-3777, February 2021. PDF
  • Stephan Gocht, Ruben Martins, Jakob Nordström, and Andy Oertel. Certified CNF Translations for Pseudo-Boolean Solving. In Proceedings of the 25th International Conference on Theory and Applications of Satisfiability Testing (SAT '22), Leibniz International Proceedings in Informatics (LIPIcs), volume 236, pages 16:1-16:25, August 2022. PDF SAT '22 best paper award.
  • Stephan Gocht, Ciaran McCreesh, and Jakob Nordström. An Auditable Constraint Programming Solver. In Proceedings of the 28th International Conference on Principles and Practice of Constraint Programming (CP '22), Leibniz International Proceedings in Informatics (LIPIcs), volume 235, pages 25:1-25:18, August 2022. PDF
  • Jeremias Berg, Bart Bogaerts, Jakob Nordström, Andy Oertel, and Dieter Vandesande. Certified Core-Guided MaxSAT Solving. In Proceedings of the 29th International Conference on Automated Deduction (CADE-29), Lecture Notes in Computer Science, volume 14132, pages 1-22, July 2023. PDF
  • Bart Bogaerts, Stephan Gocht, Ciaran McCreesh, and Jakob Nordström. Certified Dominance and Symmetry Breaking for Combinatorial Optimisation. Journal of Artificial Intelligence Research, volume 77, pages 1539-1589, August 2023. PDF Full-length version of conference paper receiving AAAI '22 distinguished paper award.
  • Stephan Gocht, Ciaran McCreesh, Magnus O. Myreen, Jakob Nordström, Andy Oertel, and Yong Kiam Tan. End-to-End Verification for Subgraph Solving. In Proceedings of the 38th AAAI Conference on Artificial Intelligence (AAAI '24), pages 8038-8047, February 2024. PDF
  • Alexander Hoen, Andy Oertel, Ambros Gleixner, and Jakob Nordström. Certifying MIP-based Presolve Reductions for 0-1 Integer Linear Programs. In Proceedings of the 21st International Conference on the Integration of Constraint Programming, Artificial Intelligence, and Operations Research (CPAIOR '24), pages 310-328, May 2024. PDF
  • Matthew McIlree, Ciaran McCreesh, and Jakob Nordström. Proof Logging for the Circuit Constraint. In Proceedings of the 21st International Conference on the Integration of Constraint Programming, Artificial Intelligence, and Operations Research (CPAIOR '24), pages 38-55, May 2024. PDF
  • Hannes Ihalainen, Andy Oertel, Yong Kiam Tan, Jeremias Berg, Matti Järvisalo, Magnus O. Myreen, and Jakob Nordström. Certified MaxSAT Preprocessing. In Proceedings of the 12th International Joint Conference on Automated Reasoning (IJCAR '24), pages 396-418, July 2024. PDF
  • Jeremias Berg, Bart Bogaerts, Jakob Nordström, Andy Oertel, Tobias Paxian, and Dieter Vandesande. Certifying Without Loss of Generality Reasoning in Solution-Improving Maximum Satisfiability. In Proceedings of the 30th International Conference on Principles and Practice of Constraint Programming (CP '24), pages 4:1-4:28, September 2024. PDF
  • Emir Demirović, Ciaran McCreesh, Matthew McIlree, Jakob Nordström, Andy Oertel, and Konstantin Sidorov. Pseudo-Boolean Reasoning About States and Transitions to Certify Dynamic Programming and Decision Diagram Algorithms. In Proceedings of the 30th International Conference on Principles and Practice of Constraint Programming (CP '24), pages 9:1-9:21, September 2024. PDF

The most detailed technical documentaiton of VeriPB is what was submitted for the SAT Competition in 2023:

  • Bart Bogaerts, Ciaran McCreesh, Magnus O. Myreen, Jakob Nordström, Andy Oertel, and Yong Kiam Tan. Documentation of VeriPB and CakePB for the SAT Competition 2023 . March 2023. PDF

However, since the tool is being being developed and extended very dynamically, the most up-to-date description is what can be found in the VeriPB repository.

CNFgen

CNFgen is a tool for generating combinatorial (a.k.a. crafted) formulas in conjunctive normal form (CNF) in the standard DIMACS format used by SAT solvers. The formulas produced by CNFgen have been collected from the proof complexity literature, and many of them encode combinatorial principles that are known to be tricky, or even very hard, for conflict-driven clause learning (CDCL) solvers. The main developer and maintainer of CNFgen is Massimo Lauria, a former postdoc in our research group who is now a professor at Sapienza Università di Roma.

If you use CNFgen, please cite the paper:

  • Massimo Lauria, Jan Elffers, Jakob Nordström, and Marc Vinyals. CNFgen: A Generator of Crafted Benchmarks. In Proceedings of the 20th International Conference on Theory and Applications of Satisfiability Testing (SAT '17), Lecture Notes in Computer Science, volume 10491, pages 464-473, August 2017. PDF

Published by: Jakob Nordström <jn~at-sign~di~dot~ku~dot~dk>
Updated 2024-09-01