如何在不等式中使用 feastol 参数?

How is the feastol parameter used in inequalities?

我正在求解 MIP,求解后 SCIP 会打印以下内容:

violation: right hand side is violated by 4.00681341261588e-06
best solution is not feasible in original problem

optimal solution found

确实在输出解决方案中违反了一些约束。我玩了以下公差,因为我在某处读到这控制了违规行为:

numerics/feastol = 1e-9
numerics/lpfeastol = 1e-9
numerics/sumepsilon = 1e-9

然而,无论上述参数是什么,似乎总是违反约束约 1e-6。

我想详细了解此参数如何用于 A*x <= B 类型的约束。这是用于精度还是准确性?也就是说,

A* |x-tol| - B <= 0

A*x - B <= tol

还是别的?

谢谢!

对于线性约束,约束 (A*x) 的 activity 与右侧 (B) 之间的相对差异计算为

reldiff

更改 numerics/feastol 需要此差异更接近于零才能接受解决方案。

但是,在您的情况下,问题是找到了一个解决方案,该解决方案在转换后的问题(通过预求解和其他各种修复进行了更改)中可行,但在原始问题中不可行。这可能是 SCIP 中的一个错误(如果您能够共享您的问题实例的文件,我可以调查一下)或者可能是由于小的数字错误的聚合。 您使用的是什么 SCIP 版本? (切换到更新的版本也可能会解决您的问题)

如果你的问题不是很有挑战性,你可以尝试通过设置

set presolving emphasis off

在 SCIP 交互中 shell。

SCIPing 快乐, 里昂