0

I have several constrains in a No linear problem.

For example:

In   m(x+y-n)^2
If    x+y-n>=0 Then m=0, 
Else  m=1.

How can I write this conditional constraint as linear or non-linear constraint?

Erwin Kalvelagen
  • 15,677
  • 2
  • 14
  • 39

2 Answers2

0

Well you could write this as [min(x+y-n,0)]^2. Not sure if that will do you any good (this is non-differentiable, and thus difficult for many solvers). We can make the min() expression linear using additional binary variables:

z <= x+y-n
z <= 0
z >= x+y-n - b * M
z >= 0 - (1-b) * M
b in {0,1}

with M a large enough constant. In many cases better reformulations can be applied but that depends on the rest of the model.

Erwin Kalvelagen
  • 15,677
  • 2
  • 14
  • 39
0

If you use a constraint-programming solver, such as Choco Solver, then you can use IfThenElse constraints directly as well as other non linear constraints, such as square.