Cardinal Optimizer by Cardinal Operations is a solver for linear programming problems (LPs) and mixed-integer linear programming problems (MIPs).
Usage
A GAMS/COPT or GAMS/COPT-Link license is required to use the GAMS/COPT interface that is distributed with GAMS. If only a GAMS/COPT-Link license is available, also a separate COPT license needs to be installed on the system, see the "Cardinal Operations User Guide" for details.
The following statement can be used inside your GAMS program to specify using COPT
Option MIP = COPT; { or LP, RMIP }
The above statement should appear before the Solve statement. If COPT was specified as the default solver during GAMS installation, the above statement is not necessary.
COPT supports special ordered sets (SOS), but no semicontinuous or semiinteger variables.
Specification of COPT Options
The following GAMS parameters are currently supported by GAMS/COPT: reslim, iterlim, nodlim, optcr, optca, tryint, and threads.
Further options can be set via a solver options file, see Section The Solver Option File for further information. Following is an example options file copt.opt
:
TreeCutLevel 0 SimplexThreads 4
It will cause COPT to use cut generators only in the root node (for a MIP solve) and specifies to use 4 threads in the simplex algorithm.
Specification of Indicators
Indicators are a modeling tool to specify that certain equations in a model must only be satisfied if certain binary variables take a specified value. Indicators are not supported by the GAMS language, but can be passed to COPT via a GAMS/COPT solver options file, see Indicator Constraints for more details on its syntax.
MIP Starting Point
When solving a MIP, by default all values that are specified as variable levels in the GAMS model are passed as starting point to COPT. However, if GAMS option tryint is set to a nonzero value, then only values of binary and integer variables which fractionality is at most the value tryint are passed as starting point to COPT. COPT will then try to complete this partial solution to a feasible solution.
Solution Pool
When COPT solves a problem, it may find several solutions, whereof only the best one is available to the GAMS user via the variable level values in the GAMS model. If the option solnpool is specified, then all alternative solutions found by COPT are written into GDX files and an index file with the name given by the this option is written. If the option solnpoolmerge is specified, then all alternative solutions found by COPT are written into a single GDX file, which name is given by the this option.
The GAMS testlib model dumpsol shows an example use for this option.
Finding an Irreducible Inconsistent Subsystem (IIS) of Constraints
If COPT declares an LP or MIP as infeasible, it has the capability to identify a subset of the constraints that are infeasible and become feasible once any one of them is eliminated. Option iis can be used to enable finding an IIS.
As an example, consider a GAMS model containing
Positive Variables x, y;
Equation e1;
e1.. x + y =l= -1;
The corresponding COPT output when iis has been enabled will look like
Starting the simplex solver using 1 thread Method Iteration Objective Primal.NInf Dual.NInf Time Dual 0 0.0000000000e+00 1 0 0.00s Solving finished Status: Infeasible Objective: - Iterations: 0 Time: 0.00s Start the IIS computation for an LP Iteration Min RowBnd Max RowBnd Min ColBnd Max ColBnd Time 0 0 1 0 2 0.00s 1 0 1 0 2 0.00s 2 1 1 0 2 0.00s 3 1 1 1 2 0.00s 4 1 1 2 2 0.00s IIS summary: 1 rows, 2 bounds of columns IIS computation finished (0.000s) IIS is minimal Number of equations in IIS: 1 Upper: e1 <= -1 Number of variables in IIS: 2 Lower: x >= 0 Lower: y >= 0
That is, COPT finds the problem infeasible. Then the IIS computation is started and an IIS is found. The IIS is then printed to the log and listing file. It consists of the lower bounds of variables x
and y
and equation e1
. This suggests that the entire model can be made feasible by lowering the lower bound of x
or y
or by increasing the right-hand side of e1
.
List of COPT Options
In the following, we give a detailed list of available COPT options.
Limits and Tolerances
Option | Description | Default |
---|---|---|
BarIterLimit | Barrier iteration limit Range: {0, ..., ∞} | GAMS iterlim |
DualTol | The tolerance for dual solutions and reduced cost Range: [1e-09, 0.0001] | 1e-06 |
FeasTol | The feasibility tolerance Range: [1e-09, 0.0001] | 1e-06 |
IntTol | The integer feasibility tolerance Range: [1e-09, 0.1] | 1e-06 |
MatrixTol | The input matrix coefficient tolerance Range: [0, 1e-07] | 1e-10 |
NodeLimit | Limit of nodes for MIP Range: {-1, ..., ∞} | GAMS nodlim |
RelGap | The relative gap for MIP Range: [0, ∞] | GAMS optcr |
TimeLimit | Time limit of the optimization Range: [0, 1e+20] | GAMS reslim |
Presolving and Scaling
LP solving
MIP solving
Multithreading
Option | Description | Default |
---|---|---|
BarThreads | Number of threads to use in the barrier solver Range: {-1, ..., 128} | -1 |
CrossoverThreads | Number of threads to use in the crossover Range: {-1, ..., 128} | -1 |
MipTasks | Number of MIP tasks in parallel (-1: automatic) Range: {-1, ..., 255} | -1 |
SimplexThreads | Number of threads to use in the simplex solver Range: {-1, ..., 128} | -1 |
Threads | Number of threads to use Range: {-1, ..., 128} | GAMS threads |
GAMS/COPT link
Miscellaneous
Option | Description | Default |
---|---|---|
IISMethod | Specifies the IIS method -1: Automatic. 0: Find smaller IIS. 1: Find IIS quickly. | -1 |