emp27.gms : x.fx=0 처리에서 LOGMIP/EMP 테스트

설명

볼록 껍질 재구성에 대한 LOGMIP 동작 테스트
var가 0으로 고정되고 a의 NL 방정식에 나타날 때의 분리
분리.

이로 인해 메가 슬롯 24.9.1 및 이전 버전의 버그가 발생했습니다.

기고자: Steve Dirkse, 2017년 9월

소형 모델 유형 :메가 슬롯


카테고리 : 메가 슬롯 테스트 라이브러리


메인 파일 : emp27.gms

$title 'x.fx=0 처리에서 LOGMIP/EMP 테스트' (EMP27,SEQ=738)

$onText
볼록 껍질 재구성에 대한 LOGMIP 동작을 테스트합니다.
var가 0으로 고정되고 a의 NL 방정식에 나타날 때의 분리
분리.

이로 인해 메가 슬롯 24.9.1 및 이전 버전의 버그가 발생했습니다.

기고자: Steve Dirkse, 2017년 9월
$offText

$설정되지 않은 경우 TESTTOL $set TESTTOL 1e-6
스칼라 tol / %TESTTOL% /;

i / i1 * i3 / 설정;
매개변수
  c(i) '객관 중심' /
    i1 0.25
    i2 0.25
  /
  b1(i) 'ball1 중심' /
    나는1 2
    i2 2
    i3 1
  /
  b2(i) 'ball2 중심' /
    i1 -2
    i2 -2
    i3 -1
  /

변수 v(i), z;
방정식 zDef, ball1, ball2;

zDef..sumi, sqr(v(i)-c(i)) =E= z;
ball1..sumi, sqr(v(i)-b1(i)) =L= 3;
ball2..sumi, sqr(v(i)-b2(i)) =L= 3;

모델 m /모두/ ;

파일 emp / '%emp.info%' /;
putclose emp
  / '모델 유형 minlp'
  / '기본 척 100'
  / '분리 * ball1 else ball2'
  /;

옵션 optcr =0.0;
옵션 emp = logmip;

* 귀찮은 변수수정입니다
v.fx('i3') = 0;

EMP 최소화 z를 사용하여 m을 해결합니다.

abort$[m.solveStat <> 1] 'solveStat==1이 예상됩니다.', m.solveStat;
abort$[abs(z.L-1.125) > 1e-6] 'z.L=1.125가 예상됩니다.', z.L;
abort$[abs(ball1.L-3) > 1e-6] '예상된 ball1.L=3, 있음:', ball1.L;
abort$[abs(ball2.L-19) > 1e-6] '예상된 ball2.L=19, 도착:', ball2.L;