Aceleraciones polinomiales con algoritmos basados ​​en programación semidefinida


17

Este es un seguimiento de una pregunta reciente de A. Pal: Resolver programas semidefinidos en tiempo polinómico .

Todavía estoy desconcertado sobre el tiempo de ejecución real de los algoritmos que calculan la solución de un programa semidefinido (SDP). Como Robin señaló en su comentario a la pregunta anterior, los SDP no se pueden resolver en tiempo polinómico en general.

Resulta que, si definimos nuestro SDP cuidadosamente e imponemos una condición sobre cuán bien delimitada está la región factible primaria, podemos usar el método elipsoide para dar un límite polinómico en el tiempo necesario para resolver el SDP (ver Sección 3.2 en L. Lovász, Programas semidefinidos y optimización combinatoria ). El límite dado allí es un " tiempo polinomial " genérico y aquí estoy interesado en un límite menos grueso.

La motivación proviene de la comparación de dos algoritmos utilizados para el problema de separabilidad cuántica (el problema real no es relevante aquí, ¡así que no dejes de leer lectores clásicos!). Los algoritmos se basan en una jerarquía de pruebas que se pueden convertir en SDP, y cada prueba en la jerarquía se encuentra en un espacio más grande, es decir, el tamaño del SDP correspondiente es mayor. Los dos algoritmos que quiero comparar difieren en la siguiente compensación: en el primero, para encontrar la solución, necesita subir más pasos de la jerarquía y en el segundo los pasos de la jerarquía son más altos, pero necesita subir menos de ellos. Está claro que en el análisis de esta compensación, es importante un tiempo de ejecución preciso del algoritmo utilizado para resolver el SDP. El análisis de estos algoritmos es realizado por Navascués et al. en arxiv: 0906.2731, donde escriben:

... la complejidad temporal de un SDP con variables y de tamaño de matriz es (con un pequeño costo adicional proveniente de una iteración de algoritmos).metronorteO(metro2norte2)

En otro documento , donde este enfoque del problema se propuso por primera vez, los autores dan el mismo límite, pero usan el término más cauteloso " número de operaciones aritméticas " en lugar de " complejidad de tiempo ".

Mi pregunta es doble:

  • Qué algoritmo / límite son Navascués et al. ¿refiriéndose a?
  • ¿Puedo reemplazar la expresión "tiempo polinomial" en Lovász con algo menos burdo (manteniendo los mismos supuestos)?

1
Tengo entendido que el método elipsoide dio respuestas que estaban dentro del error aditivo en el tiempo polinomial en log ( 1 / ϵ ) . Para la mayoría de los problemas, se podría sospechar que ε = Ω ( 1 / 2 n ) puede ser suficiente. ϵlog(1/ϵ)ϵ=Ω(1/ /2norte)
Suresh Venkat

@SureshVenkat: Eso es correcto, el método elipsoide funciona en el tiempo polinomial en el tamaño de las matrices de entrada, el tamaño de las restricciones y el . El problema es que, para la aplicación que mencioné en la pregunta, decir que solo "polinomio" no es suficiente, necesito un límite más preciso. Iniciar sesión(1/ /ϵ)
Alessandro Cosentino

Respuestas:


12

No estoy familiarizado con los detalles del método elipsoide específicamente para programas semi-definidos, pero incluso para programas lineales , el análisis del método elipsoide es bastante sutil.

  • Primero, uno necesita limitar el número de iteraciones del algoritmo elipsoide ideal . Deja ser el ellispoid utilizado en la iEyoyo iteración del algoritmo elipsoide, y sea su centroide. En el algoritmo ideal, un oráculo de separación / membresía le da un medio espacio h i que contiene el punto óptimo x pero no el centroide c i . El siguiente elipsoide E i + 1 es el elipsoide más pequeño que contiene E ih i . Para cada i , tenemosCyohyoXCyomiyo+1miyohyoyo, dondenes la dimensión. Por lo tanto, dada una partida razonable elipsoide, el número de iteraciones es polinomio ennylog(1/vol(miyo+1)<(1-1norte)vol(miyo)nortenorte . Calcular E i + 1 a partir de E i y h i requiere (groseramente)operaciones aritméticas O ( n 2 ) . Por lo que el número de operaciones aritméticas también es polinomio en n y registro (Iniciar sesión(1/ /ε)miyo+1miyohyoO(norte2)norte .Iniciar sesión(1/ /ε)

  • Sin embargo, algunas de esas operaciones aritméticas son raíces cuadradas. Se deduce que los coeficientes del elipsoide ideal son números irracionales de grado 2 i , por lo que no hay esperanza de calcular realmentemiyo2yo exactamenteen un tiempo razonable. Entonces, en cambio, uno calcula una aproximación externa cercana ˜ E iE i en cada iteración usando aritmética de precisión finita. Grötschel, Lovasz y Schrijver demuestran que si se utiliza (por ejemplo) 10 i bits de precisión en la  i ª iteración, que aún tienen v o l (miyo+1 mi~yomiyo10yoyo , por lo que el número de iteraciones aumenta como máximo un factor constante. Pero ahora cada operación aritmética durante laiteración i (incluyendo las operaciones realizadas por el oráculo de separación) requiere tiempo O ( i polylog i ) .vol(E~i+1)<O(11n)vol(E~i)iO(i polylog i)

En total, el tiempo total del método elipsoide de ejecución es muy áspero el cuadrado del número de operaciones aritméticas. Dado que el número de operaciones aritméticas es polinomio en y log ( 1 / ε ) , también lo es el tiempo de ejecución.nlog(1/ε)


Gracias por la respuesta. Si estoy contando correctamente, esto es lo que tengo (más o menos): (n. de operaciones aritméticas) ×yo=1norte. de iteracionesO(norte2)×O(yopolylogi)nlog(1/ϵ)nn2

Una cosa más: ¿no debería aparecer el número de restricciones en algún lugar del análisis? Además, ¿es esto específico de los programas lineales?
Alessandro Cosentino

1
También debe tener en cuenta el tiempo de ejecución del oráculo de separación; ahí es donde aparece la cantidad de restricciones. Para LP explícitos, el oráculo de separación solo prueba las restricciones de una en una. Para LPs representados implícitamente, es más complicado.
Jeffε
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.