# PyCSP3-Scheduling: A Scheduling Extension for PyCSP3

arXiv: https://arxiv.org/abs/2605.14559 · HTML: https://mlsanity.com/paper/2605.14559/

## Key facts

- No citing papers in the map yet (data through 14 Oct 2026).
- Builds on 4 of its 44 references that are in the map.
- First posted on arXiv 14 May 2026.

## Builds on (most cited first, 4 of 4)

- [PyCSP3: Modeling Combinatorial Constrained Problems in Python](https://mlsanity.com/paper/2009.00326/) (2020)
- [XCSP3: An Integrated Format for Benchmarking Combinatorial Constrained Problems](https://mlsanity.com/paper/1611.03398/) (2016)
- [XCSP3-core: A Format for Representing Constraint Satisfaction/Optimization Problems](https://mlsanity.com/paper/2009.00514/) (2020)
- [ACE, a generic constraint solver](https://mlsanity.com/paper/2302.05405/) (2023)

## Abstract (arXiv)

PyCSP3 provides a productive way to build constraint models for solving combinatorial constrained problems and export them to XCSP3, 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 PyCSP3 already provides global constraints like NoOverlap and Cumulative on integer arrays. We present PyCSP3 Scheduling, a library that adds scheduling abstractions to PyCSP3 through 53 dedicated constraints and 27 expressions, and compiles them down to standard PyCSP3/XCSP3 constraints, maintaining the modeling/solving separation that underpins the PyCSP3 ecosystem. On 261 paired instances across 17 model families (5 runs each), both formulations produce identical objectives on all 72 doubly-proved optimal pairs and nearly half of the families (8/17) remain structurally unchanged after compilation; however, runtime performance diverges across families, with clear gains on some (up to 5.8x) and regressions on others due to the overhead of compilation decompositions. Code and benchmarks are available at: https://github.com/sohaibafifi/pycsp3-scheduling
