embmihws.gms : ModelInstance 핫/웜스타트 스위치

설명

이 모델은 핫스타트에서 웜스타트로의 전환을 하나의 mi.solve에서 다음 mi.solve로 테스트합니다.

기고자: Michael Bussieck, 2022년 1월

소형 모델 유형 :크레이지 슬롯


카테고리 : 크레이지 슬롯 테스트 라이브러리


메인 파일 : embmihws.gms

$title ModelInstance 핫/웜 스타트 스위치(EMBMIHWS,SEQ=886)

$onText
이 모델은 하나의 mi.solve에서 다음 mi.solve까지 핫스타트에서 웜스타트로의 전환을 테스트합니다.

기고자: Michael Bussieck, 2022년 1월
$offText

$log --- Python 라이브러리 %sysEnv.GMSPYTHONLIB% 사용

$onEchoV > runm.gms
스칼라 a /2/, b/2/, c/4/;
변수 x,y,z;
방정식 e1,e2,e3,obj;
e1..sqr(x) + sqr(y) =l= c;
e2.. x =g= a;
e3..y =l= b;
obj.. z =e= x + y;
모델 m /all/;
m max z us qcp를 풀어보세요;

임베디드 코드 Python:
defsolvMI(mi, SymIn=[], SymOut=[]):
  SymIn의 Sym에 대해:
    크레이지 슬롯db[sym].copy_symbol(mi.sync_db[sym])
  mi.solve(출력=sys.stdout)
  SymOut의 Sym에 대해:
    시도해 보세요:
      크레이지 슬롯db[sym].clear() # Sym에 대해 "writerTo" 플래그가 설정되었는지 확인하기 위해 기호를 명시적으로 지웁니다.
      mi.sync_db[sym].copy_symbol(크레이지 슬롯db[sym])
    제외:
      통과
일시중지임베디드코드
abort$execerror '파이썬 오류입니다. 로그를 확인하세요';

$libInclude pyEmbMI mMI 'm us qcp max z' -all_model_types=cplex a.Zero b.Zero c.Zero

계속임베디드코드:
solvMI(mMI,['a','b','c'],['x','y'])
일시 중지EmbeddedCode x y

a = 3; b = 4; c = 9;
계속임베디드코드:
solvMI(mMI,['a','b','c'],['x','y'])
일시 중지EmbeddedCode x y
$offEcho
$call.checkErrorLevel 크레이지 슬롯 runm.gms lo=3 > runm.log
$call.checkErrorLevel grep -q "Hotstart failed" runm.log