Programación cuadrática

Es un caso particular de la programación no lineal, al que se le pueden aplicar técnicas de programación no lineal como: restricciones activas, gradientes conjugados, multiplicadores de Lagrange, condiciones KKT, etc.

Esta es una parte esencial de la programación matemática debido a la gran cantidad de áreas donde se puede aplicar.

Este difiere del problema de programación lineal debido a que su función objetivo es de naturaleza cuadrática, mientras sus restricciones siguen siendo lineales. Es un tipo de problema de programación convexa.

Este tipo de problema se puede expresar de manera general como:

Maximizar f(x)=cx-(1/2)xTQx

sujeto a:

Ax≤b

x≥0

Donde c es un vector renglón, x y b son vectores columna. Q y A son matrices y el superíndice T denota la traspuesta. Las qij (elementos de Q) son constantes dadas tales que qij=qji (Que es la razón para que aparezca el factor ½ en la función objetivo). Al realizar las multiplicaciones entre vectores y matrices indicadas, la función objetivo se expresa en términos de estas qij, la cj (Elementos de c) y las variables como sigue:

Si i=j en esta doble suma, entonces xixj=xj2, así (-1/2)qjj es el coeficiente de xj2. Si i≠j entonces (-1/2)(qijxixj+qjixjxi)=-qijxixj, de manera que –qij es el coeficiente total del producto de xi y xj.

Si la matriz Q es convexa, y las restricciones son lineales, las condiciones KKT son suficientes y necesarias para encontrar el óptimo de la función.

### Método de Wolfe

Solo hay que resolver las condiciones de KKT para encontrar el óptimo como un problema de programación lineal.

Al aplicar las condiciones KKT a un problema de programación cuadrática, surgen ciertas restricciones de complementariedad entre las variables de decisión, multiplicadores de Lagrange y holgura, las cuales se organizan en pares, donde solo una de las dos variables pareadas puede ser igual a 0. Para problemas es los cuales no se puede obtener una solución de manera gráfica, se usa el método simplex modificado.

### Método simplex modificado

El método simplex modificado explota el hecho importante de que, con excepción de la restricción de complementariedad, las condiciones KKT que se obtienen del problemas que son expresadas de forma conveniente, no son otra cosa que condiciones de programación lineal. Lo que es más la restricción de complementariedad sencillamente implica que no es permisible que las dos variables complementarias de un par dado sean variables básicas (las únicas variables > 0) al considerar soluciones básicas factibles (no degeneradas). Por tanto, el problema se reduce a encontrar una solución inicial básica factible para cualquier problema de programación lineal con esta restricción, sujeta a la restricción adicional sobre la identidad de las variables básicas. (Esta solución inicial básica factible puede ser la única solución factible en este caso).

Regla de entrada restringida: cuando se elige la variable entrante, se excluye de las posibilidades cualquier variable no básica cuya variable complementaria sea básica; la elección debe hacerse entre las variables no básicas , según el criterio normal del método simplex, es decir tanto la variable entrante como su variable complementaria deben ser no básicas.

Como se agregan variables artificiales a las restricciones lineales obtenidas al aplicar las condiciones KKT, se debe usar el método simplex bifásico. Sin embargo, cuando se obtiene una solución óptima x\*, µ\*, y\*, v\* z1=0,…,zn=0 para la primera fase del problema, x\* es la solución óptima deseada para el problema original de programación cuadrática, por lo que la segunda fase del método no se necesita.

### Algoritmo

Inicio

Se ingresa la función objetivo f(x) y el conjunto de restricciones gi(x)

Se verifica que la función objetivo f(x) y el conjunto de restricciones gi(x) sean diferenciables:

* Si son diferenciables, se pasa al siguiente paso
* Sino, se detiene el algoritmo

Se evalúa si la función objetivo es cuadrática

* Si es cuadrática, continuamos al siguiente paso
* Sino, se detiene el algoritmo

Se verifica que el conjunto gi(x) sea un conjunto de restricciones lineales

* Si es así, continuamos al siguiente paso
* Sino, se detiene el algoritmo

Se evalúa la concavidad o convexidad de la función objetivo para asegurar su optimalidad

Maximizando

* Si f(x) es cóncava, se asegura la optimalidad
* Si f(x) es convexa, no se asegura la optimalidad del problema.

Minimizando

* Si f(x) es convexa, se asegura la optimalidad
* Si f(x) es cóncava, no se asegura la optimalidad del problema

Se aplican las condiciones KKT a la función objetivo f(x) y el conjunto de restricciones gi(x) para asegurar la factibilidad de la solución utilizando los multiplicadores de Lagrange generalizados.

Se evalúan las restricciones KKT resultantes

Si estas se pueden resolver gráficamente, se da la solución y termina el algoritmo

Sino se pasa al siguiente paso

Se transforma el problema a uno equivalente de programación lineal, tomando en cuenta las restricciones de complementariedad.

Se resuelve el problema usando el método simplex bifásico modificado, tomando en cuenta la condición de entrada restringida.

Una vez terminada la primera fase del algoritmo simplex bifásico, se obtiene el punto óptimo del modelo cuadrático original.

Fin

### Caso práctico

   Resuelva el siguiente problema de programación cuadrática:

Los datos y las variables definitivas de forma matricial quedan de la siguiente manera:

Como se puede observar, la matriz Q es positiva y definida, por lo tanto las condiciones KKT son necesarias y suficientes para obtener un punto óptimo global.

Las restricciones lineales correspondientes quedan de la siguiente manera:

2x1+µ1+ µ2-y1=8

8x2+µ1-y2=16

x1+x2+ v1=5

x1+v2=3

Para obtener un problema de programación lineal apropiado, se agregan variables artificiales a cada restricción y obtenemos el modelo para la primera fase del método simplex bifásico.

Minimizar W=a1+a2+a3+a4

Sujeto a:

2x1+µ1+ µ2-y1+ a1=8

8x2+µ1-y2+ a2=16

x1+x2+ v1+ a3=5

x1+v2+ a4=3

x1,x2 y1,y2,v1,v2 µ1,µ2,a1,a2,a3,a4≥0

x1y1+x2y2+ v1µ1+v2µ2=0

A continuación se presentan los cálculos realizados usando el algoritmo simplex modificado.

### Véase También

Toma de decisiones bajo certidumbre

Programación dinámica determinista

Programación lineal

Condiciones de Karush-Kuhn-Tucker (KKT)

Método de la ruta crítica - CPM (Critical Path Method)

Toma de decisiones bajo incertidumbre

## Referencias

Hillier, F y Lieberman, G. (s/f). Investigación de operaciones.

Taha, H. (2012) Investigación de operaciones