gamschk2.gms : GAMSCHK 테스트 스위트 - 척도 인자 사용

설명



소형 모델 유형 :크레이지 슬롯


카테고리 : 크레이지 슬롯 테스트 라이브러리


메인 파일 : gamschk2.gms

$title 'GAMSCHK 테스트 모음 - 척도 인자 사용' (GAMSCHK2,SEQ=959)

$onCheckError레벨

$onEchoV > solo.gms
변수 /x1*x4/의 항목 이름을 설정합니다.
          리소스 제약 조건 이름 /r1*r4/

매개변수 objcoef(items) 목적 함수 계수
                    /x1 1, x2 -500, x3 -400, x4 -5000/
          rhs(resources) 리소스 가용성
                    /r3 6000,r4 300/;

테이블 amatrix(자원, 항목) aij 행렬
       x1 x2 x3 x4
  r1 1 -10000 -8000
  r2 5 4 -50
  r3 1500 2000
  r4 50 45 ;

변수 z;
양수 변수 xvar(items);
방정식 objfun
                   avail(자원);

objfun.. z =e= sum(items,objcoef(items)*xvar(items));
avail(자원).. sum(items,amatrix(resources,items)*xvar(items))
                           =l= rhs(자원);
옵션 제한=4;
옵션 limcol=4;
모델 scalemod /all/;

옵션 lp=gamschk;

$ifthen 설정 SETSCALES
  "기본값이 아닌 값으로 스케일 설정"을 표시합니다.
  objfun.scale=10000;
  z.scale=objfun.scale;
  avail.scale("r1")=10000;
  xvar.scale("x1")= avail.scale("r1");
  avail.scale("r3")=1000;
  avail.scale("r4")=50;
$else
  "모든 스케일은 기본값으로 유지됩니다"를 표시합니다.
$endif

scalemod.scaleopt=0;
z를 최대화하는 lp를 사용하여 scalemod를 해결합니다.
$offEcho

$onEchoV > solo.gck
디스플레이cr
방정식
가능*
사후 선택
방정식
가능*
$offEcho

* -----------------------------------------------------

$call =크레이지 슬롯 solo.gms lo=0 pw=80 o=gamschk2_noscales.lst
$call =크레이지 슬롯 solo.gms lo=0 pw=80 --SETSCALES=1 o=gamschk2_setscales.lst

$통화 CD . && "%크레이지 슬롯sysdir%GMSPython%system.dirsep%python" ./lstGrabber.py gamschk2_noscales.lst "### DISPLAYCR 실행 중" 86 noscales.txt > %system.nullFile%
$통화 CD . && "%크레이지 슬롯sysdir%GMSPython%system.dirsep%python" ./lstGrabber.py gamschk2_setscales.lst "### DISPLAYCR 실행 중" 86 setscales.txt > %system.nullFile%

$offCheckError레벨

$call diff noscales.txt setscales.txt > %system.nullFile%
$if errorlevel 1 $abort '오류: GAMSCHK 출력에서 예상치 못한 차이점이 발견되었습니다.'

$log %system.fn% 테스트가 성공적으로 완료되었습니다.