OSICPLEX, OSIGUROBI, OSIMOSEK, OSIXPRESS

The "bare bone" solver links GAMS/OSICPLEX, GAMS/OSIGUROBI, GAMS/OSIMOSEK, and GAMS/OSIXPRESS allow users to solve their GAMS models with a standalone license of CPLEX, GUROBI, MOSEK, or XPRESS. The links use the COIN-OR Open Solver Interface (OSI) to communicate with these solvers. The OSICPLEX link has been written primarily by Tobias Achterberg, the OSIGUROBI link has been written primarily by Stefan Vigerske, the OSIMOSEK link has been written primarily by Bo Jensen, and the OSIXPRESS link has been written primarily by John Doe. Matthew Saltzman is the COIN-OR project leader for OSI.

The OSI links support linear equations and continuous, binary, and integer variables. Semicontinuous and Semiinteger variables, special ordered sets, branching priorities, and indicator constraints are not supported by OSI.

# Usage

The following statement can be used inside your GAMS program to specify using OSIGUROBI

Option LP = OSIGUROBI;     { or MIP or RMIP }


Similar statements apply to OSICPLEX, OSIMOSEK, and OSIXPRESS.

The above statement should appear before the Solve statement.

The links support the general GAMS options reslim (time limit), iterlim (iteration limit), nodlim (node limit), optca (absolute gap tolerance), optcr (relative gap tolerance), cheat (cutoff decrement, only Xpress), and threads. An option file in the format required by the solver can be provided via the GAMS optfile option. See Section Option files for details.

If a MIP is solved via one of the OSI links, only primal solution values are reported by default. To receive also the dual values for the LP that is obtained from the MIP by fixing all discrete variables, the GAMS option integer1 must be set to a nonzero value. Note that this may lead to solving another LP after the MIP solve has finished.

Setting the GAMS option integer2 to a nonzero value makes variable and equation names available to the solver. This option may be useful for debugging purposes.

Setting the GAMS option integer3 to a nonzero value leads to writing the model instance to a file in LP or MPS format before starting the solution process (integer3=1 writes an MPS file, integer3=2 writes an LP files, integer3=4 writes a native MPS file; sum these values to write several files). The name of the MPS file is chosen to be the name of the GAMS model file with the extension .gms replaced by .mps. This option may be useful for debugging purposes.

For OSICPLEX, OSIGUROBI, and OSIXPRESS, setting the GAMS option integer4 to a nonzero value leads to passing the variable level values (.l suffix) to the MIP solver as initial solution. This is analog to mipstart option of the full CPLEX and GUROBI links and the loadmipsol option of the full XPRESS link.

## Option files

### OSICPLEX Options

In an OSICPLEX option file, each line lists one option setting, where the option name and value are separated by space.

Example:

CPX_PARAM_MIPEMPHASIS            2
CPX_PARAM_HEURFREQ               42
CPX_PARAM_MIPDISPLAY             4


### OSIGUROBI Options

In an OSIGUROBI option file, each line lists one option setting, where the option name and value are separated by space.

Example:

Cuts 2
Heuristics 0.1


### OSIMOSEK Options

An OSIMOSEK option file begins with the line BEGIN MOSEK and terminates with END MOSEK. Comments are introduced with an '%', empty lines are ignored. Each other line starts with a MOSEK parameter value, followed by space, and a value for that parameter.

Example:

BEGIN MOSEK
% disable probing and solve the root node by the interior point solver
MSK_IPAR_MIO_PRESOLVE_PROBING MSK_OFF
MSK_IPAR_MIO_ROOT_OPTIMIZER   MSK_OPTIMIZER_INTPNT
END MOSEK


### OSIXPRESS Options

In an OSIXPRESS option file, each line lists one option setting, where the option name and value are separated by an equal sign.

Example:

MIPLOG = 3
HEURFREQ = 2