Resolver programas semidefinitos en tiempo polinómico

17

Sabemos que los programas lineales (LP) se pueden resolver exactamente en tiempo polinómico usando el método elipsoide o un método de punto interior como el algoritmo de Karmarkar. Algunos LP con un número de variables / restricciones súper polinomiales (exponenciales) también se pueden resolver en tiempo polinómico, siempre que podamos diseñar un oráculo de separación de tiempo polinómico para ellos.

¿Qué pasa con los programas semidefinitos (SDP)? ¿Qué clases de SDP se pueden resolver exactamente en tiempo polinómico? Cuando un SDP no puede resolverse exactamente, ¿podemos siempre diseñar un FPTAS / PTAS para resolverlo? ¿Cuáles son las condiciones técnicas bajo las cuales esto se puede hacer? ¿Podemos resolver un SDP con un número exponencial de variables / restricciones en tiempo polinómico, si podemos diseñar un oráculo de separación de tiempo polinómico para él?

¿Podemos resolver los SDP que ocurren en problemas de optimización combinatoria (MAX-CUT, coloreado de gráficos) de manera eficiente? Si solo podemos resolver dentro de un factor , ¿no tendrá efecto en los algoritmos de aproximación de factor constante (como 0.878 para el algoritmo MAX-CUT de Goemans-Williamson)?1+ϵ

Cualquier buena referencia sobre esto será muy apreciada.

Arindam Pal
fuente
3
De hecho, el método funciona para la programación convexa en general
Suresh Venkat
8
Hay al menos dos razones por las que no puede resolver un SDP general en tiempo polinómico. (1) Existen SDP cuya solución es de tamaño exponencial. (2) Los SDP pueden codificar la suma del problema de raíces cuadradas, que no se sabe que sea solucionable en el tiempo polinómico.
Robin Kothari
2
@RobinKothari Para los SDP, por lo general, "solucionable en tiempo polinómico" se reemplaza por "obtiene dentro de (aditivo) de OPT en tiempo polinomial en 1 / ϵ " IIRC. ps ¿cómo codifica un SDP la suma de las raíces cuadradas? ϵ1/ /ϵ
Suresh Venkat
8
@SureshVenkat: Digamos que tenemos una matriz de 2x2 con entradas [ab; discos compactos]. Imponga que esto es positivo semidefinido y d = 1. Esto significa b = c y a> = b ^ 2. Entonces b es superior acotado por la raíz cuadrada de a. Ahora podemos maximizar la suma de varios de esos b. El valor óptimo será la suma de las raíces cuadradas de las respectivas a.
Robin Kothari
2
No es multiplicativo sino aditivo. Además, en.wikipedia.org/wiki/Semidefinite_programming#Algorithms
Suresh Venkat

Respuestas:

16

El método elipsoide y los métodos de punto interior también se pueden ampliar para resolver SDP. Puede consultar los textos estándar en los SDP para obtener más detalles. Aquí hay uno:

Programación semidefinida . Vandenberge y Stephen Boyd, 1996.

Jagadish
fuente
Buena referencia Jagadish.
Arindam Pal
Buena referencia también! ¡Gracias! Me preguntaba cuándo decir algoritmo de tiempo polinómico para resolver SDP, ¿están los algoritmos resolviendo la solución óptima, exactamente o aproximadamente?
StackExchange for All