Dear all,

I am implementing a kind of branch and cut in GAMS and I have the following problem. I have a simple problem with just two nonnegative constaints in my model:

set p auxiliary superset /1*200/ ;
set i another set /1*100/

variables w(j,m) ;

parameters fs1(j,i), fs2(j,p) ;

equations contraint1(i), constraint2(p) ;

constraint1(i)… sum((j,m), w(j,m) * fs1(j,i)) =g= 0 ;

constraintA2(p)… sum((j,m), w(j,m) * fs2(j,p)) =g= 0 ;

Now, I would like to solve the problem. I inizialize

fs2(j,p) = fs1(j,“1”);

and solve the model with the two constraints. Here there is the first problem: changing the inizialization, e.g. fs2(j,p) = fs1(j,“2”); the solution changes, but I don’t know why since I am just coping a constraint of constraint1(i), namely constraint1(“1”) in the second constraints. The model doesn’t change. Moreover, I would like to implement a branch and cut approach, introducing a dynamic set dynset(p) and redefining the second constraints as

set dynamic(p) ;

dynset(p) = no ;

constraintA2(dynset)… sum((j,m), w(j,m) * fs1(j,dynset)) =g= 0 ;

I again initialize fs2(j,p) = fs1(j,“1”), I solve the model. Then, I have a loop over p: in each iteration I construct the cut defining the value of the parameter

fs2(j,dynset) $(dynset.val = p.val) = …

and set dynset(p) = yes and solve the problem again. But it seems that there is something wrong in the updating phase. I really appreciate all you help.

Thanks in advance, Best regards,

Luca