설명
이 모델의 목적은 항공기를 경로에 할당하여 최대화하는 것입니다. 교통수요가 불확실할 때 예상되는 이익. 두 가지 다른 델타 및 람다 공식이 사용됩니다.
소형 모델 유형 :LP
카테고리 : 메가 슬롯 모델 라이브러리
메인 파일 : aircraft.gms
$title 수요가 불확실한 항공기 할당(AIRCRAF,SEQ=8)
$onText
이 모델의 목적은 항공기를 경로에 할당하여 최대화하는 것입니다.
교통수요가 불확실할 때 예상되는 이익. 두 가지 다른
공식에는 델타 및 람다 공식이 사용됩니다.
Dantzig, GB, 28장. 선형 프로그래밍 및 확장.
프린스턴 대학 출판부, 뉴저지주 프린스턴, 1963년.
키워드: 선형 계획법, 항공기 관리, 할당 문제
$offText
세트
i '항공기 유형 및 미지정 승객' / a*d /
j '할당된 경로와 할당되지 않은 경로' / Route-1*route-5 /
h '수요 상태' / 1*5 /;
별칭(h,hp);
테이블 dd(j,h) '경로 j의 수요 분포'
1 2 3 4 5
노선-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,h) '경로 j의 수요 상태 h 확률'
1 2 3 4 5
루트-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 ;
표 c(i,j) '항공기당 비용(1000대)'
경로-1 경로-2 경로-3 경로-4 경로-5
18 21 18 16 10
ㄴ 15 16 14 9
c 10 9 6
d 17 16 17 15 10;
테이블 p(i,j) '경로 j에 있는 항공기 i의 승객 수용력'
경로-1 경로-2 경로-3 경로-4 경로-5
16 15 28 23 81
b 10 14 15 57
c 5 7 29
d 9 11 22 17 55;
매개변수
aa(i) '항공기 가용성' / a 10, b 19, c 25, d 15 /
k(j) '수익 손실(100당 1000 충돌)' / (route-1,route-2) 13
(경로-3,경로-4) 7
루트-5 1 /
ed(j) '예상 수요'
gamma(j,h) '경로 j에서 수요 증가분 h를 초과할 확률'
deltb(j,h) '수요 상태의 승객 탑승 증가';
ed(j) = sum(h, 람다(j,h)*dd(j,h));
감마(j,h) = sum(hp$(ord(hp) >= ord(h)), 람다(j,hp));
deltb(j,h) = (dd(j,h) - dd(j,h-1))$dd(j,h);
디스플레이 ed, 감마, deltb;
양수 변수
x(i,j) '경로 j에 할당된 항공기 유형 i의 수'
y(j,h) '실제로 탑승한 승객'
b(j,h) '승객들이 부딪혔어요'
oc '운영 비용'
bc '범핑 비용';
무료 변수 phi '총 예상 비용';
방정식
ab(i) '항공기 균형'
db(j) '수요잔고'
yd(j,h) '탑승 승객 정의'
bd(j,h) '충돌된 승객의 정의'
ocd '운영 비용 정의'
bcd1 '범핑 비용 정의: 버전 1'
bcd2 '범핑 비용 정의: 버전 2'
obj '목적 함수';
ab(i)..sum(j, x(i,j)) =l= aa(i);
db(j).. sum(i, p(i,j)*x(i,j)) =g= sum(h$deltb(j,h), y(j,h));
yd(j,h).. y(j,h) =l= sum(i, p(i,j)*x(i,j));
bd(j,h).. b(j,h) =e= dd(j,h) - y(j,h);
ocd..oc =e= sum((i,j), c(i,j)*x(i,j));
bcd1.. bc =e= sum(j, k(j)*(ed(j)-sum(h, gamma(j,h)*y(j,h))));
bcd2.. bc =e= sum((j,h), k(j)*lambda(j,h)*b(j,h));
obj..phi =e= oc + bc;
모델
alloc1 '항공기 할당 버전 1' / ab, db, ocd, bcd1, obj /
alloc2 '항공기 할당 버전 2' / ab, yd, bd, ocd, bcd2, obj /;
y.up(j,h) = deltb(j,h);
lp를 사용하여 phi를 최소화하는 alloc1을 해결합니다.
y.l을 표시;
y.up(j,h) = +inf;
lp를 사용하여 phi를 최소화하는 alloc2를 해결합니다.
y.l을 표시;