설명
이 모델은 일부 시나리오 데이터(실제 트리에서 나온)를 사용합니다. 팬을 만들고 ScenRed가 트리를 구성하도록 합니다. 손실 없이 하나 정보, 다른 하나는 약간의 축소 요구 사항이 있습니다.
소형 모델 유형 :슬롯 커뮤니티
카테고리 : 슬롯 커뮤니티 모델 라이브러리
메인 파일 : srtree.gms
$title 간단한 시나리오 트리 구성 예(SRTREE,SEQ=390)
$onText
이 모델은 (실제 트리에서 나온) 일부 시나리오 데이터를 사용합니다.
팬을 만들고 ScenRed가 트리를 구성하도록 합니다. 손실 없이 하나
정보, 다른 하나는 일부 감소 요구 사항이 있습니다.
H. Heitsch, W. Roemisch, C. Strugarek
다단계 확률론적 프로그램의 안정성
SIAM 최적화 저널 17(2006), 511-525
키워드: 확률론적 프로그래밍, 시나리오 트리 구성, 슬롯 커뮤니티 ScenRed
$offText
세트
s '시나리오' / s1*s4 /
t '단계' / t1*t5 /
r '임의의 데이터' / r1*r4 /;
매개변수 p(s) '확률' / (s1,s2) 0.25, s3 0.3, s4 0.2 /;
테이블 sdata(s,t,r)
r1 r2 r3 r4
s1.t1 42.5 9.1 7.5 120.0
s1.t2 39.8 11.2 8.4 90.0
s1.t3 37.6 14.0 6.3 110.0
s1.t4 38.9 12.4 8.1 130.0
s1.t5 40.3 14.9 7.2 120.0
s2.t1 42.5 9.1 7.5 120.0
s2.t2 39.8 11.2 8.4 90.0
s2.t3 37.6 14.0 6.3 110.0
s2.t4 38.9 12.4 8.1 130.0
s2.t5 38.4 15.2 8.9 100.0
s3.t1 42.5 9.1 7.5 120.0
s3.t2 39.8 11.2 8.4 90.0
s3.t3 37.6 14.0 6.3 110.0
s3.t4 35.7 13.8 7.5 120.0
s3.t5 37.6 14.9 9.3 80.0
s4.t1 42.5 9.1 7.5 120.0
s4.t2 39.8 11.2 8.4 90.0
s4.t3 37.6 14.0 6.3 110.0
s4.t4 35.7 13.8 7.5 120.0
s4.t5 36.3 12.8 10.3 90.0;
* 선풍기 만들기
$eval nnodes 카드*(카드(t)-1)
세트
n '노드' / n0*n%nnodes% /
nn(n) '다음 노드'
anc(n,n) '조상 관계';
매개변수
prob(n) '노드 확률'
rv(r,n) '임의의 값';
nn('n0') = 예;
루프(들,
loop(t$(ord(t) < 카드(t)),
루프(nn(n),
if(동일('t1',t),
anc(n+1,'n0') = 예;
그렇지 않으면
anc(n+1,n) = 예;
);
prob(n+1) = p(s);
rv(r,n+1) = sdata(s,t+1,r);
);
nn(n) = nn(n-1);
);
);
prob('n0') = 1;
rv(r,'n0') = sdata('s1','t1',r);
* ScenRed 초기화
$set srprefix 테스트
$libInclude 검열됨
anc_noloss(n,n), anc_red(n,n)를 설정합니다.
매개변수 prob_noloss(n), prob_red(n);
* 스크린콜
ScenredParms('red_percentage') = 0;
$libInclude 스크린 %srprefix% tree_con n anc prob anc_noloss prob_noloss rv
abort$(card(anc_noloss) <> 8) '스크린 트리 구성이 잘못된 무손실 트리를 제공했습니다.', anc_noloss;
anc_noloss를 표시;
* 스크린콜
ScenredParms('red_num_leaves') = 3;
$libInclude scenred %srprefix% tree_con n anc prob anc_red prob_red rv
anc_red 표시;