【问题标题】:Large linear programs in MatlabMatlab 中的大型线性程序
【发布时间】:2015-04-22 11:27:35
【问题描述】:

我有一个具有 N^4 阶变量和 N^4 阶约束的线性程序。如果我想在 AMPL 中解决这个问题,我会一一定义约束,而不必担心确切的系数矩阵。不会出现内存问题。然而,在 Matlab 中使用标准 LP 求解器时,我需要明确定义矩阵。

当我有四个下标的变量时,这将导致一个维度顺序为 N^4 x N^4 的大规模稀疏矩阵。对于非平凡的问题大小,这个矩阵甚至不适合内存。

除了各种列生成/切割平面技术之外,有没有办法使用 Matlab 解决这个问题?由于 AMPL 设法解决了它,我想他们要么自动进行某种分解,要么以某种方式解决了 LP,而没有明确使用这个稀疏的怪物矩阵。

【问题讨论】:

  • 你看过 MATLAB 的 sparse 矩阵吗?
  • 哦,太棒了。谢谢!
  • @m.s.考虑将此作为答案,我会赞成它

标签: matlab linear-programming ampl


【解决方案1】:

除了m.s.提到的sparse您也可以将AMPL API 用于 MATLAB。如果您已经有一个 AMPL 模型并希望在 MATLAB 中使用它,它会特别有用。

【讨论】:

    【解决方案2】:

    将我的评论转化为答案:

    MATLAB 使用 sparse 命令支持稀疏矩阵,该命令允许您在不超过内存限制的情况下构建约束矩阵。

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2014-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多