Posgrado → Personalización → Programación no lineal ↓
Programación cuadrática
La programación cuadrática (QP) es un tipo especial de problema de optimización matemática. Es un tema importante en el campo de la optimización, que se utiliza ampliamente en muchas otras aplicaciones prácticas como finanzas, aprendizaje automático y sistemas de control. El propósito de esta guía es explicar los conceptos, las matemáticas y las aplicaciones de la programación cuadrática en términos simples.
¿Qué es la programación cuadrática?
La programación cuadrática se ocupa de la optimización (minimización o maximización) de una función objetivo cuadrática sujeta a restricciones lineales. Vamos a desglosarlo:
- La función objetivo cuadrática es una función matemática donde el término con la mayor potencia es el cuadrado. En forma general, se escribe como:
f(x) = 0.5 * x t qx + c t x,dondeQes una matriz simétricanxn,ces un vector dennúmeros reales, yxes un vector de variables. - Restricciones lineales son restricciones que limitan los valores que una variable puede tomar. Su forma general es:
a ≤ b,dondeAes una matriz,xes un vector de variables, ybes un vector de restricciones. Las restricciones pueden ser igualdades o desigualdades.
Representación matemática
La forma estándar de un problema de programación cuadrática es la siguiente:
Minimizar: f(x) = 0.5 * x T Qx + c T x
sujeto a:
axis ≤ b
x = d
x ≥ 0
Aquí:
x Tes la transpuesta del vectorx.Qes una matriz semidefinida positiva que asegura que el problema sea convexo.AyEson matrices que representan restricciones de desigualdad e igualdad, respectivamente.bydson vectores que representan constantes para las restricciones de desigualdad e igualdad, respectivamente.
Comprensión a través de ejemplos simples
Para una mejor comprensión, consideremos un simple problema de programación cuadrática.
Ejemplo 1: Optimización de cartera simple
Imagina que tienes dos opciones de inversión y debes decidir cuánto invertir en cada opción. El objetivo es minimizar el riesgo (varianza) mientras se alcanza un cierto retorno esperado. La función cuadrática representa la varianza (riesgo) del portafolio.
Supongamos que la varianza puede ser representada por la siguiente ecuación cuadrática:
Minimizar: f(x) = 0.5 * (x 1 2 + 2x 1 x 2 + x 2 2 )
sujeto a:
x 1 + x 2 = 1 (la suma de las asignaciones debe ser 1)
x 1 ≥ 0
x 2 ≥ 0
El problema nos pide encontrar los valores de x 1 y x 2 que minimizan el riesgo, siempre que su suma sea 1 y ambos no sean negativos.
Visualización de la programación cuadrática
Observar las funciones cuadráticas y las restricciones puede ayudar a entender el espacio de soluciones de un problema:
En la visualización anterior, el círculo azul claro representa la naturaleza cuadrática de la función. Las líneas rojas representan las restricciones. La región factible (donde pueden existir soluciones) es la intersección de las restricciones y los posibles valores de la función objetivo.
Resolviendo problemas de programación cuadrática
Los problemas de programación cuadrática se pueden resolver utilizando diferentes métodos, dependiendo del tamaño y la complejidad del problema. Algunos de los métodos comunes son los siguientes:
- Métodos analíticos: Adecuados para problemas pequeños, estos métodos implican calcular derivadas y establecerlas a cero para encontrar el punto mínimo.
- Métodos numéricos: Para problemas más grandes, se utilizan métodos numéricos como el método del conjunto activo o el método del punto interior. Estos métodos comienzan buscando dentro de la región factible para encontrar la solución óptima.
- Herramientas de software: Herramientas como MATLAB, CVX y la biblioteca SciPy de Python permiten una configuración y solución sencilla de problemas de QP.
Aplicaciones de la programación cuadrática
La programación cuadrática se utiliza en varias industrias y campos debido a su capacidad para manejar de manera eficiente relaciones cuadráticas y restricciones.
Finanzas
En finanzas, QP se utiliza para la optimización de carteras, donde se minimiza la varianza (o riesgo) de los rendimientos de la cartera, dadas las restricciones como lograr un nivel deseado de retorno.
Aprendizaje automático
En el aprendizaje automático, QP se utiliza en máquinas de vectores de soporte para tareas de clasificación, donde ayuda a encontrar el hiperplano de margen máximo que separa diferentes clases.
Sistema de control
La programación cuadrática también se utiliza en el control predictivo de modelos (MPC, por sus siglas en inglés), donde optimiza las entradas de control sujetas a la dinámica del sistema y restricciones para lograr el rendimiento deseado.
Comprensión matemática profunda
Para adquirir una comprensión más formal de la programación cuadrática, veamos algunos aspectos matemáticos:
Convexidad
La matriz Q asegura que la función cuadrática es convexa. Las funciones convexas tienen la propiedad especial de que cualquier mínimo local es también un mínimo global, lo que simplifica el proceso de resolución de problemas.
Para que una matriz sea semidefinida positiva (PSD), todos sus autovalores deben ser no negativos. Esta propiedad asegura la convexidad.
Problema dual
La programación cuadrática también tiene un problema de dualidad, que es similar a la programación lineal. Resolver el problema de dualidad a menudo proporciona información o soluciones numéricas alternativas.
El dual de un programa cuadrático se conecta con el problema original a través de variables duales y proporciona límites en la función objetivo del problema original.
Conclusión
La programación cuadrática es un método versátil y poderoso para la optimización donde la función objetivo es cuadrática y está sujeta a restricciones lineales. Su capacidad para manejar problemas grandes y complejos lo hace invaluable en muchos campos. Al entender los conceptos básicos, las aplicaciones y las técnicas de solución, uno puede abordar de manera efectiva los desafíos de programación cuadrática en escenarios del mundo real.