Articulo de referencia

Método predictor-corrector de Mehrotra

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 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.

minincógnitaq(incógnita)=doTincógnita,calleAincógnita=b,incógnita0,{\displaystyle {\begin{aligned}&{\underset {x}{\min }}&q(x)&=c^{T}x,\\&{\text{st}}&Ax&=b,\\&\;&x&\geq 0,\end{aligned}}}

dóndedoRnorte×1,ARmetro×norte{\displaystyle c\in \mathbb {R} ^{n\times 1},\;A\in \mathbb {R} ^{m\times n}}ybRmetro×1{\displaystyle b\in \mathbb {R} ^{m\times 1}}definir el problema conmetro{\displaystyle m}restricciones ynorte{\displaystyle n}ecuaciones mientrasincógnitaRnorte×1{\displaystyle x\in \mathbb {R} ^{n\times 1}}es un vector de variables.

Las condiciones de Karush-Kuhn-Tucker (KKT) para el problema son:

ATλ+s=do,(Condición de gradiente de Lagrange)Aincógnita=b,(Condición de viabilidad)incógnitaSmi=0,(Condición de complementariedad)(incógnita,s)0,{\displaystyle {\begin{aligned}A^{T}\lambda +s&=c,\;\;\;{\text{(Condición de gradiente de Lagrange)}}\\Ax&=b,\;\;\;{\text{(Condición de factibilidad)}}\\XSe&=0,\;\;\;{\text{(Condición de complementariedad)}}\\(x,s)&\geq 0,\end{aligned}}}

dóndeincógnita=diagnóstico(incógnita){\displaystyle X={\text{diag}}(x)}yS=diagnóstico(s){\displaystyle S={\text{diag}}(s)}De dóndemi=(1,1,,1)TRnorte×1{\displaystyle e=(1,1,\dots ,1)^{T}\in \mathbb {R} ^{n\times 1}}.

Estas condiciones pueden reformularse como un mapeoF:R2norte+metroR2norte+metro{\displaystyle F:\mathbb {R} ^{2n+m}\rightarrow \mathbb {R} ^{2n+m}}como sigue

F(incógnita,λ,s)=[ATλ+sdoAincógnitabincógnitaSmi]=0(incógnita,s)0{\displaystyle {\begin{aligned}F(x,\lambda ,s)={\begin{bmatrix}A^{T}\lambda +sc\\Ax-b\\XSe\end{bmatrix}}&=0\\(x,s)&\geq 0\end{aligned}}}

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:

J(incógnita,λ,s)[ΔincógnitaafΔλafΔsaf]=F(incógnita,λ,s){\displaystyle J(x,\lambda ,s){\begin{bmatrix}\Delta x^{\text{aff}}\\\Delta \lambda ^{\text{aff}}\\\Delta s^{\text{aff}}\end{bmatrix}}=-F(x,\lambda ,s)}

dóndeJ{\displaystyle J}, definido como

J(incógnita,λ,s)=[incógnitaFλFsF],{\displaystyle J(x,\lambda ,s)={\begin{bmatrix}\nabla _{x}F&\nabla _{\lambda }F&\nabla _{s}F\end{bmatrix}},}

es el jacobiano de F.

De esta forma, el sistema se convierte en

[0ATIA00S0incógnita][ΔincógnitaafΔλafΔsaf]=[rdorbincógnitaSmi],rdo=ATλ+sdo,rb=Aincógnitab{\displaystyle {\begin{bmatrix}0&A^{T}&I\\A&0&0\\S&0&X\end{bmatrix}}{\begin{bmatrix}\Delta x^{\text{aff}}\\\Delta \lambda ^{\text{aff}}\\\Delta s^{\text{aff}}\end{bmatrix}}={\begin{bmatrix}-r_{c}\\-r_{b}\\-XSe\end{bmatrix}},\;\;\;r_{c}=A^{T}\lambda +sc,\;\;\;r_{b}=Ax-b}

Paso de centrado

El valor promedio de los productosincógnitaisi,i=1,2,,norte{\displaystyle x_{i}s_{i},\;i=1,2,\dots ,n}constituyen una medida importante de la deseabilidad de un determinado conjunto.(incógnitak,sk){\displaystyle (x^{k},s^{k})}(los superíndices denotan el valor del número de iteración,k{\displaystyle k}, del método). Esto se denomina medida de dualidad y se define por

