Matlab中的大型线性程序

时间:2015-04-22 11:27:36

标签: matlab linear-programming ampl

我有一个线性程序,其中包含N ^ 4个变量和N ^ 4个约束。如果我想在AMPL中解决这个问题,我会逐个定义约束,而不必费心去考虑精确的系数矩阵。没有记忆问题。然而,当在Matlab中使用标准LP求解器时,我需要明确定义矩阵。

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

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

2 个答案:

答案 0 :(得分:2)

除了m.s.提到的Type="C"您也可以使用AMPL API进行MATLAB。如果您已经拥有AMPL模型并希望从MATLAB中使用它,那么它尤其有用。

答案 1 :(得分:1)

将我的评论转换为答案:

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