Thanks a lot Dax, i really appreciate for your help.

On Wednesday, October 1, 2014 2:40:16 AM UTC-5, dax wrote:

Le mardi 30 septembre 2014 17:46:44 UTC+2, Akgun a Ã©crit :

Hi I am trying to to a scenario analysis, and I have defined a set sc (1 to 45) which includes the multipliers for different scenarios and I would like to create either a loop or a while (or whatever is appropriate) statement which only considers the value of sc at each iteration. For instance,

My Objective Function

obj… z =e= sum(p$(ord(p) GT 1), sum(i,sum(q$types(i,q) , sum(sc,invcostm(sc,q))*(cinv(q,p))

(I could not write the objective function without summation of sc), So I wanted to change the sc’s value at each iteration as a scalar value.

Hi Agkun,

I would do it this way.

Create an empty dynamic subset of your initial scenario set :

SET SUB_SCEN(sc) ;

sub_scen(sc) = no ;

In your objective statement, write it using the subset only :

obj… z =e= sum(p$(ord(p) GT 1), sum(i,sum(q$types(i,q) , sum(SUB_SCEN,invcostm(SUB_SCEN,q))*(cinv(q,p))

We will try to guarantee that, at solve time, only one relevant element is active in the subset.

Finally, here comes the trick : encapsulate your “solve” statement in a loop on the scenario set, which will be your “iteration” set :

loop(sc,

- activate the current scenario in the subset

SUB_SCEN(sc) = yes ;
- solve whatever you need to solve

solve …
- don’t forget to de-activate the current scenario in subset

SUB_SCEN(sc) = no ;
- end of the loop – switch to next scenario

);

## Hope this helps.

cheers

dax

\

To unsubscribe from this group and stop receiving emails from it, send an email to gamsworld+unsubscribe@googlegroups.com.

To post to this group, send email to gamsworld@googlegroups.com.

Visit this group at http://groups.google.com/group/gamsworld.

For more options, visit https://groups.google.com/d/optout.