0

How can I minimize a function, which contains an inner minimum. Below is an example. I understand that I can start from defining a new variable x4=min(c1*x1, c2*x2, c3*x3), then add new constraints x4<=c1*x1, x4<=c2*x2, x4<=c3*c3. But this is obviously not correct because a x4 that is smaller than those terms above is not necessarily the minimum of them(actually any x4 that is smaller than the minimum will satisfy the constraints above). How should I reformulate this to make it correct? Thank you.

Minimize
    (c1 * x1) + (c2 * x2) + (c3 * x3) + (c4 * min(c1*x1, c2*x2, c3*x3)) 
subject to
    #some arbitrary linear constraints:
    x1 >= ...
    x1 + 2*x2 <= ... 
    x3 >= ...
    x1 + x3 == ...
daydayup
  • 2,049
  • 5
  • 22
  • 47
  • 1
    Is this homework? This is **exactly** the same problem as [here](http://stackoverflow.com/questions/10792139/using-min-max-within-an-integer-linear-program)! There you will find your solution! – sascha Jul 16 '16 at 19:09
  • no. the problem you pointed is a minimum over maximum problem. this one is a minimum over minimum. the approach in that question does not apply to this one. – daydayup Jul 16 '16 at 21:20
  • Well your problem is now answered there in the comments by one of Gurobi's key people. – sascha Jul 16 '16 at 21:46

0 Answers0