PicatSAT Wins Gold, Silver, and Two Bronze
August 29, 2018
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.