gams:the_sum_of_consecutive_four_elements_in_a_vector_should_be_less_than_10

Q: *Say a vector A has ten values (decision variables) Objective: Maximize the sum of A. How do I model this constraint: The sum of consecutive four elements in the vector should be less than 10.*

You can use the lag and lead operator as in the following example:

Set i /1*10/; Alias (i,j); Set iconseq(i,j); Scalar cnt; loop(i, for(cnt=0 to 3, iconseq(i,i+cnt) = yes)); display iconseq; Variable x(i); Equation e(i); e(i).. sum(iconseq(i,j), x(i)) =l= 10;

If you want your constraint to interpret “consecutive” in a circular manner, you will have to replace `+`

in the `loop`

-statement by `++`

like this:

loop(i, for(cnt=0 to 3, iconseq(i,i++cnt) = yes));

IMPRESSUM / LEGAL NOTICE
PRIVACY POLICY
gams/the_sum_of_consecutive_four_elements_in_a_vector_should_be_less_than_10.txt · Last modified: 2020/05/18 12:02 by Lutz Westermann