TomSym Simple Farm Level Model
From TomWiki
Jump to navigationJump to search
This page is part of the TomSym Manual. See TomSym Manual. |
TomSym implementation of GAMS Example (DEMO1,SEQ=91)
This version has 7 principal crops and 2 basic inputs, land and labor, which are specified on a monthly basis.
Kutcher, G P, Meeraus, A, and O'Mara, G T, Agriculture Sector and Policy Models. The World Bank, 1988.
c: crops (wheat, clover, beans, onions, cotton, maize, tomato)
t: period (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec)
% landreq(t,c): months of land occupation by crop (hectares)
landreq = [1 1 1 1 0 0 0;
1 1 1 1 0 0 0;
1 0.5 1 1 0.5 0 0;
1 0 1 1 1 0 0;
1 0 0 0.25 1 0.25 0;
0 0 0 0 1 1 0;
0 0 0 0 1 1 0.75;
0 0 0 0 1 1 1;
0 0 0 0 1 1 1;
0 0 0 0 1 0.5 1;
0.5 0.25 0.25 0.5 0.75 0 0.75;
1 1 1 1 0 0 0];
% laborreq(t,c) crop labor requirements (man-days per hectare)
laborreq = [1.72 4.5 0.75 5.16 0 0 0;
0.5 1 0.75 5 0 0 0;
1 8 0.75 5 5 0 0;
1 0 16 19.58 5 0 0;
17.16 0 0 2.42 9 4.3 0;
2.34 0 0 0 2 5.04 0;
0 0 0 0 1.5 7.16 17;
0 0 0 0 2 7.97 15;
0 0 0 0 1 4.41 12;
0 0 0 0 26 1.12 7;
2.43 2.5 7.5 11.16 12 0 6;
1.35 7.5 0.75 4.68 0 0 0];
% Crop yield (tons per hectare)
yield = [1.5 6.5 1 3 1.5 2 3]';
% Crop prices (dollars per ton)
price = [100 0 200 125 350 70 120]';
% Misc cash costs (dollars per hectare)
misccost = [10 0 5 50 80 5 50]';
% Farm size (hectares)
land = 4;
% Family labor available (days per month)
famlab = 25;
% Hire-out wage rate (dollars per day)
owage = 3;
% Temporary labor wage (dollars per day)
twage = 4;
% Number of working days per month
dpm = 25;
% Cropping activity
toms 7x1 xcrop
% Family labor use, hiring out and temporary labor
toms 12x1 flab fout tlab
% All variable are positive
boxcon = {0 <= xcrop
0 <= flab
0 <= fout
0 <= tlab};
% Land balance
t = size(landreq,1);
eq1 = {};
for i=1:t
eq1 = {eq1; sum(xcrop.*landreq(i,:)') <= land};
end
% Labor balance
eq2 = {};
for i=1:t
eq2 = {eq2; sum(xcrop.*laborreq(i,:)') <= flab(i)+tlab(i)};
end
% Family labor balance
eq3 = {};
for i=1:t
eq3 = {eq3; famlab == flab(i)+fout(i)};
end
% Revenue accounting
revenue = sum(xcrop.*yield.*price);
% Cash cost accounting
mcost = sum(xcrop.*misccost);
% Labor cost accounting
labcost = sum(tlab.*twage);
% Labor income accounting
labearn = sum(fout.*owage);
% Income definition
yfarm = revenue + labearn - labcost - mcost;
solution = ezsolve(-yfarm,{boxcon, eq1, eq2, eq3});
Problem type appears to be: lp Time for symbolic processing: 0.22751 seconds Starting numeric solver ===== * * * =================================================================== * * * TOMLAB - TOMLAB Development license 999007. Valid to 2011-12-31 ===================================================================================== Problem: --- 1: f_k -1898.520000000000000000 f(x_0) 0.000000000000000000 Solver: CPLEX. EXIT=0. INFORM=1. CPLEX Dual Simplex LP solver Optimal solution found FuncEv 25 Iter 25 Elapsed time: 0.002000 sec.