• #### Activate a constraint only if value of a variable is above a threshold

From varun7rs@gmail.com@21:1/5 to All on Fri Jul 29 02:24:16 2016
Hi all,

I've been working on a MILP which considers the following knapsack constraint. I modified the RHS to include a continuous variable \mu_{fl} \in [0,1], which indicates the utilisation level of the knapsack.

\sum_{d\in D}x^{d}_{fl}*r^{d} \le \mu_{fl} c_{fl} \forall fl\in FL --(1)

x^{d}_{fl} \in {0,1}
r^d - resource demands

Now, what I intend to do is activate a processing delay constraint incase the knapsack utliisation exceeds a threshold set by us

So if \mu_{fl} > \mu_{thres} (we set it to 0.9)
then \sum_{fl\in FL}x^{d}_{fl}*del_{fl} \leq del_{d} \forall d\in D --(2)

I tackled this in a not so elegant way

Firstly, I defined a binary variable that is activated in-case the utilisation of the knapsack reaches the threshold level. Then I replaced the binary variable in constraint 2 with the newer binary variable.

z_{fl} \in {0,1}

z_{fl} \ge \mu_{fl} - 0.9 --(3) ( we set \mu_{thres} to 0.9 )

\sum_{fl\in FL}z_fl*del_{fl} \leq del_{d} \forall d\in D --(4)

But as I said the approach isn't so elegant. So, could any of you suggest an alternate formulation to my problem?

Thanks a lot

--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)
• From Paul@21:1/5 to All on Fri Jul 29 12:29:48 2016
First, I think your equation (4) contains at least one error. The x factor from (2) went missing.

Second, your statement of the condition in (2) does not make sense. You are trying to turn on (or off) a constraint involving the summation over fl indices based on the value of \mu_{fl} for a single fl index (which one?).

So the first step is to repair/clarify the question. You might want to post the revised question on OR Exchange (https://www.or-exchange.org/), which gets a lot more traffic these days than sci.op-research does.

--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)