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