【问题标题】:What is the accuracy of the CLP solver (Coin-Or)?CLP 求解器(Coin-Or)的精度是多少?
【发布时间】:2021-01-20 13:50:52
【问题描述】:
我正在尝试比较 LP 求解器,看看是否可以将它们用于我的问题。在 ding 所以我需要一个准确的求解器。我能找到的是公差,但我不确定这是否是一个合适的指标。
对于 GUROBI,完整性容差定义为 10^-6(作为默认值,请参阅 source)
对于 CPLEX,原始/双重可行性容差为 10^-6,完整性容差为 10^-5(作为默认值,请参阅source)
CON-OR 的 CLP 的(默认)容差是多少?这是衡量准确性的好方法吗?
【问题讨论】:
标签:
optimization
linear-programming
simplex
【解决方案1】:
CLP 是针对连续 LP 问题的,因此没有整数可行性容差。 MIP 求解器称为 CBC。在 CBC 提示符下键入 integerT??,您会看到类似以下内容:
D:\Python\Python37\Scripts>cbc
Welcome to the CBC MILP Solver
Version: 2.9.0
Build Date: Feb 12 2015
CoinSolver takes input from arguments ( - switches to stdin)
Enter ? for list of commands or help
Coin:integerT??
integerT(olerance) : For an optimal solution no integer variable may be this away from an integer value
Beware of setting this smaller than the primal tolerance.
<Range of values is 1e-020 to 0.5;
current 1e-006>
Coin:
这是旧版本,因此请检查您的 CBC.EXE。
请注意,有许多公差在起作用:可行性公差、最优性公差。此外,缩放和预求解可能会产生影响。我通常保留所有这些公差。恕我直言,修复模型通常比修改这些公差更好。
如果您需要极高的精度,可以使用有理 MIP 求解器。然而,它们往往非常缓慢。