matlab - 线性规划求解器中上限和下限的参数
问题描述
许多科学计算平台提供线性规划求解器。例如,linprog
在 MATLAB、Scipy 和 DolphinDB 中有一个函数。linprog
在所有这三个平台中,都为不等式约束提供了一个参数,即,A
以及有界变量的两个参数,即lb
和ub
。
如果线性规划问题具有有界变量,我可以将它们放在不等式约束中A
,通过添加仅包含一个1
或-1
其余元素为的行0
,或者我可以简单地将它们放在lb
和/或ub
中。
这两种方式有什么区别吗?A
或者有什么理由我应该赞成lb
/ ub
,反之亦然?
解决方案
边界比显式约束更有效。基本上,在单纯形求解器中,边界不会增加基矩阵的大小。这个基矩阵需要被求解和反转(分解)。
高级求解器有一个预求解器,可以将单例约束转换为边界。在这种情况下,没有真正的性能损失。对于那些求解器来说,如何指定绑定约束主要是一个品味问题:作为绑定约束还是作为单例约束。
推荐阅读
- node.js - ECONNRESET 在节点过程中随机中止错误
- android - 如何在 chromebook 上访问 localhost
- azure - Azure Cosmos DB 中单个查询中的计数和数据
- python - kivymd 中的动态屏幕
- google-cloud-platform - GKE 使用计量模板仅请求一个数据源,尽管文档说需要三个数据源
- c++ - 优化 Arduino 库中 C++ 类的存储空间
- java - 输入特定值时更改背景颜色(jNumberField)
- python - 了解如何将 lambda 用于 panda 的 groupby.apply
- javascript - 具有可变内容高度的可折叠面板
- woocommerce - 使用 WooCommerce API 保存 ACF 字段