설명
확률적 전력 확장 계획 문제. 이는 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를 해결합니다.