설명
대화형 트리거 파일을 포함하여 CPLEX 링크 옵션 'interactive'를 테스트합니다. 및 추가 대화형 솔버 옵션 파일. 기고자: Renke Kuhlmann, 2020년 10월
소형 모델 유형 :슬롯 나라
카테고리 : 슬롯 나라 테스트 라이브러리
메인 파일 : cplex05.gms
$title 'CPLEX 테스트 스위트 - 대화형' (CPLEX05,SEQ=830)
$if not '%슬롯 나라lp%' == '' $set 솔버 %슬롯 나라lp%
$설정되지 않은 경우 솔버 $set 솔버 cplex
$onText
대화형 트리거 파일을 포함한 CPLEX 링크 옵션 'interactive'를 테스트합니다.
및 추가 대화형 솔버 옵션 파일.
기고자: Renke Kuhlmann, 2020년 10월
$offText
$call gamslib -q 12
$call touch iatrigger.txt
$onEchoS > %solver%.opt
인터랙티브 1
iatrigger파일iatrigger.txt
itriggertime 1
ia파일 %solver%.op2
userincbincubemt_check_1 호출
노들림 20
$offEcho
$onEchoV > %solver%.op2
userincbincubemt_check_2 호출
$offEcho
$onEchoV > %solver%.op3
노들림 20
$offEcho
$onEchoV > incubemt_check_1.gms
display$sleep(1) '트리거 시간보다 오랫동안 수면';
'재직 수락'을 중단합니다.
$offEcho
$onEchoV > incubemt_check_2.gms
$offEcho
* 원본 모델의 실행 확인
$include Magic.gms
옵션 솔버 = %solver%;
mip를 사용하여 비용을 최소화하는 윌리엄의 문제를 해결합니다.
abort$(william.modelstat <> %modelStat.optimal%) '원래 모델 해결 문제';
abort$(william.solvestat <> %solveStat.normalCompletion%) '원본 모델 해결 문제';
* 모델이 20개 노드 내에서 해결되었는지 확인하십시오. 따라서 nodlim=20으로 인해 종료 실패가 발생하지 않습니다.
윌리엄.opt파일 = 3;
옵션 솔버 = %solver%;
mip를 사용하여 비용을 최소화하는 윌리엄의 문제를 해결합니다.
abort$(william.modelstat <> %modelStat.optimal%) 'nodlim으로 원본 모델을 해결하는 데 문제가 있습니다.';
abort$(william.solvestat <> %solveStat.normalCompletion%) 'nodlim을 사용하여 원본 모델을 해결하는 데 문제가 있습니다.';
* 트리거로 해결 적용
* 첫째, 현직 수표가 모든 것을 수락하고 트리거 옵션 파일이 업데이트됩니다.
* 모든 것을 거부하는 현직 수표. 그러므로 우리는 실패할 것으로 예상한다.
* 자원 제한으로 종료
윌리엄.opt파일 = 1;
옵션 솔버 = %solver%;
mip를 사용하여 비용을 최소화하는 윌리엄의 문제를 해결합니다.
abort$(william.modelstat = %modelStat.optimal%) '대화형 트리거 문제';
abort$(william.solvestat = %solveStat.normalCompletion%) '대화형 트리거 문제';
abort$(not (william.solvestat = %solveStat.resourceInterrupt% 또는 william.solvestat = %solveStat.terminatingBySolver%)) '대화형 트리거 문제';