Précédent : Présentation
générale et objectifs Remonter : Projet
OMEGA, Méthodes numériques probabilistes
Suivant : Grands domaines
d'application
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
(avec C=1,442...) comparaisons en moyenne
(et
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 (
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 avec
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).