Periodic Reporting for period 1 - PO-CPMpy (Prediction + Optimisation for scheduling and rostering with CMPpy)
Reporting period: 2024-03-01 to 2025-08-31
While many combinatorial optimisation solvers for solving scheduling and rostering exists, including Constraint Programming and Mixed Integer Programming solvers; few of these solvers can be easily integrated with machine learning libraries. Futhermore, in a machine learning pipeline, the requirements for the solver change. What is needed is a framework for solving prediction + optimization problems that bridges the machine learning and combinatorial optimization solving tools. It should allow actors to discover what a data-driven approach can signifigy to their scheduling and rostering problem, by allowing them to easily experiment and prototype, both on the learning side, the solving side and the combination of the two.
In my ERC Consolidator project 'Conversational Human-Aware Technology for Optimisation', we started building such a library: CPMpy. We notice an increasing industrial interest in solving Prediction + Optimisation problems, but a lack of unified tools to do so. This project set out to increase the Technological Readiness Level of CPMpy from TRL 4 to 6; and to demonstrate its potential and align it with industry needs.
Benchmarking and Evaluation Frameworks: The team developed systematic benchmarking tools using standard datasets such as XCSP3, PSPLib, and JSPlib. These tools enabled rigorous performance comparisons across solvers and prediction+optimization pipelines. CPMpy’s runtime efficiency was validated through participation in the XCSP3 competition, earning multiple gold and silver medals in both 2024 and 2025.
Solver Integration and Scalability Improvements: Five new solvers were integrated into CPMpy, including commercial and open-source options like Choco, CP Optimizer, and CPLEX. A fuzz-testing framework was implemented to ensure correctness and robustness. Scalability was enhanced through model optimization techniques such as common subexpression elimination and smarter constraint transformations, resulting in measurable speedups.
Industry Engagement and Use Case Demonstrations: The project actively engaged with industrial partners through workshops, company visits, and collaborative thesis projects. Demonstrations included real-world use cases such as predicting surgery durations for operating room scheduling and contextual knapsack problems using decision-focused learning. These demos showcased how CPMpy can be used to make robust, data-informed decisions in complex environments.
Open Source and Public Dissemination: A dedicated website was launched to promote CPMpy’s capabilities and valorisation potential. The project emphasized open-source dissemination, making tools and demos publicly available to encourage adoption and further development.
This eases the use of prediction+optimisation techniques for scheduling and rostering, allowing us to demonstrate the technology to industry partners and develop new projects together; several such discussions are already underway.