transecs.gms : 내재된 상보성을 이용한 평형 문제로서의 운송 모델

설명

Dantzig의 독창적인 운송 모델인 TRNSPORT(슬롯 모델에서)
라이브러리)는 두 가지 방법으로 EMP를 사용하여 재구성됩니다.
상보성 시스템 또는 ECS(즉, 다음을 포함하는 풀이 문 사용)
목적 변수 및 'dualvar' 지시어가 포함된 EMP 정보 파일),
다음은 단일 에이전트 평형 모델입니다(즉, 풀이 문 사용).
객관적인 방향이나 변수가 없고 다음으로 시작하는 EMP 정보 파일이 있습니다.
'평형' 지시문을 사용하고 하나의 에이전트를 지정합니다.
'dualvar' 지시문).  두 EMP 모델은 서로 다르지만
동일한 동작을 지정하는 동일한 방법.  각각 결과를 재현합니다.
선형 상보성을 사용하는 TRANSMCP(슬롯 모델 라이브러리)
접근.

TRANSMCP와 마찬가지로 4단계가 있습니다.
   1. 교정 데이터를 얻기 위한 원래의 고정 수요 LP
   2a. ECS를 사용한 유연한 수요 모델로 고정 수요 결과 재현
       (obj 변수 및 방향을 지정하는 긴 형식의 해석 문)
   2b. 2a와 동일하지만 짧은 형식의 풀이 문이 있음
   3. 고정 수요 모델을 사용한 반사실적
   4a. 유연한 수요 모델(ECS)을 사용한 반사실적
   4b. 유연한 수요 모델을 사용한 반사실적(균형)

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

기고자: Steven Dirkse, 2009년 1월

소형 모델 유형 :ECS


카테고리 : 슬롯 EMP 라이브러리


메인 파일 : transecs.gms

$title 내재된 상보성을 이용한 평형 문제로서의 운송 모델 (TRANSECS,SEQ=14)

$onText
Dantzig의 독창적인 운송 모델인 TRNSPORT(슬롯 모델에서)
라이브러리)는 두 가지 방법으로 EMP를 사용하여 재구성됩니다.
상보성 시스템 또는 ECS(즉, 다음을 포함하는 풀이 문 사용)
목적 변수 및 'dualvar' 지시어가 포함된 EMP 정보 파일),
다음은 단일 에이전트 평형 모델입니다(즉, 풀이 문 사용).
객관적인 방향이나 변수가 없고 다음으로 시작하는 EMP 정보 파일이 있습니다.
'평형' 지시문을 사용하고 하나의 에이전트를 지정합니다.
'dualvar' 지시문).  두 EMP 모델은 서로 다르지만
동일한 동작을 지정하는 동일한 방법.  각각 결과를 재현합니다.
선형 상보성을 사용하는 TRANSMCP(슬롯 모델 라이브러리)
접근.

TRANSMCP와 마찬가지로 4단계가 있습니다.
   1. 교정 데이터를 얻기 위한 원래의 고정 수요 LP
   2a. ECS를 사용한 유연한 수요 모델로 고정 수요 결과 재현
       (obj 변수 및 방향을 지정하는 긴 형식의 해석 문)
   2b. 2a와 동일하지만 짧은 형식의 풀이 문이 있음
   3. 고정 수요 모델을 사용한 반사실적
   4a. 유연한 수요 모델(ECS)을 사용한 반사실적
   4b. 유연한 수요 모델을 사용한 반사실적(균형)

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

기고자: Steven Dirkse, 2009년 1월

$offText

매개변수 보고서(*,*,*) 요약 보고서;

$call gamslib -q trnsport

* --- 1. 이제 원래의 고정 수요 Trnsport 모델을 해결합니다.
$include trnsport
보고서(i,j,'고정') = x.l(i,j);
report(i,"price",'fixed') = 공급.m(i);
report("price",j,'fixed') = 수요.m(j);

* 이제 유연한 수요 기능을 도입합니다.
매개변수 esub(j) 수요의 가격 탄력성(가격이 1과 동일할 때)
                   / 뉴욕 1.5, 시카고 1.2, 토피카 2.0 /
           pbar(j) 수요 노드 j의 기준 가격;

수요 노드 j의 변수 p(j) 그림자 가격;
방정식 flexdemand(j) 시장 j의 가격 반응 수요;

flexdemand(j).. sum(i, x(i,j)) =g= b(j)*(pbar(j)/p(j))**esub(j);

유연한 수요 / 비용, 공급, 유연한 수요 /를 갖춘 모델 플렉스 trnsport 모델;

p.lo(j) = 1e-3; 옵션 limcol=0,limrow=0;

파일 FX / '%emp.info%' /;

* 수요 함수를 조정합니다:
pbar(j) = 수요.m(j);

* --- 2a. ECS를 사용하여 고정 수요 균형을 복제합니다.
* EMP 정보 파일을 사용하여 가격을 정의합니다.
* 유연한 수요 방정식의 이중
fx '* p(j) = flexdemand.m(j)'를 넣습니다.
putclose / 'dualvar p flexdemand';
emp min z를 사용하여 플렉스를 해결합니다.
보고서(i,j,"flex-a") = x.l(i,j);
report(i,"price",'flex-a') = 공급.m(i);
report("price",j,"flex-a") = p.l(j);
* 보고서("이익",'',"플렉스") = sum((i,j), (p.l(j)-c(i,j))*x.l(i,j));

* --- 2b. '균형'을 사용하여 고정 수요 균형을 복제합니다.
fx/'평형'/을 입력합니다.
fx / '최소 z x 비용 가변수요 공급' /을 입력합니다.
putclose fx / 'dualvar p flexdemand' /;
emp를 사용하여 플렉스를 해결합니다.
보고서(i,j,"flex-b") = x.l(i,j);
보고서(i,"price",'flex-b') = 공급.m(i);
report("가격",j,"flex-b") = p.l(j);

* 반사실을 위한 데이터 준비
c("시애틀","시카고") = 0.5 * c("시애틀","시카고");

* --- 3. 고정 수요에 대한 반대 사실
lp min z를 사용하여 전송을 해결합니다.
report(i,j,'고정 CF') = x.l(i,j);
report(i,"price",'fixed CF') = 공급.m(i);
report("price",j,'fixed CF') = 수요.m(j);

* --- 4a. 유연한 수요를 갖춘 반사실적
fx '* p(j) = flexdemand.m(j)'를 넣습니다.
putclose / 'dualvar p flexdemand';
emp min z를 사용하여 플렉스를 해결합니다.
보고서(i,j,"flex CF-a") = x.l(i,j);
report(i,"price",'flex CF-a') = 공급.m(i);
report("price",j,"flex CF-a") = p.l(j);
* 보고서("이익",'',"플렉스 CF") = sum((i,j), (p.l(j)-c(i,j))*x.l(i,j));

* --- 4b. '균형'을 사용하여 유연한 수요를 갖춘 반사실적
fx/'평형'/을 입력합니다.
fx / '최소 z x 비용 가변수요 공급' /을 입력합니다.
putclose fx / 'dualvar p flexdemand' /;
emp를 사용하여 플렉스를 해결합니다.
보고서(i,j,"flex CF-b") = x.l(i,j);
report(i,"price",'flex CF-b') = 공급.m(i);
report("price",j,"flex CF-b") = p.l(j);

보고서 표시;
Execute_unload 'ecsReport.gdx', 보고서;