ctrlc.gms : Interactive test for interrupt behaviour

Description


Small Model of Type : GAMS


Category : GAMS Test library


Main file : ctrlc.gms

$title 'Interactive test for interrupt behaviour' (CTRLC,SEQ=557)

$if not set solver $set solver allsolvers

$call rm -rf report%solver%.txt

$onEcho > reporthead.gms
file freport /report%solver%.txt/; freport.ap=1; put freport;
$onPut >> freport
SOLVELINK
0 GAMS operates as it has for years (default)
1 the solver is called from a  shell and GAMS remains open.
2 the solver is called with a spawn (if possible as determined by GAMS) or a shell (if the spawn is not possible) and GAMS remains open.
3 GAMS starts the solution and continues in a Grid computing environment
4 GAMS starts the solution and wait (same submission process as 3) in a Grid computing environment
5 the problem is passed to the solver in core without use of temporary files.

MODELSTAT
 1 Optimal solution achieved
 2 Local optimal solution achieved
 3 Unbounded model found
 4 Infeasible model found
 5 Locally infeasible model found (in NLPs)
 6 Solver terminated early and model was infeasible
 7 Solver terminated early and model was feasible but not yet optimal
 8 Integer solution model found
 9 Solver terminated early with a non integer solution found (only in MIPs)
10 No feasible integer solution could be found
11 Licensing problem
12 Error achieved � No cause known
13 Error achieved � No solution attained
14 No solution returned
15 Feasible in a CNS models
16 Locally feasible in a CNS models
17 Singular in a CNS models
18 Unbounded � no solution
19 Infeasible � no solution

SOLVESTAT
1 Normal termination
2 Solver ran out of iterations (fix with iterlim)
3 Solver exceeded time limit (fix with reslim)
4 Solver quit with a problem (see LST file) found
5 Solver quit with excessive nonlinear term evaluation errors (see LST file and fix with bounds or domlim)
6 Solver terminated for unknown reason (see LST file)
7 Solver terminated with preprocessor error (see LST file)
8 User interrupt
9,10,11,12,13 Solver terminated with some type of failure (see LST file)
$offPut
put freport /'FILE', @16'MODELTYPE', @29'SOLVER', @42'SL', @45'MS', @48'SS'/;
$offEcho

* %1 = solver, %2 = filename
$onEchoV > miptest.inc
$call gams %2.gms sl=0 lo=%GAMS.lo% mip=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=1 lo=%GAMS.lo% mip=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=2 lo=%GAMS.lo% mip=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=5 lo=%GAMS.lo% mip=%1 optcr=0 --solver=%solver%
$offEcho

* %3 = n, parameter to vary model size
$onEchoV > nlptest.inc
$call gams %2.gms --n=%3 sl=0 lo=%GAMS.lo% nlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms --n=%3 sl=1 lo=%GAMS.lo% nlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms --n=%3 sl=2 lo=%GAMS.lo% nlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms --n=%3 sl=5 lo=%GAMS.lo% nlp=%1 optcr=0 --solver=%solver%
$offEcho

$onEchoV > nlptest2.inc
$call gams %2.gms sl=0 lo=%GAMS.lo% nlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=1 lo=%GAMS.lo% nlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=2 lo=%GAMS.lo% nlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=5 lo=%GAMS.lo% nlp=%1 optcr=0 --solver=%solver%
$offEcho

$onEchoV > minlptest.inc
$call gams %2.gms sl=0 lo=%GAMS.lo% minlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=1 lo=%GAMS.lo% minlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=2 lo=%GAMS.lo% minlp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=5 lo=%GAMS.lo% minlp=%1 optcr=0 --solver=%solver%
$offEcho

$onEchoV > mcptest.inc
$call gams %2.gms sl=0 lo=%GAMS.lo% mcp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=1 lo=%GAMS.lo% mcp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=2 lo=%GAMS.lo% mcp=%1 optcr=0 --solver=%solver%
$call gams %2.gms sl=5 lo=%GAMS.lo% mcp=%1 optcr=0 --solver=%solver%
$offEcho


