Résolution de programmes semi-définis en temps polynomial

17

Nous savons que les programmes linéaires (LP) peuvent être résolus exactement en temps polynomial en utilisant la méthode ellipsoïde ou une méthode de point intérieur comme l'algorithme de Karmarkar. Certains LP avec un nombre super-polynomial (exponentiel) de variables / contraintes peuvent également être résolus en temps polynomial, à condition que nous puissions concevoir un oracle de séparation temporelle polynomiale pour eux.

Qu'en est-il des programmes semi-définis (SDP)? Quelles classes de SDP peuvent être résolues exactement en temps polynomial? Lorsqu'un SDP ne peut pas être résolu exactement, pouvons-nous toujours concevoir un FPTAS / PTAS pour le résoudre? Quelles sont les conditions techniques dans lesquelles cela peut être fait? Pouvons-nous résoudre un SDP avec un nombre exponentiel de variables / contraintes en temps polynomial, si nous pouvons concevoir un oracle de séparation temporelle polynomiale pour cela?

Peut-on résoudre efficacement les SDP qui surviennent dans les problèmes d'optimisation combinatoire (MAX-CUT, coloration des graphes)? Si nous ne pouvons résoudre que dans un facteur , cela n'aura-t-il pas d'effet sur les algorithmes d'approximation à facteur constant (comme 0,878 pour l'algorithme Goemans-Williamson MAX-CUT)?1+ϵ

Toute bonne référence à ce sujet sera très appréciée.

Arindam Pal
la source
3
En fait, la méthode fonctionne pour la programmation convexe en général
Suresh Venkat
8
Il y a au moins deux raisons pour lesquelles vous ne pouvez pas résoudre un SDP général en temps polynomial. (1) Il existe des SDP dont la solution est de taille exponentielle. (2) Les SDP peuvent coder le problème de la somme des racines carrées, qui n'est pas connu pour être résolu dans le temps polynomial.
Robin Kothari
2
ϵ1/ϵ
8
@SureshVenkat: Imaginons que nous ayons une matrice 2x2 avec des entrées [ab; CD]. Imposer que ceci est semi-défini positif et d = 1. Cela signifie b = c et a> = b ^ 2. Donc b est délimité par la racine carrée de a. Nous pouvons maintenant maximiser la somme de plusieurs de ces b. La valeur optimale sera la somme des racines carrées des a respectifs.
Robin Kothari
2
Ce n'est pas multiplicatif mais additif. Aussi, en.wikipedia.org/wiki/Semidefinite_programming#Algorithms
Suresh Venkat

Réponses:

16

La méthode ellipsoïde et les méthodes de point intérieur peuvent également être étendues pour résoudre les SDP. Vous pouvez vous référer à n'importe quel texte standard sur les SDP pour plus de détails. En voici un:

Programmation semi-définie . Vandenberge et Stephen Boyd, 1996.

Jagadish
la source
Belle référence Jagadish.
Arindam Pal
Belle référence aussi! Merci! Je me demandais quand on disait que l'algorithme polynomial de temps résolvait SDP, les algorithmes se résolvent-ils pour la solution optimale, exactement ou approximativement?
StackExchange pour tous