Originally posted by: Nodame
Thanks again for your reply Ming. Just to make sure I understand your reasoning.
You are introducing 2 new sets of variables: lambda_i 's (Binary) and alpha_i 's (i = 1,...,n) where alpha_i >= 0 for each i.
New Constraints to introduce:
(i) alpha_i <= lambda_i * M, for each i
(ii) | alpha_i - x_i | <= (1 - lambda_i) * M , for each i
(iii) \sum_{i=1}^n alpha_i >= B_j * 1000, for each j
(iv) \sum_{i=1}^n lambda_i = 1
My understanding of the above:
We know from (iv) and from the definition of the lambda_i's that there is a unique index i such that lambda_i = 1. Let's call this 'special unique' index h. We have that
lambda_h = 1, and lambda_i = 0 for all i != h (!= meaning not equal to)
From (i), alpha_h <= M (where M is a Large positive number), and from (ii), we get that alpha_h = x_h
Now Let's assume B_j = 1 for some j . It follows from (iii) that
\sum_{i=1}^n alpha_i = alpha_h + 0 >= 1000.
And so x_h >= 1000.
In the case B_j = 0 for all j. It follows that x_h >= 0 (which does not hurt).
I think this works.
#CPLEXOptimizers#DecisionOptimization