apl1pca.gms : DECIS에 대한 확률론적 프로그래밍 예제

설명

확률적 전력 확장 계획 문제.
이는 2단계 확률론적 선형 프로그램입니다.
불확실한 수요에 직면하여 발전에 대한 결정
용량을 만들어야 합니다.

APL1P와 비교하여 이 모델은 종속성을 도입합니다.
확률적 매개변수.

이 모델은 다음 예제에서도 사용됩니다.
슬롯 게임/DECIS 사용자 가이드.

소형 모델 유형 :데시스


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


메인 파일 : apl1pca.gms

$title APL1PCA 슬롯 게임/DECIS에 대한 확률론적 프로그래밍 예제(APL1PCA,SEQ=198)

$onText
확률론적 전력 확장 계획 문제.
이는 2단계 확률론적 선형 프로그램입니다.
불확실한 수요에 직면하여 발전에 대한 결정
용량을 만들어야 합니다.

APL1P와 비교하여 이 모델은 종속성을 도입합니다.
확률적 매개변수.

이 모델은 다음 예제에서도 사용됩니다.
슬롯 게임/DECIS 사용자 가이드.

Infanger, G, 불확실성 속 기획 - 대규모 문제 해결
확률론적 선형 프로그램, 1988.

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

$decisalg가 설정되지 않은 경우 $set decisalg decism

세트
   g '발전기' / g1, g2 /
   dl '수요 수준' / h , m , l /;

매개변수
   alpha(g) '가용성' / g1 0.68, g2 0.64 /
   ccmin(g) '최소 용량' / g1 1000, g2 1000 /
   ccmax(g) '최대 용량' / g1 10000, g2 10000 /
   c(g) '투자' / g1 4.0, g2 2.5 /;

테이블 f(g,dl) '운영 비용'
          흠 내가
   g1 4.3 2.0 0.5
   g2 8.7 4.0 1.0;

매개변수
   d(dl) '수요' / h 1040, m 1040, l 1040 /
   us(dl) '제공되지 않은 수요 비용' / h 10, m 10, l 10 /;

* ----------------------------------
* 핵심 모델 정의
* ----------------------------------
무료 가변 tcost '총 비용';

양수 변수
   x(g) '발전기 용량'
   y(g,dl) '작업 수준'
   s(dl) '제공되지 않은 수요';

방정식
   비용 '총 비용'
   cmin(g) '최소 용량'
   cmax(g) '최대 용량'
   omax(g) '최대 작동 수준'
   수요(dl) '수요 충족';

비용.. tcost =e= sum(g, c(g)*x(g))
                    + 합계(g, 합계(dl, f(g,dl)*y(g,dl)))
                    + 합계(dl,us(dl)*s(dl));

cmin(g)..x(g) =g=ccmin(g);

cmax(g).. x(g) =l= ccmax(g);

omax(g)..sum(dl, y(g,dl)) =l= alpha(g)*x(g);

수요(dl).. sum(g, y(g,dl)) + s(dl) =g= d(dl);

모델 apl1p / all /;

* ----------------------------------
* 결정 단계 설정
* ----------------------------------
x.stage(g) = 1;
y.stage(g,dl) = 2;
s.stage(dl) = 2;
cmin.stage(g) = 1;
cmax.stage(g) = 1;
omax.stage(g) = 2;
수요.단계(dl) = 2;

* ----------------------------------
* 독립적인 확률론적 매개변수 정의
* ----------------------------------
세트
   스토크 / 아웃, 프로 /
   오메가1 / o11, o12 /;

표 v1(스토크, 오메가1)
         o11 o12
   아웃 2.1 1.0
   프로 0.5 0.5;

오메가2 / o21, o22 / 설정;

표 v2(스토크, 오메가2)
         o21 o22
   아웃 2.0 1.0
   프로 0.2 0.8;

매개변수
   hm1(dl) / h 300, m 400, l 200 /
   hm2(dl) / h 100, m 150, l 300 /;

* ----------------------------------
* 확률론적 파일 출력
* ----------------------------------
파일 stg / MODEL.STG /;
stg를 넣어;

"블록 분리"를 입력하세요. /;

스칼라 h1;

루프(오메가1,
   "BL v1 period2 ", v1("pro", omega1)/;
   루프(dl,
      h1 = hm1(dl) * v1("아웃", 오메가1);
      "RHS 수요",dl.tl:1, " ", h1/을 입력합니다.
   );
);

루프(오메가2,
   "BL v2 period2 ", v2("pro", omega2)/를 입력합니다.
   루프(dl,
      h1 = hm2(dl) * v2("출력", 오메가2);
      "RHS 수요",dl.tl:1, " ", h1/을 입력합니다.
   );
);

넣어닫다;

* ----------------------------------
* MINOS 옵션 파일 출력
* ----------------------------------
파일 정리 / MINOS.SPC /;
걸레를 씌우다;
"시작"을 입력하세요/;
"행 250"을 입력하세요/;
"열 250"을 입력하세요/;
"요소 10000"을 넣습니다/;
"끝"을 입력하세요/;
넣어닫다;

* ----------------------------------
* 모델을 해결
* ----------------------------------
옵션 lp = %decisalg%;

tcost를 최소화하는 lp를 사용하여 apl1p를 해결합니다.

스칼라
   ccost '자본 비용'
   ocost '운영 비용';

ccost = sum(g, c(g)*x.l(g));
ocost = tcost.l - ccost;

x.l, tcost.l, ccost, ocost, y.l, s.l을 표시합니다.