El método predictor-corrector de Mehrotra en optimización es un método específico de punto interior para programación lineal . Fue propuesto en 1989 por Sanjay Mehrotra . [ 1 ]
El método se basa en el hecho de que, en cada iteración de un algoritmo de punto interior, es necesario calcular la descomposición de Cholesky (factorización) de una matriz grande para determinar la dirección de búsqueda. El paso de factorización es el más costoso computacionalmente del algoritmo. Por lo tanto, conviene utilizar la misma descomposición varias veces antes de volver a calcularla.
En cada iteración del algoritmo, el método predictor-corrector de Mehrotra utiliza la misma descomposición de Cholesky para encontrar dos direcciones diferentes: un predictor y un corrector.
La idea consiste en calcular primero una dirección de búsqueda optimizada basada en un término de primer orden (predictor). El tamaño del paso que se puede dar en esta dirección se utiliza para evaluar cuánta corrección de centralidad se necesita. A continuación, se calcula un término corrector que contiene tanto un término de centralidad como un término de segundo orden.
La dirección de búsqueda completa es la suma de la dirección del predictor y la dirección del corrector.
Aunque aún no existe un límite teórico de complejidad para este método, el método predictor-corrector de Mehrotra se utiliza ampliamente en la práctica. [ 2 ] Su paso corrector utiliza la misma descomposición de Cholesky que se encuentra durante el paso predictor de manera eficaz, por lo que resulta solo ligeramente más costoso que un algoritmo de punto interior estándar. Sin embargo, el costo adicional por iteración generalmente se compensa con una reducción en el número de iteraciones necesarias para alcanzar una solución óptima. Además, parece converger muy rápidamente cuando se encuentra cerca del óptimo.
Derivación
La derivación de esta sección sigue el esquema de Nocedal y Wright. [ 3 ]
Paso predictivo - Dirección de escalamiento afín
Un programa lineal siempre puede formularse en la forma estándar.
dóndeydefinir el problema conrestricciones yecuaciones mientrases un vector de variables.
Las condiciones de Karush-Kuhn-Tucker (KKT) para el problema son:
dóndeyDe dónde.
Estas condiciones pueden reformularse como un mapeocomo sigue
El método predictor-corrector funciona entonces utilizando el método de Newton para obtener la dirección de escalamiento afín . Esto se logra resolviendo el siguiente sistema de ecuaciones lineales:
dónde, definido como
es el jacobiano de F.
De esta forma, el sistema se convierte en
Paso de centrado
El valor promedio de los productosconstituyen una medida importante de la deseabilidad de un determinado conjunto.(los superíndices denotan el valor del número de iteración,, del método). Esto se denomina medida de dualidad y se define por
Para un valor del parámetro de centrado,El paso de centrado se puede calcular como la solución a
Paso corrector
Considerando el sistema utilizado para calcular la dirección de escalamiento afín definida anteriormente, se puede observar que dar un paso completo en la dirección de escalamiento afín da como resultado que no se satisfaga la condición de complementariedad:
Por lo tanto, se puede definir un sistema para calcular un paso que intente corregir este error. Este sistema se basa en el cálculo previo de la dirección de escalado afín.
Sistema agregado - Dirección del corrector central
Las contribuciones del predictor, el corrector y el centrado al lado derecho del sistema pueden agregarse en un único sistema. Este sistema dependerá del cálculo previo de la dirección de escalado afín; sin embargo, la matriz del sistema será idéntica a la del paso predictor, de modo que su factorización pueda reutilizarse.
El sistema agregado es
El algoritmo predictor-corrector calcula primero la dirección de escalado afín. En segundo lugar, resuelve el sistema agregado para obtener la dirección de búsqueda de la iteración actual.
Selección adaptativa del parámetro de centrado
La dirección de escalado afín se puede utilizar para definir una heurística para elegir de forma adaptativa el parámetro de centrado como
dónde
Aquí,es la medida de dualidad del paso afín yes la medida de dualidad de la iteración anterior. [ 3 ]
longitud de los pasos
En las implementaciones prácticas, se realiza una versión de búsqueda lineal para obtener la longitud máxima del paso que se puede tomar en la dirección de búsqueda sin violar la no negatividad,. [ 3 ]
Adaptación a la programación cuadrática
Aunque las modificaciones presentadas por Mehrotra estaban destinadas a algoritmos de punto interior para programación lineal, las ideas se han extendido y aplicado con éxito también a la programación cuadrática . [ 3 ]
Referencias
- ↑ Mehrotra, S. (1992). "Sobre la implementación de un método de punto interior primal-dual". SIAM Journal on Optimization . 2 (4): 575– 601. doi : 10.1137/0802028 .
- ↑ "En 1989, Mehrotra describió un algoritmo práctico para la programación lineal que sigue siendo la base de la mayoría del software actual; su trabajo apareció en 1992." Potra, Florian A.; Stephen J. Wright (2000). "Métodos de punto interior". Journal of Computational and Applied Mathematics . 124 ( 1– 2): 281– 302. Bibcode : 2000JCoAM.124..281P . doi : 10.1016/S0377-0427(00)00433-7 .
- 1 2 3 4 Nocedal, Jorge; Wright, Stephen J. (2006). Optimización numérica . Estados Unidos de América: Springer. págs. 392–417 , 448–496 . ISBN 978-0387-30303-1.
- Algoritmos y métodos de optimización
- Programación lineal