We developed the new and generic CPMpy library, a Constraint Programming and Modeling library in Python. Its novelties include being based on numpy for easy machine learning integration, and allowing for incremental and direct solver access. CPMpy includes many examples, documentation and tests. It can translate to CP, ILP, SMT and SAT solvers in an incremental way, and has boosted our research on each of the objectives. It has won multiple awards at the yearly XCSP3 competition.
For the objective of learning from the environment, we have contributed a number of novel techniques for “Decision-Focused Learning”, which is a methodology in which machine learning models are trained based on the effect that the predictions have on the solutions of the solver. We have also created the most comprehensive survey on these techniques to date, titled “Decision-focused learning: Foundations, state of the art, benchmark and future opportunities”, as well as hosting a summer school on the integration of machine learning and constraint solving.
For learning implicit preferences we have made significant advances in passively learning constraints from data for generalized constraint models and MaxSAT models. We also enabled for the first time the use of generic constraint solvers in active constraint acquisition techniques, and were able to reduce the number of interactions by up to 60%. Furthermore we investigated methodologies for learning implicit preferences, e.g. for the use case of vehicle routing and more generally for arbitrary multi-objective optimisation problems.
Towards conversational solving we have been developing tools for explainable constraint solving. We have published a number of new techniques for explaining why there is no solution or why certain decisions must be taken, as well as techniques to simplify such explanations and speed them up using detected symmetries. We presented an overview of a wide range of explanation techniques, implemented in CPMpy, at a well-appreciated tutorial on explainable constraint programming at the CP23 and ECAI24 conferences.
Thanks to the development of LLMs we have also been making progress towards natural-language conversatiional solving. More specifically we have developed the CP-Bench and DCP-Bench benchmarks for automatically formulating and evaluating constraint models from natural language descriptions. A demo of our conversational interface can be found at:
https://chatopt.cs.kuleuven.be/(odnośnik otworzy się w nowym oknie)