conditionals in gams · backgroundfeatureslhs & rhspracticesalternatives conditionals in gams...

41

Upload: others

Post on 21-Sep-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Conditionals in GAMS

Pei Huang1

1Department of Agricultural Economics

Texas A&M University

Based on materials written by Gillig & McCarl and improved upon by many previous lab instructors

Special thanks to Mario Andres Fernandez

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 1 / 20

Page 2: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Outline

1 Background

2 Syntax

3 LHS & RHS

4 Using Conditionals

5 Alternatives

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 2 / 20

Page 3: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

What is conditional?

We often wish to have terms present in the algebraic expression only

IF certain conditions are met.

The syntax of conditional in GAMS is the dollar sign $, which is read

as �if�.

$ is the counterpart of logical syntax �if� in other programming

languages, say Visual Basic, C, C++.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 3 / 20

Page 4: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

How it works?

Example

Say index(i) has 40 elements but we only want to sum over the �rst 20. The algebraicexpression is

X =20

∑i=1

Zi .

GAMS code:X=sum(index$(ord(i) le 20),Z(i));

Example

The formula can only be calculated if it meets the condition

pivot =min

(biai

)∀i , s.t. ai > 0.

GAMS code:Pivot=smin(index$(a(i)>0),b(i)/a(i));

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 4 / 20

Page 5: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

How it works?

Example

Say index(i) has 40 elements but we only want to sum over the �rst 20. The algebraicexpression is

X =20

∑i=1

Zi .

GAMS code:X=sum(index$(ord(i) le 20),Z(i));

Example

The formula can only be calculated if it meets the condition

pivot =min

(biai

)∀i , s.t. ai > 0.

GAMS code:Pivot=smin(index$(a(i)>0),b(i)/a(i));

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 4 / 20

Page 6: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Conditionals - $

Conditionals are used to control in GAMS

whether an item is calculated on an element by element basis.the inclusion of terms in equations.the inclusion of set dependent terms in sums.the inclusion of equations in a model on an element by element basis.whether a display is output to *.lst �le.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 5 / 20

Page 7: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Conditionals - $

Conditionals are used to control in GAMS

whether an item is calculated on an element by element basis.

the inclusion of terms in equations.the inclusion of set dependent terms in sums.the inclusion of equations in a model on an element by element basis.whether a display is output to *.lst �le.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 5 / 20

Page 8: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Conditionals - $

Conditionals are used to control in GAMS

whether an item is calculated on an element by element basis.the inclusion of terms in equations.

the inclusion of set dependent terms in sums.the inclusion of equations in a model on an element by element basis.whether a display is output to *.lst �le.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 5 / 20

Page 9: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Conditionals - $

Conditionals are used to control in GAMS

whether an item is calculated on an element by element basis.the inclusion of terms in equations.the inclusion of set dependent terms in sums.

the inclusion of equations in a model on an element by element basis.whether a display is output to *.lst �le.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 5 / 20

Page 10: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Conditionals - $

Conditionals are used to control in GAMS

whether an item is calculated on an element by element basis.the inclusion of terms in equations.the inclusion of set dependent terms in sums.the inclusion of equations in a model on an element by element basis.

whether a display is output to *.lst �le.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 5 / 20

Page 11: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Conditionals - $

Conditionals are used to control in GAMS

whether an item is calculated on an element by element basis.the inclusion of terms in equations.the inclusion of set dependent terms in sums.the inclusion of equations in a model on an element by element basis.whether a display is output to *.lst �le.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 5 / 20

Page 12: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Examples

Whether an item is calculated

X $(Y gt 0)= 10;qq $(sum(i,q(i))gt 0 )= 4;

Whether elements of an item are computed

Q(i)$(a(i)gt 0)= -a(i);A(i)$(abs(a(i))gt 0)= q(i)*a(i);

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 6 / 20

Page 13: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Examples

Whether an item is calculated

X $(Y gt 0)= 10;qq $(sum(i,q(i))gt 0 )= 4;

Whether elements of an item are computed

Q(i)$(a(i)gt 0)= -a(i);A(i)$(abs(a(i))gt 0)= q(i)*a(i);

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 6 / 20

Page 14: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Examples

Controlling inclusion of terms in equations

Eq3$(x=2).. zz=e=3;x = sum(i,q(i))$(qq gt 0)+ 4);Eq4$(x<2).. zz=e=3;

Controlling inclusion of set dependent terms

X = sum(i$(q(i)gt 0), a(i));Loop((k,j)$(cost(i,j)lt 0), x = x + cost(i,j);X = smin(i$(sum(j, cost(i,j))gt 0), q(i));

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 7 / 20

Page 15: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Examples

Controlling inclusion of terms in equations

Eq3$(x=2).. zz=e=3;x = sum(i,q(i))$(qq gt 0)+ 4);Eq4$(x<2).. zz=e=3;

Controlling inclusion of set dependent terms

