At the 'Constraint modeling in Python' hackathon in February [2], we
decided to go ahead with creating a modern python-based CP modeling
environment. Rebranded to CPMpy to avoid package name conflicts.
Some distinguishing features are:
- numpy compatible, so you can use advanced indexing and all numpy
functions on both cpmpy expressions and numpy arrays [3]
- logging search progress and arbitrarily modifying solver parameters [4,5]
- intuitive hyperparameter search for solvers [6]
- MiniSearch-style repeated solving with blocking clauses [7]
- easy UNSAT core extraction and computing Minimal Unsatisfiable Subsets
(MUS) of CP problems [8]
We also welcome feedback on documentation, usage, bugs as well as
additional example problems. You can post corresponding 'issues' on
Github, or mail me.
Thank you to alpha testers Hakan Kjellerstrand, Alexander Schiendorfer
and my team.
The bigger plan is to have a stable release before the tutorial at CP21
in October.