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).
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)?
fuente
Respuestas:
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 imiyo yo 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 i ∩ h i . Para cada i , tenemosCyo hyo X∗ Cyo mii + 1 miyo∩ hyo yo , dondenes la dimensión. Por lo tanto, dada una partida razonable elipsoide, el número de iteraciones es polinomio ennylog(1/v o l ( Ei + 1) < ( 1 - 1norte) ⋅ v o l ( Eyo) norte norte . 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 / ε ) mii + 1 miyo hyo O ( n2) 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 realmentemiyo 2yo exactamenteen un tiempo razonable. Entonces, en cambio, uno calcula una aproximación externa cercana ˜ E i ⊃ E 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 (mii + 1 mi~yo⊃ Eyo 10 i yo , 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 ) .v o l ( E~i + 1)<O(1−1n)⋅vol(E~i) i O(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.n log(1/ε)
fuente