Constraint Programming (CP) is a useful technology for modeling and solving combinatorial constrained problems. On the one hand, on can use a library like PyCSP 3 for easily modeling problems arising in various application fields (e.g., scheduling, planning, data-mining, cryptography, bio-informatics, organic chemistry, etc.). Problem instances can then be directly generated from specific models and data. On the other hand, for solving instances (notably, represented in XCSP 3 format), one can use a constraint solver like ACE, which is presented in this paper.ACE is an open-source constraint solver, developed in Java, which focuses on integer variables (including 0/1-Boolean variables), state-of-the-art table constraints, popular global constraints, search heuristics and (mono-criterion) optimization.
Constraints over Integer Variables
Generic Constraints
Constraint intension
Constraint extension
Language-based Constraints Constraint regular Constraint mdd Comparison-based Constraints Constraints allDifferent, allDifferentList, allEqual Constraints increasing, decreasing Constraints lexIncreasing, lexDecreasing Constraint precedence Counting Constraints Constraint sum Constraint count Constraint nValues Constraint cardinality Connection Constraints Constraints maximum and maximumArg Constraints minimum and minimumArg Constraint element and channel Packing and Scheduling Constraints