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;