Précédent : Méthodes probabilistes pour
les équations Remonter : Fondements scientifiques
Suivant : Domaines d'applications
Participants : Philippe Chassaing, Jean-François
Marckert.
D'après Flajolet et Prodinger, le but de l'analyse des algorithmes est la compréhension de la complexité (coût de calcul) des algorithmes. L'évaluation de ce coût 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 sa série monumentale d'ouvrages, « 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.
D'après Sedgewick et Flajolet, l'analyse des algorithmes requiert un examen attentif de ces algorithmes qui conduit souvent à améliorer leur implémentation. Spécifiquement 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. Les exemples les plus classiques sont la recherche ou l'insertion d'une clé dans une liste rangée de longueur n, en 1, 442...log(n)(1 + o(1))comparaisons en moyenne (et log2n comparaisons aussi dans le pire des cas), et, plus délicat peut-être, la complexité du sorting : le problème de ranger dans l'ordre une liste désordonnée de nnombres, en effectuant un minimum de comparaisons 2 à 2. Ce dernier problème a été posé par H. Steinhaus en 1950, et résolu par Ford & Johnson en 1959 ( 1, 442...nlog(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 & Ullman, Cormen, Leiserson & Rivest, Motwani & Raghavan, Reingold, Nivergelt & Deo, Sedgewick & 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 sorting 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 (voir par exemple Aho et al., p. 93), 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 ke plus petit nombre d'une liste de n nombres en désordre, en faisant le minimum de comparaisons 2 à 2. Cunto & Munro ont fini par prouver en 1984 que le coût moyen optimal est de n + k + o(n) (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, Milton Sobel, Picard, entre autres ... , voir Knuth [Knu81, tome III, p. 209-219])
Parmi les résultats d'optimalité en moyenne qu'on connaît, citons encore le résultat d'Odlyzko sur la recherche du maximum d'une marche aléatoire, le résultat d'Alonso et 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).