PyCSP3-Scheduling:PyCSP3 的调度扩展
人工智能
2026-05-26 v1 最优化与控制
摘要
PyCSP 提供了一种高效的方式来构建用于求解组合约束问题的约束模型,并将其导出为 XCSP,同时保持建模与求解之间的完全分离。然而,它缺乏对调度抽象(如区间变量、序列变量和资源函数)的原生支持。因此,尽管 PyCSP 已经在整数数组上提供了 NoOverlap 和 Cumulative 等全局约束,调度模型仍必须使用低级整数变量和手动通道约束进行编码。我们提出了 PyCSP Scheduling,这是一个通过 53 个专用约束和 27 个表达式向 PyCSP 添加调度抽象的库,并将它们编译为标准的 PyCSP/XCSP 约束,维持了支撑 PyCSP 生态系统的建模/求解分离。在 17 个模型系列的 261 个配对实例(每个实例运行 5 次)上,两种公式在所有 72 个双向证明最优的配对上产生了相同的目标值,并且在编译后近一半的系列(8/17)在结构上保持不变;然而,不同系列之间的运行时间性能存在差异,部分系列有明显的性能提升(高达 5.8 倍),而另一些则由于编译分解的开销出现性能回退。代码和基准测试可在以下网址获取:https://github.com/sohaibafifi/pycsp3-scheduling
引用
@article{arxiv.2605.14559,
title = {PyCSP3-Scheduling: A Scheduling Extension for PyCSP3},
author = {Sohaib Afifi},
journal= {arXiv preprint arXiv:2605.14559},
year = {2026}
}