Biblioteca de optimización restringida para restricciones de igualdad y desigualdad

14

¿Alguna recomendación para elegir una biblioteca de optimización restringida adecuada para mi función de optimización? Estoy minimizando ai) la función no lineal con restricciones lineales de igualdad y desigualdad, y ii) tengo disponible el gradiente y el hessian de la función.

Si ayuda, la función que estoy minimizando es la divergencia Kullback-Liebler .

constrOptim solo trata las restricciones de desigualdad. Quadprog maneja cuadráticos. La confianza no admite restricciones. Por lo tanto, la divergencia KL no encaja en estas soluciones.

Hay bastantes soluciones en la página de tareas de R Cran para la optimización . Puedo realizar la optimización en MATLAB usando la función fmincon () que parece usar un punto interior o un reflejo de región de confianza. Idealmente, hay una biblioteca que se adapte bien al problema definido.

Ram Ahluwalia
fuente
¿Son lineales las restricciones?
cardenal
@cardinal - sí - las restricciones son lineales
Ram Ahluwalia
2
Por lo tanto, si sus restricciones de igualdad son , al menos una solución temporal para sería incluir tanto una x b y A x b . ¿No? Ax=bconstrOptimAxbAxb
cardenal
Eso es muy inteligente. Exploraré esto y veré cómo funciona. Debería considerar publicar esto como respuesta. Mantendré la pregunta abierta durante un par de días para ver qué otras herramientas están disponibles
Ram Ahluwalia,
1
truco @cardinal no ayuda para el método de punto interior, como el de constrOptim, ya que la necesidad de un método de punto de partida en el interior de la región factible -no en la frontera
stackovergio

Respuestas:

14

Ambos paquetes, alabama y Rsolnp, contienen "[i] implementaciones del método multiplicador de lagrange aumentado para la optimización general no lineal", como dice la vista de tareas de optimización, y son bastante confiables y robustos. El puede manejar las restricciones de igualdad y desigualdad definidas como funciones (no lineales) nuevamente.

He trabajado con ambos paquetes. A veces, las restricciones son un poco más fáciles de formular con Rsolnp, mientras que alabama parece ser un poco más rápido a veces.

También está el paquete Rdonlp2 que se basa en una biblioteca de software conocida y externa de la comunidad de optimización. Desafortunadamente, su estado de licencia es un poco incierto en este momento.

Hans W.
fuente
1
Solo quiero agregar una propiedad de las restricciones de desigualdad de Alabama que encontré hoy. Si sus restricciones de desigualdad crean una región inviable, entonces el código se ejecuta sin ningún mensaje de advertencia / error y toma el valor medio de los límites como valor fijo del parámetro. Por ejemplo, si tiene x> 6 yx <4, entonces la solución proporcionará una solución con x = 5 sin previo aviso.
Gaurav Singhal el
Parece que esta respuesta todavía se visita y se lee. Por lo tanto, me gustaría agregar que hay un nuevo paquete NlcOptim (desde 2015). Resuelve problemas de optimización con objetivos no lineales y funciones de restricción, donde se permiten restricciones no lineales de igualdad y desigualdad. Lo uso regularmente.
Hans W.