Rolling horizon implementation

Dear modelers,

I would like to implement a rolling horizon optimisation. The principle is illustrated in the attachment.

The goal is to simulate a whole period while splitting it into several subperiods for calculation time and working memory reasons.

The given inputs are the demand for the hole period. One set therefore should reflect the whole time, e.g.: set time /1*21/

Splitting the period in 3 parts would lead to 3 iterations: set iter /1*3/

I would like to have one time step overlap, so that the results of this time step can be fixed in the next iteration. Each iteration has 8 time steps(t): set t /1*8/

Now i would like to construct a loop, where the input parametes get updated wih each iteration.

At the end I would like to have the results for the whole considered period.

Has anybody an idea or an example how to implement this in GAMS or is it maybe easier to call GAMS from MATLAB?

Thanks in advance


rolling horizon.pdf (74.3 KB)

Hello stranger (how are you???)



You can use something like this



Set time / t1*t21 /

Set iter / i1*i3 /

Set ittime(iter,time) time periods in each iteration / i1.(t1t8), i2.(t8t15), i3.(t15*t22)

Set otime(time) optimization time period used in model



Equations …

Eq1(time)$otime(time)… expression



Loop(iter,

Otime(time) = ittime(iter,time);

Solve …

Var.fx(otime) = var.l(time);

);



Regards



Arne


\

Arne Stolbjerg Drud

ARKI Consulting & Development A/S

Bagsvaerdvej 246A, DK-2880 Bagsvaerd, Denmark

Phone: (+45) 44 49 03 23, Fax: (+45) 44 49 03 33, email: adrud@arki.dk



From: gamsworld@googlegroups.com [mailto:gamsworld@googlegroups.com] On Behalf Of ebbay2001@web.de
Sent: Tuesday, February 11, 2014 5:16 PM
To: gamsworld@googlegroups.com
Subject: Rolling horizon implementation



Dear modelers,

I would like to implement a rolling horizon optimisation. The principle is illustrated in the attachment.

The goal is to simulate a whole period while splitting it into several subperiods for calculation time and working memory reasons.

The given inputs are the demand for the hole period. One set therefore should reflect the whole time, e.g.: set time /1*21/

Splitting the period in 3 parts would lead to 3 iterations: set iter /1*3/

I would like to have one time step overlap, so that the results of this time step can be fixed in the next iteration. Each iteration has 8 time steps(t): set t /1*8/

Now i would like to construct a loop, where the input parametes get updated wih each iteration.

At the end I would like to have the results for the whole considered period.

Has anybody an idea or an example how to implement this in GAMS or is it maybe easier to call GAMS from MATLAB?

Thanks in advance


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/groups/opt_out.


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/groups/opt_out.

Hi there,

what if you have a large number of iteration? what is the best way to define each period?

On Tuesday, February 11, 2014 11:15:46 AM UTC-5, ebba...@web.de wrote:

Dear modelers,

I would like to implement a rolling horizon optimisation. The principle is illustrated in the attachment.

The goal is to simulate a whole period while splitting it into several subperiods for calculation time and working memory reasons.

The given inputs are the demand for the hole period. One set therefore should reflect the whole time, e.g.: set time /1*21/

Splitting the period in 3 parts would lead to 3 iterations: set iter /1*3/

I would like to have one time step overlap, so that the results of this time step can be fixed in the next iteration. Each iteration has 8 time steps(t): set t /1*8/

Now i would like to construct a loop, where the input parametes get updated wih each iteration.

At the end I would like to have the results for the whole considered period.

Has anybody an idea or an example how to implement this in GAMS or is it maybe easier to call GAMS from MATLAB?

Thanks in advance


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.