qdemo7.gms : 비선형 단순 농업 부문 슬롯 QCP

설명

이것은 gamslib 슬롯 DEMO7의 QCP 버전입니다. 원래 NLP
공식화는 좋은 출발점과 관련이 있었습니다. QCP는 그렇지 않습니다.
포인트를 시작해야합니다.

이는 일련의 농업 농장 수준 및 부문 중 마지막입니다.
슬롯, 이 슬롯은 해당 부문의 시장 행동을 시뮬레이션합니다.
부분균형틀을 사용한다. 기술은
소비자 및 생산자 잉여의 극대화.

소형 슬롯 유형 :QCP


카테고리 : 슬롯 모델 라이브러리


메인 파일 : qdemo7.gms

$title 비선형 단순 농업 부문 슬롯 (QDEMO7,SEQ=284)

$onText
이것은 gamslib 슬롯 DEMO7의 QCP 버전입니다. 원래 NLP
공식화는 좋은 출발점과 관련이 있었습니다. QCP는 그렇지 않습니다.
포인트를 시작해야합니다.

이는 일련의 농업 농장 수준 및 부문 중 마지막입니다.
슬롯, 이 슬롯은 해당 부문의 시장 행동을 시뮬레이션합니다.
부분균형틀을 사용한다. 기술은
소비자 잉여와 생산자 잉여의 극대화.

Kutcher, G P, Meeraus, A 및 O'Mara, G T, 농업 부문 및
정책 슬롯. 세계은행, 1988.

키워드: 2차 제약 프로그래밍, 농업, 농업 경제학,
          부분균형, 시장행동
$offText

세트
   c '작물' / 밀, 클로버, 콩, 양파, 목화, 옥수수, 토마토 /
   cl '가축사료' / 클로버, 짚 /
   t '월' / jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec /
   r '식사 레시피' / Rec-1, Rec-2 /
   '계절' / 여름, 겨울 /
   sc(s,c) '계절 작물 매핑' / 여름.(면화,옥수수,토마토), 겨울.(밀,클로버,콩,양파) /
   cn(c) '국내 시장에서 판매되는 작물'
   ce(c) '수출 상품'
   cm(c) '수입상품';

표 a(t,c) '작물별 토지 점유 기간(헥타르)'
         밀 클로버 콩 양파 목화 옥수수 토마토
   1월 1. 1. 1. 1.
   2월 1. 1. 1. 1.
   3월 1. 05 1. 1. 05
   4월 1. 1. 1. 1.
   5월 1. .25 1. .25
   6월 1. 1.
   7월 1일 1. .75
   8월 1. 1. 1.
   9월 1. 1. 1.
   10월 1. .5 1.
   11월 .5 .25 .25 .5 .75 .75
   12월 1. 1. 1. 1. ;

표 lc(t,c) '작물 노동 소요량(헥타르당 노동일수)'
         밀 클로버 콩 양파 목화 옥수수 토마토
   1월 1.72 4.5 .75 5.16
   2월 .5 1. .75 5.
   3월 1. 8. .75 5. 5.
   4월 1. 16. 19.58 5.
   5월 17.16 2.42 9. 4.3
   6월 2.34 2. 5.04
   7월 1.5 7.16 17.
   8월 2일 7.97 15.
   9월 1일. 4.41 12.
   10월 26일. 1.12 7.
   11월 2.43 2.5 7.5 11.16 12. 6.
   12월 1.35 7.5 .75 4.68 ;

테이블 lio(cl,r) '가축 입력 출력 행렬'
            녹음-1 녹음-2
   클로버 1.3 2.0
   밀짚 1.6 .8;

테이블 demdat(c,*) '수요 데이터'
            참조-p 참조-q 엘라스 exp-p imp-p
* ($) (1000t) ($) ($)
   밀 100 2700 -.8 140
   콩 200 900 -.4 270
   양파 125700 -1.      40인치
   면 350 2100 -1.     300인치
   옥수수 70 3800 -.5 85
   토마토 120 500 -1.2 60 inf;

