emp05.gms : 상수 방정식 처리 테스트

설명

슬롯 나라의 상수 처리 테스트

기여자: Jan-H. Jagla, 2009년 4월

소형 모델 유형 :GAMS


카테고리 : GAMS 테스트 라이브러리


메인 파일 : emp05.gms

$title "상수 방정식 처리 테스트" (EMP05,SEQ=442)

$onText

슬롯 나라의 상수 처리 테스트

기여자: Jan-H. 자글라, 2009년 4월

$offText

방정식 defobj,e1,e2,e3,e4,e5;
변수 z;
defobj..z =e= 3;
e1..1 =l= 5;
e2..1 =n= 5;
e3..1 =e= 1;
e4..1 =g= -5;
e5..1 =n= -5;
모델 상수 /all/;

$echo 파일명 test1.gms > jams.opt
상수.optfile=1;

슬롯 나라 최소화 z 를 사용하여 상수를 푼다.
abort$execerror '슬롯 나라를 사용하여 문제를 해결하면 실행 오류가 발생하지 않아야 합니다.';
상수.numvar, 상수.numequ 표시;
abort$(constants.numvar <> 1 or Constants.numequ <> 6) '모델에는 변수 1개와 방정식 6개가 있어야 합니다.';
'sed "2d" test1.gms > test1_mod.gms'를 실행합니다.
'diff -I reslim -bw test1_mod.gms test_ref.gms'를 실행합니다.
abort$errorlevel 'test1_mod.gms와 test_ref.gms가 다릅니다';

방정식 e6;
e6..1 =e= 2;
모델 infeas_equE /constants, e6/;

z 를 최소화하는 슬롯 나라를 사용하여 infeas_equE를 해결합니다.
abort$execerror '슬롯 나라를 사용하여 문제를 해결하면 실행 오류가 발생하지 않아야 합니다.';
abort$(infeas_equE.solvestat <> 1 or infeas_equE.modelstat <> 4) '모델 infeas_equE는 (1,4)로 종료되어야 합니다.';
infeas_equE.numvar, infeas_equE.numequ 표시;
abort$(infeas_equE.numvar <> 1 or infeas_equE.numequ <> 7) '모델 infeas_equE에는 변수 1개와 방정식 7개가 있어야 합니다.';
'grep "RHS 값으로 인해 JAMS 방정식 7 실행 불가능" "%gams.scrdir%gamsstat.%gams.scrext%" > test.txt'를 실행합니다.
abort$errorlevel '슬롯 나라는 e6을 실행 불가능하다고 선언하지 않았습니다.';

방정식 e7;
e7..1 =l= -1;
모델 infeas_equL /constants, e7/;

z 를 최소화하는 슬롯 나라를 사용하여 infeas_equL을 해결합니다.
abort$execerror '슬롯 나라를 사용하여 문제를 해결하면 실행 오류가 발생하지 않아야 합니다.';
abort$(infeas_equL.solvestat <> 1 or infeas_equL.modelstat <> 4) '모델 infeas_equL은 (1,4)로 종료되어야 합니다.';
infeas_equL.numvar, infeas_equL.numequ 표시;
abort$(infeas_equL.numvar <> 1 or infeas_equL.numequ <> 7) '모델 infeas_equL에는 변수 1개와 방정식 7개가 있어야 합니다.';
'grep "RHS 값으로 인해 JAMS 방정식 7 실행 불가능" "%gams.scrdir%gamsstat.%gams.scrext%" > test.txt'를 실행합니다.
abort$errorlevel '슬롯 나라는 e7을 실행 불가능하다고 선언하지 않았습니다';

방정식 e8;
e8..1 =g= 2;
모델 infeas_equG /constants, e8/;

z 를 최소화하는 슬롯 나라를 사용하여 infeas_equG를 해결합니다.
abort$execerror '슬롯 나라를 사용하여 문제를 해결하면 실행 오류가 발생하지 않아야 합니다.';
abort$(infeas_equG.solvestat <> 1 or infeas_equG.modelstat <> 4) '모델 infeas_equG는 (1,4)로 종료되어야 합니다.';
infeas_equG.numvar, infeas_equG.numequ 표시;
abort$(infeas_equG.numvar <> 1 or infeas_equG.numequ <> 7) '모델 infeas_equG에는 1개의 변수와 7개의 방정식이 있어야 합니다.';
'grep "RHS 값으로 인해 JAMS 방정식 7 실행 불가능" "%gams.scrdir%gamsstat.%gams.scrext%" > test.txt'를 실행합니다.
abort$errorlevel '슬롯 나라는 e8을 실행 불가능하다고 선언하지 않았습니다';

$onEcho > test_ref.gms
***********************************************
* 자세한 내용은 JAMS 옵션 "Dict"를 사용하세요.
***********************************************

변수 objvar;

방정식 e1;

e1..objvar =E= 3;

모델 m / 모두 /;

m.limrow=0; m.limcol=0;

objvar를 최소화하는 LP를 사용하여 m을 해결합니다.
$offEcho