empdisj6.gms : 부정 등식을 사용하여 분리 테스트

설명

이 테스트는 Silvia Tomasi가 보낸 버그 보고서를 기반으로 합니다.

해결해야 할 분리형 프로그램은 다음과 같습니다.
x를 최소화하다
(A1 또는 (x=0)) 및
          (A2가 아니거나 (x <= 3)이 아님) 및
          (A1이나 A2가 아님)

최적의 솔루션은 x = 0입니다.
A1 = 거짓, A2 = 거짓, (x=0) = 참, (x<=3) = 참.

기고자: Stefan Vigerske, 2012년 11월

소형 모델 유형 :슬롯 사이트 추천


카테고리 : 슬롯 사이트 추천 테스트 라이브러리


메인 파일 : empdisj6.gms

$title 부정 평등 방정식을 사용하여 분리 테스트(EMPDISJ6, SEQ=581)
$onText
이 테스트는 Silvia Tomasi가 보낸 버그 보고서를 기반으로 합니다.

해결해야 할 분리형 프로그램은 다음과 같습니다.
x를 최소화하다
(A1 또는 (x=0)) 및
          (A2가 아니거나 (x <= 3)이 아님) 및
          (A1이나 A2가 아님)

최적의 솔루션은 x = 0입니다.
A1 = 거짓, A2 = 거짓, (x=0) = 참, (x<=3) = 참.

기고자: Stefan Vigerske, 2012년 11월
$offText

$설정되지 않은 경우 TESTTOL $set TESTTOL 1e-6

변수 z, x;
이진 변수 A1, A2, A3, A4;

방정식 e0, e1, e2, e3, e4;

e0..z =e= x;
e1.. A1 =e= 1;
e2.. A2 =e= 1;
e3.. x =e= 0;
e4..x =l= 3;

모델 m / 모두 /;

옵션 optcr = 0;

양식 설정 / bigm, indic /;

파일 empinfo / '%emp.info%' /;
루프(형태,
 empinfo를 넣어;
 '기본값'을 입력합니다.forms.tl /;
 put 'disjunction * e1 else e3' /;
 put 'disjunction * e2 아님 else e4 아님' /;
 '분리 * e1 아님 else e2'를 입력하세요.
 닫다;

 m us emp min z를 풀어보세요;

 abort$(abs(z.l) > %TESTTOL%) "잘못된 최적 값, 예상되는 0"
 abort$(abs(x.l) > %TESTTOL%) "x에 대한 잘못된 솔루션 값, 예상되는 0"
);