hansmcp.gms : Hansen's Activity Analysis Example - MCP

Description

Hansen's Activity Analysis Example

Reference

  • Scarf, H, and Hansen, T, The Computation of Economic Equilibria. Yale University Press, 1973.

Small Model of Type : MCP


Category : GAMS Model library


Main file : hansmcp.gms

$title  Hansen's Activity Analysis Example (HANSMCP,SEQ=135)
$Ontext
Hansen's Activity Analysis Example


Scarf, H, and Hansen, T, The Computation of Economic Equilibria.
Yale University Press, 1973.

$Offtext

sets    c       commodities

   /    agric, food, textiles, hserv, entert, houseop, capeop, steel,
        coal, lumber, housbop, capbop, labor, exchange/


        h       consumers
  /     agent1, agent2, agent3, agent4  /


        s       sectors
  /     dom1, dom2, dom3, dom4, dom5, dom6, dom7,
        dom8, dom9, dom10, dom11, dom12,
        imp1, imp2, imp3, imp4, imp5, imp6, imp7,
        exp1, exp2, exp3, exp4, exp5, exp6, exp7 /

alias (c,cc);

table e(c,h)  commodity endowments

           agent1    agent2  agent3    agent4
housbop         2       0.4               0.8
capbop          3         2               7.5
labor         0.6       0.8       1       0.6


table d(c,h) reference demands

                    agent1     agent2     agent3     agent4
    agric              0.1        0.2        0.3        0.1
    food               0.2        0.2        0.2        0.2
    textiles           0.1        0.1        0.3        0.1
    hserv              0.1        0.1        0.1        0.1
    entert             0.1        0.1        0.1        0.1
    houseop            0.3        0.1                   0.1
    capeop             0.1        0.2                   0.3

parameter  esub(h)  elasticities in demand

    /   agent1          1,        agent2          1,
        agent3          1,        agent4          1 /;

table data(*,c,s)  activity analysis matrix

                       dom1        dom2        dom3        dom4        dom5

output.agric           5.00
output.food                        5.00
output.textiles                                2.00
output.hserv                                               2.00
output.entert                                                          4.00
output.houseop                                             0.32
output.capeop          0.40        1.30        1.20
input .agric                       3.50        0.10                    0.70
input .food            0.90                    0.10                    0.80
input .textiles        0.20        0.50                    0.10        0.10
input .hserv           1.00        2.00        2.00                    2.00
input .steel           0.20        0.40        0.20        0.10
input .coal            1.00        0.10        0.10        1.00
input .lumber          0.50        0.40        0.30        0.30
input .housbop                                             0.40
input .capbop          0.50        1.50        1.50        0.10        0.10
input .labor           0.40        0.20        0.20        0.02        0.40

              +        dom6        dom7        dom8        dom9       dom10

output.houseop         0.80
output.capeop          1.10        6.00        1.80        1.20        0.40
output.steel                                   2.00
output.coal                                                2.00
output.lumber                                                          1.00
input .textiles        0.80        0.40        0.10        0.10        0.10
input .hserv           0.40        1.80        1.60        0.80        0.20
input .steel           1.00        2.00                    0.50        0.20
input .coal                        0.20        1.00                    0.20
input .lumber          3.00        0.20        0.20        0.50
input .capbop          1.50        2.50        2.50        1.50        0.50
input .labor           0.30        0.10        0.10        0.40        0.40

              +       dom11       dom12        imp1        imp2        imp3

output.agric                                   1.00
output.food                                                1.00
output.textiles                                                        1.00
output.houseop                     0.36
output.capeop          0.90
input .hserv                                   0.40        0.20        0.20
input .housbop                     0.40
input .capbop          1.00                    0.20        0.10        0.10
input .labor                                   0.04        0.02        0.02
input .exchange                                0.50        0.40        0.80

              +        imp4        imp5        imp6        imp7        exp1

output.capeop          1.00
output.steel                       1.00
output.coal                                    1.00
output.lumber                                              1.00
output.exchange                                                        0.50
input .agric                                                           1.00
input .hserv           0.40        0.40        0.40        0.40        0.20
input .capbop          0.20        0.20        0.20        0.20        0.20
input .labor           0.04        0.04        0.04        0.04        0.04
input .exchange        1.20        0.60        0.70        0.40

              +        exp2        exp3        exp4        exp5        exp6

output.exchange        0.40        0.80        1.20        0.60        0.70
input .food            1.00
input .textiles                    1.00
input .hserv           0.20        0.20        0.40        0.40        0.40
input .capeop                                  1.00
input .steel                                               1.00
input .coal                                                            1.00
input .capbop          0.10        0.10        0.20        0.20        0.20
input .labor           0.02        0.02        0.04        0.04        0.04

              +        exp7

output.exchange        0.40
input .hserv           0.40
input .lumber          1.00
input .capbop          0.20
input .labor           0.04


parameter       alpha(c,h)      demand function share parameter;
alpha(c,h) = d(c,h) / sum(cc, d(cc,h));

parameter  a(c,s)  activity analysis matrix;
a(c,s) = data("output",c,s) - data("input",c,s);

positive
variables
        p(c)    commodity price,
        y(s)    production,
        i(h)    income;

equations
        mkt(c)          commodity market,
        profit(s)       zero profit,
        income(h)       income index;

*       distinguish ces and cobb-douglas demand functions:

mkt(c)..        sum(s, a(c,s) * y(s)) + sum(h, e(c,h)) =g=

                sum(h$(esub(h) ne 1),
                (i(h)/sum(cc, alpha(cc,h) * p(cc)**(1-esub(h)))) *
                alpha(c,h) * (1/p(c))**esub(h)) +

                sum(h$(esub(h) eq 1),
                i(h) * alpha(c,h) / p(c));

profit(s)..     -sum(c, a(c,s) * p(c)) =g= 0;

income(h)..     i(h) =g= sum(c, p(c) * e(c,h));

model hansen / mkt.p, profit.y, income.i/;

p.l(c) = 1;
y.l(s) = 1;
i.l(h) = 1;

p.lo(c)  = 0.00001$(smax(h, alpha(c,h)) gt eps);

*       fix the price of numeraire commodity:

p.fx(c)$(ord(c) eq 1) = 1;

solve hansen using mcp;