Cumulative constraints are central in scheduling with constraint programming, yet propagation is typically performed per constraint, missing multi-resource interactions and causing severe slowdowns on some benchmarks. I present a preprocessing method for inferring additional cumulative constraints that capture such interactions without search-time probing. This approach interprets cumulative constraints as linear inequalities over occupancy vectors and generates valid inequalities by (i) discovering covers, the sets of tasks that cannot run in parallel, (ii) strengthening the cover inequalities for the discovered sets with lifting, and (iii) injecting the resulting constraints back into the scheduling problem instance. Experiments on standard RCPSP and RCPSP/max test suites show that these inferred constraints improve search performance and tighten objective bounds on favorable instances, while incurring little degradation on unfavorable ones. Additionally, these experiments discover 25 new lower bounds and five new best solutions; eight of the lower bounds are obtained directly from the inferred constraints.
翻译:累积约束在基于约束规划的调度中至关重要,然而传播通常按约束单独执行,忽略了多资源间的相互作用,导致在某些基准测试中出现严重的性能下降。本文提出一种预处理方法,用于推断额外的累积约束,以捕获此类相互作用而无需在搜索时进行探测。该方法将累积约束解释为占用向量上的线性不等式,并通过以下步骤生成有效不等式:(i) 发现覆盖集,即无法并行运行的任务集合;(ii) 通过提升技术强化已发现集合的覆盖不等式;(iii) 将生成的约束重新注入调度问题实例。在标准RCPSP和RCPSP/max测试集上的实验表明,这些推断出的约束在有利实例上提升了搜索性能并紧缩了目标界限,而在不利实例上仅导致轻微的性能下降。此外,这些实验发现了25个新的下界和5个新的最优解;其中8个下界直接由推断出的约束获得。