How to initialize parameter with *

Problems with syntax of GAMS
Post Reply
leewing159
User
User
Posts: 15
Joined: 4 years ago

How to initialize parameter with *

Post by leewing159 »

Hi, I have a trouble to initialize a parameter.

Let's say I have a parameter A(a, b, *) and I would like to initialize the whole parameter with 0.
I put various column on *, for example, A(a, b, "Column 1"), A(a,b, "Column 2") ... A(a, b, "Column n")

I tried A(a, b, *) = 0; but it brings a error message "Set identifier or quoted element expected".

Is there any way to initialize parameter A to 0?

Best,
Fred
Posts: 372
Joined: 7 years ago

Re: How to initialize parameter with *

Post by Fred »

Hi,

You cannot have a set "a" and a Parameter "A". GAMS is not case sensitive. Initializing a parameter explicitly to zero is usually also not needed because 0 is the default value. But let's assume you want to set the parameter to some non-zero value. When you do not specify a domain explicittly for the third dimension at the declaration of the parameter, you should make sure to understand how the universal set * works. You can use the universal set in assignments by introducing an alias for it, e.g.

Code: Select all

set a / a1*a3 /
    b / b1*b3 /
    c / column1, column2, bla, blubb /
;
Parameter p(a,b,*);
alias(*,u);
p(a,b,u) = 5;
display p;
Be sure to check the output of the display statement to understand the impact of using the universal set.

I hope this helps!

Fred
leewing159
User
User
Posts: 15
Joined: 4 years ago

Re: How to initialize parameter with *

Post by leewing159 »

Thanks for your answer!
It really helped me a lot.

Jake
Post Reply