线性规划求解器中上限和下限的参数

Parameter for upper and lower bound in linear programming solvers

许多科学计算平台都提供线性规划求解器。比如MATLAB中有linprog函数,Scipy,还有DolphinDB。而linprog在所有这三个平台中都提供了一个不等式约束的参数,即A,以及两个有界变量的参数,即lbub

如果线性规划问题具有有界变量,我可以将它们置于不等式约束 A 中,方法是添加仅包含一个 1-1 的行,其余的元素是 0,或者我可以简单地将它们放在 lb and/or ub.

这两种方式有什么区别吗?或者有什么理由我应该支持 A 而不是 lb/ub,反之亦然?

边界比显式约束更有效。基本上,在 Simplex 求解器中,边界不会增加基础矩阵的大小。这个基矩阵需要求解和求逆(因式分解)。

高级求解器有一个预求解器,可以将单一约束转换为边界。在那种情况下,没有真正的性能损失。对于那些求解器来说,如何指定边界约束主要是一个品味问题:作为边界还是作为单例约束。