Page 1 of 1

### Problem in changing the parameter.

Posted: Fri Sep 14, 2018 10:03 am
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.

Luca

### Re: Problem in changing the parameter.

Posted: Mon Sep 17, 2018 8:08 am
Hi Luca
It looks obvious that you have different solutions as you choose different values for the parameters.
The question on the dynamic set is hard to answer without the code to run the model and the exact error.
Cheers
Renger

### Re: Problem in changing the parameter.

Posted: Mon Sep 17, 2018 8:23 am
Thanks very much for your answer. It is true that I have different value for the parameters, but the second equations are just the copy-paste of one of the equation in the first set. I have all the equation I need in the first group of constraints, while in the second one I have always a constraint that I already have in the previous set. If I set fs2(j,p) = fs1(j,"1"); I copy the first constraint, if I set fs2(j,p) = fs1(j,"2"); I copy the second one and so on. I still do not get why gams gives different solutions.

### Re: Problem in changing the parameter.

Posted: Mon Sep 17, 2018 2:21 pm
Luca,

If you want an answer to your question, you have only to post a running (and hopefully minimal) example that reproduces the issue. I feel sure this will get you a helpful response. There is also a good chance that putting this together will lead you to the solution of your own problem.

-Steve

### Re: Problem in changing the parameter.

Posted: Mon Sep 17, 2018 3:09 pm
Here there is the code. I have a master problem, PROBLEM1, whose constraints are dynamically added by solving PROBLEM2. The syntax is correct, but the code has a strange behaviour (I am not sure I use the dynamic set in the right way). Thanks very much for all your suggestions.

### Re: Problem in changing the parameter.

Posted: Tue Sep 18, 2018 8:54 am
Hi Luca
If you are sure that the equations are the same, make a check by writing a report parameter that looks at the differences between solutions (just write out the matrix fssol for every solve and compare them.
Thy dynamic set works fine (one element of the set is added in every run).
Cheers
Renger

### Re: Problem in changing the parameter.

Posted: Tue Sep 18, 2018 8:59 am
Thanks for the answer. I have already check the difference between fsSOL matrix and apparently all is ok.
But, when I solve the problems (which apparently are the same), I obtain different solutions.
-- Luca