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.