在线性编程中是否可以在没有布尔变量的情况下对逻辑或进行建模?

问题描述 投票:0回答:1

我想陈述一个线性模型,由于效率原因,我不能使用布尔变量。我只能使用不能高效处理布尔变量的求解器。在生产模型中,我将需要数百个这些变量。

我使用布尔变量来确定我是否可以满足一个来源(连续变量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,则反之亦然。

我的问题现在是:谁知道,是否有可能仅使用线性变量(无布尔值和整数变量)对此模型进行建模,或者有证据表明这是不可能的。

linear-programming boolean-logic
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.