kehomge.gms : Multiple equilibria in a simple GE model

Description

This is a simple general equilibrium model with multiple (three)
isolated equilibria.  There are four commodities, two
Leontief production activities, and four consumers with Cobb-
Douglas preferences.


Small Model of Types : MPSGE mcp


Category : GAMS Model library


Main file : kehomge.gms

$title Multiple Equilibria in a simple GE Model (KEHOMGE,SEQ=149)

$onText
This is a simple general equilibrium model with multiple (three)
isolated equilibria.  There are four commodities, two
Leontief production activities, and four consumers with Cobb-
Douglas preferences.


Kehoe, T, A Numerical Investigation of the Multiplicity of Equilibria.
Mathematical Programming Study 23 (1985), 240-258.

MILES may find any of the three equilibria depending
on the  starting point.

Keywords: mixed complementarity problem, general equilibrium model, fixed-point index,
          genericity, activity analysis
$offText

Set
   G  'goods'      / G1*G4   /
   S  'sectors'    / S1,S2   /
   C  'consumers'  / C1*C4   /
   EQ 'equilibria' / EQ1*EQ3 /;

Table SP(G,EQ) 'starting points for finding various equilibria.'
        EQ1  EQ2  EQ3
   G1   1    1    1
   G2   1    1    0.8
   G3   1    0.2  0.7
   G4   0.2  1    1  ;

Table E(G,C) 'factor endowments'
        C1  C2  C3  C4
   G1    5
   G2        5
   G3           40
   G4               40;

Table ALPHA(G,C) 'budget shares'
          C1    C2    C3      C4
   G1   0.52  0.86  0.50    0.06
   G2   0.40  0.10  0.20    0.25
   G3   0.04  0.02  0.2975  0.0025
   G4   0.04  0.02  0.0025  0.6875;

Table A(G,S) 'activity analysis matrix'
        S1  S2
   G1    6  -1
   G2   -1   3
   G3   -4  -1
   G4   -1  -1;

$onText
$MODEL:KEHOE

$SECTORS:
   Y(S)

$COMMODITIES:
   P(G)

$CONSUMERS:
   H(C)

$DEMAND:H(C) s: 1.00
   E:P(G)   Q:E(G,C)
   D:P(G)   Q:ALPHA(G,C)

$PROD:Y(S)
   O:P(G)$(A(G,S) > 0)   Q:A(G,S)
   I:P(G)$(A(G,S) < 0)   Q:(-A(G,S))
$offText

$sysInclude mpsgeset KEHOE

Parameter PRICES(G,EQ), LEVELS(S,EQ);

loop(EQ,
$  include KEHOE.GEN

   P.l(G) = SP(G,EQ);

   solve KEHOE using mcp;

   PRICES(G,EQ) = P.l(G);
   LEVELS(S,EQ) = Y.l(S);
);

display PRICES, LEVELS;