如何转换约束| x | > = 2,以便它可以在线性程序中工作(特别是使用Simplex解决)。
我理解如何转换| x | &lt; = 2,因为它将变为x <= 2且-x <= 2
但是,当你有一个最小常数时,相同的逻辑不起作用。
答案 0 :(得分:3)
没有办法将像|x|>=2
这样的等式变成纯粹的(连续的)LP。你需要制定非凸的x <= -2 OR x >= 2
。这将需要一个二进制变量,使问题成为MIP。
一种配方可以是:
x >= 2 - delta*M
x <= -2 + (1-delta)*M
delta in {0,1}
M
明智地选择大数字。例如。如果-100<=x<=100
,您可以选择M=102
。