PicatSAT performed very well in this year’s CSP solver competitions, winning one gold and one bronze in XCSP’18, and one silver and one bronze in MiniZinc’18.

Both competitions were held at the 24th International Conference of Principles and Practice of Constraint Programming in Lille, France, on August 28, 2018.

XCSP Competition 2018 (COP)

Name # solved %inst. %VBS
Virtual Best Solver (VBS) 146 146 OPT 42 100
1 PicatSAT 2018-08-14 132 (132) 132 OPT 38 90
2 Concrete 3.9.2 105 (148) 105 OPT 30 72
3 Choco-solver 4.0.7b seq 102 (154) 102 OPT 29 70
4 OscaR-Conf. Ordering+restarts 99 (132) 99 OPT 29 68
5 Concrete 3.9.2-SuperNG 99 (139) 99 OPT 29 68
6 cosoco 1.12 64 (112) 64 OPT 18 44
7 OscaR – Hybrid 2018-08-14 61 (132) 61 OPT 18 42
8 Sat4J-CSP 54 (86) 54 OPT 16 37

MiniZinc Challenge 2018

Category Gold Silver Bronze
Fixed OR-Tools JaCoP Choco 4
Free OR-Tools PicatSAT HaifaCSP
Parallel OR-Tools Choco 4 PicatSAT
Open OR-Tools cunny-cp⎺ Choco 4
Local Search iZplus Yuck OscaR/CBLS

Solvers that returned a wrong answer to a single instance were disqualified. It’s noteworthy that PicatSAT was error-free in all the runs.

These results are, to a large extent, attributed to our Picat language; without Picat it would be impossible for our small team to implement such an optimizing SAT-based CSP compiler.

More About Picat

Picat is a simple, and yet powerful, logic-based multi-paradigm programming language aimed for general-purpose applications. Picat is a rule-based language, in which predicates, functions, and actors are defined with pattern-matching rules.

Picat provides facilities for solving combinatorial search problems, including a common interface with CP, SAT, and MIP solvers, tabling for dynamic programming, and a module for planning.

Picat can be used for not only symbolic computations, which is a traditional application domain of declarative languages, but also for scripting and modeling tasks.