*import required models
*MIP
$call testlib -q n3707
$onEchoV >> n3707.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'n3707', @16'MIP', @29"%gams.mip% ", @42"%gams.solvelink% ", @45 m.modelstat:2:0, @48 m.solvestat:2:0;
$offEcho

$call testlib -q mod011
$onEchoV >> mod011.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'mod011', @16'MIP', @29"%gams.mip% ", @42"%gams.solvelink% ", @45 m.modelstat:2:0, @48 m.solvestat:2:0;
$offEcho

*NLP
$call gamslib -q popdynm
$onEchoV >> popdynm.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'popdynm', @16'NLP', @29"%gams.nlp% ", @42"%gams.solvelink% ", @45 popdynm.modelstat:2:0, @48 popdynm.solvestat:2:0;
$offEcho

$call gamslib -q catmix
$onEchoV >> catmix.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'catmix', @16'NLP', @29"%gams.nlp% ", @42"%gams.solvelink% ", @45 catmix.modelstat:2:0, @48 catmix.solvestat:2:0;
$offEcho

*MINLP
$call testlib -q fuzzy
$onEchoV >> fuzzy.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'fuzzy', @16'MINLP', @29"%gams.minlp% ", @42"%gams.solvelink% ", @45 m.modelstat:2:0, @48 m.solvestat:2:0;
$offEcho

$call testlib -q nuclear49b
$onEchoV >> nuclear49b.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'nuclear49b', @16'MINLP', @29"%gams.minlp% ", @42"%gams.solvelink% ", @45 m.modelstat:2:0, @48 m.solvestat:2:0;
$offEcho

$call gamslib -q pump
$onEchoV >> pump.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'pump', @16'MINLP', @29"%gams.minlp% ", @42"%gams.solvelink% ", @45 pump.modelstat:2:0, @48 pump.solvestat:2:0;
$offEcho

$call testlib -q enpro56
$onEchoV >> enpro56.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'enpro56', @16'MINLP', @29"%gams.minlp% ", @42"%gams.solvelink% ", @45 m.modelstat:2:0, @48 m.solvestat:2:0;
$offEcho

*MCP
$call testlib -q popdynmMCP25
$onEchoV >> popdynmMCP25.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'popdynmMCP25', @16'MCP', @29"%gams.mcp% ", @42"%gams.solvelink% ", @45 m.modelstat:2:0, @48 m.solvestat:2:0;
$offEcho

$call testlib -q popdynmMCP250
$onEchoV >> popdynmMCP250.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'popdynmMCP250', @16'MCP', @29"%gams.mcp% ", @42"%gams.solvelink% ", @45 m.modelstat:2:0, @48 m.solvestat:2:0;
$offEcho

$call testlib -q popdynmMCP1000
$onEchoV >> popdynmMCP1000.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'popdynmMCP100', @16'MCP', @29"%gams.mcp% ", @42"%gams.solvelink% ", @45 m.modelstat:2:0, @48 m.solvestat:2:0;
$offEcho

*MPSGE
$call testlib -q gft
$onEchoV >> gft.gms
file freport /report%solver%.txt/; freport.ap=1; put freport 'gft', @16'MPSGE', @29"%gams.mcp% ", @42"%gams.solvelink% ", @45 gtap8.modelstat:2:0, @48 gtap8.solvestat:2:0;
$offEcho

