1

I'm trying to solve the BVLS problem for huge (2e6x2e6) matrices which are very sparse (4 elements per row). Does anybody have a recommendation for a free solver (preferably a library of routines)?

The BVLS problem is defined as:

$\underset{l \le x \le u}{\min} \lVert Ax - b \rVert_2^2$

flag
Have you looked at netlib.org? – Steve Huntsman Jun 10 2010 at 16:08
@Steve: I just looked at it and it provides several useful papers and links. But all the implementations don't seem to discuss sparse matrix support which I truly need. – Jacob Jun 10 2010 at 16:29
netlib.org/sparse/readme – Steve Huntsman Jun 10 2010 at 16:37
@Steve: Thanks, but how do I introduce the constraints? – Jacob Jun 10 2010 at 21:33
It appears you have a QP with simple bounds. There tons of solvers out there for QPs with sparse matrix support. You might want to look into these: abel.ee.ucla.edu/cvxopt, pserc.cornell.edu/bpmpd, control.ee.ethz.ch/~joloef/clp.php, pages.cs.wisc.edu/~swright/ooqp. Or just look here under quadratic programming: users.isy.liu.se/johanl/yalmip/… – Gilead Aug 13 2010 at 3:28

1 Answer

2

This is such a well-solved problem that there are many software packages that have built in functions for this.

Here are a selection of built-in functions in different software packages that can be used:

In Matlab: lsqlin (type help lsqlin into Matlab and it tells you exactly what to type. I have just (approximately) solved your problem with random sparse matrices and it works great.)

KNITRO for Mathematica this package also solves this exact problem but I don't have this software so I can't tell you which exact function.

For a free solver I have found this: http://sourceforge.net/projects/quadprog/ However it assumes that $A$ has full column rank. This is just because this algorithm uses the dual problem which exists when the Hessian $A^TA$ is positive definite.

link|flag
@Alext87:I use lsqlin for my experiments but I need a solver to integrate into a larger application (and it should be free). The matrix is not full rank, so I don't know about quadprog. – Jacob Jun 14 2010 at 14:34

Your Answer

Get an OpenID
or

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