Programación semidefinida

La programación semidefinida (o SDP del inglés.  Programación semidefinida ) es una subsección de la programación convexa , que se ocupa de la optimización de una función objetivo lineal (la función objetivo es una función especificada por el usuario cuyo valor el usuario desea minimizar o maximizar) en el intersección de conos de matrices semidefinidas positivas con espacio afín .

La programación semidefinida es un área relativamente nueva de optimización que está creciendo en interés por varias razones. Muchos problemas prácticos en los campos de la investigación de operaciones y la optimización combinatoria se pueden modelar o aproximar como problemas de programación semidefinidos. En la teoría del control automático, los problemas SDP se utilizan en el contexto de las desigualdades de matrices lineales . Los problemas SDP son, de hecho, un caso especial de programación cónica y pueden resolverse eficientemente mediante el método del punto interior . Todos los problemas de programación lineal se pueden expresar como problemas SDP y, utilizando las jerarquías de problemas SDP, se pueden aproximar las soluciones a los problemas de optimización polinomial. La programación semidefinida se utiliza en la optimización de sistemas complejos . En los últimos años, se han formulado algunos problemas de complejidad de consultas cuánticas en términos de programación semidefinida.

Motivación y definición

Motivaciones iniciales

Un problema de programación lineal es un problema en el que necesita maximizar o minimizar una función objetivo lineal de variables reales en un poliedro . En la programación semidefinida, usamos vectores reales y se nos permite usar el producto escalar de vectores. La condición de no negatividad de las variables reales del problema PL se reemplaza por restricciones de semidefinición en la matriz de variables del problema SDP. En particular, un problema general de programación semidefinida se puede definir como cualquier problema de programación matemática de la forma

bajo condiciones

Formulaciones equivalentes

Se dice que una matriz es semidefinida positiva si es la matriz de Gram de algunos vectores (es decir, si existen vectores tales que para todos ). Si esto es cierto, lo denotaremos como . Tenga en cuenta que hay algunas otras definiciones equivalentes de semidefinición positiva, por ejemplo, las matrices semidefinidas positivas solo tienen valores propios no negativos y tienen una raíz cuadrada semidefinida positiva.

Denote por el espacio de todas las matrices simétricas reales. En este espacio hay un producto interior (donde significa rastro )

Podemos reescribir el problema de programación matemática de la sección anterior en la forma equivalente

bajo condiciones

donde el elemento de la matriz es igual al del apartado anterior, y es una matriz que tiene como elemento de matriz el valor del apartado anterior.

Tenga en cuenta que si agregamos variables adicionales correctamente, esta tarea SDP se puede convertir en

bajo condiciones

Por conveniencia, el problema SDP se puede definir de una forma ligeramente diferente pero equivalente. Por ejemplo, las expresiones lineales que utilizan variables escalares no negativas se pueden agregar a la especificación de la tarea. La tarea sigue siendo SDP, ya que cada variable puede incluirse en la matriz como un elemento diagonal ( para algunos ). Para asegurarse , puede agregar restricciones para todos . Como otro ejemplo, observe que para cualquier matriz semidefinida positiva , existe un conjunto de vectores tal que el elemento de la matriz es igual a, el producto escalar de los vectores y . Por lo tanto, los problemas SDP a menudo se formulan en términos de expresiones lineales de productos escalares de vectores. Dada una solución al problema SDP en forma estándar, los vectores se pueden reconstruir en el tiempo (por ejemplo, usando una descomposición incompleta de la matriz X de Cholesky ).

Teoría de la dualidad

Definiciones

Similar a la programación lineal, si el problema general SDP se da en la forma

bajo condiciones

(problema directo, o P-SDP), definimos el problema semidefinido dual (D-SDP) como

bajo condiciones

Donde para cualesquiera dos matrices y , significa .

Dualidad débil

El teorema de la dualidad débil establece que el SDP primario tiene un valor no menor que el valor del SDP dual. Así, cualquier solución admisible del problema SDP dual limita el valor del SDP directo desde abajo, y viceversa, cualquier valor admisible del problema SDP directo limita el valor del SDP dual desde arriba. Esto sucede porque

donde la última desigualdad refleja el hecho de que ambas matrices son semidefinidas positivas. El valor de esta función a veces se denomina despeje dual.

Fuerte dualidad

Bajo una condición conocida como condición de Slater , los valores de los problemas SDP primal y dual son iguales. Esto se llama dualidad fuerte . A diferencia de los problemas de programación lineal , no todos los problemas SDP tienen dualidad estricta. En el caso general, el valor del problema dual SDP puede ser estrictamente menor que el valor del problema directo.

(i) Suponga que el problema directo (P-SDP) está acotado por abajo y es estrictamente admisible (es decir, existe , tal que , ). Entonces hay una solución óptima para el problema dual (D-SDP) y

(ii) Suponga que el problema dual (D-SDP) está acotado desde arriba y es estrictamente admisible (es decir, para algunos ). Entonces hay una solución óptima para el problema directo (P-SDP) y se cumple la igualdad de (i).

Ejemplos

Ejemplo 1

Considere tres variables aleatorias y . Por definición, sus coeficientes de correlación son válidos si y sólo si

Supongamos que de algunas fuentes (por ejemplo, de datos empíricos o experimentales) sabemos que y . El problema de determinar los valores más pequeños y más grandes se puede escribir como:

minimizar/maximizar bajo condiciones

