Get Maximum value of a cluster as a constraint in a MILP

55 Views Asked by At

I am facing the following problem: I have same kind of a clustering Problem

\begin{alignat}{4} \text{min }\quad& \sum_{c \in C} \sum_{s \in S} - y_{c,s}\\[2ex] \text{s.t. }\quad& \sum_{c \in C}\sum_{s \in S} x_{p,c,s} &= &\quad 1 &\quad\forall p \in P \\ & y_{c,s} &\le &\quad x_{p,c,s} \cdot S_{p,c,s} &\quad \forall p \in P, \forall c \in C, \forall s \in S \\ & x_{p,c,s} &\in &\quad \{0,1\} &\quad\forall p \in P, \forall c \in C, \forall s \in S \\ & y_{c,s} &\in &\quad \mathbb{R}^+ &\quad\forall c \in C, \forall s \in S \\ \end{alignat}

$y_{c,s}$ should indicate the maximum of all every Parameter $p$ multiplied with a factor $S_{p,c,s}$ which are assignt to cluster $(c,s)$. Normally I would use $y_{c,s} \ge x_{p,c,s} \cdot S_{p,c,s}$ but due to the fact I want to maximize the maximum value in every cluster $(c,s)$ the variable $y_{c,s}$ would be choosen infinit. I kind find at the moment a good idea to solve this problem, I also already thought about the big-$M$ Methode but I couldn't find a satisfactory solution.

Thanks in advance for your help

Greetings!

1

There are 1 best solutions below

1
On BEST ANSWER

It sounds like you want to maximize $$\sum_c \sum_s \max_{p: x_{pcs}=1} S_{pcs},$$ and you have introduced $y_{cs}$ to represent the summand $\max_{p: x_{pcs}=1} S_{pcs}$. Introduce binary variable $z_{pcs}$ to indicate whether $y_{cs}=S_{pcs}$. The constraints are \begin{align} \sum_p z_{pcs} &= 1 &&\text{for all $c,s$} \tag1\label1 \\ \sum_p S_{pcs} z_{pcs} &= y_{cs} &&\text{for all $c,s$} \tag2 \\ z_{pcs} &\le x_{pcs} &&\text{for all $p,c,s$} \tag3 \end{align} If cluster $(c,s)$ can be empty, relax constraint $\eqref{1}$ to $\le 1$.