PyCSP3-Scheduling Documentation¶
PyCSP3-Scheduling is a scheduling extension for PyCSP3 that provides interval variables, sequence variables, and comprehensive scheduling constraints for modeling complex scheduling problems.
Note
This library is designed for research-grade constraint programming with emphasis on mathematical correctness and seamless pycsp3 integration.
Key Features¶
Interval Variables: Represent tasks with start, end, size, and optional presence
Sequence Variables: Model ordered sequences on disjunctive resources
Precedence Constraints: Full set of temporal constraints (before, at)
Grouping Constraints:
span,alternative,synchronizeCumulative Functions: Resource capacity modeling with
pulse,step_at_*State Functions: Discrete resource states with transition matrices
XCSP3 Compatible: Output scheduling models in XCSP3 format
Visualization: Gantt charts and resource profiles
Quick Example¶
from pycsp3 import *
from pycsp3_scheduling import *
# Create tasks
task1 = IntervalVar(size=10, name="task1")
task2 = IntervalVar(size=15, name="task2")
# task1 must finish before task2 starts
satisfy(end_before_start(task1, task2))
# Minimize makespan
minimize(Maximum(end_time(task1), end_time(task2)))
if solve() in (SAT, OPTIMUM):
print(f"task1: {interval_value(task1)}")
print(f"task2: {interval_value(task2)}")