Un nombre surprenant de problèmes ont des réductions assez naturelles de la programmation linéaire (LP). Voir le chapitre 7 de [1] pour des exemples tels que les flux de réseau, la correspondance bipartite, les jeux à somme nulle, les chemins les plus courts, une forme de régression linéaire et même une évaluation de circuit!
Puisque l'évaluation du circuit se réduit à une programmation linéaire, tout problème dans doit avoir une formulation de programmation linéaire. Par conséquent, nous avons un "nouvel" algorithme de tri, via la réduction à un programme linéaire. Donc, mes questions sont
- Quel est le programme linéaire qui triera un tableau de nombres réels?
- Quel est le temps d'exécution de l'algorithme de tri de réduction en LP et de résolution?
- Algorithmes de S. Dasgupta, C. Papadimitriou et U. Vazirani (2006)
Réponses:
La réponse suivante est fondamentalement équivalente à celle que vous connaissez déjà, mais peut sembler un peu moins "magique". D'un autre côté, c'est plus technique, mais je pense que la technique générale "écrire votre problème comme une optimisation sur les matrices de permutation et invoquer Birkhoff-von Neumann" est une bonne méthode à connaître.
Pour une permutation de { 1 , … , n }, définissez la matrice de permutation P σ comme la matrice 0-1 telle que P i j = 1 si j = σ ( i ) et P i j = 0 sinon. C'est simplement la matrice qui permute les coordonnées d'un vecteur x selon σ : si y = P σ x alors y i = x σσ {1,…,n} Pσ Pij=1 j=σ(i) Pij=0 x σ y=Pσx . Je dénoteraiyi=xσ(i) que σ ( x ) à partirmaintenant.y=Pσx σ(x)
Encore une définition: une matrice non négative M est doublement stochastique si chacune de ses lignes et chacune de ses colonnes totalisent 1.n×n M
Et un fait qui est très important dans l'optimisation combinatoire - le théorème de Birkhoff-von Neumann:
Notez qu'une matrice doublement stochastique est définie par les inégalités
∀ j : n ∑ i = 1 M i j = 1 ∀ i , j : M i j ≥ 0
Toutes ces inégalités prises ensemble déterminent un polytopeP
Et voila, vous avez un programme linéaire de tri. Semble idiot pour le tri, mais c'est en fait une méthode puissante d'optimisation.
la source