$call gams reporthead.gms lo=%GAMS.lo% --solver=%solver%
$ifI %solver% == alphaecp       $goTo testalphaecp
$ifI %solver% == baron          $goTo testbaron
$ifI %solver% == cbc            $goTo testcbc
$ifI %solver% == conopt         $goTo testconopt
$ifI %solver% == cplex          $goTo testcplex
$ifI %solver% == dicopt         $goTo testdicopt
$ifI %solver% == gurobi         $goTo testgurobi
$ifI %solver% == ipopt          $goTo testipopt
$ifI %solver% == knitro         $goTo testknitro
$ifI %solver% == lindo          $goTo testlindo
$ifI %solver% == lindoglobal    $goTo testlindoglobal
$ifI %solver% == miles          $goTo testmiles
$ifI %solver% == minos          $goTo testminos
$ifI %solver% == mosek          $goTo testmosek
$ifI %solver% == nlpec          $goTo testnlpec
$ifI %solver% == path           $goTo testpath
$ifI %solver% == pathnlp        $goTo testpathnlp
$ifI %solver% == sbb            $goTo testsbb
$ifI %solver% == scip           $goTo testscip
$ifI %solver% == xpress         $goTo testxpress
$ifI NOT %solver% == allsolvers $abort 'solver does not exist'

$label testalphaecp
$batInclude      minlptest.inc   alphaecp        fuzzy
$if NOT %solver% == allsolvers   $exit

$label testbaron
$batInclude      miptest.inc     baron           n3707
$batInclude      nlptest.inc     baron           popdynm         10
$batInclude      minlptest.inc   baron           pump
$if NOT %solver% == allsolvers   $exit

$label testcbc
$batInclude      miptest.inc     cbc             mod011
$if NOT %solver% == allsolvers   $exit

$label testconopt
$batInclude      nlptest.inc     conopt          popdynm         1000
$if NOT %solver% == allsolvers   $exit

$label testcplex
$batInclude      miptest.inc     cplex           n3707
$if NOT %solver% == allsolvers   $exit

$label testdicopt
$batInclude      minlptest.inc   dicopt          nuclear49b
$if NOT %solver% == allsolvers   $exit

$label testgurobi
$batInclude      miptest.inc     gurobi          n3707
$if NOT %solver% == allsolvers   $exit

$label testipopt
$batInclude      nlptest.inc     ipopt           popdynm         1000
$if NOT %solver% == allsolvers   $exit

$label testknitro
$batInclude      nlptest.inc     knitro          popdynm         2000
$batInclude      minlptest.inc   knitro          enpro56
$if NOT %solver% == allsolvers   $exit

$label testlindo
$batInclude      miptest.inc     lindo           n3707
$batInclude      nlptest2.inc    lindo           catmix
$batInclude      minlptest.inc   lindo           pump
$if NOT %solver% == allsolvers   $exit

$label testlindoglobal
$batInclude      miptest.inc     lindoglobal     n3707
$batInclude      nlptest2.inc    lindoglobal     catmix
$batInclude      minlptest.inc   lindoglobal     pump
$if NOT %solver% == allsolvers   $exit

$label testmiles
$batInclude      mcptest.inc     miles           popdynmMCP25
$if NOT %solver% == allsolvers   $exit

$label testminos
$batInclude      nlptest.inc     minos           popdynm         250
$if NOT %solver% == allsolvers   $exit

$label testmosek
$batInclude      miptest.inc     mosek            n3707
$if NOT %solver% == allsolvers   $exit

$label testnlpec
$batInclude      mcptest.inc     nlpec           popdynmMCP250
$if NOT %solver% == allsolvers   $exit

$label testpath
$batInclude      mcptest.inc     path            popdynmMCP1000
$batInclude      mcptest.inc     path            gft
$if NOT %solver% == allsolvers   $exit

$label testpathnlp
$batInclude      nlptest.inc     pathnlp         popdynm         500
$if NOT %solver% == allsolvers   $exit

$label testsbb
$batInclude      minlptest.inc   sbb             enpro56
$if NOT %solver% == allsolvers   $exit

$label testscip
$batInclude      miptest.inc     scip            n3707
$batInclude      nlptest.inc     scip            popdynm         10
$batInclude      minlptest.inc   scip            pump
$if NOT %solver% == allsolvers   $exit

$label testxpress
$batInclude      miptest.inc     xpress          n3707
$if NOT %solver% == allsolvers   $exit