harmge.gms : Increasing returns with average cost pricing

Description

MPSGE input file with an example from Kazuya Kamiya:
"Computation of Equilibria with Increasing Returns to Scale"
Discussion Paper Number 73, Faculty of Economics,
Osaka University, Tokyo, Japan.


Small Model of Types : MPSGE mcp


Category : GAMS Model library


Main file : harmge.gms

$title Increasing Returns and average Cost Pricing (HARMGE,SEQ=148)

$onText
MPSGE input file with an example from Kazuya Kamiya:
"Computation of Equilibria with Increasing Returns to Scale"
Discussion Paper Number 73, Faculty of Economics,
Osaka University, Tokyo, Japan.


Kamiya, K, Computation of Equilibria with Increasing Returns to Scale.
Tech. rep., Faculty of Economics, Osaka University, ?.

Keywords: mixed complementarity problem, general equilibrium model, computation
          of equilibria, increasing returns, simplicial algorithm
$offText

Set
   G 'goods'   / X, Y /
   F 'factors' / C, L /;

Scalar
   A   'markup parameter'               / 0 /
   MCP 'flag for marginal cost pricing' / 1 /;

Table ALPHA(*,G) 'production technology'
         X        Y
   L   0.4  0.46154
   C   0.4  0.53846
   K   0.2         ;

Parameter
   NU(G)    'scale elasticity for IRTS sectors' / Y 0.3 /
   BETA(G)  'preference parameters'             / X  1, Y  1 /
   ENDOW(*) 'goods and factor endowments'       / X 20, Y 20, C 20, L 20 /
   K(G)     'specific capital stocks'           / X  1  /;

$onText
$MODEL:KAMIYA

$SECTORS:
   U                  ! UTILITY INDEX
   Z(G)               ! PRODUCTION OUTPUT

$COMMODITIES:
   PU                 ! CONSUMPTION PRICE INDEX
   P(G)               ! OUTPUT PRICES
   W(F)               ! FACTOR PRICES
   R(G)$ALPHA("K",G)  ! SPECIFIC FACTORS IN NON-IRTS SECTORS

$CONSUMERS:
   H                  ! REPRESENTATIVE AGENT

$AUXILIARY:
   Q(G)$NU(G)         ! QUANTITY ADJUSTMENT FOR IRTS SECTOR.
   T(G)$NU(G)         ! PRICING ADJUSTMENT FOR IRTS SECTOR.

* Utility index (Cobb-Douglas)
$PROD:U s:1.0
  O:PU
  I:P(G)         Q:BETA(G)

* Increasing returns sector with endogenous pricing:
$PROD:Z(G) s:1.0
  O:P(G)         Q:1              A:H  N:T(G)$NU(G)
  I:W(F)         Q:ALPHA(F,G)
  I:R(G)         Q:ALPHA("K",G)

* FINAL DEMAND:
$DEMAND:H
  D:PU
  E:P(G)         Q:ENDOW(G)
  E:W(F)         Q:ENDOW(F)
  E:R(G)         Q:K(G)
  E:P(G)$NU(G)   Q:1.0       R:Q(G)

* Quantity adjustment:
$CONSTRAINT:Q(G)$NU(G)
   Q(G) =e= Z(G)**(1 + NU(G)) - Z(G);

* PRICING EQUATION:
$CONSTRAINT:T(G)$NU(G)
   T(G) =e= 1 - ((1 + NU(G)$MCP)/(1 + A))*Z(G)**NU(G);
$offText

$sysInclude mpsgeset KAMIYA

* SPECIFY THAT T(G) AND Q(G) ARE FREE:
Q.lo(G)$NU(G) = -inf;
T.lo(G)$NU(G) = -inf;

$include KAMIYA.GEN
solve KAMIYA using mcp;

Scalar PNORM 'price index for normalization';

Parameter PRICES(*,*) 'equilibrium prices for various pricig rules';

PNORM = sum(G, P.l(G)) + sum(F, W.l(F));
PRICES(G,"MCP") = P.l(G)/PNORM;
PRICES(F,"MCP") = W.l(F)/PNORM;

MCP = 0;
$include KAMIYA.GEN
solve KAMIYA using mcp;
PNORM = sum(G, P.l(G)) + sum(F, W.l(F));
PRICES(G,"ACP") = P.l(G)/PNORM;
PRICES(F,"ACP") = W.l(F)/PNORM;

A = 0.2;
$include KAMIYA.GEN
solve KAMIYA using mcp;
PNORM = sum(G, P.l(G)) + sum(F, W.l(F));
PRICES(G,"A=0.2") = P.l(G)/PNORM;
PRICES(F,"A=0.2") = W.l(F)/PNORM;

A = 0.5;
$include KAMIYA.GEN
solve KAMIYA using mcp;
PNORM = sum(G, P.l(G)) + sum(F, W.l(F));
PRICES(G,"A=0.5") = P.l(G)/PNORM;
PRICES(F,"A=0.5") = W.l(F)/PNORM;

A = 1.0;
$include KAMIYA.GEN
solve KAMIYA using mcp;
PNORM = sum(G, P.l(G)) + sum(F, W.l(F));
PRICES(G,"A=1.0") = P.l(G)/PNORM;
PRICES(F,"A=1.0") = W.l(F)/PNORM;

A = 5.0;
$include KAMIYA.GEN
solve KAMIYA using mcp;
PNORM = sum(G, P.l(G)) + sum(F, W.l(F));
PRICES(G,"A=5.0") = P.l(G)/PNORM;
PRICES(F,"A=5.0") = W.l(F)/PNORM;

* DISPLAY THE RESULTS:
display PRICES;