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

Both competitions were held at the in Lille, France, on August 28, 2018.

XCSP Competition 2018 (COP)

Name # solved OPT %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 ³¦³Ü²Ô²Ô²â-³¦±è⎺ 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.