Are there formal comparisons of OSQP to other solvers in terms of solving linear programming (LP)? For example, in matlab, how does it compare to linprog? Is the option linsys_solver meant to signify that the problem is a LP? To get the optimal value, should I use results.info.obj_val after results = m.solve(); ?
All of the comprehensive comparisons available can be found in the accompanying paper that appeared in Mathematical Programming Computation in 2020, which is also on ArXiv. Some of the benchmarks problems there were (from memory) purely LPs, but we did not include matlab linprog among our benchmark comparators.
The linsys_solver has nothing to do with the problem being an LP or QP. It just refers to the solver that is used to solve a linear system of equations.
And yes, the optimal value (i.e. optimal cost) should be where you have indicated.
Thanks for the quick response. QSQP is a fantastic solver:-)
As a follow-up, I thought it’s useful to report here that it seems that it may take much longer time to solve an LP problem than a QP problem. In my case, I merely changed the L2 norm to a max norm in the objective (a best approximation problem), and it took 90 times more time to run the code. It seems that this has been noted by the developers: Unable to solve LP accurately - #6 by pgoulart. Are there any tips to speed things up?
Yes, we have noted that type of situation in some LPs, but certainly not all. If you follow the link you provided you will see there that I was able to suggest some parameter modifications that might help, but I don’t know of any principled approach that you could follow that would work in all cases.
At the moment that’s the best that we can offer. OSQP v1.0 will hopefully implement some of the acceleration techniques available for ADMM, but I can’t promise a release date for that.
Thanks. I did have the two options for rho the same as you did there. Look forward to the next release.