R中的线性优化和限制

时间:2017-03-28 09:11:54

标签: r memory optimization size

我们正在尝试解决下一个线性优化问题: 我们有:

Pij, i=1:3, j=1:30000, Pij are positive
Bi, i=1:3, integer positive

搜索结果是3 x 30000二进制值Xij的矩阵,具有以下条件:

约束:

For each j =1:30000, Sum (by index of i=1:3)Xij=1 
For each i =1:3, Sum by index of (j=1:30000) Xij≤Bi

目标:优化:

Maximize (Sum (by index of i=1:3) Sum (by index of j=1:30000) Pij *Xij)

决定将此任务简化为线性编程任务。因此,我们为3 x 3*j约束构建一个具有Bi维度的矩阵,为j x 3*j约束构建一个矩阵Xij维度。然后,两个矩阵应垂直组合作为任务约束 - 接收矩阵为3+j x 3*j维。对象向量由Pij构造,但作为向量3*j x 1构建。 rhs约束是Bi (1 x 3)1 (1 x j)向量之间的组合 - 向量是1 x 3+j

它适用于lp或Rglpk_solve_LP。 我用几种组合检查了这个。它适用于j=5000,但它对j=10000无效。我们应该将它用于30000个案例。矩阵变得太大了。

是否有可能以另一种方式解决这个问题?

我的电脑有8GB内存。矩阵的大小为15.6GB。返回的错误是:

  

错误:无法分配大小为15.6 Gb的矢量

线性编程程序有哪些限制?

它们只来自计算机的RAM和矩阵的大小吗?

0 个答案:

没有答案