Download PDFOpen PDF in browser

NACRE - A Nogood And Clause Reasoning Engine

11 pagesPublished: May 27, 2020

Abstract

NACRE, for Nogood And Clause Reasoning Engine, is a constraint solver written in C++. It is based on a modular architecture designed to work with generic constraints while implementing several state-of-the-art search methods and heuristics. Interestingly, its data structures have been carefully designed to play around nogoods and clauses, making it suit- able for implementing learning strategies. NACRE was submitted to the CSP MiniTrack of the 2018 and 2019 XCSP3 [8] competitions where it took the first place. This paper gives a general description of NACRE as a framework. We present its kernel, the available search algorithms, and the default settings (notably, used for XCSP3 competitions), which makes NACRE efficient in practice when used as a black-box solver.

Keyphrases: clauses, constraint programming, nogoods, sat, solver

In: Elvira Albert and Laura Kovacs (editors). LPAR23. LPAR-23: 23rd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, vol 73, pages 249-259.

BibTeX entry
@inproceedings{LPAR23:NACRE_Nogood_Clause_Reasoning,
  author    = {Gael Glorian and Jean-Marie Lagniez and Christophe Lecoutre},
  title     = {NACRE - A Nogood And Clause Reasoning Engine},
  booktitle = {LPAR23. LPAR-23: 23rd International Conference on Logic for Programming, Artificial Intelligence and Reasoning},
  editor    = {Elvira Albert and Laura Kovacs},
  series    = {EPiC Series in Computing},
  volume    = {73},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/rN67},
  doi       = {10.29007/dxnb},
  pages     = {249-259},
  year      = {2020}}
Download PDFOpen PDF in browser