설명
Dantzig의 독창적인 운송 모델 TRNSPORT(슬롯 커뮤니티 모델 라이브러리에 있음)는
EMP의 이중 레벨 프로그래밍을 사용하여 재구성되었습니다.
Dantzig, GB, 3.3장. 선형 프로그래밍 및 확장.
프린스턴 대학 출판부, 뉴저지주 프린스턴, 1963년.
추가 기능:
고정 수요 b(j)는 다음 함수로 대체됩니다.
g(j) = 최대(b(j),y(j))
y가 a에 가까워지도록 강제하는 외부 목적 함수를 사용합니다.
목표값(400). max 함수는 Variational Inequalties를 사용하여 모델링됩니다.
원래 trnsport 모델은 낮은 수준의 문제입니다.
기고자: Michael Ferris, 2009년 12월
소형 모델 유형 :BP
카테고리 : 슬롯 커뮤니티 EMP 라이브러리
메인 파일 : transbp.gms
$title 이중 수준 프로그래밍을 사용한 가변 수요 함수를 사용한 운송 모델(TRANSBP,SEQ=26)
$onText
Dantzig의 원래 운송 모델인 TRNSPORT(슬롯 커뮤니티 모델 라이브러리에 있음)는 다음과 같습니다.
EMP의 이중 레벨 프로그래밍을 사용하여 재구성되었습니다.
Dantzig, GB, 3.3장. 선형 프로그래밍 및 확장.
프린스턴 대학 출판부, 뉴저지주 프린스턴, 1963년.
추가 기능:
고정 수요 b(j)는 다음 함수로 대체됩니다.
g(j) = 최대(b(j),y(j))
y가 a에 가까워지도록 강제하는 외부 목적 함수를 사용합니다.
목표값(400). max 함수는 Variational Inequalties를 사용하여 모델링됩니다.
원래 trnsport 모델은 낮은 수준의 문제입니다.
기고자: Michael Ferris, 2009년 12월
$offText
매개변수 보고서(*,*,*) 요약 보고서;
세트
i 통조림 공장 / 시애틀, 샌디에고 /
j 마켓 / 뉴욕, 시카고, 토피카 / ;
매개변수
a(i) 경우에 따라 공장 i의 생산 능력
/시애틀 350
샌디에이고 600 /
b(j) 다음과 같은 경우 시장 j의 수요
/ 뉴욕 325
시카고 300
토피카 275 / ;
테이블 d(i,j) 거리(천 마일)
뉴욕 시카고 토피카
시애틀 2.5 1.7 1.8
샌디에고 2.5 1.8 1.4 ;
스칼라 f 운임(1,000마일당 케이스당 달러) /90/ ;
매개변수 c(i,j) 운송 비용(케이스당 수천 달러) ;
c(i,j) = f * d(i,j) / 1000 ;
변수
x(i,j) 케이스의 배송 수량
z 총 운송 비용(단위: 수천 달러)
g(j) 수요 창출;
양수 변수 x ;
방정식
비용 정의 목적 함수
공급(i) 공장 i의 공급 제한을 준수합니다.
수요(j)는 시장 j의 수요를 충족시킵니다.
비용 .. z =e= sum((i,j), c(i,j)*x(i,j)) ;
공급(i) .. sum(j, x(i,j)) =l= a(i) ;
* --- 참고: 고정 수요 b(j)는 가변 수요 g(j)로 대체되었습니다.
수요(j) .. sum(i, x(i,j)) =g= g(j) ;
모델 전송 /all/ ;
* --- 이제 원래 고정 가격 trnsport 모델을 해결합니다.
g.fx(j) = b(j);
z 를 최소화하는 lp를 사용하여 전송을 해결합니다.
보고서(i,j,'고정') = x.l(i,j);
변수
obj,
y(j) '외부 수요함수';
방정식
외부 개체,
extdem(j);
externalobj..obj =e= sum(j, sqr((y(j) - 400)/b(j)));
extdem(j)..g(j) =g= y(j);
모델 emp 이중 레벨 trnsport 모델 / 모두 /;
g.up(j) = inf; g.lo(j) = b(j);
* EMP 정보 파일을 사용하여 모델 정의
파일 FX / '%emp.info%' /;
fx 'bilevel y'를 입력하세요. /;
'최소 z x 비용 공급 수요'를 입력합니다. /;
putclose 'vi extdem g' /;
* --- 이제 EMP를 사용하여 2단계 trnsport 모델을 해결합니다.
emp us emp min obj를 해결하세요.
Report(i,j,"bilevel") = x.l(i,j);
보고서 표시;