Complexité de l'algorithme simplex

36

Quelle est la limite supérieure de l'algorithme simplex pour la recherche d'une solution à un programme linéaire?

Comment pourrais-je trouver une preuve pour un tel cas? Il semble que le pire des cas soit si chaque sommet doit être visité, c’est-à-dire . Cependant, dans la pratique, l’algorithme simplex sera exécuté beaucoup plus rapidement que cela pour des problèmes plus courants.O(2n)

Comment puis-je raisonner sur la complexité moyenne d'un problème résolu par cette méthode?

Toute information ou référence est grandement appréciée!

navette87
la source
5
Notez que, comme le dit mashca dans une réponse , nous n'avons pas vraiment «l'algorithme simplex». Il existe de nombreux algorithmes simplex différents en fonction du choix d'une règle pivotante.
Tsuyoshi Ito
2
Un cube de dimension a sommets, et il en est ainsi si une limite supérieure pour toute variante simplex sur (par exemple, Klee-Minty) des cubes. Cependant, il existe des polyèdres de dimension avec facettes, tels que des polytopes double cycliques, ayant plus de sommets, de sorte est pas une limite supérieure de immédiat pour le temps d' exécution de la méthode simplex de matrices de contraintes carrés général. n2nn2n2n2n
Rahul Savani

Réponses:

72

L'algorithme simplex visite effectivement tous les sommets dans le pire des cas ( Klee & Minty 1972 ), ce qui s'avère être vrai pour toute règle de pivot déterministe. Cependant, dans un document historique utilisant une analyse lissée, Spielman et Teng (2001) ont montré que lorsque les entrées de l’algorithme sont légèrement perturbées de manière aléatoire, la durée de fonctionnement attendue de l’algorithme simplex est polynomiale pour toutes les entrées. la méthode du simplex résoudra efficacement tous les problèmes, qu'il s'agisse d'un problème «proche», qui couvre pratiquement tous les programmes linéaires du monde réel que vous souhaitez résoudre. Par la suite, Kelner et Spielman (2006) ont présenté2n Un algorithme simplex temps aléatoire polynomial qui fonctionne vraiment sur toutes les entrées, même les mauvaises pour l'algorithme simplex d'origine.

Lev Reyzin
la source
36

Comme Lev dit, dans le pire des cas , les visites de l' algorithme tous les 2 sommets où est le nombre de variables. Cependant, les performances de l'algorithme simplex peuvent également dépendre fortement de la règle de pivot spécifique utilisée. Autant que je sache, la question de savoir s'il existe une règle de pivot déterministe spécifique avec un temps d'exécution sous-exponentiel dans le cas le plus défavorable reste une question ouverte. De nombreux candidats ont été écartés par des résultats inférieurs. Récemment, Friedmann, Hansen et Zwick ont également montré les premières limites inférieures non polynomiales pour certaines règles de pivot aléatoires naturelles avec quelques corrections apportées ultérieurement .

Cependant, au résultat de l'analyse lissée mentionné par Lev: Suite à la présentation de l'analyse lissée par Spielman et Tengs, Vershynin a encore amélioré ses limites en 2006. Il a montré que la durée de fonctionnement attendue sur des instances légèrement perturbées n'est que poly-logarithmique contraintes n , au lieu de n86 .

Matthias
la source
4
et comme JeffE l'a souligné dans une question différente ( cstheory.stackexchange.com/questions/2149/… ), la meilleure méthode sous-exponentielle actuelle est une sorte de simplexe double.
Suresh Venkat
Le lien vers le papier Vershynin est mort.
kutschkem
8

Pour obtenir des informations sur l'analyse des cas pires et moyens de la méthode simplex, vous devez lire "Analyse lissée: Pourquoi l'algorithme simplex prend généralement le temps polynomial". par Spielman et Teng.

Christina Boucher
la source
3

La section 8.6, Optimisation combinatoire de Papadimitriou & Steiglitz, explique pourquoi simplex ne fonctionne pas en temps polynomial, plutôt que pourquoi elle est exponentielle. Elle montre que Simplex n'est pas un algorithme à temps polynomial.

hyperboreean
la source
1

=200

GLPK Simplex Optimizer, v4.65
200 rows, 200 columns, 20100 non-zeros
Preprocessing...
199 rows, 200 columns, 20099 non-zeros
Scaling...
 A: min|aij| =  1.000e+00  max|aij| =  1.607e+60  ratio =  1.607e+60
...
Constructing initial basis...
Size of triangular part is 199
*     0: obj =   0.000000000e+00 inf =   0.000e+00 (200)
*     1: obj = -6.223015278e+139 inf =   0.000e+00 (0)
OPTIMAL LP SOLUTION FOUND
Time used:   0.0 secs
Memory used: 3.4 Mb

Quelqu'un peut-il suggérer d'autres moyens de construire des problèmes difficiles pour la méthode simplex, lents mais non liés à la mémoire?

Ajouté: Les carrés latins appelés matrices de 3d-permutation semblent avoir beaucoup de sommets - combien?
La théorie et la pratique sont plus proches théoriquement que pratiques.

Denis
la source
-1

L' algorithme Simplex d' origine peut diverger; il passe sur certaines instances. Par conséquent, aucune liaison générale. D'autres réponses vous apportent des réponses pour les diverses modifications de l'algorithme Simplex.

MdAyq7
la source