Articulo de referencia

Programación cuadrática

La programación cuadrática ( PC ) es el proceso de resolver ciertos problemas de optimización matemática que involucran funciones cuadráticas . Específicamente, se busca optimiz...

La programación cuadrática ( PC ) es el proceso de resolver ciertos problemas de optimización matemática que involucran funciones cuadráticas . Específicamente, se busca optimizar (minimizar o maximizar) una función cuadrática multivariable sujeta a restricciones lineales sobre las variables. La programación cuadrática es un tipo de programación no lineal .

En este contexto, «programación» se refiere a un procedimiento formal para resolver problemas matemáticos. Este uso data de la década de 1940 y no está específicamente vinculado a la noción más reciente de «programación informática». Para evitar confusiones, algunos profesionales prefieren el término «optimización», por ejemplo, «optimización cuadrática». [ 1 ]

Formulación del problema

El problema de programación cuadrática con n variables y m restricciones se puede formular de la siguiente manera. [ 2 ] Dado:

  • un vector c de n dimensiones y de valor real ,
  • una matriz simétrica real Q de n × n dimensiones ,
  • una matriz real A de m × n dimensiones y
  • un vector real de dimensión m b ,

El objetivo de la programación cuadrática es encontrar un vector x de dimensión n que...

donde x T denota la transpuesta vectorial de x , y la notación A xb significa que cada entrada del vector A x es menor o igual que la entrada correspondiente del vector b (desigualdad componente a componente).

mínimos cuadrados restringidos

Como caso especial cuando Q es simétrica definida positiva , la función de coste se reduce a mínimos cuadrados:

donde Q = R T R se obtiene de la descomposición de Cholesky de Q y c = − R T d . Por el contrario, cualquier programa de mínimos cuadrados restringidos de este tipo puede plantearse de forma equivalente como un problema de programación cuadrática, incluso para una matriz R genérica no cuadrada .

Generalizaciones

Al minimizar una función f en la vecindad de un punto de referencia x₀ , Q se define como su matriz hessiana H ( f ( x₀ ) ) y c como su gradiente ∇f ( x₀ ) . Un problema de programación relacionado, la programación cuadrática con restricciones cuadráticas , se puede plantear añadiendo restricciones cuadráticas a las variables.

Métodos de solución

Para problemas generales se suelen utilizar diversos métodos, entre ellos:

En el caso en que Q sea definida positiva , el problema es un caso especial del campo más general de la optimización convexa .

Restricciones de igualdad

La programación cuadrática es particularmente sencilla cuando Q es definida positiva y solo existen restricciones de igualdad; específicamente, el proceso de solución es lineal. Mediante el uso de multiplicadores de Lagrange y la búsqueda del extremo del lagrangiano, se puede demostrar fácilmente que la solución al problema con restricciones de igualdad es lineal.

Minimizar12incógnitaTQincógnita+doTincógnita{\displaystyle {\text{Minimizar}}\quad {\tfrac {1}{2}}\mathbf {x} ^{\mathrm {T} }Q\mathbf {x} +\mathbf {c} ^{\mathrm {T} }\mathbf {x} }
sujeto amiincógnita=d{\displaystyle {\text{sujeto a}}\quad E\mathbf {x} =\mathbf {d} }

viene dado por el sistema lineal

[Qmimi0][incógnitaλ]=[dod]{\displaystyle {\begin{bmatrix}Q&E^{\top }\\E&0\end{bmatrix}}{\begin{bmatrix}\mathbf {x} \\\lambda \end{bmatrix}}={\begin{bmatrix}-\mathbf {c} \\\mathbf {d} \end{bmatrix}}}

donde λ es un conjunto de multiplicadores de Lagrange que aparecen en la solución junto con x .

La forma más sencilla de abordar este sistema es mediante la solución directa (por ejemplo, la factorización LU ), que resulta muy práctica para problemas pequeños. Para problemas grandes, el sistema plantea algunas dificultades inusuales, sobre todo porque el problema nunca es definido positivo (aunque Q lo sea), lo que dificulta enormemente encontrar un buen método numérico, y existen muchos métodos entre los que elegir, dependiendo del problema.

