How to covert min min problem to linear programming problem?
I have the following problem: set $P=\{1,2,3...,n\}$ for index $i$, set $K=\{1,2,3,...,m\}$ for index $k$. Value $B_i^k$ is indexed by both $i$ and $k$, while value $l_i$ is indexed by only $i$. Here the objective is that for any $i$ we find the minimum $B^k_i$ value $\mathop {\min }\limits_{k \in K} B_i^k$, minus $l_i$, then accumulate it over $i$. I don't mention the constraints here because they are at least 10 constraint equations on $B_i^k$ and other decision variables that are not included in the objective function, such as binary variables $x_{ij}$, etc. All the constraints can be converted to linear constraints. Is there a way to convert the objective function to standard LP format? Thank you.
The objective is :
$\min \sum\limits_{i \in P}^{} {\left( {\left( {\mathop {\min }\limits_{k \in K} B_i^k} \right) - {l_i}} \right)} $
===============================================================
Update: I still need help with this problem. As @user25004 pointed, naively I can define a new variable $A_i=\mathop {\min }\limits_{k \in K} B_i^k$, and add more constraints on $A_i$ : $A_i <=B_i^k$, for any $k$. But this is not correct because the outside is also a $min$, so solver will make $A_i$ infinitely low to get a "minimum".
I have looked up other related "minimizing over minimum" or "maximizing over maximum" problem. Not much luck but in this post https://stackoverflow.com/questions/10792139/using-min-max-within-an-integer-linear-program , which one answer mentioned "min over min". And he suggest, without details, that we should try "defining new binary variables and use the big-M coefficient". I was trying to make $\mathop {\min }\limits_{k \in K} B_i^k = \sum_{k}B_i^k y_k$ , where $y_k$ is binary variables. And then $B_i^k y_k = B_i^k - M_k(1-y_k)$ using the big-M coefficient. But I know this big-M method is useful when it is in the constraints, the problem is it is now in the objective. I just couldn't continue.
Does anybody know how to effectively formulate the inner minimum $\mathop {\min }\limits_{k \in K} B_i^k$ ? Thank you so much.
Greg Glockner showed how to linearize the following example: $$ \min\left\{\min\{x_1,x_2,x_3\}\right\} $$
For the sake of clarity, I will explain how he achieves this. He introduces a variable $z=\min\{x_1,x_2,x_3\}$ and binary variables $y_1,y_2,y_3$ to deactivate extra (big-$M$) constraints : $$ z\ge x_1-My_1\\ z\ge x_2-My_2\\ z\ge x_3-My_3\\ y_1+y_2+y_3=2 $$ Lets analyze these constraints. First $y_1+y_2+y_3=2$ imposes that exactly $2$ binaries equal $1$, so that exactly two constraints are no longer active. The only constraint that will remain active (the one for which $y_i=0$) is the one for which $x_i$ is the minimum.
For example, if $x_1=\min\{x_1,x_2,x_3\}$, then you will have $y_1=0$ and $y_2=y_3=1$, so that the only constraint that remains active is $$ z\ge x_1 $$
And since the solver is minimizing $z$, it will try to fix it to $x_1$ at least, ensuring tightness.
Now, back to your problem, replace constraints $A_i\le B_i^k$ by similar ones, e.g.: $$ A_i\ge B_i^k-My_i\quad \forall i\in P\\ \sum_{i\in P}y_i=|P|-1 $$
The source of nonlinearity here is the inner min. To reformulate it to a linear form, you need to replace that inner min.
For this purpose, you can define a new variable $A_i$ equal to the inner min and substitute it. i.e. replace $A_i = \min_{k \in K} B_i^k$.
Next you need to insert a set of linear constraints to guarantee that $A_i$ is actually the min of $B_i^k$.
Representation of min with a set of linear constraints Hint: The min of a set of variables is smaller than or equal each of those variables.