Projet Omega

previous up next contents
Précédent : Présentation générale et objectifs Remonter : Projet OMEGA, Méthodes numériques probabilistes Suivant : Grands domaines d'application



Fondements scientifiques

 

Analyse stochastique des algorithmes



Participants : Philippe Chassaing , Jean-Francois Marckert


D'après Flajolet et Prodinger, le but de l'analyse des algorithmes est la compréhension de la complexité (c'est-à-dire le coût-calcul) des algorithmes. L'évaluation de cette complexité dans le pire des cas a suscité énormément de travaux, mais l'intérêt pour l'analyse en moyenne ou probabiliste va croissant. Le fondateur du domaine est Knuth, qui a consacré l'expression << analyse des algorithmes >> dans les années soixante, et l'a illustré dans son ouvrage << The Art of Computer Programming >>. Ce domaine est très lié aux mathématiques discrètes, à l'analyse combinatoire et à la théorie des probabilités.

Sedgewick et Flajolet ont bien montré que l'analyse des algorithmes conduit souvent à améliorer leur implémentation. Ainsi, l'analyse en moyenne des algorithmes permet de mieux comparer plusieurs algorithmes remplissant la même tâche. Les exemples où l'on a démontré l'optimalité en moyenne d'un algorithme, parmi tous les algorithmes remplissant la même tâche, sont assez rares. Un exemple très classique est la recherche ou l'insertion d'une clé dans une liste rangée de longueur n, en $C\log(n) (1+o(1))$(avec C=1,442...) comparaisons en moyenne (et $\log_2 n$ comparaisons aussi dans le pire des cas). Un autre exemple, plus délicat peut-être, concerne la complexité du tri : comment ranger dans l'ordre une liste désordonnée de n nombres, en effectuant un minimum de comparaisons 2 à 2. Ce dernier problème a été posé par Steinhaus en 1950, et résolu par Ford et Johnson en 1959 ($C n\log(n) (1+o(1))$ comparaisons en moyenne). Il est abondamment traité, souvent comme exemple introductif, dans la plupart des livres d'algorithmique (voir Aho, Hopcroft et Ullman, Cormen, Leiserson et Rivest, Motwani et Raghavan, Reingold, Nivergelt et Deo, Sedgewick et Flajolet).

Dans les problèmes d'optimalité en moyenne, la difficulté principale est souvent de trouver une borne inférieure pour le coût moyen de tous les algorithmes remplissant la même tâche. Les exceptions célèbres sont justement le tri et l'insertion évoqués plus haut : la borne inférieure pour le coût moyen est aussi la borne inférieure bien connue de la profondeur moyenne d'une feuille de l'arbre de décision, ce qui peut aussi être vu comme un argument simple de théorie de l'information. Malheureusement ce type d'argument semble hors sujet dans d'autres problèmes classiques comme le problème de sélection : il s'agit de déterminer le k-ième plus petit nombre d'une liste de n nombres en désordre en faisant le minimum de comparaisons 2 à 2. Cunto et Munro ont fini par prouver en 1984 que le coût moyen optimal est de $n+k+o(n)$ avec $k<n/2$par des arguments ad hoc (pour un intéressant historique de ce problème, qui remonte à Lewis Carroll, et a été étudié par Steinhaus, Rivest, Tarjan, Sobel, Picard entre autres, voir Knuth  [Knu81](tome III, p. 209-219]).

Parmi les résultats d'optimalité en moyenne, citons encore le résultat d'Odlyzko sur la recherche du maximum d'une marche aléatoire et le résultat d'Alonso, Reingold et Schott sur le problème de la majorité. Parmi les problèmes encore ouverts, un des plus célèbre est celui de trouver le nombre moyen de comparaisons minimal nécessaire pour fusionner deux listes bien rangées de n et m nombres respectivement en une liste bien rangée de n+m nombres (voir Knuth).



previous up next contents Précédent : Présentation générale et objectifs Remonter : Projet OMEGA, Méthodes numériques probabilistes Suivant : Grands domaines d'application