Ceci fait suite à une question récente posée par A. Pal: Résolution de programmes semi-définis en temps polynomial .
Je reste perplexe sur le temps d'exécution réel des algorithmes qui calculent la solution d'un programme semi-défini (SDP). Comme Robin l'a souligné dans son commentaire sur la question ci-dessus, les SDP ne peuvent pas être résolus en temps polynomial en général.
Il s'avère que, si nous définissons soigneusement notre SDP et que nous imposons une condition sur la façon dont la région primale réalisable est bien délimitée, nous pouvons utiliser la méthode ellipsoïde pour donner une limite polynomiale sur le temps nécessaire pour résoudre le SDP (voir la section 3.2 in L. Lovász, Programmes semi - définis et optimisation combinatoire ). La borne donnée il y a un " temps polynomial " générique et ici je m'intéresse à une borne moins grossière.
La motivation vient de la comparaison de deux algorithmes utilisés pour le problème de séparabilité quantique (le problème réel n'est pas pertinent ici, alors n'arrêtez pas de lire les lecteurs classiques!). Les algorithmes sont basés sur une hiérarchie de tests qui peuvent être convertis en SDP, et chaque test de la hiérarchie est sur un espace plus grand, c'est-à-dire que la taille du SDP correspondant est plus grande. Les deux algorithmes que je veux comparer diffèrent dans le compromis suivant: dans le premier, pour trouver la solution dont vous avez besoin pour gravir plus de marches de la hiérarchie et dans le second, les marches de la hiérarchie sont plus hautes, mais vous devez grimper moins d'eux. Il est clair que dans l'analyse de ce compromis, un temps d'exécution précis de l'algorithme utilisé pour résoudre le SDP est important. L'analyse de ces algorithmes est réalisée par Navascués et al. à arxiv: 0906.2731, où ils écrivent:
... la complexité temporelle d'un SDP à variables et de taille de matrice n est O ( m 2 n 2 ) (avec un petit surcoût provenant d'une itération d'algorithmes).
Dans un autre article , où cette approche du problème a été proposée pour la première fois, les auteurs donnent la même limite, mais ils utilisent le terme plus prudent " nombre d'opérations arithmétiques " au lieu de " complexité temporelle ".
Ma question est double:
- Quels algorithme / limite sont Navascués et al. se référant à?
- Puis-je remplacer l'expression "temps polynomial" dans Lovász par quelque chose de moins grossier (en gardant les mêmes hypothèses)?
la source
Réponses:
Je ne connais pas les détails de la méthode ellipsoïde spécifiquement pour les programmes semi-définis, mais même pour les programmes linéaires , l'analyse de la méthode ellipsoïde est assez subtile.
Tout d'abord, il faut limiter le nombre d'itérations de l' algorithme ellipsoïde idéal . Soit l'ellispoïde utilisé dans le iEje je ème itération de l'algorithme ellipsoïde, et soit son centroïde. Dans l'algorithme idéal, un oracle de séparation / appartenance vous donne un demi-espace h i qui contient le point optimal x ∗ mais pas le centroïde c i . L'ellipsoïde suivant E i + 1 est le plus petit ellipsoïde contenant E i ∩ h i . Pour chaque i , nous avonscje hje X∗ cje Ei + 1 Eje∩ hje je , oùnest la dimension. Ainsi, étant donné un ellipsoïde de départ raisonnable, le nombre d'itérations est polynomial ennetlog(1/ε). Le calcul deEi+1 àpartir deEiethinécessite (grossièrement)O(n2) desopérations arithmétiques. Ainsi, le nombre d'opérations arithmétiques est également polynomial dansnetlog(v o l ( Ei + 1) < ( 1 - 1n) ⋅ v o l ( Eje) n n Journal( 1 / ε ) Ei + 1 Eje hje O ( n2) n .Journal( 1 / ε )
Cependant, certaines de ces opérations arithmétiques sont des racines carrées! Il s'ensuit que les coefficients de l'ellipsoïde idéal sont des nombres irrationnels de degré 2 i , et il n'y a donc aucun espoir de réellement calculer E i + 1 exactement dans un temps raisonnable. Donc, à la place, on calcule une approximation externe proche ˜ E i ⊃ E i à chaque itération en utilisant l'arithmétique de précision finie. Grötschel, Lovasz et Schrijver prouvent que si l'on utilise (disons) 10 i bits de précision dans la i ème itération, nous avons encore v o l (Eje 2je Eje+ 1 E~je⊃ Eje 10 i je , donc le nombre d'itérations augmente d'au plus un facteur constant. Mais maintenant, chaque opération arithmétique pendant laième itération (y compris les opérations effectuées par l'oracle de séparation) nécessiteO(ipolylogi)temps.v o l ( E~i + 1) < O ( 1 - 1n) ⋅ v o l ( E~je) je O ( i polylog i )
la source