설명
이 테스트는 슬롯 무료체험 23.9.5의 EMP에서 발견된 버그를 기반으로 합니다. 해결해야 할 분리형 프로그램은 다음과 같습니다. 10*y1 + 10*y2 + y3을 최소화합니다. y1 또는 y2이거나 y3이 아니도록 최적의 솔루션은 분명히 y3 = 0입니다. 그러나 버그로 인해 접속사 용어에 'not y3'이 포함되었습니다. 올바르게 처리되지 않았습니다. 기고자: Stefan Vigerske, 2012년 11월
소형 모델 유형 :슬롯 무료체험
카테고리 : 슬롯 무료체험 테스트 라이브러리
메인 파일 : empdisj7.gms
$title EMP 분리 테스트 - 분리 용어의 부정 변수(EMPDISJ7,SEQ=583)
$onText
이 테스트는 슬롯 무료체험 23.9.5의 EMP에서 발견된 버그를 기반으로 합니다.
해결해야 할 분리형 프로그램은 다음과 같습니다.
10*y1 + 10*y2 + y3을 최소화합니다.
y1 또는 y2이거나 y3이 아니도록
최적의 솔루션은 분명히 y3 = 0입니다.
그러나 버그로 인해 접속사 용어에 'not y3'이 포함되었습니다.
올바르게 처리되지 않았습니다.
기고자: Stefan Vigerske, 2012년 11월
$offText
$설정되지 않은 경우 TESTTOL $set TESTTOL 1e-6
i /1*3/을 설정합니다.
이진변수 y(i);
변수 z;
방정식 dummy(i);
방정식 obj;
더미(i)..y(i) =g= 0;
obj.. z =e= 10 * y('1') + 10 * y('2') + y('3');
모델 m / 모두 /;
옵션 optcr = 0;
양식 설정 / chull, bigm, indic /;
파일 empinfo / '%emp.info%' /;
루프(형태,
empinfo를 넣어;
'기본값'을 입력합니다.forms.tl /;
put "disjunction y('1') dummy('1') ELSEIF y('2') dummy('2') ELSEIF not y('3') dummy('3')" /;
닫다;
m us emp min z를 풀어보세요;
abort$(abs(z.l) > %TESTTOL%) "잘못된 최적 값, 예상되는 0"
);