설명
이 테스트는 정수에 대한 동작(예: 모델/상태 코드)을 확인합니다. 실현 불가능한 모델. 이완은 훌륭하게 해결 가능합니다. 기고자: Steve, 2018년 12월
소형 모델 유형 :MIQCP
카테고리 : 무료 슬롯 테스트 라이브러리
메인 파일 : miqcp04.gms
$title 정수 실현 불가능 모델에 대한 테스트 동작(MIQCP04,SEQ=792)
$onText
이 테스트는 정수에 대한 동작(예: 모델/상태 코드)을 확인합니다.
실현 불가능한 모델. 이완은 훌륭하게 해결 가능합니다.
기고자: Steve, 2018년 12월
$offText
양의 변수 x1, x2;
이진 변수 y1, y2;
자유 변수 z;
방정식 f1, f2, c1, c2, g, h, zDef;
f1.. x1 + y1 =G= 2;
f2.. x2 + y2 =G= 2;
c1..sqr(x1-0.25) =L= 2;
c2..sqr(x2-0.25) =L= 2;
g.. x1 + x2 =L= 3;
h..y1 + y2 =L= 1.5;
zDef..sqr(x1) + y1 + sqr(x2) + y2 =E= z;
모델 m / 모두 /;
* DICOPT는 이 모델에 좋은 메시지를 제공하기 위해 몇 가지 옵션이 필요합니다.
$ifThenI x%system.miqcp%==xdicopt
$echo 볼록 1 > dicopt.opt
m.optfile = 1;
$endIf
miqcp min z를 사용하여 m을 해결합니다.
abort$[m.solvestat <> %solveStat.normalCompletion%] 'solvestat 1 예상: 정상 완료';
* IMHO 이 모델이 modelstat 19: Infeasible - No Solution을 반환하는 것은 매우 형편없는 일입니다.
*하지만 지금은 허용합니다
if (m.modelstat eq %modelStat.infeasibleNoSolution%),
abort.noError "modelstat가 정상입니다: ", m.modelstat;
;
중단$[(m.modelstat <> %modelStat.infeasible%) 및
(m.modelstat <> %modelStat.locallyInfeasible%) 및
(m.modelstat <> %modelStat.integerInfeasible%)]
'예상되는 modelstat 4, 5 또는 10: 전역적으로, 로컬로 또는 정수 실행 불가능';