TL;DR
PyCSP3 Scheduling extends the PyCSP3 framework with native scheduling abstractions, enabling more natural modeling of scheduling problems and efficient compilation to standard constraints.
Contribution
It introduces a library adding scheduling abstractions to PyCSP3, with dedicated constraints and expressions, preserving the modeling/solving separation and supporting compilation to XCSP3.
Findings
Identical objectives on all optimal pairs across 17 model families.
Nearly half of the model families remain structurally unchanged after compilation.
Performance varies, with some instances up to 5.8x faster and others slower due to compilation overhead.
Abstract
PyCSP provides a productive way to build constraint models for solving combinatorial constrained problems and export them to XCSP, preserving a complete separation between modeling and solving. However, it lacks native support for scheduling abstractions such as interval variables, sequence variables, and resource functions. As a result, scheduling models must be encoded with low-level integer variables and manual channeling constraints, even though PyCSP already provides global constraints like NoOverlap and Cumulative on integer arrays. We present PyCSP Scheduling, a library that adds scheduling abstractions to PyCSP through 53 dedicated constraints and 27 expressions, and compiles them down to standard PyCSP/XCSP constraints, maintaining the modeling/solving separation that underpins the PyCSP ecosystem. On 261 paired instances across 17 model families…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
