Dear All,

In my GAMS code, I have written two equations with which I am calculating the total costs of a energy system [variable TC on the domain j (fuel type) and i (technology)] and TCmin which allows me to determine the cheapest of the different configurations:

TotCost(i,j)… TC(i,j) =e=Eg(i)*C(i)+coi(i,‘IC’)+coj(j,‘P’)*V(i,j) ;

MinTotcost… TCmin=e=smin((i,j),TC(i,j));

So far so good.

But to be totally happy with my code, I would like it to return not only the price of the cheapest configuration but also the details of that configuration: the corresponding set elements i and j .

As set elements are stored as string data type, I don’t know how I possibly could get GAMS to give me a specific (i;j) subset as output data.

Any suggestion?

Thank you

Hi Lenilein,

Is TC(i,j) a parameter (fixed in an instance of a solve) or a variable ? I get from your question that you intend to use it as a variable. Be aware that if it is a variable in your model, the smin() operator would require a DNLP solver (http://old.gams.com/latest/docs/userguides/mccarl/smin__smax.htm).

If you manage to do this either by defining the model to be DNLP or through a reformulation, you can use this code to store the (i,j) pair in a set (an option among many). This also assumes TC (and therefore TCmin are “variables”).

set whichIsMin(*,*);

whichIsMin(i,j)=YES$(TC.l(i,j)=TCmin.l);

If they are in fact parameters, you don’t need to use equations for their definition.

Good luck

Hi cladelpino,

Excellent, it worked!!

TC(i,j) and TCmin are indeed both variables in my model.

Thanks a lot for your help!