Si las restricciones no acoplan demasiado las variables, un ataque relativamente sencillo consiste en cambiar las variables de modo que las restricciones se satisfagan incondicionalmente. Por ejemplo, supongamos que d = 0 (generalizar a valores distintos de cero es sencillo). Observando las ecuaciones de restricción:

miincógnita=0{\displaystyle E\mathbf {x} =0}

introducir una nueva variable y definida por

Zy=incógnita{\displaystyle Z\mathbf {y} =\mathbf {x} }

donde y tiene dimensión de x menos el número de restricciones. Entonces

miZy=0{\displaystyle EZ\mathbf {y} =\mathbf {0} }

y si se elige Z de modo que EZ = 0, la ecuación de restricción siempre se satisfará. Encontrar dicho Z implica encontrar el espacio nulo de E , lo cual es más o menos sencillo dependiendo de la estructura de E. Sustituyendo en la forma cuadrática se obtiene un problema de minimización sin restricciones:

12incógnitaQincógnita+doincógnita12yZQZy+(Zdo)y{\displaystyle {\tfrac {1}{2}}\mathbf {x} ^{\top }Q\mathbf {x} +\mathbf {c} ^{\top }\mathbf {x} \quad \implies \quad {\tfrac {1}{2}}\mathbf {y} ^{\top }Z^{\top }QZ\mathbf {y} +\left(Z^{\top }\mathbf {c} \right)^{\top }\mathbf {y} }

cuya solución viene dada por:

ZQZy=Zdo{\displaystyle Z^{\top }QZ\mathbf {y} =-Z^{\top }\mathbf {c} }

Bajo ciertas condiciones sobre Q , la matriz reducida Z T QZ será definida positiva. Es posible escribir una variación del método del gradiente conjugado que evita el cálculo explícito de Z. [ 5 ]

Dualidad lagrangiana

El dual lagrangiano de un problema de programación cuadrática también es un problema de programación cuadrática. Para ver esto, centrémonos en el caso donde c = 0 y Q es definida positiva. Escribimos la función lagrangiana como

L(incógnita,λ)=12incógnitaQincógnita+λ(Aincógnitab).{\displaystyle L(x,\lambda )={\tfrac {1}{2}}x^{\top }Qx+\lambda ^{\top }(Ax-b).}

Definiendo la función dual (lagrangiana) g (λ) comogramo(λ)=infincógnitaL(incógnita,λ){\displaystyle g(\lambda )=\inf _{x}L(x,\lambda )}, encontramos un ínfimo de L , usandoincógnitaL(incógnita,λ)=0{\displaystyle \nabla _{x}L(x,\lambda )=0}y la positividad definida de Q :

incógnita=Q1Aλ.{\displaystyle x^{*}=-Q^{-1}A^{\top }\lambda .}

Por lo tanto, la función dual es

gramo(λ)=12λAQ1Aλλb,{\displaystyle g(\lambda )=-{\tfrac {1}{2}}\lambda ^{\top }AQ^{-1}A^{\top }\lambda -\lambda ^{\top }b,}

y así el dual lagrangiano del problema de programación cuadrática es

maximizarλ012λAQ1Aλλb.{\displaystyle {\text{maximize}}_{\lambda \geq 0}\quad -{\tfrac {1}{2}}\lambda ^{\top }AQ^{-1}A^{\top }\lambda -\lambda ^{\top }b.}

Además de la teoría de la dualidad lagrangiana, existen otros emparejamientos de dualidad (por ejemplo, Wolfe , etc.).

Complejidad en tiempo de ejecución

Programación cuadrática convexa

Para Q definida positiva , el problema de minimización es convexo . Por lo tanto, el método del elipsoide puede utilizarse para resolver el problema en tiempo (débilmente) polinomial . Esto fue demostrado explícitamente en 1979 por Kozlov, Tarasov y Khachiyan. [ 6 ]

Ye y Tse [ 7 ] presentan un algoritmo de tiempo polinomial, que extiende el algoritmo de Karmarkar de programación lineal a programación cuadrática convexa. En un sistema con n variables y L bits de entrada, su algoritmo requiere O(L n) iteraciones, cada una de las cuales se puede realizar utilizando O(L n 3 ) operaciones aritméticas, para una complejidad de tiempo de ejecución total de O( L 2 n 4 ).

