COPT

Introduction

COPT is the first domestic commercial solver with independent intellectual property rights in China. It is a high-performance multifunctional solver independently developed by Shanshu Technology Co., Ltd. At present, COPT can efficiently support the LP, MILP, SOCP, QP, QCP, SDP and other models. In June 2022, COPT 5.0 was released, becoming the only one in China that has both large-scale linear programming (simplex method and interior point method), mixed integer programming, second-order cone programming, convex quadratic programming and convex quadratically constrained programming and semidefinite programming. The comprehensive performance of COPT ranks among the top in the world public test ranking website ASU (opens new window).

At present, COPT supports windows, MAC, Linux and other mainstream operating systems, and provides c#, C, C++, Java, python, ampl, gams, pyomo, pulp ,cvxpy and other interfaces. It supports reading and writing LP and MPS standard format model files and reading NL format model files for solution, which can meet the needs of different types of users.

Parameters

Parameter Name Type Description
TimeLimit DblParam Time limit of the optimization
MatrixTol DblParam The input matrix coefficient tolerance
FeasTol DblParam The feasibility tolerance
DualTol DblParam The tolerance for dual solutions and reduced cost
IntTol DblParam The integer feasibility tolerance
RelGap DblParam The relative gap for MIP
Logging IntParam Whether to print solving logs
LogToConsole IntParam Whether to print logs to console
Presolve IntParam Whether to perform persolving before solving a problem
Scaling IntParam Whether to perform scaling before solving a problem
Dualize IntParam Whether to dualize a problem before solving it
LpMethod IntParam Specifies the LP method
DualPrice IntParam Specifies the dual simplex pricing algorithm
DualPerturb IntParam Whether to allow the objective function perturbation
CutLevel IntParam Level of cutting planes generation
RootCutLevel IntParam Level of root cutting planes generation
TreeCutLevel IntParam Level of tree cutting planes generation
RootCutRounds IntParam Maximum cut rounds in the root (-1: unlimited)
NodeCutRounds IntParam Maximum cut rounds in a local node
HeurLevel IntParam Level of heuristics
RoundingHeurLeve lIntParam Level of rounding heuristics
DivingHeurLevel IntParam Level of diving heuristics
SubMipHeurLevel IntParam Level of sub-MIP heuristics
StrongBranching IntParam Level of strong branching
ConflictAnalysis IntParam Whether to perform conflict analysis
NodeLimit IntParam Limit of nodes for MIP
MipTasks IntParam Number of MIP tasks in parallel (-1: automatic)
BarHomogeneous IntParam Whether to use homogeneous self-dual form in barrier
BarOrder IntParam Ordering method for barrier
BarIterLimit IntParam Barrier iteration limit
Threads IntParam Number of threads to use
BarThreads IntParam Number of threads to use in the barrier solver
SimplexThreads IntParam Number of threads to use in the simplex solver
CrossoverThreads IntParam Number of threads to use in the crossover
Crossover IntParam Whether to run crossover after barrier
SDPMethod IntParam Specifies the SDP method
IISMethod IntParam Specifies the IIS method
FeasRelaxMode IntParam Specifies the feasibility relaxation mode
LogFile N/A Specify a log file

We can get parameter value range by enter the COPT command line(copt_cmd) and enter "set + parameter name" to obtain.

Examples of Usage

Suppose the test example is diet.mps, solved by COPT command line, the time limit is 10 seconds, the algorithm is interior point method, the output basic solution file is test.bas, and the output result file is diet.sol:

copt_cmd
read diet.mps 
set TimeLimit 10 
set LpMethod 2 
Opt 
write diet.sol 
1
2
3
4
5
6

Full COPT user guide

Last Updated: 07/19/2022