UpdateMode


UpdateMode

更改延迟更新的行为
类型: int
默认值: 1
最小值: 0
最大值: 1

确定如何处理新添加的变量和线性约束。默认设置(1)允许您立即使用新的变量和约束来构建或修改模型。设置为0需要调用更新才能使用。

由于绝大多数程序从不查询Gurobi,以了解它们所构建的优化模型的细节,因此默认设置通常不需要调用更新,或甚至意识到我们的细节懒惰的更新处理模型修改的方法。但是,当您试图查询已修改的模型信息时,这些细节将会显示出来。

在Gurobi接口中,模型修改(绑定更改、右侧更改、目标更改等)被放置在一个队列中。这些排队的修改被应用到模型有三次:当您调用更新,当你呼唤优化或者当你打电话的时候将模型写入磁盘。当您查询有关模型的信息时,结果将依赖于两者是否那个信息被修改了这是修改后的。特别是,无论在什么环境下UpdateMode如果修改在队列中,您将在修改之前获得结果。

为了进一步扩展这一点,所有属性修改实际上都放在一个队列中。这包括传统上可能不被视为模型一部分的属性,包括变量分支优先级、约束基础状态等。如果后续的修改仍在队列中,查询这些属性的值将返回它们以前的值。

将参数更改为0的唯一潜在好处是,在不寻常的情况下,此设置可能允许simplex在模型修改后更积极地使用warm-start信息。

如果要更改此参数,则需要在创建Gurobi环境后立即进行设置。

注意,您仍然需要调用更新修改SOS约束、二次约束或一般约束上的属性。

有关如何查询或修改不同api中的参数值的示例,请参阅参数的例子