solveopt01.gms :solvopt 옵션 및 명령줄 매개변수 테스트

설명

이 테스트는 무료 슬롯 모델 라이브러리 모델 솔브옵트를 기반으로 합니다. 여기서 우리는 보장합니다
명령줄에서solvopt를 설정하면 설정과 동일하게 동작합니다.
옵션 문을 통해.

기고자: Lutz Westermann, 2023년 6월

소형 모델 유형 :무료 슬롯


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


메인 파일 : solveopt01.gms

$title 'solvopt 옵션 및 명령줄 매개변수 테스트' (solveopt01,SEQ=941)

$onText
이 테스트는 무료 슬롯 모델 라이브러리 모델 솔브옵트(solvopt)를 기반으로 합니다. 여기서 우리는 보장합니다
명령줄에서solvopt를 설정하면 설정과 동일하게 동작합니다.
옵션 문을 통해.

기고자: Lutz Westermann, 2023년 6월
$offText

$onEchoV > test.gms
세트
   나 / a, b, c /
   j(i) /b/;

변수 obj, x1(i), x2(i), x3(i), x4(i);
방정식 defobj, e1(i), e2(i), e3(i);

defobj..obj =e= sum(i, x1(i));
e1(i).. x1(i) =g= ord(i) + x4(i)$0;
e2(j).. x2(j) =e= 20;
e3(i)$0 .. x3(i) =e= ord(i)*10;

모델 m / 모두 /;

m.limCol = 0;
m.limRow = 0;

x1.up(i) = 10;
x2.up(i) = 20;
x3.up(i) = 30;
x4.up(i) = 40;

e1.scale(i) = 10;
e2.scale(i) = 20;
e3.scale(i) = 30;

$ifThen optionSolveOpt 설정
옵션 솔브옵트 = %optionSolveOpt%;
$endIf
lp min obj를 사용하여 m을 해결합니다.
$offEcho

$call.checkErrorLevel 게임 test.gms lo=%무료 슬롯lo% --optionSolveOpt=병합 gdx=opt
$call.checkErrorLevel 게임 test.gms lo=%무료 슬롯lo% SolveOpt=병합 gdx=clp
$call.checkErrorLevel gdxdiff opt.gdx clp.gdx > %system.NullFile%

$call.checkErrorLevel 무료 슬롯 test.gms lo=%무료 슬롯lo% --optionSolveOpt=gdx=opt 교체
$call.checkErrorLevel 무료 슬롯 test.gms lo=%무료 슬롯lo% SolveOpt=gdx=clp 교체
$call.checkErrorLevel gdxdiff opt.gdx clp.gdx > %system.NullFile%

$call.checkErrorLevel 무료 슬롯 test.gms lo=%무료 슬롯lo% --optionSolveOpt=clear gdx=opt
$call.checkErrorLevel 무료 슬롯 test.gms lo=%무료 슬롯lo% SolveOpt=clear gdx=clp
$call.checkErrorLevel gdxdiff opt.gdx clp.gdx > %system.NullFile%