我使用命令
var.setlb(var.bounds[0] - 1/2)
从pyomo变量0.5
的下限减去var
并将其边界更新为该值。
对于域为Integer的变量,其工作原理与我预期的完全相同:专用变量_lb
会发生变化,变量bounds[0]
也会发生变化。
对于域为二进制的变量,这将导致私有变量_lb
更改为-0.5
,但变量bounds[0]
保持不变。我认为这是有意进行的,因为(在某种意义上)二进制变量应该保持二进制。但是,将不同的值存储为变量的界限似乎令人困惑。
这似乎对求解器很重要(这是我想要的),但是我还需要稍后在我的代码中检索更新的边界,这是有问题的。
是否存在“更彻底的方法”来更改变量的界限?