Just in time for CP/SAT/FLOC I'm super proud to announce that we
released v1.0.0 of CPMpy:
https://github.com/CPMpy/cpmpy
CPMpy is an open source Constraint Programming and Modeling library in
Python, based on NumPy, with direct solver access. It's designed to be
ML-friendly (which also makes it LLM-friendly), and can incrementally
translate to 17 different solvers from different communities.
There is an accompanying journal paper that describes the modular
waterfall framework of translating to SMT, CP, ILP, PB and SAT; should
appear on arxiv in the coming days.
For this release there has been a lot of work on improving the
transformations, stabilizing the API, typing and documentation compared
to the previous version. Also two new solvers (SCIP and HiGHS). But
perhaps most significantly, we now include tools to load models in a
uniform way from a wide-range of datasets (XCSP3, OPB, MIPLIB, but also
problem-specific benchmarks like jsplib, psplib, nurse rostering), as
well as to directly write into solver input formats (MPS, OPB, (W)CNF).
See our accompanying SAT tool paper and talk tomorrow at 16:30 (Unified
Programmatic Access to CO Benchmarks, to Connect Constraint Solving
Communities)
As this is an open source project, we welcome any feedback including
issues or suggested improvements and new code or solver additions.
Happy to talk at FLOC too (you can spot some contributors by their
beautiful t-shirt with the new logo : )
Tias, in name of all CPMpy contributors