问题描述
我在Pulp中运行OR问题,该问题具有600 * 159决策变量和大量约束。每次如果我向问题添加新约束以检查约束的正确性,我都会使用print(model)。由于要在控制台中显示高内存,我的程序无法显示。所以我用'writelp'来下载文件并验证它很麻烦。 有人可以告诉我如何仅打印约束,我需要在控制台或其他可用选项中查看。
解决方法
当我想做这样的事情时,可以很容易地将约束存储到一个临时变量中,打印出来,然后将其添加到问题中:
trait X {
fn f(&self) {
println!("x")
}
}
trait Y: X {
fn f(&self) {
println!("y")
}
}
impl X for u32 {}
impl Y for u32 {}
fn main() {
let n: Box<dyn Y> = Box::new(1);
println!("{:?}",n.f());
}
约束是>>> x = pl.LpVariable(f"x",lowBound=0,upBound=None)
>>> constraint = x <= 3
>>> print(constraint)
x <= 3
>>> prob += constraint
的实例,可以被打印,因为它具有pulp.LpConstraint
和__str__()
方法。换句话说,它只是一个python对象。