Lecoutre, Christophe
Proceedings of the 2024 XCSP3 Competition
Audemard, Gilles, Lecoutre, Christophe, Lonca, Emmanuel
This short paper gives an overview of the XCSP3 solver implemented in Picat. Picat provides several constraint modules, and the Picat XCSP3 solver uses the sat module. The XCSP3 solver mainly consists of a parser implemented in Picat, which converts constraints from XCSP3 format to Picat. The solver demonstrates the strengths of Picat, a logic-based language, in parsing, modeling, and encoding constraints into SAT. The high performance of the solver in recent XCSP competitions demonstrates the viability of using a SAT solver to solve general constraint satisfaction and optimization problems.
Proceedings of the 2023 XCSP3 Competition
Audemard, Gilles, Lecoutre, Christophe, Lonca, Emmanuel
This short paper gives an overview of the XCSP3 solver implemented in Picat. Picat provides several constraint modules, and the Picat XCSP3 solver uses the sat module. The XCSP3 solver mainly consists of a parser implemented in Picat, which converts constraints from XCSP3 format to Picat. The solver demonstrates the strengths of Picat, a logic-based language, in parsing, modeling, and encoding constraints into SAT. The solver submitted to the 2022 XCSP competition is based on the one that won the 2019 XCSP competition.
Proceedings of the 2022 XCSP3 Competition
Audemard, Gilles, Lecoutre, Christophe, Lonca, Emmanuel
This short paper gives an overview of the XCSP3 solver implemented in Picat. Picat provides several constraint modules, and the Picat XCSP3 solver uses the sat module. The XCSP3 solver mainly consists of a parser implemented in Picat, which converts constraints from XCSP3 format to Picat. The solver demonstrates the strengths of Picat, a logic-based language, in parsing, modeling, and encoding constraints into SAT. The solver submitted to the 2022 XCSP competition is based on the one that won the 2019 XCSP competition.
ACE, a generic constraint solver
Lecoutre, Christophe
Combinatorial problems are ubiquitous in the world around us. Actually, they are found in all fields of human activity. As illustrations, it may be a question of scheduling the operations to be carried out within an industrial process (production line of a vehicle, an airplane or a satellite), of extracting the recurring patterns in a transaction database (data mining), of organizing the roster of a service (in a hospital, university or industrial environment), of generating molecular structures with good properties (in chemistry or bioinformatics), etc. Solving optimization problems remains a difficult task, especially when the size of the instances of the problems to be solved is large and/or when optimality is desired. In reality, the difficulty is twofold: being able to appropriately write models for encountered problems and being able to effectively solve the different instances of these problems. The main paradigms for optimization, namely mathematical programming, metaheuristics and Constraint Programming (CP), including the Boolean SAT framework, offer varied and interesting tools (languages, libraries, software), and are in a way, quite complementary; each paradigm having its own success stories.
XCSP3: An Integrated Format for Benchmarking Combinatorial Constrained Problems
Boussemart, Frederic, Lecoutre, Christophe, Audemard, Gilles, Piette, Cédric
We propose a major revision of the format XCSP 2.1, called XCSP3, to build integrated representations of combinatorial constrained problems. This new format is able to deal with mono/multi optimization, many types of variables, cost functions, reification, views, annotations, variable quantification, distributed, probabilistic and qualitative reasoning. The new format is made compact, highly readable, and rather easy to parse. Interestingly, it captures the structure of the problem models, through the possibilities of declaring arrays of variables, and identifying syntactic and semantic groups of constraints. The number of constraints is kept under control by introducing a limited set of basic constraint forms, and producing almost automatically some of their variations through lifting, restriction, sliding, logical combination and relaxation mechanisms. As a result, XCSP3 encompasses practically all constraints that can be found in major constraint solvers developed by the CP community. A website, which is developed conjointly with the format, contains many models and series of instances. The user can make sophisticated queries for selecting instances from very precise criteria. The objective of XCSP3 is to ease the effort required to test and compare different algorithms by providing a common test-bed of combinatorial constrained instances.
XCSP3-core: A Format for Representing Constraint Satisfaction/Optimization Problems
Boussemart, Frédéric, Lecoutre, Christophe, Audemard, Gilles, Piette, Cédric
In this document, we introduce XCSP3-core, a subset of XCSP3 that allows us to represent constraint satisfaction/optimization problems. The interest of XCSP3-core is multiple: (i) focusing on the most popular frameworks (CSP and COP) and constraints, (ii) facilitating the parsing process by means of dedicated XCSP3-core parsers written in Java and C++ (using callback functions), (iii) and defining a core format for comparisons (competitions) of constraint solvers.
PYCSP3: Modeling Combinatorial Constrained Problems in Python
Lecoutre, Christophe, Szczepanski, Nicolas
In this document, we introduce PYCSP$3$, a Python library that allows us to write models of combinatorial constrained problems in a simple and declarative way. Currently, with PyCSP$3$, you can write models of constraint satisfaction and optimization problems. More specifically, you can build CSP (Constraint Satisfaction Problem) and COP (Constraint Optimization Problem) models. Importantly, there is a complete separation between modeling and solving phases: you write a model, you compile it (while providing some data) in order to generate an XCSP3 instance (file), and you solve that problem instance by means of a constraint solver. In this document, you will find all that you need to know about PYCSP$3$, with more than 40 illustrative models.
Proceedings of the 2018 XCSP3 Competition
Lecoutre, Christophe, Roussel, Olivier
Choco solver is a Free Open-Source Java library dedicated to Constraint Programming. The user models its problem in a declarative way by stating the set of constraints that need to be satisfied in every solution. Then, the problem is solved by alternating constraint filtering algorithms with a search mechanism.
Extending Compact-Table to Negative and Short Tables
Verhaeghe, Hélène (Université Catholique de Louvain) | Lecoutre, Christophe (Université d'Artois) | Schaus, Pierre (Université Catholique de Louvain)
Table constraints are very useful for modeling combinatorial constrained problems, and thus play an important role in Constraint Programming (CP). During the last decade, many algorithms have been proposed for enforcing the property known as Generalized Arc Consistency (GAC) on such constraints. A state-of-the art GAC algorithm called Compact-Table (CT), which has been recently proposed, significantly outperforms all previously proposed algorithms. In this paper, we extend this algorithm in order to deal with both short supports and negative tables, i.e., tables that contain universal values and conflicts. Our experimental results show the interest of using this fast general algorithm.
Extending STR to a Higher-Order Consistency
Lecoutre, Christophe (Université d'Artois) | Paparrizou, Anastasia (University of Western Macedonia) | Stergiou, Kostas (University of Western Macedonia)
One of the most widely studied classes of constraints in constraint programming (CP) is that of table constraints. Numerousspecialized filtering algorithms, enforcing the wellknown property called generalized arc consistency (GAC),have been developed for such constraints. Among the most successful GAC algorithms for table constraints, we find variants of simple tabular reduction (STR), like STR2. In this paper,we propose an extension of STR-based algorithms that achieves full pairwise consistency (FPWC), a consistency stronger than GAC and max restricted pairwise consistency (maxRPWC). Our approach involves counting the number of occurrences of specific combinations of values in constraint intersections. Importantly, the worst-case time complexity of one call to the basic filtering procedure at the heart of our new algorithm is quite close to that of STR algorithms. Experiments demonstrate that our method can outperform STR2 in many classes of problems, being significantly faster in some cases. Also, it is clearly superior to maxRPWC+, an algorithm that has been recently proposed.