spatequ.gms : Spatial Equilibrium

Description

This program is written for the spatial equilibrium model with linear supply
and demand having two products and three regions.

The model contains multiple approaches (LP, NLP, and MCP) for solving this
problem.

References

  • Takayama, T, and Judge, G G, Spatial Equilibrium and Quadratic Programming. Journal of Farm Economics 46, 1 (1964), 67-93.
  • Hieu, P S, Policy option to promote the wood-processing industry in northern Vietnam. PhD thesis, The University of Queensland, Australia, 2011.
  • Phan, S H, and Harrison, S, A Review of the Formulation and Application of the Spatial Equilibrium Models to Analyze Policy. Journal of Forestry Research 22, 4 (2011).

Small Model of Type : MCP


Category : GAMS Model library


Main file : spatequ.gms

$Title  Spatial Equilibrium (SPATEQU,SEQ=354)
$Ontext
This program is written for the spatial equilibrium model with linear supply
and demand having two products and three regions.

The model contains multiple approaches (LP, NLP, and MCP) for solving this
problem.


Phan, S H, Policy option to promote the wood-processing industry in
northern Vietnam, forth coming. PhD thesis, 
The University of Queensland, Australia, 2011.

Phan, S H, and Harrison, S, A Review of the Formulation and
Application of the Spatial Equilibrium Models to Analyze
Policy. Journal of Forestry Research 22, 4 (2011).

The numerical example has been taken from:
Takayama, T, and Judge, G G, Spatial Equilibrium and Quadratic
Programming. Journal of Farm Economics 46, 1 (1964), 67-93

Contributed by: Phan Sy Hieu, November 2010
$Offtext

Sets     c       Commodities    /Com1, Com2/
         r       Regions        /Reg1, Reg2, Reg3/;
Alias  (r,rr), (c,cc);

Table AlphaD(r,c) Constants of demand functions
              Com1    Com2
    Reg1      200      300
    Reg2      100      200
    Reg3      160      250;

Table BetaD (r,c,cc) Price coefficients of demand functions
                      Com1     Com2
    Reg1.Com1         -10       1
    Reg1.Com2           1     -10
    Reg2.Com1          -5       1
    Reg2.Com2           1     -20
    Reg3.Com1          -8       1
    Reg3.Com2           1     -10;

Table BetadSq (r,c,cc) Price coefficients of demand functions for quadratic functions
                     Com1     Com2
    Reg1.Com1         -5       1
    Reg1.Com2          1      -5
    Reg2.Com1         -2.5     1
    Reg2.Com2          1     -10
    Reg3.Com1         -4       1
    Reg3.Com2          1      -5;

Table AlphaS(r,c) Constants of supply functions
              Com1     Com2
    Reg1      -50      -60
    Reg2      -50      -60
    Reg3      -50      -60;

Table BetaS (r,c,cc) Price coefficients of supply functions
                      Com1     Com2
    Reg1.Com1          10       0.5
    Reg1.Com2          0.5      15
    Reg2.Com1          20       0.5
    Reg2.Com2          0.5      25
    Reg3.Com1          10       0.5
    Reg3.Com2          0.5      15;

Table BetasSq (r,c,cc) Price coefficients of supply functions for quadratic functions
                      Com1     Com2
    Reg1.Com1          5       0.5
    Reg1.Com2          0.5     7.5
    Reg2.Com1         10       0.5
    Reg2.Com2          0.5    12.5
    Reg3.Com1          5       0.5
    Reg3.Com2          0.5     7.5;

Table TCost(r,rr,c) Transportation cost for commodities
                   Com1      Com2
    Reg1.Reg1        0        0
    Reg1.Reg2        2        3
    Reg1.Reg3        2        3

    Reg2.Reg1        2        3
    Reg2.Reg2        0        0
    Reg2.Reg3        1        2

    Reg3.Reg1        2        3
    Reg3.Reg2        1        2
    Reg3.Reg3        0        0;

