CLP

介绍

CLP 是一款高性能开源线性规划求解器,实现了原始单纯形法、对偶单纯形法和内点法,支持读写 LP 和 MPS 标准格式模型文件、读取NL格式模型文件求解,也提供了 C 和 C++ 等高级语言编程接口。

CLP 主要开发者为 John J. Forrest,开发语言主要为 C++,许可证为 Eclipse Public License v2.0,目前主要由 John J. Forrest和Julian Hall 等人维护。

参数

终止条件

参数名 参数含义
dualT(olerance) 对偶误差容限
primalT(olerance) 原始误差容限
sec(onds) 求解时间限制,单位为秒
maxIt(erations) 迭代次数限制

日志打印

参数名 参数含义
log(Level) 日志显示级别

求解算法

参数名 参数含义
presolve 是否预处理模型
cross(over) 是否对内点解进行Crossover以获取基解
primalS(implex) 使用原始单纯形法求解
dualS(implex) 使用对偶单纯形法求解
either(Simplex) 使用原始/对偶单纯形法求解
barr(ier) 使用内点法求解

结果输入与输出

参数名 参数含义
basisI(n) 读取基解文件
basisO(ut) 输出基解文件
solu(tion) 输出解文件

详细说明见:https://github.com/coin-or/Clp (opens new window)

使用示例

求解LP/MPS文件

假定测试示例为 test.mps,采用 CLP 命令行求解,时间限制为 60 秒,算法为原始/对偶单纯形法,输出基解文件为 test.bas,输出结果文件为 test.sol,则调用命令为:

clp test.mps sec=60 basisO test.bas solu test.sol either
1

求解NL文件

假定测试示例为 test.nl,时间限制为60秒,开启日志,则调用命令为:

clp test.nl -AMPL "log=1 sec=60"
1
最近更新: 05/06/2022