Constraint programming Choco 4:每当布尔变量被赋值或未赋值时调用方法
我有一个关于Choco 4 CP解算器的技术问题 每当在搜索过程中分配或取消分配模型中的某些布尔变量时,我想调用一个方法(让我们称之为f()。f()的目的是更新传播程序广泛使用的数据结构 我的第一次尝试是实现一个定制的IVariableMonitor,但是onUpdate方法(变量v,IEventType IEventType)仅在变量被分配给0/1而不是未分配时才被调用 我也尝试使用搜索监视器,但目前没有成功 有没有办法完成这项任务Constraint programming Choco 4:每当布尔变量被赋值或未赋值时调用方法,constraint-programming,choco,Constraint Programming,Choco,我有一个关于Choco 4 CP解算器的技术问题 每当在搜索过程中分配或取消分配模型中的某些布尔变量时,我想调用一个方法(让我们称之为f()。f()的目的是更新传播程序广泛使用的数据结构 我的第一次尝试是实现一个定制的IVariableMonitor,但是onUpdate方法(变量v,IEventType IEventType)仅在变量被分配给0/1而不是未分配时才被调用 我也尝试使用搜索监视器,但目前没有成功 有没有办法完成这项任务 谢谢 我已经想出了解决这个问题的办法 我实际上需要的是一个支
谢谢 我已经想出了解决这个问题的办法 我实际上需要的是一个支持自动撤消操作的数据结构。也就是说,在分配变量时进行修改,如果触发修改的相应变量未分配,则自动恢复 幸运的是,choco提供了这种可回溯的数据结构(参见org.chocosolver.util.objects)。 据我所知,可回溯数据结构的状态与决策级别相关。当解算器回溯当前决策级别以上的任何修改时,将恢复