syntax for KKT conditions

Problems with syntax of GAMS
Post Reply
chessosskar
User
User
Posts: 12
Joined: 2 years ago

syntax for KKT conditions

Post by chessosskar »

Hi i am struggling with writing out the KKT conditions for my model


This is what i want I'm trying to write
Screenshot 2022-04-04 at 01.21.17.png
Screenshot 2022-04-04 at 01.21.17.png (12.97 KiB) Viewed 1680 times

my best attempt is the following:

Rus_KKT_2(Rus_mines).. s_coefs(Rus_mines,"alpha")+ lambda(Rus_mines)-xi(Russia) =g= 0;


Which gives these errors:
**** 120 Unknown identifier entered as set
**** 149 Uncontrolled set entered as constant
**** 171 Domain violation for set
**** 340 A label/element with the same name exist. You may have forgotten
**** to quote a label/element reference. For example,
**** set i / a,b,c /; parameter x(i); x('a') = 10;

I can tell it doesn't like my entering xi(Russia) as a variable but I'm not sure why. Why can't I just enter variables into an inequality condition?




Here's the full set of conditions:
Screenshot 2022-04-04 at 01.23.59.png
My initial attempt at the first KKT condition was the following
US_KKT_1_US(j).. tc(US,j)-p(j)+ d_coefs(j,"eta")*s(US,j)+xi(US) =g=0;

GAMS did not like that at all. So i swapped every US for 'players1' and then it ran fine. Why is it the case that i can enter sets into equilibrium conditions like xi(players1) but not variables like xi(US)?


Thanks in advance,
Oskar
chessosskar
User
User
Posts: 12
Joined: 2 years ago

Re: syntax for KKT conditions

Post by chessosskar »

Every player has a set of mines and one dual variable for supply. Therefore i don't think i can simply write
Rus_KKT_2(Rus_mines, players1)

since this would create equilbirum conditions that relate russia mines to US and Australian dual variables which wouldn't make much sense.
Post Reply