Getting started
Assuming you have the
SHOT
executable (SHOT.exe
on Windows) installed on your system, you can call SHOT with the following syntax:./SHOT problemfile.[nl,osil,xml,gms]
If you need instructions the flag
--help
shows SHOT's syntax. Settings for SHOT can be specified either through an options file (either as a text file or as an OSoL-file in XML syntax).
To generate an example options file pass the flag
--opt
which will create the file options.opt in the current directory. To use an option file pass the parameter --opt options.opt
. To create an empty OSoL-file add the flag
--osol
, which creates the file options.xml. To use this file pass the parameter --osol options.xml
.It is also possible to pass options through the command line using the following syntax
./SHOT problemfile Termination.TimeLimit=100.0 Termination.ObjectiveGap.Absolute=0.1
Note that the options are case sensitive and that there are no spacing between option names, =, and value.
There are also a number of short hand options available.
Flag | Description |
--convex | Assumes that the problem is convex. |
--debug or --debug=<directory> | Activates the debug mode (see below). Note that if no directory is specified, a named option from the list above cannot be used directly after --debug as it will be regarded as the debug directory name. If no directory is specified a directory will be created in the system temp folder. |
--mip=<cbc|cplex|gurobi> | Sets the MIP solver to either Cbc, CPLEX or Gurobi. |
--nlp=<ipopt|gams> | Sets the NLP solver to use. If GAMS is specified, the default NLP solver in GAMS will be used; it is possible to change what GAMS NLP solver to use with the setting Subsolver.GAMS.NLP.Solver. |
--tree=<single|multi> | Activates the single- or multi-tree strategy. |
--threads=<int> | Sets the maximum number of threads to use in the MIP solver. |
--absgap=<float | Sets the absolute objective gap tolerance, for example, e.g, 1e-3 . |
--relgap=<float> | Sets the relative objective gap tolerance. |
--timelimit=<float> | Sets the time-limit in seconds. |
After a successful termination, SHOT will create an result file <problemname>.osrl in the current directory. This file is in the Optimization Services OSrL syntax, which is an XML-based format. It is also possible to specify where the result file should be written by adding the parameter
--osrl path/to/resultfile.osrl
as an argument when calling SHOT. It is also possible to create a GAMS trace file in a similar way by adding the
--trc <filename.trc>
flag. If no filename is specified, a filename consisting of the problem file and the suffix .trc
is created in the current directory.To create a file in AMPL sol-format add the parameter
--sol <filename.sol>
.The level of output that SHOT writes to the console can be controlled with the setting
Output.Console.LogLevel
, where values between 0 and 6 are allowed. Assuming that the default value 2 is used, first some basic information about the solver, including the current version is provided:╶ Supporting Hyperplane Optimization Toolkit (SHOT) ──────────────────────────────────────────────────────────────────╴
Andreas Lundell and Jan Kronqvist, Åbo Akademi University, Finland.
See documentation for full list of contributors and utilized software libraries.
Version: 1.0.alpha 1. Git hash: 6e43619-dirty. Released Apr 11 2020.
For more information visit https://shotsolver.dev
Then information about the modeling system or file format used is given as well as information about possible bound tightening performed on the variable bounds.
╶ Modeling system ─────── ─────────────────────────────────────────────────────────────────────────────────────────────╴
Modeling system: GAMS
Problem read from file: /home/andreas/Research/minlplib/21122018/minlplib/gms/tls4.gms
Performing bound tightening on original problem.
- Bounds for 18 variables tightened in 0.06 s.
Performing bound tightening on reformulated problem.
- Bounds for 34 variables tightened in 0.08 s.
Then information about the provided problem instance is shown. SHOT automatically reformulates the problem into a form that is more suitable for the underlying algorithm, and statistics about the reformulated problem is given as well.
╶ Problem instance ───────────────────────────────────────────────────────────────────────────────────────────────────╴
Original Reformulated
Problem classification: MINLP, convex MINLP, convex
Objective function direction: minimize minimize
Objective function type: linear linear
Number of constraints: 64 80
- linear: 60 64
- convex nonlinear: 4 16
Number of variables: 105 121
- real: 16 32
- binary: 85 85
- integer: 4 4
- nonlinear: 20 20
Number of transformations performed: 16
- signomial terms partitioning: 16
After this, the (nondefault) settings used are shown; here the MIP solver utilized (CPLEX) considered all variable bounds over +/- 1e20 to be infinite, so this setting will be used by SHOT as well.
Below the used settings, the names and versions of the utilized subsolvers are shown.
╶ Options ────────────────────────────────────────────────────────────────────────────────────────────────────────────╴
No options file specified.
Nondefault options used:
- Model.Variables.Continuous.MaximumUpperBound = 1e+20
- Model.Variables.Continuous.MinimumLowerBound = -1e+20