scale01.gms : 확장 모델의 테스트 결과

설명

이 테스트에서는 trnsport 모델을 사용하여 임의의 배율 인수를 적용합니다.
변수와 방정식. 다양한solvlink 설정을 사용하여 모델을 해결합니다.
그리고 동일한 결과가 나오는지 확인합니다.

키워드:solvLink, scale, scaleopt

기고자: Lutz Westermann, 2016년 3월

소형 모델 유형 :슬롯 나라


카테고리 : 슬롯 나라 테스트 라이브러리


메인 파일 : scale01.gms

$title '확장 모델 테스트 결과' (SCALE01,SEQ=692)

$onText
이 테스트에서는 trnsport 모델을 사용하여 임의의 배율 인수를 적용합니다.
변수와 방정식. 다양한solvlink 설정을 사용하여 모델을 해결합니다.
그리고 동일한 결과가 나오는지 확인합니다.

키워드:solvLink, scale, scaleopt

기고자: Lutz Westermann, 2016년 3월
$offText

$call gamslib -q trnsport
$include trnsport.gms

$onEchoV > 보고서.gms
rep0('%1', 'z.l') = z.l;
rep0('%1', 'z.m') = z.m;
rep0('%1', 'cost.l') = 비용.l;
rep0('%1', 'cost.m') = 비용.m;
rep0('%1', 'objval') = 전송.objval;;

repi('%1', 'supply.l', i) = 공급.l(i);
repi('%1', 'supply.m', i) = 공급.m(i);

repj('%1', 'demand.l', j) = 수요.l(j);
repj('%1', 'demand.m', j) = 수요.m(j);

repij('%1', 'x.l', i, j) = x.l(i,j);
repij('%1', 'x.m', i, j) = x.m(i,j);
$offEcho

실행 설정 / 기본값
           스케일-SL%solveLink.chainScript%
           scale-SL%solveLink.callScript%
           규모-SL%solveLink.callModule%
           scale-SL%solveLink.loadLibrary%
           scale-SL%solveLink.asyncGrid%
           scale-SL%solveLink.aSyncThreads% /;

매개변수 rep0(runs,*), repi(runs,*,i), repj(runs,*,j), repij(runs,*,i,j);

* 기본 설정으로 해결
옵션 lp=cplex;
z 를 최소화하는 lp를 사용하여 전송을 해결합니다.
$batInclude 보고서 기본값

* 일부 척도 설정
Transport.scaleOpt = 1;
비용.규모 = 2;
공급.규모(i) = 3;
수요.규모(j) = 4;

z.scale = 0.1;
x.scale(i,j) = 0.2;

* 스케일을 활성화하고 SL=%solveLink.chainScript%로 해결
Transport.solveLink = %solveLink.chainScript%;
z 를 최소화하는 lp를 사용하여 전송을 해결합니다.
$batInclude 보고서 scale-SL%solveLink.chainScript%

* 척도가 활성화되고 SL=%solveLink.callScript%로 해결
Transport.solveLink = %solveLink.callScript%;
z 를 최소화하는 lp를 사용하여 전송을 해결합니다.
$batInclude 보고서 scale-SL%solveLink.callScript%

* 척도를 활성화하고 SL=%solveLink.callModule%로 해결
Transport.solveLink = %solveLink.callModule%;
z 를 최소화하는 lp를 사용하여 전송을 해결합니다.
$batInclude 보고서 scale-SL%solveLink.callModule%

* 척도를 활성화하고 SL=%solveLink.loadLibrary%로 해결
Transport.solveLink = %solveLink.loadLibrary%;
z 를 최소화하는 lp를 사용하여 전송을 해결합니다.
$batInclude 보고서 scale-SL%solveLink.loadLibrary%

* 활성화된 척도 및 SL=%Solvelink.Load Grid%로 해결
Transport.solvelink=%solveLink.asyncGrid%;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
display$readyCollect(transport.handle) '작업 대기 중 문제';
display$handlecollect(transport.handle) '수집된 결과';
display$handledelete (transport.handle) '우선 문제 삭제 핸들';
$batInclude 보고서 scale-SL%solveLink.asyncGrid%

* 스케일을 활성화하고 SL=%Solvelink.Load Threads%로 해결
Transport.solvelink=%solveLink.aSyncThreads%;
z를 최소화하는 lp를 사용하여 전송을 해결합니다.
display$readyCollect(transport.handle) '작업 대기 중 문제';
display$handlecollect(transport.handle) '수집된 결과';
display$handledelete (transport.handle) '우선 문제 삭제 핸들';
$batInclude 보고서 scale-SL%solveLink.aSyncThreads%

error0, errori, errorj, errorij를 설정합니다.

별칭(*,u);

error0(runs,u) $(not sameas(runs,'default')) = abs(rep0(runs,u) - rep0('default',u) ) > 1e-6;
errori(runs,u,i) $(not sameas(runs,'default')) = abs(repi(runs,u,i) - repi('default',u,i) ) > 1e-6;
errorj(runs,u,j) $(not sameas(runs,'default')) = abs(repj(runs,u,j) - repj('default',u,j) ) > 1e-6;
errorij(runs,u,i,j)$(not sameas(runs,'default')) = abs(repij(runs,u,i,j) - repij('default',u,i,j)) > 1e-6;

abort$(card(error0) + 카드(errori) + 카드(errorj) + 카드(errorij)) '예기치 않은 차이',
       error0, errori, errorj, errorij, rep0, repi, repj, repij;