我在 Choco 求解器中有一个项目,但我对搜索过程中的外部影响有疑问。
我有一个计划图,其中(比方说)按层组织的 BoolVars 和分配给层的持续时间,这意味着一些动作开始和一些结束。从计划结束到计划开始,变量选择是静态的(层中动作的选择是任意的)。
我正在研究一种使用单纯形算法来帮助分配持续时间的解决方案,因为在动作A的开始和结束之间,我们需要有一个等于N的持续时间。两者之间还有一些限制。
附加约束是基于 BoolVar 的实例化创建的,但是它们被组织在一个外部矩阵中,因此当添加动作A的结束动作时,在效果中会向矩阵添加额外的行并且重新制定当前约束. 在回溯时,我们想以相反的方式修改矩阵,即删除行并取消约束。
有没有办法在 Choco 中实现这种复杂的行为?