线性规划:纯线性公式(LP)表达式“如果x> 0; y = 0 /如果y> 0; x = 0”没有二进制变量

时间:2017-05-11 11:31:31

标签: optimization mathematical-optimization linear-programming discrete-mathematics

我遇到的问题通常发生在能源系统建模(存储建模)中,在存储系统放电时不允许对存储系统进行充电,反之亦然。

xy成为连续的正决策变量,代表存储单元的充电/放电功率。现在我试图在方程式或不等式中表达以下逻辑:

if x > 0:
    y = 0
if y > 0:
    x = 0

我知道如果b是二进制变量且x_uby_ub代表变量的上限,则可以通过以下等式用二进制变量实现:

x <= b * x_ub
y <= (1-b) * y_ub

这导致混合整数线性程序(MILP),当然会导致MILP的所有属性,这些属性位于更高的运行时间,解决方案的其他解释,......

获得纯LP制定的另一种方法是使用附加到xy的(非常低)成本,以便只将两个变量中的一个设置为正值。但这也影响了我的目标,还有一些其他缺点,因为它有点像修补程序。

所以这是我的问题:有没有办法在纯线性程序(LP)中表达上面的逻辑(if / else)?

提前致谢!

0 个答案:

没有答案