set G default {(1,1)}; #here I struggled to define a two-dimensional, you may give your advice on how to correct this?
let G := G diff {(1,1)};
set ell := 1..n;
set S{K,ell};
option relax_integrality 1;
solve;
for{k in K}
{
for{f in ell}
{
let S[k,f] := {};
let S[k,f] := S[k,f] union {t};
}
}
if (sum{v in S[k,f]} Q[k,v] > (sum{v in S[k,f]} dendp[k,v,f]*x[k,v] + E[k,f])) then
{
#let G := G union {S[k,f]}; #I tried both variants, just for reference; and I included the if-loop into the for-loop from above --> same result
let G := G union {(k,f)};
}
}
}
s.t. Inequalities{(k,f) in G}: sum{v in S[k,f]} Q[k,v] <= (sum{v in S[k,f]} dendp[k,v,f]*x[k,v] + E[k,f]);
After the execution of this code, I get the following error messages:
CPLEX
12.9.0.0: optimal solution; objective 2120.59987
151 dual simplex iterations (44 in phase I)
presolve, variable E[5,1]:
impossible deduced bounds: lower = 0, upper = -10
presolve, variable E[2,1]:
impossible deduced bounds: lower = 0, upper = -10
....... (and some more from this sort)
As you can see, I have the problem that doesn't know how to implement ONLY restrictions that meet the if-condition from above. (--> "Add the violated (l,S) inequality")
The algorithm from the paper which I'm trying to implement defines the inequalities as follows:
You may have another hint for me on how to add only the valid inequalities?