Originally posted by: EdKlotz
>
> No. CPLEX is limited to linear or quadratic constraints and objectives.
>
> Paul
>
> Mathematicians are like Frenchmen: whenever you say something to them, they
> translate it into their own language, and at once it is something entirely
> different. (Goethe)
CPLEX also supports second order cone constraints, which is how it solves
problems with convex quadratic constraints (i.e. it transforms those constraints into second order cone constraints). And, there are a surprisingly larger number
of nonquadratic but convex nonlinear functions that can be transformed into second
order cone problems that CPLEX can solve. For example, minimizing the hyperbolic function 1/x for x > 0 can be reformulated as
min u
s.t.
v = x
1 <= uv
u >= 0
x >= eps
The constraint uv >= 1 is a rotated second order cone constraint that CPLEX
can process. See the user manual on second order cones for more information.
The above example is a special case of a more general example described in
the paper Second Order Cone Programming by Alizadeh and Goldfarb. That paper
contains several other examples of seemingly hopelessly nonlinear functions
that not only are convex, but can be reformulated as SOCPs, and therefore
solved by CPLEX.
Now, tanh(x) is not convex or concave. However, it is convex for negative
values and convex for positive values of x. So, if your application only
looks at one of those domains, perhaps there is some transformation or hyperbolic
approximation function you can use to turn it into an SOCP and solve it using
CPLEX. Otherwise, the only way you could solve this using CPLEX involves using
a piecewise linear approximation of this nonconvex function and solving the resulting MIP.
#CPLEXOptimizers#DecisionOptimization