qdemo7.gms : Nonlinear Simple Agricultural Sector Model QCP

Description

This is a QCP version of the gamslib model DEMO7. The original NLP
formulation was concerned with good starting points. QCPs do not
need starting a point.

This is the last in a series of agricultural farm level and sector
models, this model simulates the market behavior of the sector
using a partial equilibrium framework. The technique is
the maximization of consumers and producers surplus.

Reference

  • Kutcher, G P, Meeraus, A, and O'Mara, G T, Agriculture Sector and Policy Models. The World Bank, 1988.

Small Model of Type : QCP


Category : GAMS Model library


Main file : qdemo7.gms

$Title Nonlinear Simple Agricultural Sector Model (QDEMO7,SEQ=284)
$Ontext

   This is a QCP version of the gamslib model DEMO7. The original NLP
   formulation was concerned with good starting points. QCPs do not
   need starting a point.

   This is the last in a series of agricultural farm level and sector
   models, this model simulates the market behavior of the sector
   using a partial equilibrium framework. The technique is
   the maximization of consumers and producers surplus.


Kutcher, G P, Meeraus, A, and O'Mara, G T, Agriculture Sector and
Policy Models. The World Bank, 1988.

$Offtext

Sets

  c  crop   / wheat, clover, beans, onions, cotton, maize, tomato/
  cl livestock  feed  / clover, straw /
  t  month  / jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec  /
  r  feeding recipes / rec-1, rec-2 /
  s  seasons / summer, winter /
  sc(s,c) season crop mapping / summer.(cotton,maize,tomato)
                                winter.(wheat,clover,beans,onions) /
  cn(c)  crops sold in national market
  ce(c)  export commodities
  cm(c)  import commodities

Table a(t,c)  months of land occupation by crop (hectares)

    wheat  clover  beans  onions cotton maize  tomato
jan   1.     1.      1.     1.
feb   1.     1.      1.     1.
mar   1.      .5     1.     1.     .5
apr   1.             1.     1.     1.
may   1.                    .25    1.     .25
jun                                1.     1.
jul                                1.     1.     .75
aug                                1.     1.     1.
sep                                1.     1.     1.
oct                                1.     .5     1.
nov   .5     .25     .25    .5     .75           .75
dec   1.     1.      1.     1.


Table lc(t,c)  crop labor requirements (man-days per hectare)

     wheat  clover beans  onions cotton maize  tomato
jan   1.72   4.5    .75    5.16
feb   .5     1.     .75    5.
mar   1.     8.     .75    5.     5.
apr   1.            16.    19.58  5.
may   17.16                2.42   9.     4.3
jun   2.34                        2.     5.04
jul                               1.5    7.16   17.
aug                               2.     7.97   15.
sep                               1.     4.41   12.
oct                              26.    1.12   7.
nov   2.43   2.5    7.5    11.16 12.           6.
dec   1.35   7.5    .75    4.68

Table lio(cl,r)  livestock input output matrix

           rec-1   rec-2
clover     1.3     2.0
straw      1.6      .8

Table demdat(c,*)  demand data

            ref-p  ref-q  elas   exp-p  imp-p
*            ($)  (1000t)        ($)     ($)
 wheat       100    2700   -.8           140
 beans       200     900   -.4           270
 onions       125   700    -1.   40     inf
 cotton      350    2100    -1.  300    inf
 maize        70    3800   -.5           85
 tomato       120    500   -1.2   60     inf


Scalars  fnum    number  of  farms in sector                /1000/
         land    farmsize (hectares)                        / 4.   /
         famlab  family labor available (days per month)   / 25   /
         dpm     work days per month                      /  25  /
         rwage   reservation wage rate (dollars per day)     /  3 /
         twage   temporary labor wage  (dollars per day)   /  4   /
         llab    livestock labor requirements (days per month)  /   2 /
         trent   tractor rental cost (dollar per hectare)       / 40 /
         hpa     land plowed by animals (hectares per animal)     / 2 /
         straw   straw yield from wheat                         /1.75 /

