슬롯 게임4.gms : 재구성 후 하나의 방정식에 대한 간단한 테스트

설명

이 테스트는 LP01을 모방하지만 재구성 후 모델은
하나의 슬롯 게임.  목표를 사용하는 솔버를 테스트하는 데 유용합니다.
기능 재구성.

기여자: Steve

소형 모델 유형 :슬롯 게임


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


메인 파일 : 슬롯 게임4.gms

$title 재구성 후 하나의 방정식에 대한 간단한 테스트(LP14,SEQ=418)

$onText

이 테스트는 LP01을 모방하지만 재구성 후 모델은
하나의 방정식.  목표를 사용하는 솔버를 테스트하는 데 유용합니다.
기능 재구성.

기여자: 스티브
$offText

$해결된asmcp가 설정되지 않은 경우 $setsolvedasmcp 0
$설정되지 않은 경우 SKIPUNBND $set SKIPUNBND 0

변수 obj, z;

방정식
  데포브
  디제
  데즐
  defzg
  ;

모델 lp14e /defze, defobj/
      lp14l /defzl, defobj/
      lp14g /defzg, defobj/;

defobj..obj =e= z;
defze..z =e= 1;
defzl..z =l= 1;
defzg..z =g= 1;

옵션 limcol=0,limrow=0,bratio=1;

스칼라 tol / 1e-6 /;
스칼라 SkipUnBnd / %SKIPUNBND% /;

lp14e max obj us 슬롯 게임를 해결하세요.
  abort$(lp14e.solvestat <> %solveStat.normalCompletion% 또는 lp14e.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14e.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14e.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14e.objval - 1) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defze.l - 1) > tol) '잘못된 방정식 수준';
  abort$(abs(defze.m - 1) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 0) > tol) '잘못된 변수 한계';

lp14l max obj us 슬롯 게임를 해결하세요.
  abort$(lp14l.solvestat <> %solveStat.normalCompletion% 또는 lp14l.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14l.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14l.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14l.objval - 1) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defzl.l - 1) > tol) '잘못된 방정식 수준';
  abort$(abs(defzl.m - 1) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 0) > tol) '잘못된 변수 한계';

if skipUnBnd가 아닌 경우,
  lp14g max obj us 슬롯 게임를 해결하세요.
    중단$(lp14g.solvestat <> %solveStat.normalCompletion%
           또는 ((lp14g.modelstat <> %modelStat.unbounded%) 및 (lp14g.modelstat <> %modelStat.unboundedNoSolution%)
              and ((lp14g.modelstat <> %modelStat.infeasible%) 또는 (%solvedasmcp% = 0)))) '잘못된 상태 코드';
;

lp14e min obj us 슬롯 게임를 해결하세요.
  abort$(lp14e.solvestat <> %solveStat.normalCompletion% 또는 lp14e.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14e.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14e.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14e.objval - 1) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defze.l - 1) > tol) '잘못된 방정식 수준';
  abort$(abs(defze.m - 1) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 0) > tol) '잘못된 변수 한계';

if skipUnBnd가 아닌 경우,
  lp14l min obj us 슬롯 게임를 해결하세요.
    중단$(lp14l.solvestat <> %solveStat.normalCompletion%
           또는 ((lp14l.modelstat <> %modelStat.unbounded%) 및 (lp14l.modelstat <> %modelStat.unboundedNoSolution%)
                and ((lp14l.modelstat <> %modelStat.infeasible%) 또는 (%solvedasmcp% = 0)))) '잘못된 상태 코드';
;

lp14g min obj us 슬롯 게임를 해결하세요.
  abort$(lp14g.solvestat <> %solveStat.normalCompletion% 또는 lp14g.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14g.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14g.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14g.objval - 1) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defzg.l - 1) > tol) '잘못된 방정식 수준';
  abort$(abs(defzg.m - 1) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 0) > tol) '잘못된 변수 한계';

z.lo = -1000; z.up = 1000;

lp14e max obj us 슬롯 게임를 해결하세요.
  abort$(lp14e.solvestat <> %solveStat.normalCompletion% 또는 lp14e.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14e.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14e.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14e.objval - 1) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defze.l - 1) > tol) '잘못된 방정식 수준';
  abort$(abs(defze.m - 1) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 0) > tol) '잘못된 변수 한계';

lp14l max obj us 슬롯 게임를 해결하세요.
  abort$(lp14l.solvestat <> %solveStat.normalCompletion% 또는 lp14l.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14l.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14l.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14l.objval - 1) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defzl.l - 1) > tol) '잘못된 방정식 수준';
  abort$(abs(defzl.m - 1) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 0) > tol) '잘못된 변수 한계';

lp14g max obj us 슬롯 게임를 해결하세요.
  abort$(lp14g.solvestat <> %solveStat.normalCompletion% 또는 lp14g.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14g.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14g.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14g.objval - 1000) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defzg.l - 1000) > tol) '잘못된 방정식 수준';
  abort$(abs(defzg.m - 0) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1000) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1000) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 1) > tol) '잘못된 변수 한계';

lp14e min obj us 슬롯 게임를 해결하세요.
  abort$(lp14e.solvestat <> %solveStat.normalCompletion% 또는 lp14e.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14e.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14e.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14e.objval - 1) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defze.l - 1) > tol) '잘못된 방정식 수준';
  abort$(abs(defze.m - 1) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 0) > tol) '잘못된 변수 한계';

lp14l min obj us 슬롯 게임를 해결하세요.
  abort$(lp14l.solvestat <> %solveStat.normalCompletion% 또는 lp14l.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14l.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14l.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14l.objval + 1000) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defzl.l + ​​1000) > tol) '잘못된 방정식 수준';
  abort$(abs(defzl.m - 0) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l + 1000) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l + 1000) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 1) > tol) '잘못된 변수 한계';

lp14g min obj us 슬롯 게임를 해결하세요.
  abort$(lp14g.solvestat <> %solveStat.normalCompletion% 또는 lp14g.modelstat <> %modelStat.optimal%) '잘못된 상태 코드';
  abort$(lp14g.numnopt <> 0) ' NONOPT 플래그가 설정되었습니다.';
  abort$(lp14g.numinfes <> 0) '실행할 수 없는 플래그가 설정되었습니다';
  중단$(abs(lp14g.objval - 1) > tol) '잘못된 m.objval';
  abort$(abs(defobj.l - 0) > tol) '잘못된 defobj 수준';
  abort$(abs(defobj.m - 1) > tol) '잘못된 defobj 한계';
  abort$(abs(defzg.l - 1) > tol) '잘못된 방정식 수준';
  abort$(abs(defzg.m - 1) > tol) '잘못된 방정식 한계';
  abort$(abs(obj.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(obj.m - 0) > tol) '잘못된 변수 한계';
  abort$(abs(z.l - 1) > tol) '잘못된 변수 수준';
  abort$(abs(z.m - 0) > tol) '잘못된 변수 한계';