apl1psp.gms : 확률론적 전력 확장 계획 문제

설명

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

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

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

소형 모델 유형 :SP


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


메인 파일 : apl1psp.gms

$title 확률론적 전력 확장 계획 문제 (APL1PSP,SEQ=70)

$onText

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

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

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

$offText

g 발전기 설정 / g1, g2/;
dl 수요 수준 설정 /h, m, l/;

매개변수 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;

매개변수 us(dl) 미처리 수요 비용 / h 10, m 10, l 10 /;

매개변수 알파(g) 가용성 / g1 0.68, g2 0.64 /
          d(dl) 수요 / h 1040, m 1040, l 1040 /;

* ----------------------------------
* 핵심 모델 정의
* ----------------------------------

무료 가변 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/;

오메가 / o1*o5 / 설정;

테이블 stochasticpha(omega,g) 생성기 g의 가용성 분포
     g1 g2
 o1 1.0 1.0
 o2 0.9 0.9
 o3 0.5 0.7
 o4 0.4 0.1
 o5 0.0
;

테이블 알파확률(omega,g) 가용성 확률
     g1 g2
 o1 0.2 0.1
 o2 0.3 0.2
 o3 0.4 0.5
 o4 0.1 0.1
 o5 0.1
;

매개변수 확률론적(오메가) 수요 분포
          / o1 900, o2 1000, o3 1100, o4 1200/
          dprobability(omega) 수요 확률
          / o1 0.15, o2 0.45, o3 0.25, o4 0.15/ ;

파일 emp / '%emp.info%' /; put emp '* 문제 %슬롯 게임i%';
루프(g,
   put / 'randvar ' alpha.tn(g) ' 이산 ';
   loop(omega$alphaprobability(omega,g), put alphaprobability(omega,g):5:2 확률론적 파(omega,g):5:2));
루프(dl,
   put / 'randvar ' d.tn(dl) ' 이산 ';
   loop(omega$dprobability(omega), put dprobability(omega):5:2 확률론적(omega):5:0));
putclose / '2단계 알파 d'
         / '2단계 OMAX 수요'
         /'2단계 ys';

장면 시나리오 설정 / s1*s5 /;
매개변수 s_alpha(scen,g), s_d(scen,dl);

dict/scen .scenario를 설정하세요.''
           알파 .randvar. s_alpha
           d.randvar. s_d /;

emp min tcost 시나리오 dict를 사용하여 apl1p를 해결합니다.