Sum of parameter

Problems with modeling
Post Reply
hazwan2911
User
User
Posts: 1
Joined: 6 years ago

Sum of parameter

Post by hazwan2911 »

Hello. I am new to GAMS, I've been trying to programmed the following equation into GAMS as parameter but somehow cannot obtain my desired result. My code is as below.

sets

i temperature interval /i0*i13/

parameters

T(i) Length of interval i

/ i0 0
i1 2
i2 6
i3 2
i4 8
i5 2
i6 4
i7 0
i8 2
i9 6
i10 2
i11 8
i12 2
i13 4/

Parameter Time(i)/i0 0/;

Time(i) = Time(i-1) + T(i);

The result are as below
i1 2.000, i2 6.000, i3 2.000, i4 8.000, i5 2.000, i6 4.000
i8 2.000, i9 6.000, i10 2.000, i11 8.000, i12 2.000, i13 4.000

My intended code is to make it so that:
Time(i0) = 0
Time(i1) = Time(i0) + T(1)
Time(i2) = Time(i1) + T(2)

Thank you :)
User avatar
bussieck
Moderator
Moderator
Posts: 1033
Joined: 7 years ago

Re: Sum of parameter

Post by bussieck »

Hi,

The parallel assignment statement does not work "in-place" or recursively. It makes a copy of the symbol on the left before it does the assignment. What you need is a loop:

Code: Select all

sets i 'temperature interval' /i0*i13/;
parameters T(i) 'Length of interval i'
/ i0  0,  i1  2,  i2  6,  i3  2,  i4  8,  i5  2,  i6  4
  i7  0,  i8  2,  i9  6,  i10 2,  i11 8,  i12 2,  i13 4 /;

$onempty
Parameter Time(i) / /;

loop(i,
  Time(i) = Time(i-1) + T(i);
);
display Time;
-Michael
Post Reply