lands.gms : 최적의 투자

설명

다음 2단계 문제는 최적의 값을 결정하는 것으로 구성됩니다.
이를 충족시키기 위해 다양한 유형의 발전소에 용량 투자
다음 기간에는 전기가 필요합니다. 4개의 발전소가 고려됩니다.
세 가지 모드로 작동할 수 있습니다. 차기 수요
세 가지 모드가 각각 충족되어야 합니다. 예산이 있다
제약 조건 및 최소 총 용량에 대한 제약 조건도 있습니다.

소형 모델 유형 :LP


카테고리 : 슬롯 사이트 추천 모델 라이브러리


메인 파일 : lands.gms

$title 최적의 투자 (LANDS,SEQ=188)

$onText
다음 2단계 문제는 최적을 결정하는 것으로 구성됩니다.
이를 충족시키기 위해 다양한 유형의 발전소에 용량 투자
다음 기간에는 전기가 필요합니다. 4개의 발전소가 고려됩니다.
세 가지 모드로 작동할 수 있습니다. 차기수요
세 가지 모드가 각각 충족되어야 합니다. 예산이 있다
제약 조건과 최소 총 용량에 대한 제약 조건도 있습니다.

Louveaux, F V 및 Smeers, Y, 전기에 대한 최적의 투자
생성: 확률론적 모델과 테스트 문제. 에서
Ermoliev, Y 및 Wets, RJ, Eds, 수치 기법
확률적 최적화 문제. 스프링거 출판사, 1988,
445-452쪽.

이 문제는 두 단계로 해결되며 각 시나리오를 해결합니다.
별도로 그리고 세 가지 시나리오를 모두 함께 사용합니다.

키워드: 선형계획법, 투자계획, 확률론적 계획법,
          발전
$offText

세트
   i '발전소 유형' / plant-1*plant-4 /
   j '작동 모드' / 모드-1*모드-3 /;

매개변수
   c(i) '투자비' / 공장-1 10, 공장-2 7, 공장-3 16, 공장-4 6 /
   d(j) '에너지 수요' / 모드-1 na, 모드-2 3, 모드-3 2 /;

표 f(i,j) '운영 비용'
             모드-1 모드-2 모드-3
   공장-1 40 24 4
   2공장 45 27 4.5
   3공장 32 19.2 3.2
   식물-4 55 33 5.5;

스칼라
   m '최소 설치 용량' / 12 /
   b '예산 한도' / 120 /;

변수
   x(i) '설치된 용량'
   y(i,j) '운영 수준'
   비용 '총 비용';

양수 변수 x, y;

방정식
   defcost '총 비용의 정의'
   mincap '최소 설치 용량'
   bbal '예산 제약'
   powbal(i) '파워 밸런스'
   dembal(j) '수요 잔액';

defcost.. 비용 =e= sum(i, c(i)*x(i)) + sum((i,j), f(i,j)*y(i,j));

mincap..sum(i, x(i)) =g= m;

bbal..sum(i, c(i)*x(I)) =l= b;

powbal(i)..sum(j, y(i,j)) =l= x(i);

dembal(j)..sum(i, y(i,j)) =g= d(j);

모델 det / all /;

s '노드' / s-1*s-3 /를 설정합니다.

매개변수
   dvar(들) / s-1 3, s-2 5, s-3 7 /
   문제 / s-1 .3, s-2 .4, s-3 .3 /
   '시나리오 보고서'를 대표합니다.

루프(들,
   d('모드-1') = dvar(들);
   lp를 사용하여 비용을 최소화하는 문제를 해결합니다.

   repdet('cost',s) = 비용.l;
   repdet(i,s) = x.l(i);
   repdet('prob',s) = prob(들);
   det.solPrint = %solPrint.quiet%;
);

* 모델을 확률적으로 만듭니다.
매개변수 ds(j,s) '확률적 수요';

양수 변수 ys(i,j,s) '운영 수준';

방정식
   defcosts '총 비용의 정의'
   powbals(i,s) '전력 균형'
   dembals(j,s) '수요 잔고';

defcosts.. 비용 =e= sum(i, c(i)*x(i)) + sum((i,j,s), prob(s)*f(i,j)*ys(i,j,s));

powbals(i,s)..sum(j, ys(i,j,s)) =l= x(i);

dembals(j,s)..sum(i, ys(i,j,s)) =g= ds(j,s);

모델 stoc / defcosts, mincap, bbal, powbals, dembals /;

ds(j,s) = d(j);
ds('mode-1',s) ​​= dvar(s);

lp를 사용하여 비용을 최소화하는 stoc을 해결합니다.

repdet('cost','hedge') = 비용.l;
repdet(i,'hedge') = x.l(i);
담당자 표시;