Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Constraint programming Choco 4:每当布尔变量被赋值或未赋值时调用方法_Constraint Programming_Choco - Fatal编程技术网

Constraint programming Choco 4:每当布尔变量被赋值或未赋值时调用方法

Constraint programming Choco 4:每当布尔变量被赋值或未赋值时调用方法,constraint-programming,choco,Constraint Programming,Choco,我有一个关于Choco 4 CP解算器的技术问题 每当在搜索过程中分配或取消分配模型中的某些布尔变量时,我想调用一个方法(让我们称之为f()。f()的目的是更新传播程序广泛使用的数据结构 我的第一次尝试是实现一个定制的IVariableMonitor,但是onUpdate方法(变量v,IEventType IEventType)仅在变量被分配给0/1而不是未分配时才被调用 我也尝试使用搜索监视器,但目前没有成功 有没有办法完成这项任务 谢谢 我已经想出了解决这个问题的办法 我实际上需要的是一个支

我有一个关于Choco 4 CP解算器的技术问题

每当在搜索过程中分配或取消分配模型中的某些布尔变量时,我想调用一个方法(让我们称之为f()。f()的目的是更新传播程序广泛使用的数据结构

我的第一次尝试是实现一个定制的IVariableMonitor,但是onUpdate方法(变量v,IEventType IEventType)仅在变量被分配给0/1而不是未分配时才被调用

我也尝试使用搜索监视器,但目前没有成功

有没有办法完成这项任务


谢谢

我已经想出了解决这个问题的办法

我实际上需要的是一个支持自动撤消操作的数据结构。也就是说,在分配变量时进行修改,如果触发修改的相应变量未分配,则自动恢复

幸运的是,choco提供了这种可回溯的数据结构(参见org.chocosolver.util.objects)。 据我所知,可回溯数据结构的状态与决策级别相关。当解算器回溯当前决策级别以上的任何修改时,将恢复