Query writing equation

Hi,

I wish to write this equation in GAMS. q1 = 10/3 - (2/3) * P1 - (1/3)*
P 2 and q2 = 10/3 - (2/3) * P2 - (1/3)* P 1. If i write it like this
will GAMS differentiate betwen I and J. Pl suggest if it is correct or
how else can it be written.

Set I /1*2/ ;

alias (i, j) ;

Variables P(I) , q(I) ;

Equation
Obj ;

obj…q(I) = (10/3) - (2/3) * P(I) - (1/3)* P(J) ;

Thanks
Ashu
–~–~---------~–~----~------------~-------~–~----~
To post to this group, send email to gamsworld@googlegroups.com
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en
-~----------~----~----~----~------~----~------~–~—

\

Hi Ashu
No, this will not work the way you wrote it. First, you define an equation
obj which is not defined over a set but the equation itself is over I and J.



If you define obj over I, you will run into problems because you now have I
and J in the equation but the equation is only over I.

Obj(I)…q(I) =E= (10/3) - (2/3) * P(I) - (1/3)* P(J) ;

To get rid of that problem you could write something like (if the set I has
only two elements):

Obj(I)…q(I) =E= (10/3) - (2/3) * P(I) - sum(J$(not sameas(I,J),(1/3)* P(J))
;

(sameas(J,I) checks if J is equal to I)

Another solution might be: write obj(i,j) and have a flag that drops the
equations obj(1,1) and obj(2,2))

Parameter flag(i,j)
Flag(i,j) = 1;
Flag(“1”,“1”) = 0;
Flag(“2”,“2”) = 0;

Obj(I,J)$flag(I,J)…q(I) =E= (10/3) - (2/3) * P(I) - (1/3)* P(J) ;

Hope this helps

Renger


-----Original Message-----
From: gamsworld@googlegroups.com [mailto:gamsworld@googlegroups.com] On
Behalf Of ashu
Sent: Thursday, June 25, 2009 10:55 PM
To: gamsworld
Subject: Query writing equation


Hi,

I wish to write this equation in GAMS. q1 = 10/3 - (2/3) * P1 - (1/3)* P 2
and q2 = 10/3 - (2/3) * P2 - (1/3)* P 1. If i write it like this will GAMS
differentiate betwen I and J. Pl suggest if it is correct or how else can it
be written.

Set I /1*2/ ;

alias (i, j) ;

Variables P(I) , q(I) ;

Equation
Obj ;

obj…q(I) = (10/3) - (2/3) * P(I) - (1/3)* P(J) ;

Thanks
Ashu


–~–~---------~–~----~------------~-------~–~----~
To post to this group, send email to gamsworld@googlegroups.com
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en
-~----------~----~----~----~------~----~------~–~—

\

Thanks a lot Renger, I didn’t tried the second option as the very
first option worked.

Ashu

On Jun 26, 12:41 am, Renger van Nieuwkoop
wrote:

Hi Ashu
No, this will not work the way you wrote it. First, you define an equation
obj which is not defined over a set but the equation itself is over I and J.

If you define obj over I, you will run into problems because you now have I
and J in the equation but the equation is only over I.

Obj(I)…q(I) =E= (10/3) - (2/3) * P(I) - (1/3)* P(J) ;

To get rid of that problem you could write something like (if the set I has
only two elements):

Obj(I)…q(I) =E= (10/3) - (2/3) * P(I) - sum(J$(not sameas(I,J),(1/3)* P(J))
;

(sameas(J,I) checks if J is equal to I)

Another solution might be: write obj(i,j) and have a flag that drops the
equations obj(1,1) and obj(2,2))

Parameter flag(i,j)
Flag(i,j) = 1;
Flag(“1”,“1”) = 0;
Flag(“2”,“2”) = 0;

Obj(I,J)$flag(I,J)…q(I) =E= (10/3) - (2/3) * P(I) - (1/3)* P(J) ;

Hope this helps

Renger

-----Original Message-----
From: gamsworld@googlegroups.com [mailto:gamsworld@googlegroups.com] On

Behalf Of ashu
Sent: Thursday, June 25, 2009 10:55 PM
To: gamsworld
Subject: Query writing equation

Hi,

I wish to write this equation in GAMS. q1 = 10/3 - (2/3) * P1 - (1/3)* P 2
and q2 = 10/3 - (2/3) * P2 - (1/3)* P 1. If i write it like this will GAMS
differentiate betwen I and J. Pl suggest if it is correct or how else can it
be written.

Set I /1*2/ ;

alias (i, j) ;

Variables P(I) , q(I) ;

Equation
Obj ;

obj…q(I) = (10/3) - (2/3) * P(I) - (1/3)* P(J) ;

Thanks
Ashu
–~–~---------~–~----~------------~-------~–~----~
To post to this group, send email to gamsworld@googlegroups.com
To unsubscribe from this group, send email to gamsworld+unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/gamsworld?hl=en
-~----------~----~----~----~------~----~------~–~—

\