线性规划求解器中上限和下限的参数
Posted
技术标签:
【中文标题】线性规划求解器中上限和下限的参数【英文标题】:Parameter for upper and lower bound in linear programming solvers 【发布时间】:2020-06-10 02:24:06 【问题描述】:许多科学计算平台都提供线性规划求解器。例如,在 MATLAB、Scipy 和 DolphinDB 中有一个 linprog
函数。而linprog
在这三个平台中都提供了一个不等式约束的参数,即A
,以及两个有界变量的参数,即lb
和ub
。
如果线性规划问题具有有界变量,我可以将它们置于不等式约束 A
中,方法是添加仅包含一个 1
或 -1
的行,其余元素为 0
,或者我可以简单地将它们放在lb
和/或ub
。
这两种方式有什么区别吗?或者有什么理由让我更喜欢A
而不是lb
/ub
,反之亦然?
【问题讨论】:
【参考方案1】:边界比显式约束更有效。基本上,在单纯形求解器中,边界不会增加基矩阵的大小。这个基矩阵需要求解和反转(分解)。
高级求解器有一个预求解器,可以将单例约束转换为边界。在这种情况下,没有真正的性能损失。对于那些求解器来说,如何指定绑定约束主要是一个品味问题:作为绑定约束还是作为单例约束。
【讨论】:
以上是关于线性规划求解器中上限和下限的参数的主要内容,如果未能解决你的问题,请参考以下文章
是否有任何可以同时具有下限和上限的二次规划函数 - Python