stringtranslate.com

Programación cuadrática secuencial

La programación cuadrática secuencial ( SQP ) es un método iterativo para la optimización no lineal restringida que puede considerarse un método cuasi-Newton . Los métodos SQP se utilizan en problemas matemáticos para los cuales la función objetivo y las restricciones son dos veces continuamente diferenciables , pero no necesariamente convexas.

Los métodos SQP resuelven una secuencia de subproblemas de optimización, cada uno de los cuales optimiza un modelo cuadrático del objetivo sujeto a una linealización de las restricciones. Si el problema no tiene restricciones, entonces el método se reduce al método de Newton para encontrar un punto donde el gradiente del objetivo se anule. Si el problema solo tiene restricciones de igualdad, entonces el método es equivalente a aplicar el método de Newton a las condiciones de optimalidad de primer orden, o condiciones de Karush–Kuhn–Tucker , del problema.

Fundamentos de algoritmos

Esquema general que ilustra el algoritmo SQP básico

Consideremos un problema de programación no lineal de la forma:

El lagrangiano para este problema es [1]

donde y son multiplicadores de Lagrange .

El método estándar de Newton busca la solución iterando la siguiente ecuación, donde denota la matriz hessiana :

.

Sin embargo, debido a que la matriz es generalmente singular (y por lo tanto no invertible ), el paso de Newton no se puede calcular directamente. En cambio, el algoritmo básico de programación cuadrática secuencial define una dirección de búsqueda apropiada en una iteración , como una solución al subproblema de programación cuadrática.

donde la forma cuadrática se forma con el hessiano del lagrangiano. Nótese que el término en la expresión anterior puede omitirse para el problema de minimización, ya que es constante bajo el operador.

En conjunto, el algoritmo SQP comienza eligiendo primero la iteración inicial , luego calculando y . Luego, se construye y resuelve el subproblema QP para encontrar la dirección del paso de Newton que se utiliza para actualizar la iteración del problema principal utilizando . Este proceso se repite hasta que el problema principal satisface una prueba de convergencia.

Implementaciones prácticas

Las implementaciones prácticas del algoritmo SQP son significativamente más complejas que su versión básica descrita anteriormente. Para adaptar el algoritmo SQP a aplicaciones del mundo real, se deben abordar los siguientes desafíos:

Para superar estos desafíos, normalmente se emplean diversas estrategias:

Estas estrategias se pueden combinar de numerosas maneras, dando como resultado una gama diversa de métodos SQP.

Enfoques alternativos

Implementaciones

Los métodos SQP se han implementado en entornos numéricos conocidos como MATLAB y GNU Octave . También existen numerosas bibliotecas de software, incluidas las de código abierto:

y comercial

Véase también

Notas

  1. ^ Jorge Nocedal y Stephen J. Wright (2006). Optimización numérica. Springer. ISBN 978-0-387-30303-1.
  2. ^ Kraft, Dieter (septiembre de 1994). "Algoritmo 733: módulos TOMP–Fortran para cálculos de control óptimos". ACM Transactions on Mathematical Software . 20 (3): 262–281. CiteSeerX 10.1.1.512.2567 . doi :10.1145/192115.192124. S2CID  16077051 . Consultado el 1 de febrero de 2019 . 
  3. ^ "Algoritmos NLopt: SLSQP". Leer la documentación . Julio de 1988. Consultado el 1 de febrero de 2019 .
  4. ^ Guía del usuario de KNITRO: Algoritmos

Referencias

Enlaces externos