6
$\begingroup$

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?

$\endgroup$

1 Answer 1

7
$\begingroup$

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.

$\endgroup$
2
  • $\begingroup$ And is there any documentation on the quality of the intlinprog of the Toolbox? $\endgroup$ Mar 3, 2021 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, 2021 at 12:59

Your Answer

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

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