2012-07-10 11 views
5

¿Existen buenas bibliotecas en C++ para optimización secuencial no lineal con restricciones?Bibliotecas de optimización no lineal secuenciales en C++ WITH constraints

Estoy buscando restricciones de desigualdad y/o límites superiores e inferiores.

Ya existe una stackoverflow question pero no todas tienen limitaciones.

Sé de NLopt, pero no funciona bien para mi problema específico. ¿Hay otros?


fin encontré la solución que estaba buscando si alguien más está interesado lpOpt

Respuesta

6

Un algoritmo SQP que usted podría intentar es DONLP2. Fue escrito originalmente en Fortran 77 pero también hay una versión ANSI C. Utiliza álgebra densa, por lo que es principalmente adecuado para problemas pequeños a medianos. Es gratis para uso académico. Debe solicitar el código directamente del autor, siga las instrucciones en el enlace.

ACTUALIZACIÓNSequential Quadratic Programming es sólo un método de resolución de funciones objetivo no lineales con restricciones, también hay, por ejemplo, interior point methods. Una muy buena alternativa de código abierto de C++ a gran escala que aplica el enfoque de punto interior es Ipopt (ya mencionado en otro answer). También existe, por ejemplo, el paquete comercial KNITRO. Si no puede o no quiere proporcionar la función objetivo y los gradientes de restricciones, también puede echarle un vistazo a COBYLA2, de la cual se puede descargar una versión C here.

Para mayor inspiración, también puede consultar el Decision Tree For Optimization Software, que enumera diferentes códigos de optimización adecuados para una amplia gama de problemas diferentes.

+2

@pyCthon Noté que encontraste Ipopt por ti mismo. He editado mi respuesta en función de su hallazgo y también he incluido algunos enlaces adicionales. Aunque es un poco tarde, espero que todavía los encuentres útiles. –

Cuestiones relacionadas