Parameters yield(c) crop yield (tons per hectare) /
                    wheat  = 1.5, clover = 6 , beans  = 1, onions = 3
                    cotton = 1.5, maize  = 2, tomato = 3  /

           miscost(c) misc cash costs (dollars per hectare) /
                    wheat  = 10, beans  = 5, onions = 50
                    cotton = 80, maize  =  5, tomato = 50 /
           price(c)     reference (observed) price (dollars)
           pe(c)        commodity export prices (dollars)
           pm(c)        commodity import prices (dollars)
           alpha(c)     demand curve intercept
           beta(c)      demand curve gradient;

 cn(c) = yes$demdat(c,"ref-p");
 ce(c) = yes$demdat(c,"exp-p");
 cm(c) = yes$(demdat(c,"imp-p") lt inf );
 cm("clover") = no;
 price(c) = demdat(c,"ref-p");
 pe(ce)   = demdat(ce,"exp-p");    pm(cm) = demdat(cm,"imp-p");

 beta(cn)$demdat(cn,"ref-q") = demdat(cn,"ref-p")/demdat(cn,"ref-q")/
                               demdat(cn,"elas");
 alpha(cn) = demdat(cn,"ref-p") - beta(cn)*demdat(cn,"ref-q");

 demdat(cn,"dem-a") = alpha(cn); demdat(cn,"dem-b") = beta(cn);

 Display cn,cm,ce,price,pe,beta,alpha,demdat;

Variables   xcrop(c)     cropping activity  (hectares)
            yfarm        farm income         (dollars)
            revenue      value of production (dollars)
            mcost        misc cash cost      (dollars)
            pcost        tractor plowing cost
            labcost      labor cost          (dollars)
            rescost      family labor reservation wage cost (dollars)
            tcost        total farm cost including rescost
            flab(t)      family labor use       (days)
            tlab(t)      temporary labor        (days)
            xlive(r)     livestock activity    (units)
            natprod(c)   net production             (tons)
            thire(s)     tractor rental     (hectares plowes)
            natcon(c)    domestic consumption (1000 tons)
            exports(c)   national exports     (1000 tons)
            imports(c)   national imports     (1000 tons)
            cps          consumers and producers surplus
            valpro       value of net production at ref prices
            employ       employment generated (man-years)
            tradebal     net exports          (1000 $)

 Positive Variable xcrop,xlive,thire,flab,tlab,natcon,natprod,
                       exports,imports
Equations   landbal(t)   land balance            (hectares)
            laborbal(t)  labor balance           (days)
            flabor(t)    family labor balance    (days)
            plow(s)      land plowed             (hectares per season)
            arev         revenue accounting      (dollars)
            ares         reservation labor cost    (dollars)
            acost        total cost accounting    (dollars)
            amisc        misc cost accounting
            aplow
            alab         labor cost accounting   (dollars)
            lclover      clover balance
            lstraw       straw balance
            income      income definition       (dollars)
            proc(c)       net production definition             (tons)
            dem(c)        national demand balance    (1000 tons)
            objn          objective function;


landbal(t)..   sum(c, xcrop(c)*a(t,c))  =l= land*fnum;

laborbal(t)..  sum(c, xcrop(c)*lc(t,c)) + sum(r, xlive(r))*llab  =l= flab(t) +                     tlab(t);

amisc.. mcost =e= sum(c, xcrop(c)*miscost(c));

alab..  labcost =e= sum(t, tlab(t)*twage);

ares..  rescost =e= sum(t, flab(t)*rwage);

aplow.. pcost =e= sum(s, thire(s)*trent);

acost.. tcost =e= mcost + labcost + rescost + pcost;

lclover..  xcrop("clover")*yield("clover") =g= sum(r, xlive(r)*lio("clover",r));

lstraw..   xcrop("wheat")*straw =g= sum(r, xlive(r)*lio("straw",r));

plow(s)..  sum(c$sc(s,c), xcrop(c)) =l= sum(r, xlive(r))*hpa + thire(s);

proc(c)..   natprod(c) =e= xcrop(c)*yield(c);

dem(cn)..   natcon(cn) =e= natprod(cn) + imports(cn)$cm(cn) - exports(cn)$ce(cn);

objn.. cps =e= sum(cn, alpha(cn)*natcon(cn) + .5*beta(cn)*sqr(natcon(cn)))
             + sum(ce, exports(ce)*pe(ce))
             - sum(cm, imports(cm)*pm(cm))
             - tcost;

flab.up(t) = famlab*fnum;


Model demo7n QCP version/ landbal, laborbal, plow, ares,
                          alab, acost, dem, proc,
                          amisc, aplow, lclover, lstraw, objn /;

option limcol=0,limrow=0;

Solve demo7n maximizing cps using QCP;