Kapoor y Vaidya [ 8 ] presentan otro algoritmo, que requiere O( L * log L * n 3.67 * log n ) operaciones aritméticas.

Programación cuadrática no convexa

Cuando Q no es definida positiva (por lo que el problema no es convexo), la programación cuadrática es NP-difícil . Una forma de demostrarlo es mediante el teorema de Motzkin-Straus . [ 9 ] Este teorema establece que, para cualquier grafo no dirigido G , un cierto programa cuadrático asociado a G tiene un máximo que es función del número de clique de G. Calcular el número de clique de un grafo es un problema NP-difícil bien conocido; por lo tanto, resolver el programa cuadrático también es NP-difícil. Algunos casos especiales importantes también son NP-difíciles:

  • Sahni [ 10 ] demostró la NP-dureza para el caso en que Q es definida negativa (tiene n valores propios negativos);
  • Pardalos y Vavasis [ 11 ] demostraron la NP-dureza (fuerte) siempre que Q tenga al menos un valor propio negativo . Lo hacen mostrando una reducción del problema de la camarilla a un programa cuadrático particular con variables w , x 1 ... x n , y 1,2 ... y (n-1),n , z y función objetivo z - w 2 . Demuestran que el grafo de entrada tiene una camarilla de tamaño k, si y solo si el programa cuadrático correspondiente tiene una solución con valor 0.

Además, encontrar un punto KKT de un programa cuadrático no convexo es CLS-difícil. [ 12 ]

Programación cuadrática con variables enteras mixtas

Existen situaciones en las que uno o más elementos del vector x deberán tomar valores enteros . Esto conduce a la formulación de un problema de programación cuadrática de enteros mixtos (MIQP). [ 13 ] Las aplicaciones de MIQP incluyen los recursos hídricos [ 14 ] y la construcción de fondos indexados . [ 15 ]

Solucionadores y lenguajes de programación (scripting)

Extensiones

La optimización polinomial [ 16 ] es un marco más general, en el que las restricciones pueden ser funciones polinomiales de cualquier grado, no solo de 2.

Véase también

