What's a good convex optimization library? [closed]
Asked Answered
R

3

21

I am looking for a C++ library, and I am dealing with convex objective and constraint functions.

Rancourt answered 30/12, 2009 at 6:43 Comment(3)
Most LP solvers have their own way of defining problem sets. Programmatic interfaces for it is mostly sugar coating.Noonday
I am using cvxopt, and to install I just downloaded the precompiled libraries from lfd.uci.edu/~gohlke/pythonlibs/#cvxopt, then did pip install (downloaded wheel), then made sure to import numpy before using it.Excoriate
@Phylliida: Does CVXOPT have a C++ version/interface?Vocalist
D
12

I am guessing your problem is non-linear. Where i work, we use SNOPT, Ipopt and another proprietary solver (not for sale). We have also tried and heard good things about Knitro.

As long as your problem is convex, all these solvers work well.

They all have their own API, but they all ask for the same information : values, first and second derivatives.

Debt answered 30/12, 2009 at 8:59 Comment(0)
V
4

Assuming your problems are nonlinear, you can use free and open-sourced OPT++, available from Sandia Lab. I have used it in one project in C++ and it was easy to use and worked well.

Vaudeville answered 30/12, 2009 at 21:52 Comment(0)
N
1

From what I know, the CPLEX solver is the best convex optimization solver. Its the state of the art in LP solvers. Does convex optimization really well. While looking for it, I see that its IBM's software now. You can find it here : http://www-01.ibm.com/software/integration/optimization/cplex/

Noonday answered 30/12, 2009 at 6:57 Comment(3)
You can find other open source solvers and their performance benchmarks here: plato.asu.edu/ftp/lpfree.html Also, dont forget to check out code.msdn.microsoft.com/solverfoundationNoonday
Linear implies convex, not the other way around.Kronos
cplex solves linearly or quadratically constrained convex problems. It's very fast, but it doesn't handle general convex problems.Handicap

© 2022 - 2024 — McMap. All rights reserved.