When a paper says they used the intlinprog in MATLAB to solve an integer program, what system actually does the solving? I have seen documentation about Gurobi and MATLAB: does Gurobi always provide the solving for MATLAB or is that just one option? What is the "default" solver? Is it a high quality solver?


Mention of intlinprog, without further specification, generally means the intlinprog of the MATLAB Optimization Toolbox.

However, Gurobi also has a function called intlinprog, which mimics the interface of the MATLAB Optimization Toolbox intlinprog, but which calls the Gurobi solver. Similarly with Mosek. CPLEX has cplexintlinprog, which mimics the interface of the MATLAB Optimization Toolbox intlinprog. Gurobi, Mosek, and CPLEX also offer other interfaces in MATLAB offering additional functionality not available through the (cplex)intlinprog functions.

As to which winds up being the default, that depends on the order of entries in the MATLAB path. Many people don't even realize which solver they are using, and it wouldn't surprise me if there are published papers in which the author(s) used a different solver than what they thought.

Further compounding the potential confusion is that intlinprog might be called through an optimization modeling tool (language), in which case the user is further removed from the actual solver selection. Editorial note: yes of course you should look at the solver output, at least during debugging and check out, but many people do not.

  • $\begingroup$ And is there any documentation on the quality of the intlinprog of the Toolbox? $\endgroup$ Mar 3 at 12:55
  • 3
    $\begingroup$ There is the Mittelmann MIPLIB2017 Benchmark data at plato.asu.edu/ftp/milp.html .Suffice it to say that the MATLAB Optimization Toolbox intlinprog is not generally the fastest MILP solver there is. $\endgroup$ Mar 3 at 12:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.