COPT

介绍

COPT是国内第一个具备自主知识产权的国产商用求解器,是一款高性能多功能求解器,由杉数科技有限公司独立自主研发。 目前,COPT可高效地支持LP、MILP、SOCP、QP、QCP、SDP等模型求解。 2022年6月,COPT5.0版本发布, 成为中国唯一一个同时具备大规模线性规划(单纯形法和内点法)、混合整数规划、二阶锥规划、凸二次规划、凸二次约束规划和半定规划问题求解能力的综合性数学规划求解器,其求解性能综合排名位于世界前列。

目前,COPT支持windows,Mac,Linux等主流操作系统,并提供C#、C、C++、JAVA、Python、AMPL、GAMS、Pyomo、PuLP、CVXPY等多种接口,支持读写LP和MPS标准格式模型文件,读取NL格式模型文件求解,能满足多种用户的使用需求。

参数

参数名 类型 说明
TimeLimit 浮点参数 模型求解的时间限制
MatrixTol 浮点参数 输入矩阵的系数容差
FeasTol 浮点参数 变量、约束取值的可行性容差
DualTol 浮点参数 对偶解的可行性容差
IntTol 浮点参数 变量的整数解容差
RelGap 浮点参数 整数规划的最优相对容差
Logging 整数参数 是否显示求解日志
LogToConsole 整数参数 是否显示求解日志到控制台
Presolve 整数参数 是否在求解一个模型前,进行预求解
Scaling 整数参数 是否在求解一个模型前,调整系数矩阵的数值(Scaling)
Dualize 整数参数 是否构建并求解对偶模型
LpMethod 整数参数 求解线性规划问题的算法
DualPrice 整数参数 选定对偶单纯形法的Pricing 算法
DualPerturb 整数参数 是否允许对偶单纯形算法使用目标函数摄动
CutLevel 整数参数 生成割平面的强度
RootCutLevel 整数参数 根节点生成割平面的强度
TreeCutLevel 整数参数 搜索树生成割平面的强度
RootCutRounds 整数参数 根节点生成割平面的次数
NodeCutRounds 整数参数 搜索树节点生成割平面的次数
HeurLevel 整数参数 启发式算法的强度
RoundingHeurLevel 整数参数 取整启发式算法的强度
DivingHeurLevel 整数参数 Diving 启发式算法的强度
SubMipHeurLevel 整数参数 基于子MIP的启发式算法的强度
StrongBranching 整数参数 strong branching 的强度
ConflictAnalysis 整数参数 是否使用冲突分析
NodeLimit 整数参数 整数规划求解的节点数限制
MipTasks 整数参数 并行求解MIP时使用的任务数
BarHomogeneous 整数参数 是否使用齐次自对偶方法
BarOrder 整数参数 内点法使用的 ordering 算法
BarIterLimit 整数参数 内点法求解时的迭代数限制
Threads 整数参数 问题求解时使用的线程数
BarThreads 整数参数 内点法使用的线程数
SimplexThreads 整数参数 对偶单纯形法使用的线程数
CrossoverThreads 整数参数 Crossover 使用的线程数
Crossover 整数参数 是否运行 Crossover
SDPMethod 整数参数 求解半定规划问题的算法
IISMethod 整数参数 计算不可行模型的 IIS 的算法
FeasRelaxMode 整数参数 计算不可行模型的可行松弛的方式
LogFile N/A 设置求解器日志文件

参数取值范围可在终端输入copt_cmd进入COPT命令行后,输入 ”set + 参数名“ 即可获取。

使用示例

假定测试示例为diet.mps,采用copt命令行求解,时间限制为10秒,算法为内点法,输出基解文件为test.bas,输出结果文件为diet.sol,则调用命令为:

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

完整的 COPT 用户手册

最近更新: 07/18/2022