2009-12-30 12 views
19

Estoy buscando una biblioteca C++, y estoy tratando con funciones convexas de objetivo y restricción.¿Qué es una buena biblioteca de optimización convexa?

+4

¿Dónde lo viste por última vez? –

+0

La mayoría de los solucionadores de LP tienen su propia forma de definir los conjuntos de problemas. Las interfaces programáticas para esto son principalmente recubrimientos de azúcar. –

+0

Estoy usando cvxopt, y para instalar Acabo de descargar las bibliotecas precompiladas de http://www.lfd.uci.edu/~gohlke/pythonlibs/#cvxopt, luego pip install (rueda descargada), luego me aseguré de importar numpy antes de usarlo. – Phylliida

Respuesta

12

estoy adivinando su problema es no lineal. Donde trabajo, utilizamos SNOPT, Ipopt y otro solucionador patentado (no está a la venta). También hemos intentado y oído cosas buenas sobre Knitro.

Siempre que su problema sea convexo, todos estos solucionadores funcionan bien.

Todos ellos tienen su propia API, pero todos ellos piden la misma información: valores, primera y segunda derivadas.

1

Por lo que sé, el solver CPLEX es el mejor solucionador de optimización convexa. Es el estado del arte en solucionadores de LP. ¿La optimización convexa realmente bien? Mientras lo busco, veo que es el software de IBM ahora. Lo puedes encontrar aquí: http://www-01.ibm.com/software/integration/optimization/cplex/

+0

Puede encontrar otras solucionadores de código abierto y sus parámetros de rendimiento aquí: http://plato.asu.edu/ftp/lpfree.html Además, no se olvide de visitar http://code.msdn.microsoft.com/solverfoundation –

+0

Lineal implica convexo, no al revés. –

+0

cplex resuelve problemas convexos limitados linealmente o cuadráticamente. Es muy rápido, pero no maneja problemas convexos generales. –

4

Suponiendo que sus problemas no son lineales, puede usar OPT++ de fuente abierta y gratuita, disponible en Sandia Lab. Lo he usado en un proyecto en C++ y fue fácil de usar y funcionó bien.

1

Puede utilizar GSL (GNU Scientific Library) con the packageNLopt que es un paquete de optimización no lineal con restricciones de desigualdad no lineal sin restricciones, con limitaciones de atado y generales.

+0

Dos comentarios: Primero, ¿qué quiere decir que puede usar GSL y NLOpt juntos (GSL con NLOpt)? Parecen ser proyectos separados. Ellos tienen el mismo espíritu pero son independientes. En segundo lugar, el autor de NLOpt no recomienda utilizar NLOpt para problemas convexos, desde la página web: "NLopt incluye solo métodos generales que no suponen convexidad; si tiene un problema demostrablemente convexo, puede que esté mejor con un paquete de software diferente , como el paquete CVX de Stanford ". http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction#Global_versus_local_optimization – alfC

Cuestiones relacionadas