Referencias

  1. Wright, Stephen J. (2015), "Optimización continua (programación lineal y no lineal)", en Nicholas J. Higham; et  al. (eds.), The Princeton Companion to Applied Mathematics , Princeton University Press, pp . 281–293 
  2. Nocedal, Jorge; Wright, Stephen J. (2006). Optimización numérica (2.ª ed.). Berlín, Nueva York: Springer-Verlag . pág . 449. ISBN   978-0-387-30303-1..
  3. 1 2 Murty, Katta G. (1988). Complementariedad lineal, programación lineal y no lineal . Serie Sigma en Matemáticas Aplicadas. Vol. 3. Berlín: Heldermann Verlag. pp. xlviii+629 pp. ISBN   978-3-88538-403-8MR 0949214. Archivado del original el 1 de abril de 2010. 
  4. Delbos, F.; Gilbert, J.Ch. (2005). "Convergencia lineal global de un algoritmo lagrangiano aumentado para resolver problemas de optimización cuadrática convexa" (PDF) . Journal of Convex Analysis . 12 : 45–69 . Archivado (PDF) del original el 9 de octubre de 2022.
  5. Gould, Nicholas IM; Hribar, Mary E.; Nocedal, Jorge (abril de 2001). "Sobre la solución de problemas de programación cuadrática con restricciones de igualdad que surgen en la optimización". SIAM J. Sci. Comput . 23 (4): 1376– 1395. Bibcode : 2001SJSC...23.1376G . CiteSeerX 10.1.1.129.7555 . doi : 10.1137/S1064827598345667 . 
  6. Kozlov, MK; SP Tarasov; Leonid G. Khachiyan (1979). "[Solubilidad polinómica de la programación cuadrática convexa]". Doklady Akademii Nauk SSSR . 248 : 1049-1051 .Traducido en: Matemáticas soviéticas - Doklady . 20 : 1108–1111 .{{cite journal}}: Falta o está vacío |title=( ayuda )
  7. Ye, Yinyu; Tse, Edison (1989-05-01). "Una extensión del algoritmo proyectivo de Karmarkar para la programación cuadrática convexa" . Mathematical Programming . 44 (1): 157– 179. doi : 10.1007/BF01587086 . ISSN 1436-4646 . S2CID 35753865 .  
  8. Kapoor, S; Vaidya, PM (1986-11-01). «Algoritmos rápidos para programación cuadrática convexa y flujos multicommodity» . Actas del decimoctavo simposio anual de la ACM sobre Teoría de la Computación - STOC '86 . Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 147–159 . doi : 10.1145/12130.12145 . ISBN  978-0-89791-193-1. S2CID 18108815 . 
  9. Motzkin, TS; Straus, EG (1965-01-01). "Máximos para grafos y una nueva demostración de un teorema de Turán" . Revista Canadiense de Matemáticas . 17 : 533–540 . doi : 10.4153/CJM-1965-053-6 . ISSN 0008-414X . 
  10. Sahni, S. (1974). "Problemas relacionados con la computación" (PDF) . SIAM Journal on Computing . 3 (4): 262– 279. CiteSeerX 10.1.1.145.8685 . doi : 10.1137/0203021 . 
  11. Pardalos, Panos M.; Vavasis, Stephen A. (1991). "La programación cuadrática con un valor propio negativo es (fuertemente) NP-difícil". Journal of Global Optimization . 1 (1): 15– 22. doi : 10.1007/bf00120662 . S2CID 12602885 . 
  12. Fearnley, John; Goldberg, Paul W.; Hollender, Alexandros; Savani, Rahul (2023). "La complejidad del cálculo de soluciones KKT de programas cuadráticos". arXiv : 2311.13738 [ cs.CC ].
  13. Lazimy, Rafael (1982-12-01). "Programación cuadrática de enteros mixtos". Mathematical Programming . 22 (1): 332– 349. doi : 10.1007/BF01581047 . ISSN 1436-4646 . S2CID 8456219 .  
  14. Propato Marco; Uber James G. (2004-07-01). "Diseño de sistemas de bombeo mediante programación cuadrática de enteros mixtos". Journal of Water Resources Planning and Management . 130 (4): 348– 352. doi : 10.1061/(ASCE)0733-9496(2004)130:4(348) .
  15. Cornuéjols, Gérard; Peña, Javier; Tütüncü, Reha (2018). Métodos de optimización en finanzas (2ª ed.). Cambridge, Reino Unido: Cambridge University Press. págs. 167-168 . ISBN   9781107297340.
  16. Tuy, Hoang (2016), "Optimización polinómica" , en Tuy, Hoang (ed.), Análisis convexo y optimización global , Springer Optimization and Its Applications, vol. 110, Cham: Springer International Publishing, pp. 435–452 , doi : 10.1007/978-3-319-31484-6_12 , ISBN   978-3-319-31484-6, consultado el 16 de diciembre de 2023

Lecturas adicionales

  • Cottle, Richard W.; Pang, Jong-Shi; Stone, Richard E. (1992). El problema de la complementariedad lineal . Ciencias de la Computación y Computación Científica. Boston, MA: Academic Press, Inc. pp.  xxiv+762 pp. ISBN 978-0-12-192350-1MR 1150683 .​ 
  • Garey, Michael R.; Johnson , David S. (1979). Computadoras e intratabilidad: una guía a la teoría de la NP-completitud . WH Freeman. ISBN 978-0-7167-1045-5.A6: MP2, pág. 245.
  • Gould, Nicholas IM; Toint, Philippe L. (2000). "Una bibliografía sobre programación cuadrática" (PDF) . Informe interno del Grupo de Análisis Numérico de RAL 2000-1. Archivado del original (PDF) el 5 de julio de 2017.
  • Una página sobre programación cuadrática. Archivada el 7 de junio de 2011 en la Wayback Machine.
  • Guía de optimización de NEOS: Programación cuadrática
  • Programación cuadrática archivada el 8 de abril de 2023 en Wayback Machine.
  • Programación cúbica y más allá , en la plataforma Stack Exchange de Investigación Operativa.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Quadratic_programming&oldid=1360599264 "