$title ModelInstance hot/warmstart switch (EMBMIHWS,SEQ=886) $onText This model tests the switch for a hotstart to a warmstart from one mi.solve to the next. Contributor: Michael Bussieck, January 2022 $offText $log --- Using Python library %sysEnv.GMSPYTHONLIB% $onEchoV > runm.gms scalar a /2/, b/2/, c/4/; Variable x,y,z; Equation e1,e2,e3,obj; e1.. sqr(x) + sqr(y) =l= c; e2.. x =g= a; e3.. y =l= b; obj.. z =e= x + y; model m /all/; solve m max z us qcp; embeddedCode Python: def solveMI(mi, symIn=[], symOut=[]): for sym in symIn: gams.db[sym].copy_symbol(mi.sync_db[sym]) mi.solve(output=sys.stdout) for sym in symOut: try: gams.db[sym].clear() # Explicitly clear the symbol to ensure setting "writtenTo" flag for sym mi.sync_db[sym].copy_symbol(gams.db[sym]) except: pass pauseEmbeddedCode abort$execerror 'Python error. Check the log'; $libInclude pyEmbMI mMI 'm us qcp max z' -all_model_types=cplex a.Zero b.Zero c.Zero continueEmbeddedCode: solveMI(mMI,['a','b','c'],['x','y']) pauseEmbeddedCode x y a = 3; b = 4; c = 9; continueEmbeddedCode: solveMI(mMI,['a','b','c'],['x','y']) pauseEmbeddedCode x y $offEcho $call.checkErrorLevel gams runm.gms lo=3 > runm.log $call.checkErrorLevel grep -q "Hotstart failed" runm.log