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
2
3
4
5
6