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% == bdmlp          $goto testbdmlp
$ifI %solver% == bonmin         $goto testbonmin
$ifI %solver% == cbc            $goto testcbc
$ifI %solver% == conopt         $goto testconopt
$ifI %solver% == couenne        $goto testcouenne
$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% == lgo            $goto testlgo
$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% == msnlp          $goto testmsnlp
$ifI %solver% == nlpec          $goto testnlpec
$ifI %solver% == oqnlp          $goto testoqnlp
$ifI %solver% == osicplex       $goto testosicplex
$ifI %solver% == osigurobi      $goto testosigurobi
$ifI %solver% == osimosek       $goto testosimosek
$ifI %solver% == osixpress      $goto testosixpress
$ifI %solver% == path           $goto testpath
$ifI %solver% == pathnlp        $goto testpathnlp
$ifI %solver% == sbb            $goto testsbb
$ifI %solver% == scip           $goto testscip
$ifI %solver% == xa             $goto testxa
$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 testbdmlp
$batinclude      miptest.inc     bdmlp           n3707
$if NOT %solver% == allsolvers   $exit

$label testbonmin
$batinclude      miptest.inc     bonmin          mod011
$batinclude      minlptest.inc   bonmin          fuzzy
$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 testcouenne
$batinclude      nlptest.inc     couenne         popdynm         5
$batinclude      minlptest.inc   couenne         pump
$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 testlgo
$batinclude      nlptest.inc     lgo             popdynm         25
$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 testmsnlp
$batinclude      nlptest2.inc    msnlp           catmix
$if NOT %solver% == allsolvers   $exit

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

$label testoqnlp
$batinclude      nlptest2.inc    oqnlp           catmix
$batinclude      minlptest.inc   oqnlp           fuzzy
$if NOT %solver% == allsolvers   $exit

$label testosicplex
$batinclude      miptest.inc     osicplex        n3707
$if NOT %solver% == allsolvers   $exit

$label testosigurobi
$batinclude      miptest.inc     osigurobi       n3707
$if NOT %solver% == allsolvers   $exit

$label testosimosek
$batinclude      miptest.inc     osimosek        n3707
$if NOT %solver% == allsolvers   $exit

$label testosixpress
$batinclude      miptest.inc     osixpress       n3707
$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 testxa
$batinclude      miptest.inc     xa              n3707
$if NOT %solver% == allsolvers   $exit

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