airsp3.gms : 항공기 할당 - 확률론적 최적화

설명

이 모델의 목적은 항공기를 경로에 할당하여 최대화하는 것입니다.
교통수요가 불확실할 때 예상되는 이익. 몇 가지 문제
표준 LP 솔버와 EMP SP 솔버를 사용하여 해결됩니다.

AIRCRAFT, AIRSP 및 AIRSP2 모델도 참조하세요.

소형 모델 유형 :SP


카테고리 : 무료 슬롯 사이트 EMP 라이브러리


메인 파일 : airsp3.gms

$title 항공기 할당 - 확률론적 최적화(AIRSP3,SEQ=69)

$onText

이 모델의 목적은 항공기를 경로에 할당하여 최대화하는 것입니다.
교통수요가 불확실할 때 예상되는 이익. 몇 가지 문제
표준 LP 솔버와 EMP SP 솔버를 사용하여 해결됩니다.

AIRCRAFT, AIRSP 및 AIRSP2 모델도 참조하세요.

Dantzig, GB, 28장. 선형 프로그래밍 및 확장.
프린스턴 대학 출판부, 뉴저지주 프린스턴, 1963년.

$offText

i 항공기 유형 및 미지정 승객 설정 / a, b, c, d /
    j 할당된 경로와 할당되지 않은 경로 / 경로-1, 경로-2, 경로-3, 경로-4, 경로-5 /
;

표 c(i,j) 항공기당 비용(1000대)

          경로-1 경로-2 경로-3 경로-4 경로-5
 18 21 18 16 10
 ㄴ 15 16 14 9
 c 10 9 6
 일 17 16 17 15 10
;
테이블 pcap(i,j) j 노선에 있는 항공기 i의 승객 정원

         경로-1 경로-2 경로-3 경로-4 경로-5
 16 15 28 23 81
 b 10 14 15 57
 c 5 7 29
 일 9 11 22 17 55
;
매개변수 항공기(i) 항공기 가용성 / a 10
                                                b 19
                                                c 25
                                                d 15 /;

매개변수 costbumped(j) 승객 충돌과 관련된 비용
       /루트-1 13
         루트-2 13
         루트-3 7
         루트-4 7
         경로-5 1 /;

k개의 가능한 결과를 설정 /k1*k5/;

테이블 stochasticdemand(j,k) 경로 j의 수요 분포
             k1 k2 k3 k4 k5
 노선-1 200 220 250 270 300
 루트-2 50 150
 루트-3 140 160 180 200 220
 경로-4 10 50 80 100 340
 노선-5 580 600 620
;

테이블 확률(j,k) "sd(j,k)에 해당하는 확률"

              k1 k2 k3 k4 k5
 루트-1 .2 .05 .35 .2 .2
 루트-2 .3 .7
 루트-3 .1 .2 .4 .2 .1
 루트-4 .2 .2 .3 .2 .1
 루트-5 .1 .8 .1
;

매개변수 rdemand(j) 무작위 수요는 평균으로 초기화됩니다.
rdemand(j) = sum(k$probability(j,k), Probability(j,k)*stochasticdemand(j,k));

양의 변수 x(i,j) 경로 j에 할당된 항공기 유형 i의 수;
양수 변수 충돌(j) 승객 충돌;
변수 z 목적 변수;

방정식 avail(i) 항공기 가용성 제약;
방정식 수요(j) 수요 제약;
방정식 비용 목표;

비용.. z =e= sum((i,j), c(i,j)*x(i,j)) + sum(j, costbumped(j)*bumped(j));
avail(i)..sum(j, x(i,j)) =l= 항공기(i);
수요(j).. sum(i, pcap(i,j)*x(i,j)) + 범프(j) =g= rdemand(j);

모델 고정 /비용, 가용성, 수요/;

파일 emp / '%emp.info%' /; put emp '* 문제 %무료 슬롯 사이트i%';
루프(j,
  put / 'randvar ' rdemand.tn(j) ' 이산 ';
  루프(k$확률(j,k),
    put / 확률(j,k) 확률론적 수요(j,k));
);
putclose / '2단계 수요 증가 rdemand';

$eval scenmax 카드(k)**카드(j)

s 시나리오 설정 / s1*s%scenmax% /;
매개변수
    srep(s,*) 시나리오 확률 / #s.prob 0 /
    s_demand(s,j) 시나리오별 수요 실현
    담당자 솔루션 지표 보고서;

dictSP / s .scenario를 설정하십시오.''
             '' .opt.     srep
             rdemand.randvar. s_수요 /;

* 확률론적 의지 문제 또는 지금 여기에서 해결
emp min z 시나리오 dictSP를 사용하여 수정된 문제를 해결합니다.
rep('지금 여기') = z.l;

* 기대값(EV) 문제 해결
lp min z를 사용하여 고정 문제를 해결합니다.

* 모든 시나리오에서 EV 솔루션의 첫 번째 단계 결정을 평가하여 EV 솔루션 사용의 예상 결과를 계산합니다.
x.fx(i,j) = x.l(i,j);
매개변수
    s_cost(s) 시나리오별 비용;

dictMS / s .scenario를 설정하세요.''
             rdemand.param.   s_수요
             z.레벨.   s_비용 /;

lp min z 시나리오 dictMS를 사용하여 수정된 문제를 해결합니다.
rep('EV 솔루션의 기대값') = sum(s, s_cost(s)*srep(s,'prob'));

* 이제 완벽한 예측을 가정하고 관망 모델을 해결하세요.
x.lo(i,j) = 0; x.up(i,j) = inf;
lp min z 시나리오 dictMS를 사용하여 수정된 문제를 해결합니다.
rep('기다려보세요') = sum(s, s_cost(s)*srep(s,'prob'));

* 이제 다른 측정값을 계산해 보세요.
rep('완벽한 정보의 기대값(EVPI)') = rep('지금 여기') - rep('기다려보세요');
rep('확률론적 솔루션(VSS)의 값') = rep('EV 솔루션의 기대값') - rep('지금 그리고 여기');

옵션 담당자:2:0:1 디스플레이 담당자;