0

由于两个连续变量的乘积,我在线性化约束时遇到了问题。

假设非线性约束是 A = b + x1 x2 : A,x1,x2 是非负连续变量。

我怎样才能线性化这个约束?

我试图通过创建两个新的连续变量(y1 和 y2)来重新制定它,其中 y1 = 1/2 (x1 + x2) 和 y2= 1/2 (x1 - x2)。在这种情况下,约束也变为非线性。

我应该怎么办?

4

1 回答 1

0

w=x*y如果 x 和 y 是连续的,则没有精确的线性化方法。

  • 重新制定z1 = 1/2 (x + y)z2 = 1/2 (x - y)给出w = z1^2 - z2^2。这确实仍然是非线性的,但是在使用分段线性近似时更容易处理。
  • 您可以使用 McCormick 信封(https://optimization.mccormick.northwestern.edu/index.php/McCormick_envelopes)。但这只是一个近似值。要获得更高的精度,请分段分割范围。
  • 有时(在特殊情况下)对数变换会有所帮助。
  • 一些求解器可以直接处理这个二次表达式。
于 2021-01-22T08:07:15.700 回答