22

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

josliber
  • 43,891
  • 12
  • 98
  • 133
areslp
  • 383
  • 1
  • 4
  • 17
  • Most LP solvers have their own way of defining problem sets. Programmatic interfaces for it is mostly sugar coating. – Ritesh M Nayak Dec 30 '09 at 07:00
  • I am using cvxopt, and to install I just downloaded the precompiled libraries from http://www.lfd.uci.edu/~gohlke/pythonlibs/#cvxopt, then did pip install (downloaded wheel), then made sure to import numpy before using it. – Phylliida Nov 06 '15 at 21:55
  • @Phylliida: Does CVXOPT have a C++ version/interface? – Hans Jan 22 '21 at 23:25

3 Answers3

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.

Benoît
  • 16,798
  • 8
  • 46
  • 66
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.

Samik R
  • 1,636
  • 3
  • 15
  • 33
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/

Ritesh M Nayak
  • 8,001
  • 14
  • 49
  • 78
  • You can find other open source solvers and their performance benchmarks here: http://plato.asu.edu/ftp/lpfree.html Also, dont forget to check out http://code.msdn.microsoft.com/solverfoundation – Ritesh M Nayak Dec 30 '09 at 06:59
  • Linear implies convex, not the other way around. – Benoît Dec 30 '09 at 09:19
  • cplex solves linearly or quadratically constrained convex problems. It's very fast, but it doesn't handle general convex problems. – David Nehme Nov 30 '10 at 01:14