X = sum(i$(q(i)gt 0), a(i));Loop((k,j)$(cost(i,j)lt 0), x = x + cost(i,j);X = smin(i$(sum(j, cost(i,j))gt 0), q(i));

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 7 / 20

Page 16: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS and RHS Conditionals

LHS conditionals will return the prior value when the case is not true.

Example

Q(i)= 5;Q(i)$(a(i)gt 0)= (a(i)+1);If the condition is not true, what is the value for Q(i)?

RHS conditionals will return zero when the case is not true.

Example

Q(i)= 5;Q(i)= (a(i)+1)$(a(i)gt 0);If the condition is not true, what is the value for Q(i)?

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 8 / 20

Page 17: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS and RHS Conditionals

LHS conditionals will return the prior value when the case is not true.

Example

Q(i)= 5;Q(i)$(a(i)gt 0)= (a(i)+1);If the condition is not true, what is the value for Q(i)?

RHS conditionals will return zero when the case is not true.

Example

Q(i)= 5;Q(i)= (a(i)+1)$(a(i)gt 0);If the condition is not true, what is the value for Q(i)?

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 8 / 20

Page 18: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS and RHS Conditionals

LHS conditionals will return the prior value when the case is not true.

Example

Q(i)= 5;Q(i)$(a(i)gt 0)= (a(i)+1);If the condition is not true, what is the value for Q(i)?

RHS conditionals will return zero when the case is not true.

Example

Q(i)= 5;Q(i)= (a(i)+1)$(a(i)gt 0);If the condition is not true, what is the value for Q(i)?

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 8 / 20

Page 19: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS and RHS Conditionals

LHS conditionals will return the prior value when the case is not true.

Example

Q(i)= 5;Q(i)$(a(i)gt 0)= (a(i)+1);If the condition is not true, what is the value for Q(i)?

RHS conditionals will return zero when the case is not true.

Example

Q(i)= 5;Q(i)= (a(i)+1)$(a(i)gt 0);If the condition is not true, what is the value for Q(i)?

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 8 / 20

Page 20: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS Conditionals

ItemName$(logical condition) = Term;

ItemName is set equal to Term only if the condition is true.

Example

SCALAR X, Y ;Y = 3;X = 1;X$(Y gt 2.5)= 2;Solution: X = 2

Example

SCALAR X, Y ;Y = 2;X = 1;X$(Y gt 2.5)= 2;Solution: X = 1

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 9 / 20

Page 21: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS Conditionals

ItemName$(logical condition) = Term;

ItemName is set equal to Term only if the condition is true.

Example

SCALAR X, Y ;Y = 3;X = 1;X$(Y gt 2.5)= 2;Solution: X = 2

Example

SCALAR X, Y ;Y = 2;X = 1;X$(Y gt 2.5)= 2;Solution: X = 1

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 9 / 20

Page 22: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS Conditionals

ItemName$(logical condition) = Term;

ItemName is set equal to Term only if the condition is true.

Example

SCALAR X, Y ;Y = 3;X = 1;X$(Y gt 2.5)= 2;Solution: X = 2

Example

SCALAR X, Y ;Y = 2;X = 1;X$(Y gt 2.5)= 2;Solution: X = 1

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 9 / 20

Page 23: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS Conditionals

ItemName = Term$(logical condition);

ItemName is set equal to Term only if the condition is true.

Example

SCALAR X, Y ;Y = 3;X = 1;X = 2$(Y gt 2.5);Solution: X = 2

Example

SCALAR X, Y ;Y = 2;X = 1;X = 2$(Y gt 2.5);Solution: X = 0

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 10 / 20

Page 24: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS Conditionals

ItemName = Term$(logical condition);

ItemName is set equal to Term only if the condition is true.

Example

SCALAR X, Y ;Y = 3;X = 1;X = 2$(Y gt 2.5);Solution: X = 2

Example

SCALAR X, Y ;Y = 2;X = 1;X = 2$(Y gt 2.5);Solution: X = 0

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 10 / 20

Page 25: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

LHS Conditionals

ItemName = Term$(logical condition);

ItemName is set equal to Term only if the condition is true.

Example

SCALAR X, Y ;Y = 3;X = 1;X = 2$(Y gt 2.5);Solution: X = 2

Example

SCALAR X, Y ;Y = 2;X = 1;X = 2$(Y gt 2.5);Solution: X = 0

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 10 / 20

Page 26: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Equation Conditionals

EquationName$(logical condition)..

Restrict whether equations are de�ned in a model.

We can restrict whether to

include the crops that do not

have minimum land requirement

by equation conditionals.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 11 / 20

Page 27: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Without Equation Conditional

Include all equations

Use LIMROW option to display equation listings

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 12 / 20

Page 28: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

With Equation Conditional

Only include equations with positive minimum land requirement

Use LIMROW option to display equation listings

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 13 / 20

Page 29: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

SAMEAS Statement

Perform an operation only if a set element text is matched exactly to

another set element text.

The $ command says to operate the sum if i and j are the exact same

text.

Example

X = SUM((i, j)$(SAMEAS(i,j)),c(i, j));

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 14 / 20

Page 30: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

A Transportation Example

No transport from Chicago to Chicago

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 15 / 20

Page 31: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

A Transportation Example

No transport from Chicago to Chicago

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 15 / 20

Page 32: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

A Transportation Example

No transport from Chicago to Chicago

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 15 / 20

Page 33: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Nesting Conditionals

Nested $: statements can involve multiple $ conditions with the

following logical syntax

and: two or more conditionals apply simultaneouslyor: at least one of two or more conditionals applynot: do something when a conditional is not true

Examples

u(k)$(s(k)and t(k))= a(k);u(k)$([not s(k)] and u(k)or t(k))= a(k);u(k)$(s(k)or u(k)and t(k))= a(k);u(k)$(s(k)or [not u(k)and t(k)])= a(k);U(k)$(s(k)$t(k))= a(k);

Use di�erent levels of parenthesis to control the precedence of

calculations.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 16 / 20

Page 34: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Nesting Conditionals

Nested $: statements can involve multiple $ conditions with the

following logical syntax

and: two or more conditionals apply simultaneouslyor: at least one of two or more conditionals applynot: do something when a conditional is not true

Examples

u(k)$(s(k)and t(k))= a(k);u(k)$([not s(k)] and u(k)or t(k))= a(k);u(k)$(s(k)or u(k)and t(k))= a(k);u(k)$(s(k)or [not u(k)and t(k)])= a(k);U(k)$(s(k)$t(k))= a(k);

Use di�erent levels of parenthesis to control the precedence of

calculations.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 16 / 20

Page 35: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Nesting Conditionals

Nested $: statements can involve multiple $ conditions with the

following logical syntax

and: two or more conditionals apply simultaneouslyor: at least one of two or more conditionals applynot: do something when a conditional is not true

Examples

u(k)$(s(k)and t(k))= a(k);u(k)$([not s(k)] and u(k)or t(k))= a(k);u(k)$(s(k)or u(k)and t(k))= a(k);u(k)$(s(k)or [not u(k)and t(k)])= a(k);U(k)$(s(k)$t(k))= a(k);

Use di�erent levels of parenthesis to control the precedence of

calculations.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 16 / 20

Page 36: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Alternative to Conditionals: Subset

Example

Consider the example again. Say index(i) has 40 elements but we only want to sumover the �rst 20. The algebraic expression is

X =20

∑i=1

Zi .

As an alternative, create a subset for �rst 20 elements:

Set subset(i)/i1*i20/;

X=sum(i$subset(i), z(i));

X=sum(subset, z(subset));

X=sum(subset(i), z(i));

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 17 / 20

Page 37: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Alternative to Conditionals: Tuples

Sometimes, the same conditional appear repeatedly. We can �rst

de�ne tuples, and then use these tuples directly in equations.

A tuple refers to a set de�ned over other sets.

Example

Tcosteq..Tcost =e= sum((plant,market)$(supply(plant)and demand(market)and distance(plant,market)), shipments(plant, market)* cost(plant,market));

Rule out non-zero supply, demand, and distance in the transportation

example. The condition $(supply(plant) anddemand(market) and distance(plant,market)) mayappear multiple times in the model.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 18 / 20

Page 38: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Alternative to Conditionals: Tuples

Sometimes, the same conditional appear repeatedly. We can �rst

de�ne tuples, and then use these tuples directly in equations.

A tuple refers to a set de�ned over other sets.

Example

Tcosteq..Tcost =e= sum((plant,market)$(supply(plant)and demand(market)and distance(plant,market)), shipments(plant, market)* cost(plant,market));

Rule out non-zero supply, demand, and distance in the transportation

example. The condition $(supply(plant) anddemand(market) and distance(plant,market)) mayappear multiple times in the model.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 18 / 20

Page 39: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Alternative to Conditionals: Tuples

Sometimes, the same conditional appear repeatedly. We can �rst

de�ne tuples, and then use these tuples directly in equations.

A tuple refers to a set de�ned over other sets.

Example

Tcosteq..Tcost =e= sum((plant,market)$(supply(plant)and demand(market)and distance(plant,market)), shipments(plant, market)* cost(plant,market));

Rule out non-zero supply, demand, and distance in the transportation

example. The condition $(supply(plant) anddemand(market) and distance(plant,market)) mayappear multiple times in the model.

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 18 / 20

Page 40: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Background Features LHS & RHS Practices Alternatives

Tuples

Example

SET thistuple(plant,market)Tuple expressing conditional;

thistuple(plant,market)$(supply(plant)and demand(market)anddistance(plant,market))=yes;

Tcosteq..

Tcost =e= sum(thistuple(plant,market), shipments(plant,market)*cost(plant, market));

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 19 / 20

Page 41: Conditionals in GAMS · BackgroundFeaturesLHS & RHSPracticesAlternatives Conditionals in GAMS Pei Huang 1 1 Department of Agricultural Economics exaTs A&M Universiyt Based on materials

Appendix

Heads On 4

I will email you the question and requirement.

You send an electronic copy of your *.gms �le via email. Put your

name in �rst line as comment.

Hand in a hard copy of *.lst �le (from �Solution Report� to the end).

Pei Huang | Texas A&M University | AGEC 641 Lab Session, Fall 2013 20 / 20