我想编写谓词的自定义版本cumulative/2
(或至少在功能方面类似的谓词)。我寻找了 CLP(FD) 库的来源,现在我想知道修改该库是否是一个好主意(仅通过添加新东西)以合并新的my_cumulative/2
但使用库的私有谓词可以这样做.
我想添加以下功能:
- 我希望任务计划器具有抢先性(这意味着计划的任务可以在几个时间间隔内“拆分”)。
- 除了累积性之外,我还希望它是多资源的(这意味着
[limit(3)]
我可以拥有,例如,而不是[limit(2),limit(3),limit(1)]
; 其中每个限制对应于不同的资源) - 我想为每个任务添加优先级,以便更高优先级的任务具有更大的“决策权”,并且不能被较低的任务安排。
- 我希望解决方案“不可调度”成为任务的可能解决方案。
当我试图添加一个自定义运算符/\
来计算交集(同样\/
表示联合)时,我想到了这个想法,我看到实际上在 clpfd.pl 中已经定义了一个但没有成为模块的一部分。