μ=1nortei=1norteincógnitaisi=incógnitaTsnorte.{\displaystyle \mu ={\frac {1}{n}}\sum _{i=1}^{n}x_{i}s_{i}={\frac {x^{T}s}{n}}.}

Para un valor del parámetro de centrado,σ[0,1],{\displaystyle \sigma \in [0,1],}El paso de centrado se puede calcular como la solución a

[0ATIA00S0incógnita][ΔincógnitacenΔλcenΔscen]=[rdorbincógnitaSmi+σμmi]{\displaystyle {\begin{bmatrix}0&A^{T}&I\\A&0&0\\S&0&X\end{bmatrix}}{\begin{bmatrix}\Delta x^{\text{cen}}\\\Delta \lambda ^{\text{cen}}\\\Delta s^{\text{cen}}\end{bmatrix}}={\begin{bmatrix}-r_{c}\\-r_{b}\\-XSe+\sigma \mu e\end{bmatrix}}}

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:

(incógnitai+Δincógnitaiaf)(si+Δsiaf)=incógnitaisi+incógnitaiΔsiaf+siΔincógnitaiaf+ΔincógnitaiafΔsiaf=ΔincógnitaiafΔsiaf0.{\displaystyle \left(x_{i}+\Delta x_{i}^{\text{aff}}\right)\left(s_{i}+\Delta s_{i}^{\text{aff}}\right)=x_{i}s_{i}+x_{i}\Delta s_{i}^{\text{aff}}+s_{i}\Delta x_{i}^{\text{aff}}+\Delta x_{i}^{\text{aff}}\Delta s_{i}^{\text{aff}}=\Delta x_{i}^{\text{aff}}\Delta s_{i}^{\text{aff}}\neq 0.}

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.

[0ATIA00S0incógnita][ΔincógnitacorΔλcorΔscor]=[00ΔincógnitaafΔSafmi]{\displaystyle {\begin{bmatrix}0&A^{T}&I\\A&0&0\\S&0&X\end{bmatrix}}{\begin{bmatrix}\Delta x^{\text{cor}}\\\Delta \lambda ^{\text{cor}}\\\Delta s^{\text{cor}}\end{bmatrix}}={\begin{bmatrix}0\\0\\-\Delta X^{\text{aff}}\Delta S^{\text{aff}}e\end{bmatrix}}}

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

[0ATIA00S0incógnita][ΔincógnitaΔλΔs]=[rdorbincógnitaSmiΔincógnitaafΔSafmi+σμmi]{\displaystyle {\begin{bmatrix}0&A^{T}&I\\A&0&0\\S&0&X\end{bmatrix}}{\begin{bmatrix}\Delta x\\\Delta \lambda \\\Delta s\end{bmatrix}}={\begin{bmatrix}-r_{c}\\-r_{b}\\-XSe-\Delta X^{\text{aff}}\Delta S^{\text{aff}}e+\sigma \mu e\end{bmatrix}}}

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

σ=(μafμ)3,{\displaystyle \sigma =\left({\frac {\mu _{\text{aff}}}{\mu }}\right)^{3},}

dónde

μaf=(incógnita+αafpriΔincógnitaaf)T(s+αafdualΔsaf)/norte,αafpri=min(1,mini:Δincógnitaiaf<0incógnitaiΔincógnitaiaf),αafdual=min(1,mini:Δsiaf<0siΔsiaf),{\displaystyle {\begin{aligned}\mu _{\text{aff}}&=(x+\alpha _{\text{aff}}^{\text{pri}}\Delta x^{\text{aff}})^{T}(s+\alpha _{\text{aff}}^{\text{dual}}\Delta s^{\text{aff}})/n,\\\alpha _{\text{aff}}^{\text{pri}}&=\min \left(1,{\underset {i:\Delta x_{i}^{\text{aff}}<0}{\min }}-{\frac {x_{i}}{\Delta x_{i}^{\text{aff}}}}\right),\\\alpha _{\text{aff}}^{\text{dual}}&=\min \left(1,{\underset {i:\Delta s_{i}^{\text{aff}}<0}{\min }}-{\frac {s_{i}}{\Delta s_{i}^{\text{aff}}}}\right),\end{aligned}}}

Aquí,μaf{\displaystyle \mu _{\text{aff}}}es la medida de dualidad del paso afín yμ{\displaystyle \mu }es 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,(incógnita,s)0{\displaystyle (x,s)\geq 0}. [ 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

  1. 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 .
  2. "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 .
  3. 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.