2

Hi I want to solve linear programming (LP) problem which has 25000 binary variables and almost 2555 equality constraints and 50 inequality constraints , so I used cplexbilp function which CPLEX API provided for MATLAB like this:

[x,fval,exitflag,output,] = cplexbilp(f, Aineq, bineq, Aeq, beq);
  • size of the matrices: f=25000x1, Aineq=50x25000, bineq=50x1, Aeq=2555x25000, beq=2255x1

when I run the script, this error appears:

enter image description here

When I review the error details, I see this message:

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

I think cplexlink125.mexw32 is cplex v12.5 callable library for MATLAB.
So, my question is how to solve this error? and I want to know is the problem size (25000 binary variables) main error root? I read in some resources that Cplex is able to solve large scale LP problems.

  • MATLAB version: R2011a
  • CPLEX version: 12.5

Thanks in advance for any comment or answer

oMiD
  • 322
  • 4
  • 20
  • 1
    Are you able to solve smaller problems? – Inquest Nov 20 '13 at 00:39
  • @Inquest, for problems which number of variables is smaller than 300, script works well, I mean without error mentioned above not converge to optimal solution. when number of variables is 300, I have 120 equality constraint and 15 inequality constraint. – oMiD Nov 20 '13 at 08:47
  • 1
    First, try to increase availlable memory. Try to find out when it crashes. A lot of times the memory is not sufficient to create many variables. Most likely you will have to change your formulation (Heuristic approaches, Dantzig-Wolfe, .......) – Christian Nov 20 '13 at 09:06
  • @Chris, I tested your suggestion previously and even I use single precision matrices, but the problem still exist :( – oMiD Nov 20 '13 at 09:14

2 Answers2

1

It seems that you are using a "student version" of CPLEX. This version is limited to solve the problems with "up to" 300 variables and 300 constraints. I've solved many problems containing more than 100,000 binary and integer variables in the "commercial version" without any error.

1

I used to use CPlex API with MATLAB. CPlex was called up to almost 10^6 times for the each run of my code. And in each call, CPlex was dealing with larger coefficient matrices than yours. I experienced a memory leak with CPlex whenever I used it with MATLAB. Then I switched to gurobi, which is slightly slower than cplex but more stable. (My mathematical model did not have any binary or integer variables. My variables were all continuous and non-negative. Binary variables increase complexity of the problem exponentially. This problem can also be caused by binary variables. 25000 binary variables are really too much).

HByrm
  • 41
  • 8