$ondollar title Forest Service Allocation (LP) Example 4.1 of Rardin (1998) $offsymxref offsymlist offuelxref offuellist offupper option limrow = 0, limcol = 0; sets i "analysis areas" /1*7/, j "prescriptions" /1*3/; parameter s(i) "thousand acres in area i" /1 75, 2 90, 3 140, 4 60, 5 212, 6 98, 7 113/; scalar totarea "total area"; totarea = sum(i, s(i)); display totarea; table p(i,j) "net present value per acre of j on i" 1 2 3 1 503 140 203 2 675 100 45 3 630 105 40 4 330 40 295 5 105 460 120 6 490 55 180 7 705 60 400; table t(i,j) "timber per acre of j on i" 1 2 3 1 310 50 0 2 198 46 0 3 210 57 0 4 112 30 0 5 40 32 0 6 105 25 0 7 213 40 0; table g(i,j) "grazing per acre of j on i" 1 2 3 1 .01 .04 0 2 .03 .06 0 3 .04 .07 0 4 .01 .02 0 5 .05 .08 0 6 .02 .03 0 7 .02 .04 0; table w(i,j) "wilderness index of j on i" 1 2 3 1 40 80 95 2 55 60 55 3 45 55 60 4 30 35 90 5 60 60 70 6 35 50 75 7 40 45 95; free variable npv; positive variable x(i,j) "acres (000) area i to prescription j"; equations obj "max net present value", alloc(i) "allocation for i", timb "timber" graz "grazing" wild "wilderness"; obj.. npv =e= sum((i,j), p(i,j)*x(i,j)); alloc(i).. sum(j, x(i,j)) =e= s(i); timb.. sum((i,j), t(i,j)*x(i,j)) =g= 40000; graz.. sum((i,j), g(i,j)*x(i,j)) =g= 5; wild.. sum((i,j), w(i,j)*x(i,j))/totarea =g= 70; model forserv /all/; solve forserv using lp maximizing npv;