scensol8.gms : 수정 문제가 있는 솔버가 GUSS에서 핫스타트를 사용하는지 확인

설명

이 테스트는 "문제 수정" 기능을 제공하는 솔버인지 확인합니다
GUSS에서는 핫 스타트를 사용합니다.

기고자: Michael Bussieck, 2025년 1월(업데이트됨)

소형 모델 유형 :슬롯 머신


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


메인 파일 : scensol8.gms

$title '수정 문제가 있는 솔버가 GUSS에서 핫스타트를 사용하는지 확인하세요' (SCENSOL8,SEQ=867)

$onText
이 테스트는 "문제 수정" 기능을 제공하는 솔버가 있는지 확인합니다.
GUSS에서는 핫 스타트를 사용합니다.

기고자: Michael Bussieck, 2025년 1월(업데이트됨)
$offText

솔버의 lpsolvers 상위 집합 설정 / system.solverNames /
    GUSS 핫스타트 기능을 갖춘 hotstart(lpsolvers) 솔버
       /콥트, 씨플렉스, 구로비, 구로비올드, 하이스, 아이팝트, 아이팝스, 솔플렉스 /;

Execute.checkErrorLevel 'gamslib -q gussex1';

$if "%슬롯 머신lp%"=="" $log "명령줄에서 LP 솔버 선택"
$if "%슬롯 머신lp%"=="" $exit

put_utility 'shell.checkerrorlevel' / '슬롯 머신 gussex1 lo=2 lp=%슬롯 머신lp%';
put_utility 'shell' / 'grep "핫스타트 사용" gussex1.log > %system.nullFile%';
abort$(errorLevel<>0 and hotstart('%슬롯 머신lp%')) '%슬롯 머신lp%가 핫스타트를 사용할 것으로 예상됩니다.';
abort$(errorLevel=0 and not hotstart('%슬롯 머신lp%')) '%슬롯 머신lp%가 핫스타트를 사용하지 않을 것으로 예상됩니다.';

abort.noError$(not hotstart('%슬롯 머신lp%')) '명시적으로 핫스타트를 끄는 테스트가 필요하지 않습니다.';

* 명시적으로 핫스타트 방지
put_utility 'shell.checkerrorlevel' / 'sed s/"SkipBaseCase 1"/"SkipBaseCase 1, NoHotStart 1"/ gussex1.gms > gussex1_nhs.gms';
put_utility 'shell.checkerrorlevel' / '슬롯 머신 gussex1_nhs lo=2 lp=%슬롯 머신lp%';
put_utility 'shell' / 'grep은 "핫스타트를 사용합니다" gussex1_nhs.log > %system.nullFile%';
abort$(errorLevel=0) '비활성화 후 %슬롯 머신lp%가 핫스타트를 사용하지 않을 것으로 예상됩니다.';