Aquí aceptamos . El problema se puede formular como un problema SDP. Completamos las desigualdades expandiendo la matriz de variables e introduciendo variables adicionales , por ejemplo

Después de resolver este problema de SDP, obtenemos los valores mínimo y máximo ( y respectivamente).

Ejemplo 2

Considere el problema

minimizar bajo las condiciones

donde se supone que en .

Al introducir una variable adicional , reescribimos el problema en la forma:

minimizar bajo condiciones

En esta formulación, la función objetivo es una función lineal de dos variables ( ).

La primera restricción se puede reescribir como

,

donde matriz es una matriz cuadrada con valores en la diagonal iguales a los elementos del vector .

La segunda restricción se puede escribir como

Definimos la matriz de la siguiente manera

Podemos usar la teoría del complemento de Schur para demostrar que

[una]

El problema de programación semidefinida para este problema será de la forma

minimizar bajo condiciones

Ejemplo 3 (Algoritmo de aproximación Goemans-Williamson MAX CUT)

La programación semidefinida es una herramienta importante para crear algoritmos de aproximación para problemas de maximización NP-hard. El primer algoritmo de aproximación basado en SDP fue propuesto por Michel Goemans y David Williamson [2] . Estudiaron el problema MAX CUT : dado un gráfico G = ( V , E ), se requiere dividir los vértices de V en dos partes de tal manera que se maximice el número de aristas que conectan estas dos partes. El problema se puede considerar como un problema de programación cuadrática entera :

Maximizar sujeto a cualquier .

A menos que P = NP , no podemos resolver este problema de manera eficiente. Sin embargo, Goemans y Williamson describieron un procedimiento de tres pasos para atacar este tipo de problema:

  1. Debilitamos el problema de programación cuadrática entera al problema SDP.
  2. Resolvemos el problema SDP (con cualquier error arbitrariamente pequeño ).
  3. Redondeamos la solución del problema SDP para obtener una solución aproximada del problema original de programación cuadrática entera.

Para el problema MAX CUT , la relajación más natural es

para , donde la maximización se realiza sobre vectores en lugar de variables enteras escalares.

El problema es un problema SDP porque tanto la función objetivo como las restricciones son funciones lineales de los productos escalares de vectores. La solución al problema SDP da un conjunto de vectores unitarios en . Dado que los vectores no son necesariamente colineales, el valor del problema relajado solo puede ser mayor que el valor del problema original de programación cuadrática entera. Se necesita un procedimiento de redondeo final para obtener la división. Goemans y Williamson eligen un hiperplano aleatorio (utilizando una distribución uniforme) a través del origen y dividen los vértices según su ubicación relativa a ese plano. El análisis directo muestra que este procedimiento proporciona el factor de aproximación esperado de 0,87856 - ε. (El valor esperado de un corte es igual a la suma de todas las aristas de las probabilidades de que la arista entre en el corte, y esta expectativa es proporcional al ángulo entre los vectores en los vértices finales de la arista. Si comparamos esta probabilidad con , la expectativa de la relación siempre será al menos 0.87856.) Asumiendo la hipótesis de corrección del juego único , se puede demostrar que el coeficiente de aproximación de esta aproximación es principalmente óptimo.

Desde la aparición del artículo de Goemans y Williamson, los problemas SDP se han aplicado al desarrollo de un gran número de algoritmos de aproximación. Recientemente, Prasad Raghavendra desarrolló un esquema general para problemas de satisfacción de restricciones basado en la hipótesis del juego único [3] .

Algoritmos

Hay varios tipos de algoritmos para resolver problemas SDP. El resultado de estos algoritmos es el valor del problema SDP hasta , que se obtiene en un tiempo que depende polinomialmente del tamaño del problema y .

Métodos de puntos interiores

La mayoría de los sistemas de solución se basan en el método del punto interior (CSDP, SeDuMi, SDPT3, DSDP, SDPA), que es robusto y eficiente para problemas SDP lineales generales. El enfoque tiene un uso limitado por el hecho de que los algoritmos son métodos de segundo orden y requieren matrices grandes (ya menudo densas) para ser memorizadas y descompuestas.

Métodos de primer orden

Los métodos de primer orden para la optimización cónica evitan almacenar y descomponer matrices hessianas grandes y son aplicables a problemas mucho más grandes que los métodos de puntos interiores, a costa de una pérdida de precisión. El método se implementa en el sistema "SCS solver".

El método de la viga

El problema SDP se formula como un problema de optimización no uniforme y se resuelve mediante el método del haz espectral. Este enfoque es muy eficiente para clases particulares de problemas SDP lineales.

Otros

Los algoritmos basados ​​en el método Lagrangiano generalizado (PENSDP) tienen un comportamiento similar a los métodos de puntos interiores y se pueden adaptar para algunos problemas muy grandes. Otros algoritmos utilizan información de bajo nivel y reformulan el problema SDP como un problema de programación no lineal (SPDLR).

Aplicaciones

La programación semidefinida se ha utilizado para encontrar soluciones aproximadas a problemas de optimización combinatoria, como resolver el problema de corte máximo con un factor de aproximación de 0,87856. Los problemas SDP también se utilizan en geometría para definir gráficos de tensegridad y aparecen en la teoría de control como desigualdades de matrices lineales .

Notas

  1. Boyd, Vandenberghe, 1996 .
  2. Goemans, Williamson, 1995 .
  3. Raghavendra, 2008 , pág. 245-254.

Literatura

Enlaces