스칼라
   fnum '섹션의 농장 수' / 1000 /
   토지 '농장 규모(헥타르)' / 4 /
   famlab '가족노동 가능일수(월)' / 25 /
   dpm '월당 근무일' / 25 /
   rwage '예약 임금률(일당 달러)' / 3 /
   twage '임시 노동 임금(일당 달러)' / 4 /
   llab '가축 노동 소요량(월별 일수)' / 2 /
   trent '트랙터 임대 비용(헥타르당 달러)' / 40 /
   hpa '동물이 경작한 토지(동물당 헥타르)' / 2 /
   짚 '밀에서 짚 수확량' / 1.75 /;

매개변수
   Yield(c) '작물 수확량(헥타르당 톤)'
              / 밀 1.5, 클로버 6, 콩 1, 양파 3
                면 1.5, 옥수수 2, 토마토 3 /
   miscost(c) '기타 현금 비용(헥타르당 달러)'
              / 밀 10, 콩 5, 양파 50
                면 80, 옥수수 5, 토마토 50 /
   가격(c) '기준(관측) 가격(달러)'
   pe(c) '상품 수출 가격(달러)'
   pm(c) '상품 수입 가격(달러)'
   alpha(c) '수요 곡선 절편'
   beta(c) '수요 곡선 기울기';

cn(c) = yes$demdat(c,"ref-p");
ce(c) = yes$demdat(c,"exp-p");
cm(c) = yes$(demdat(c,"imp-p") < inf );
cm("클로버") = 아니요;
가격(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") = 알파(cn);
demdat(cn,"dem-b") = 베타(cn);

cn, cm, ce, 가격, pe, 베타, 알파, demdat를 표시합니다.

변수
   xcrop(c) '자르기 활동(헥타르)'
   yfarm '농가소득(달러)'
   수익 '생산 가치(달러)'
   mcost '기타 현금 비용(달러)'
   pcost '트랙터 경작 비용'
   labcost '인건비(달러)'
   재비용 '가족 노동 유보 임금 비용(달러)'
   tcost '재비용을 포함한 총 농장 비용'
   flab(t) '가족 노동 사용(일)'
   tlab(t) '임시근로(일수)'
   xlive(r) '가축 활동(단위)'
   natprod(c) '순 생산량(톤)'
   thi(s) '트랙터 임대(헥타르 쟁기)'
   natcon(c) '국내 소비량(1000톤)'
   수출(c) '국내수출(1000톤)'
   수입(c) '국내수입량(1000톤)'
   cps '소비자 및 생산자 잉여'
   valpro '기준 가격에서의 순 생산 가치'
   '창출된 고용(인-년)'을 고용합니다.
   tradebal '순수출(1000$)';

양수 변수 xcrop, xlive, thire, flab, tlab, natcon, natprod, 내보내기, 가져오기;

방정식
   landbal(t) '토지수지(헥타르)'
   Laborbal(t) '노동수지(일)'
   flab(t) '가족 노동수지(일)'
   plow(s) '쟁기질한 땅(계절당 헥타르)'
   arev '수익 회계(달러)'
   ares '예약 인건비(달러)'
   acost '총비용 회계(달러)'
   amisc '기타 비용 회계'
   쟁기질하다
   alab '인건비 회계(달러)'
   lclover '클로버 밸런스'
   lstraw '밀짚 균형'
   소득 '소득 정의(달러)'
   proc(c) '순생산 정의(톤)'
   dem(c) '국가수요수지(1000톤)'
   objn '목적 함수';

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);

충분히.. pcost =e= 합계(들, 셋(들)*트렌트);

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

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

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

쟁기.. 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) - 내보내기(cn)$ce(cn);

objn.. cps =e= sum(cn, alpha(cn)*natcon(cn) + .5*beta(cn)*sqr(natcon(cn)))
            + 합계(ce, 수출(ce)*pe(ce))
            - 합계(cm, 수입(cm)*pm(cm))
            - 비용;

flab.up(t) = famlab*fnum;

슬롯 데모7n 'qcp 버전' / landbal, Laborbal, plow, ares, alab
                             acost, dem, proc, amisc
                             aplow, lclover, lstraw, objn /;

옵션 limCol = 0, limRow = 0;

qcp를 사용하여 cps를 최대화하는 데모7n을 해결합니다.