我想陈述一个线性模型,由于效率原因,我不能使用布尔变量。我只能使用不能高效处理布尔变量的求解器。在生产模型中,我将需要数百个这些变量。
我使用布尔变量来确定我是否可以满足一个来源(连续变量A)或另一个来源(连续变量B)的需求,但不能同时满足这两个需求。约束是:
A + B> =需求
但是A OR B可以为非零。这可以通过使用布尔变量(Bool_A)和以下约束条件来确保:
A <= 1000 * Bool_A
B <= 1000 *(1- Bool_A)
如果Bool_A = 1,则变量A可以采用非零值,并且B强制为0,如果Bool_A = 0,则反之亦然。
我的问题现在是:谁知道,是否有可能仅使用线性变量(无布尔值和整数变量)对此模型进行建模,或者有证据表明这是不可能的。
[在Brown,G.和Dell,R。,“ Formulating linear and integer linear programs: A rogues’ gallery”中可以找到XOR
的以下线性编程公式(不包括或):
X = A xor B
解析为
X ≤ A + B
X ≥ A - B
X ≥ - A + B
X ≤ 2 - A - B
使用辅助变量:
X = A + B - 2*H
H ≤ A
H ≤ B
H ≥ A + B - 1
H ≥ 0