Piecewise Linear when objective function depends on two variables
AnsweredHi,
I've been using PWLObj for my model when the non-linear function depends on only a single decision variable. My current function is f(x) = u*x+k*sigma*sqrt(x).
Now, I had to adapt the model and the function depends on two decision variables,
e.g f(x, t)=u(t)*x+k*sigma(t)*sqrt(x).
Is there any way to set a PWLObj for a tuple of decision variables?
Thanks a lot for any help.
Cheers,
Janis
-
Official comment
This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?. -
Hello Janis,
currently (v9.0) we have no automated mechanism that enables the multi-variate PW linear objectives. One option is to build one yourself using, say, triangulation of the 3D surface corresponding to the function graph (only for completeness, I am adding this link, https://en.wikipedia.org/wiki/Surface_triangulation ). Here you would keep track of which "supporting triangle" you are in using binary inductors.
However, starting with the present version we also support general bilinear expressions, and p-w linear constraints (https://www.gurobi.com/documentation/9.0/refman/constraints.html) so this could be another route. Namely, you can introduce an auxiliary pair of variables, (t', x'), and connect those to non-linear expressions using p-w approximation, while the objective would have a bilinear term x' * t'.
Personally I would start with the later approach as it is less labour expensive, to see if this would suffice.
Hope this helps.
0
Post is closed for comments.
Comments
2 comments