$TITLE POSITIVE PROGRAMMING EXAMPLE MODEL * ILLUSTRATIVE POSITIVE PROGRAMMING MODEL * R E HOWITT , JANUARY 1994 * DEPT OF AGRICULTURAL ECONOMICS * U C DAVIS. CA * e-mail rehowitt.ucdavis.edu * THE THEORETICAL BASIS FOR THIS CODE CAN BE FOUND IN HOWITT- * AMERICAN JOURNAL OF AGRICULTURAL ECONOMICS,(77) MAY 1995 PP 329- 342 * PMP FUNCTION IS CALCULATED ON YIELDS NOT COSTS * THE ADJUSTMENT FOR MARGINAL CROP SUPPLY FUNCTIONS AND ROTATIONAL * CROPS IS BASED ON AN ARBITRARY 20% YIELD VARIATION. PREFERABLY * THIS WOULD BE BASE ON PRIOR ELASTICITIES OF SUPPLY OR EMPIRICAL * MEASURES OF YIELD VARIABILITY *################################################################## $OFFSYMLIST OFFSYMXREF OPTION LIMROW = 0 OPTION LIMCOL = 0 option iterlim =1500 ******************************************************************* SETS I PRODUCTION PROCESSES /COT,WHT,RI/ J RESOURCES /LAND,WATER,CAPITAL/ G REGIONS / CAL CALIFORNIA RUS REST OF US/ ALIAS (I,K) ALIAS (J,L) *################################################################## * DATA - NOTE THE MINIMAL LP DATA SET *################################################################## PARAMETER V(I,G) PRICE PER UNIT OUTPUT /COT.CAL 292.4 COT.RUS 292.4 WHT.CAL 2.98 WHT.RUS 2.98 RI.CAL 7.09 RI.RUS 7.09/ PARAMETER YB(I,G) REGIONAL AVERAGE YIELDS /COT.CAL 2.20 COT.RUS 1.51 WHT.CAL 85.0 WHT.RUS 69.0 RI.CAL 70.1 RI.RUS 48.1/ PARAMETER R(J,G) REGIONAL RESOURCE CONSTRAINTS /LAND.CAL 2.65 LAND.RUS 14.99 WATER.CAL 8.69 WATER.RUS 28.33 CAPITAL.CAL 2000.0 CAPITAL.RUS 7000.0/ TABLE C(I,G,J) RESOURCE VARIABLE COSTS LAND WATER CAPITAL COT.CAL 264.3 25.6 0.1 COT.RUS 111.8 28.4 0.1 WHT.CAL 112.0 25.6 0.1 WHT.RUS 175.0 28.4 0.1 RI.CAL 196.9 25.6 0.1 RI.RUS 158.2 28.4 0.1 TABLE X(I,G,J) BASE RESOURCE USE LAND WATER CAPITAL COT.CAL 1.49 4.47 610 COT.RUS 5.75 5.23 490 WHT.CAL 0.62 1.14 350 WHT.RUS 6.50 6.89 280 RI.CAL 0.54 3.08 520 RI.RUS 2.74 7.95 480 PARAMETER RR(I,G,J) REGIONAL LEONTIEFF COEFFICIENTS CL(I,G) LINEAR COST NET(I,G) NET CASH RETURN ; RR(I,G,J) = (X(I,G,J)/X(I,G,"LAND") ); CL(I,G) = SUM(J, C(I,G,J)*RR(I,G,J) ) ; NET(I,G) = (YB(I,G) * V(I,G) ) - CL(I,G) ; DISPLAY CL, NET, RR; *################################################################## * LINEAR PROGRAM TO CALCULATE RESOURCE AND PMP DUALS *################################################################## VARIABLES LX(I,G) ACRES PLANTED LINPROF LP PROFIT POSITIVE VARIABLE LX; EQUATIONS RESOURCE(J,G) CONSTRAINED RESOURCES CALIBU(I,G) UPPER CALIBRATION CONSTRAINTS CALIBL(I,G) LOWER CALIBRATION CONSTRAINTS LPROFIT LP OBJECTIVE FUNCTION; RESOURCE(J,G).. SUM(I,RR(I,G,J)*LX(I,G)) =L= R(J,G); CALIBU(I,G).. LX(I,G) =L= X(I,G,"LAND")* 1.001; CALIBL(I,G)$(NET(I,G) LT 0).. LX(I,G) =G= X(I,G,"LAND")* 0.99; LPROFIT.. SUM((I,G),((V(I,G)*YB(I,G))-CL(I,G))*LX(I,G)) =E= LINPROF; MODEL CALIBRATE /RESOURCE,CALIBU,CALIBL,LPROFIT/; SOLVE CALIBRATE USING LP MAXIMIZING LINPROF; DISPLAY LX.L, LX.M; *######################################################################### * CALCULATING THE COEFFICIENTS FOR THE PMP QUADRATIC YIELD FUNCTION *######################################################################### PARAMETER OP(G) OPPORTUNITY COST OF LAND CN(I,G) ADJUSTED COSTS FOR THE ROTATIONALS ADJ(G) ADJUSTMENT TO MARGINAL CROP DUALS FLAG(I,G) MARGINAL CROPS FXYLD(I,G) FIXED MAXIMUM YIELD MYLD(I,G) MARGINAL YIELD PARAMETER XYLD(I,G) CALIBRATED MAXIMUM YIELD ; * NOTE FXYLD IS USED TO CALIBRATE CROPS OR ACTIVITIES * THAT HAVE NEGATIVE NOMINAL NET REVENUES. THESE CROPS * ARE TERMED ROTATIONAL CROPS AND ARE DIFFERENT FROM * MARGINAL CROPS. * FXYIELD CAN BE SPECIFIED IN A TABLE OF EMPIRICAL DATA * ON YIELD VARIABILITY. ALTERNATIVELY, ROTATIONAL CROPS * CAN BE CALIBRATED USING PRIOR ESTIMATES OF ELASTICITIES * OF SUPPLY FXYLD(I,G) = YB(I,G) * 1.2 ; * ADJUSTING THE OPPORTUNITY COST OF LAND FOR THE MARGINAL YIELD * OF THE MARGINAL CROP IN EACH REGION ADJ(G) = RESOURCE.M("LAND",G) * 0.2 ; OP(G) = RESOURCE.M("LAND",G) - ADJ(G) ; FLAG(I,G) = 0; FLAG(I,G)$((X(I,G,"LAND") NE 0) AND (CALIBU.M(I,G) EQ 0) AND (CALIBL.M(I,G) EQ 0) ) = 1 ; *################################################################# * SPECIFICATION OF THE YIELD FUNCTION FOR THE MARGINAL CROPS * IN EACH REGION USING TWENTY PERCENT REDUCTION IN OPP COST MYLD(I,G)$FLAG(I,G) = ADJ(G) /( V(I,G) * LX.L(I,G)) ; XYLD(I,G)$FLAG(I,G) = YB(I,G) + (MYLD(I,G) * LX.L(I,G)) ; *##################################################################### * CALCULATION OF YIELD FUNCTION FOR NORMAL PMP CROPS MYLD(I,G)$(FLAG(I,G) EQ 0) = (CALIBU.M(I,G) + ADJ(G)) /( V(I,G) * LX.L(I,G)) ; XYLD(I,G)$(FLAG(I,G) EQ 0) = YB(I,G) + (MYLD(I,G) * LX.L(I,G)) ; *##################################################################### * CALCULATION OF YIELD FUNCTION FOR ROTATIONAL CROPS (NEGATIVE NET) XYLD(I,G)$(CALIBL.M(I,G) LT 0 ) = FXYLD(I,G) ; MYLD(I,G)$(CALIBL.M(I,G) LT 0 ) = ( XYLD(I,G) - YB(I,G)) / LX.L(I,G) ; *##################################################################### * COST ADJUSTMENT FOR ROTATIONAL CROPS CN(I,G) = CL(I,G) ; CN(I,G)$(CALIBL.M(I,G) LT 0) = CN(I,G) - (((XYLD(I,G) - YB(I,G)) * V(I,G)) - ( CALIBL.M(I,G) + ADJ(G))) ; DISPLAY FXYLD, ADJ, OP, CN, FLAG, MYLD, XYLD ; *########################################################### * POLICY CHANGES ARE PUT IN HERE (shut off for now) * EXAMPLE FOR CHANGE IN PRICE OR CHANGE IN QUANTITY OF RESOURCE * 15% reduction of wheat prices in all regions * V("WHT",G) = V("WHT",G) * 0.85 ; * 10% reduction in water available in California * R("WATER","CAL") = R("WATER","CAL") * 0.90 ; *################################################################ * PMP MODEL SOLUTION FOR BASE YEAR *################################################################ VARIABLES NX NONLINEAR LAND ALLOCATION NLPROF NONLINEAR PROFIT ; POSITIVE VARIABLE NX; EQUATIONS RESOURCEN(J,G) CONSTRAINED RESOURCES NPROFIT NLP OBJECTIVE FUNCTION; RESOURCEN(J,G).. SUM(I,RR(I,G,J)*NX(I,G)) =L= R(J,G); NPROFIT.. SUM((I,G), ( V(I,G) * (XYLD(I,G) - MYLD(I,G)* NX(I,G)) - CN(I,G) ) * NX(I,G) ) - SUM((I,G)$(CALIBL.M(I,G) LT 0), LX.L(I,G) * (((XYLD(I,G) - YB(I,G)) * V(I,G)) - ( CALIBL.M(I,G) + ADJ(G))) ) =E= NLPROF; MODEL PRIMAL /RESOURCEN,NPROFIT/ ; SOLVE PRIMAL USING NLP MAXIMIZING NLPROF; *##################################################################### * SHOW RESULTS *##################################################################### PARAMETER MARGYLD(I,G) MARGINAL YIELD PERDIF(I,G) PERCENT DIFFERENCE IN LAND ALLOCATION ; PERDIF(I,G) = (NX.L(I,G) - X(I,G,"LAND")) * 100 / X(I,G,"LAND") ; MARGYLD(I,G) = XYLD(I,G) -(2* MYLD(I,G)* NX.L(I,G)) ; DISPLAY XYLD, MARGYLD , YB, LINPROF.L, NLPROF.L, LX.L, NX.L, PERDIF, RESOURCE.M, RESOURCEN.M ; *####################################################################