Wednesday, June 21, 2017

Minimizing the k-th largest x

Minimizing the largest xixi is an easy exercise in LP modeling:
minzzxi
This is sometimes called MINIMAX.

What about minimizing the kth largest value? Here is one possible MIP formulation:

minzzxiδiMiδi=k1δi{0,1}

I.e., we have k1 exceptions on the constraint zxi. The objective will make sure the exceptions are the largest xi.  We should think long and hard about making the big-M’s as small as possible. If you have no clue about proper bounds on xi one could use indicator constraints.

Interestingly, minimizing the sum of the k largest can be modeled as a pure LP (1) :

minivi+kqvixiqvi0q free 

You almost would think there is an LP formulation for minimizing the kth largest value. I don't see it however.
References
  1. Comment by Michael Grant in http://orinanobworld.blogspot.se/2015/08/optimizingpartoftheobjectivefunction-ii.html.

2 comments:

  1. What is the 'M' in your formulation for the k largest? (Sorry if this is obvious!)

    ReplyDelete
    Replies
    1. Big-M constraints are an important concept in integer programming. Basically M is a large enough constant to make a constraint non-binding. Any book on LP/MIP will discuss this in length.

      Delete