otpop.gms : OPEC 무역 및 생산

설명

이 모델은 1974년 세계은행에서 배경으로 사용되었습니다.
에너지 태스크 포스에 대한 연구. 출력 정책을 분석하는 데 사용되었습니다.
OPEC을 위해. 연구가 수행된 당시에는 완전한 최적화가 이루어지지 않았습니다.
시도되었습니다.

소형 모델 유형 :NLP


카테고리 : 슬롯 무료체험 모델 라이브러리


메인 파일 : otpop.gms

$title OPEC 무역 및 생산의 동적 모델(OTPOP,SEQ=47)

$onText
이 모델은 1974년 세계은행이 배경으로 사용했습니다.
에너지 태스크 포스에 대한 연구. 출력 정책을 분석하는 데 사용되었습니다.
OPEC을 위해. 연구가 수행된 당시에는 완전한 최적화가 이루어지지 않았습니다.
시도되었습니다.

Blitzer, C, Meeraus, A 및 Stoutjesdijk, A, OPEC 무역의 동적 모델
및 생산. 개발경제학 저널, 2(1975), 318-335.

키워드: 비선형 계획법, 생산 정책, 무역 정책, 에너지 경제학
$offText

세트
   tt '총 시간 범위' / 1965*1990 /
   th(tt) '역사적 연도' / 1965*1974 /
   t(tt) '모델 지평선' / 1974*1990 /
   tp(tt) '예상 연도' / 1975*1990 /
   n '기억(년)' / 1*3 /;

매개변수
   db(t) '수요 스케일링 상수'
   xb(t) 'OPEC 생산능력'
   rd(t) '흡수 용량'
   del(t) '외국자산 축적'
   alpha(n) 'ph에 대한 가중치' / 1 .5, 2 .3, 3 .2 /
   phis(tt) '역사적 가격($ bbl)' / 1965*1971 3.5, 1972 4.0, 1973 7.0, 1974 10.0 /
   y(tt) '연도 값'
   xtr(t) 'x 타겟'
   ptr(t) 'p 대상';

스칼라
   '수요의 가격 탄력성' / 0 /
   b '비OPEC 가격 탄력성' / .2 /
   g '장기 수요 증가' / .04 /
   r '실질 수익률' / .03 /
   gr '흡수능력 증가' / .07 /
   c '생산 및 배송 비용' / .25 /
   l '투자 지연' / 4 /
   v '터미널 할인' / .25 /
   ph '대체 투자 트리거(bbl당 $)' / 3.0 /
   pb '대안에서 얻은 모든 새로운 에너지(bbl당 $)' / 9.0 /
   xb74 'OPEC 생산능력(밀 bpd)' / 32.25 /
   x74 'OPEC 생산량(밀 bpd)' / 29.4 /
   d74 '세계 에너지 수요(밀 bpd)' / 88.2 /
   db74 '수요 확장 상수'
   rd74 '1974년 흡수능력' / 20 /
   con '시프트 매개변수 상수';

db74 = d74*phis("1974")**a;
db(t) = db74*(1 + g)**(ord(t) - 1);
con = g/pb**b/(pb - ph);
rd(t) = rd74*(1 + gr)**(ord(t) - 1);
del(t) = (1 + r)**(카드(t) - ord(t));
y(tt) = 1964 + ord(tt);
xb(t) = xb74 + 3.0*min(y(t) - 1974,6) + .9*max(y(t) - 1980,0);
xtr(t) = min(xb(t),x74*1.02**(ord(t) - 1));
ptr(t) = 10*1.02**(ord(t) - 1);

db74, db, rd, del, con, y, xb, xtr, ptr을 표시합니다.

$sTitle 모델 정의
변수
   x(tt) 'OPEC 석유 판매(밀 bpd)'
   d(tt) '에너지 수요(밀 bpd)'
   as(tt) '시프트 매개변수'
   p(tt) '에너지 가격(bbl당 $)'
   pd(tt) '에너지의 예상 가격(bbl당 $)'
   k '최종 해외 자산(bill $)'
   z '지상 석유 가치(청구서 $)'
   xdev '출력 편차'
   pdev '가격 편차'
   파이 '기준';

양수 변수 x;

방정식
   dem(t) '에너지 수요(밀 bpd)'
   sup(t) 'OPEC 공급(밀 bpd)'
   adef(tt) 'shift 매개변수 정의'
   pdef(tt) '예상 가격 정의(bbl당 $)'
   kdef '해외 자산(청구서 $)'
   zdef '비생산 준비금(청구서 $)'
   xtrack 'x 추적 오류 정의'
   ptrack 'p 추적 오류 정의'
   obj '기준 정의'
   objx '대체 기준 정의';

dem(t).. d(t) =e= db(t)*p(t)**(-a);

sup(t).. x(t) =e= d(t) - as(t)*p(t)**b;

adef(tt)$tp(tt).. as(tt) =e= as(tt-1) + con*d(tt-1)*(pd(tt-l)-ph);

pdef(tt).. pd(tt) =e= sum(n, alpha(n)*p(tt-(ord(n) - 1)));

kdef.. k =e= sum(t, del(t)*(.365*(1 - c)*p(t)*x(t) - rd(t)));

zdef.. z =e= v*sum(t, .365*(xb(t) - x(t))*p(t + (카드(t) - ord(t))));

xtrack.. xdev =e= sum(t, sqr(xtr(t) - x(t)));

ptrack.. pdev =e= sum(t, sqr(ptr(t) - p(t)));

obj..pi =e= k + z;

objx.. pi =e= sum(t, del(t)*(.365*(1 - c)*p(t)*x(t) - rd(t)))
               + v*sum(t, .365*(xb(t) - x(t))*p(t + (카드(t) - ord(t))));

모델
   otpop1 / dem, sup, adef, pdef, kdef, zdef, obj /
   otpop2 / dem, sup, adef, pdef, ptrack /
   otpop3 / dem, sup, adef, pdef, objx /;

x.up(t) = xb(t);
p.lo(tt) = 1;
p.fx(th) = phis(th);
x.fx(일) = x74;

nlp를 사용하여 pdev를 최소화하는 otpop2를 해결합니다.

nlp를 사용하여 pi를 최대화하는 otpop3을 해결합니다.

kdef.m = 1;
zdef.m = 1;

nlp를 사용하여 pi를 최대화하는 otpop1을 해결합니다.