Variables
    DINT(r,c)            Integrals of demand functions
    SINT(r,c)            Integrals of supply functions
    TC                   Total transportation cost
    Qd(r,c)              Demand quantities
    Qs(r,c)              Supply quantities
    X(r,rr,c)            Quantities transported between regions
    P(r,c)               Price
    OBJ                  Objective value of total economic surplus subtracting total transportation;
Positive Variables X, P 

Equations
    DEM(r,c)             Demand functions
    DEMLOG(r,c)          Demand functions nonlinear
    DEMINT(r,c)          Integrals of demand functions
    SUP(r,c)             Supply functions
    SUPLOG(r,c)          Supply functions nonlinear
    SUPINT(r,c)          Integrals of supply functions
    SDBAL(c)             Supply and demand quantity constraints
    PDIF(r,rr,c)         Price differences between regions
    TRANSCOST            Transportation cost equation
    SX(r,c)              Quantities transported and supply quantity
    DX(r,c)              Quantities transported and demand quantity
    OBJECT               Objective equation for NLP
    IN_OUT(r,c)          Trade flows
    DOM_TRAD(r,rr,c)     Domestic trade price relationship;

DEM(r,c)..
    AlphaD(r,c) + sum(cc, (BetaD(r,c,cc)*P(r,c))) =e= Qd(r,c);

DEMLOG(r,c)..
    AlphaD(r,c) + sum(cc, (BetaD(r,c,cc)*log(P(r,c)))) =e= Qd(r,c);

DEMINT(r,c)..
    DINT(r,c) =E= AlphaD(r,c)*P(r,c) + sum(cc, BetadSq(r,c,cc)*P(r,cc))*P(r,c);

SUP(r,c)..
    AlphaS(r,c) + sum(cc, (BetaS(r,c,cc)*P(r,c))) =e= Qs(r,c);

SUPLOG(r,c)..
    AlphaS(r,c) + sum(cc, (BetaS(r,c,cc)*log(P(r,c)))) =e= Qs(r,c);

SUPINT(r,c)..
    SINT(r,c) =e= AlphaS(r,c)*P(r,c)+ sum(cc, BetasSq(r,c,cc)*P(r,cc))*P(r,c);

SDBAL(c)..
    sum(r,Qd(r,c)) =e= sum(r, Qs(r,c));

TRANSCOST..
    TC =e= sum((r,rr,c), X(r,rr,c)*TCost(r,rr,c));

OBJECT..
    OBJ =e= sum((r,c), DINT(r,c) - SINT(r,c)) - TC;

PDIF(r,rr,c)..
    P(r,c) - P(rr,c) =l= TCost(r,rr,c);

SX(R,C)..
     sum(RR,X(R,RR,C)) =e= Qs(R,C);

DX(r,c)..
    sum(rr, X(rr,r,c)) =e= Qd(r,c);

IN_OUT(r,c)..
    Qs(r,c) + sum(rr, X(rr,r,c) - X(r,rr,c)) =e= Qd(r,c);

DOM_TRAD(r,rr,c)..
    P(r,c) + TCost(r,rr,c) =g= P(rr,c);

model P2R3_Linear     / DEM, SUP, SDBAL, PDIF, TRANSCOST, SX, DX /;
model P2R3_LinearLog  / DEMLOG, SUPLOG, SDBAL, PDIF, TRANSCOST, SX, DX /;
model P2R3_NonLinear  / P2R3_Linear, DEMINT, SUPINT, OBJECT /;
model P2R3_MCP        / DEM, SUP, IN_OUT.P, DOM_TRAD.X /;

solve P2R3_Linear    using  lp minimizing TC;
solve P2R3_LinearLog using nlp minimizing TC;
solve P2R3_NonLinear using nlp maximizing OBJ;
X.fx(r,r,c) = 0; solve P2R3_MCP using mcp;