2

嗨,我想解决具有25000 个二进制变量和几乎2555 个等式约束50 个不等式约束的线性规划 (LP) 问题,所以我使用了 CPLEX API 为 MATLAB 提供的cplexbilp函数,如下所示:

[x,fval,exitflag,output,] = cplexbilp(f, Aineq, bineq, Aeq, beq);
  • 矩阵大小:f=25000x1,Aineq=50x25000,bineq=50x1,Aeq=2555x25000,beq=2255x1

当我运行脚本时,出现此错误:

在此处输入图像描述

当我查看错误详细信息时,我看到以下消息:

0x6df51ba9 C:/Program Files/IBM/ILOG/CPLEX_Studio_Preview125/cplex/matlab/x86_win32/cplexlink125.mexw32+00007081 (???+000000)

我认为cplexlink125.mexw32是 MATLAB 的 cplex v12.5 可调用库。
所以,我的问题是如何解决这个错误?我想知道问题大小(25000 个二进制变量)主要错误根源是什么?我在一些资源中读到 Cplex 能够解决大规模 LP 问题。

  • MATLAB版本:R2011a
  • CPLEX 版本:12.5

提前感谢您的任何评论或回答

4

2 回答 2

1

您似乎正在使用 CPLEX 的“学生版”。此版本仅限于解决“最多”300 个变量和 300 个约束的问题。我已经在“商业版”中解决了许多包含超过 100,000 个二进制和整数变量的问题,没有任何错误。

于 2014-02-26T05:18:23.690 回答
1

我曾经在 MATLAB 中使用 CPlex API。对于我的代码的每次运行,CPlex 被调用了近 10^6 次。在每次调用中,CPlex 处理的系数矩阵都比你的要大。每当我在 MATLAB 中使用 CPlex 时,都会遇到内存泄漏。然后我切换到 gurobi,它比 cplex 稍慢但更稳定。(我的数学模型没有任何二进制或整数变量。我的变量都是连续且非负的。二进制变量以指数方式增加了问题的复杂性。这个问题也可能是由二进制变量引起的。25000个二进制变量真的太多了) .

于 2015-07-08T12:17:00.660 回答