您好我想解决线性规划(LP)问题,该问题具有 25000个二进制变量和几乎 2555个等式约束和 50个不等式约束,所以我使用了 cplexbilp 函数,CPLEX API为MATLAB提供了这样的函数:
[x,fval,exitflag,output,] = cplexbilp(f, Aineq, bineq, Aeq, beq);
当我运行脚本时,会出现此错误:
当我查看错误详情时,我会看到以下消息:
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问题。
提前感谢任何评论或回答
答案 0 :(得分:1)
您似乎正在使用CPLEX的“学生版”。此版本仅限于解决“最多”300个变量和300个约束的问题。我在“商业版”中解决了许多包含超过100,000个二进制和整数变量的问题而没有任何错误。
答案 1 :(得分:1)
我曾经使用CPlex API和MATLAB。对于每次运行我的代码,CPlex被调用了近10 ^ 6次。在每次通话中,CPlex都在处理比你更大的系数矩阵。每当我使用MATLAB时,我都会遇到CPlex的内存泄漏。然后我切换到gurobi,这比cplex稍慢但更稳定。 (我的数学模型没有任何二元或整数变量。我的变量都是连续的和非负的。二元变量会以指数方式增加问题的复杂性。这个问题也可能是由二元变量引起的.25000个二进制变量确实太多了)