## Why does GAMS change binary variables to positive ones in a loop?

Problems with modeling
moosavi_69
User Posts: 16
Joined: 2 years ago

### Why does GAMS change binary variables to positive ones in a loop?

Dear friends,

I have coded a scheduling problem in GAMS using the Sample Average Approximation. This model is a MILP mathematical model. I have chosen Cplex as the solver for this problem. The code solves a problem in a loop for multiple times, and it fixes binary variables, i.e., xa, and xaa, in each iteration. Finally, it will free their upper and lower bounds. For more clarification, I have provided a summary of this model in the following:

loop(rr,
****************** First sample for SAA
Solve Finall using MIP min f;

****************** Second sample for SAA
xa.fx(i,j,k,r,t)=x.l(i,j,k,r,t);
Solve Finalls using MIP min fa;

****************** Solving Simple Model
loop(scenarios,
xaa.fx(i,j,k,r,t)=x.l(i,j,k,r,t);
Solve Finallss using MIP min fss;

xaa.lo(i,j,k,r,t)=0;
xaa.up(i,j,k,r,t)=1;
);

xa.lo(i,j,k,r,t)=0;
xa.up(i,j,k,r,t)=1;
);

My problem is that as the model runs the problem, it changes the first set of binary variables, i.e., x, to positive variables.

GabrielYin
User Posts: 57
Joined: 1 year ago
Location: Dallas, TX, USA

### Re: Why does GAMS change binary variables to positive ones in a loop?

Hi,

I am just curious if you have defined xa and xaa as binary variables, why you still need to set the lower/upper bound in your loop? Actually in SAA you only need to calculate the sampling expectation as lower bound and the replication expectation as upper bound to formulate the confidence interval (though there are multiple ways to do SAA and calculate CI, the process is similar).

My suggestion is, if you have defined them as 'binary' in the definition part, just deleting the codes binding xa and xaa. Their being positive might be resulted from repeated bound settings.

Best,
Gabriel 