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

4
  • 1
    Are you able to solve smaller problems? Commented Nov 20, 2013 at 0: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. Commented Nov 20, 2013 at 8: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, .......) Commented Nov 20, 2013 at 9:06
  • @Chris, I tested your suggestion previously and even I use single precision matrices, but the problem still exist :( Commented Nov 20, 2013 at 9:14

2 Answers 2

2

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.

Sign up to request clarification or add additional context in comments.

Comments

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).

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.