Analyse lisse d'algorithme
En informatique théorique, l'analyse lisse d'algorithme (smoothed analysis) est une maniÚre de mesurer la complexité d'un algorithme, c'est-à -dire ses performances. Elle complÚte et améliore les mesures classiques de complexité : la complexité dans le pire des cas, la complexité en moyenne et la complexité amortie. Elle a été inventée dans les années 2000 par Daniel Spielman et Shang-Hua Teng.
Motivations pour une nouvelle mesure de complexité
L'introduction de cette nouvelle mesure de complexité a été motivée, d'une part par l'existence de certains algorithmes fonctionnant trÚs bien en pratique mais dont l'analyse dans le pire des cas ne montrait pas l'efficacité, et d'autre part par la difficulté de l'analyse en moyenne en général.
Principe
Le principe de l'analyse lisse est de mesurer les performances de l'algorithme sur les pires cas, mais avec une légÚre perturbation des instances. On calcule donc une espérance de performance. D'une certaine maniÚre, c'est une méthode « locale »[1].
Plus précisément, on ajoute un bruit gaussien aux entrées, c'est-à -dire une variation aléatoire des données qui suit une loi normale. La complexité mesurée dépend alors de deux paramÚtres : la taille de l'entrée mais aussi l'écart-type de la gaussienne utilisée.
Si l'analyse lisse annonce pour un algorithme de bonnes performances parmi l'espace des valeurs centrées autour d'une donnée en ajoutant du bruit (gaussien) à cette donnée, cela signifie que, dans la pratique, il devrait y avoir aussi de bonnes performances pour cet algorithme dans tous les cas.
Comparaison avec les autres analyses de complexité
Conceptuellement, l'analyse lisse se place entre l'analyse de la complexitĂ© dans le pire cas, puisque l'on sâintĂ©resse aux pires performances, et l'analyse de la complexitĂ© moyenne, puisque l'on considĂšre une perturbation alĂ©atoire.
Cette mĂ©thode ne peut pas toujours ĂȘtre facilement mise en pratique : il faut pouvoir dĂ©finir une perturbation gaussienne, ce qui est assez naturel pour le cas de l'optimisation linĂ©aire par exemple, mais l'est beaucoup moins pour d'autres problĂšmes plus combinatoires.
Applications
Le cas du simplexe
L'une des applications majeures de l'analyse lisse est une démonstration de l'efficacité du simplexe, un algorithme utilisé en optimisation linéaire et connu pour son efficacité pratique et pour sa complexité exponentielle dans le pire cas. Il a été démontré que la complexité lisse du simplexe est polynomiale (Spielman et Teng 2004).
Plus précisément, un problÚme d'optimisation linéaire s'écrit sous la forme :
On sâintĂ©resse alors Ă des instances du problĂšme de la forme
oĂč la matrice et le vecteur sont les rĂ©sultats d'une perturbation gaussienne de et , d'Ă©cart-type .
Le maximum sur , , et , de l'espérance du temps de calcul du simplexe[2] sur et le vecteur , est polynomiale en la taille de et en .
Il avait été démontré précédemment que le simplexe a une complexité polynomiale en espérance (pour plusieurs distributions naturelles des instances)[3].
Autres applications
L'analyse lisse a entre autres été utilisée dans les domaines de l'apprentissage automatique (par exemple pour le problÚme des k-moyennes[4] et dans le cadre de l'apprentissage PAC[5]) et de l'exploration de données[6].
En algorithmique plus classique elle a permis une nouvelle approche de certains algorithmes connus, comme le pivot de Gauss[7] ou le tri rapide[8] - [9].
Histoire
L'analyse lisse a été inventée en 2000 par Daniel Spielman et Shang-Hua Teng (Spielman et Teng 2004). Pour cela, ils ont reçu le prestigieux prix Gödel 2008[10] et le prix Fulkerson 2009. Spielman a aussi reçu le prix Nevanlinna en 2010, pour ses travaux sur l'analyse lisse[11].
Le nom smoothed analysis a été proposé par Alan Edelman[12] - [13].
Bibliographie
Articles
- Daniel A. Spielman et Shang-Hua Teng, « Smoothed analysis of algorithms: Why the simplex algorithm usually takes polynomial time », Journal of the ACM, vol. 51, no 3,â , p. 385â463 (lire en ligne)
- Daniel A. Spielman et Shang-Hua Teng, « Smoothed analysis: an attempt to explain the behavior of algorithms in practice », Communications of the ACM, vol. 52, no 10,â , p. 76â84 (lire en ligne)
- (en) David Arthur, Bodo Manthey et Heiko Roglin, « k-Means Has Polynomial Smoothed Complexity », dans Proceedings of the 2009 50th Annual IEEE Symposium on Foundations of Computer Science, IEEE Computer Society, (lire en ligne), p. 405--414
- Cyril Banderier, Rene Beier et Kurt Mehlhorn, « Smoothed analysis of three combinatorial problems », Lecture notes in computer science,â , p. 198-207 (lire en ligne)
- Arvind Sankar, Daniel Spielman et Shang-Hua Teng, « Smoothed Analysis of the Condition Numbers and Growth Factors of Matrices », SIAM J. Matrix Analysis Applications, vol. 28, no 2,â , p. 446-476
- (en) Adam Tauman Kalai, Alex Samorodnitsky et Shang-Hua Teng, « Learning and smoothed analysis », dans Foundations of Computer Science, 2009. FOCS'09. 50th Annual IEEE Symposium on, IEEE Computer Society, , p. 395--404
Vulgarisation
- Ătienne Ghys, « Des Ă©vĂ©nements rares... », Images des MathĂ©matiques,â (lire en ligne)
Notes et références
- (Ghys 2010)
- Plus précisément de la version appelée two-phase shadow vertex simplex method.
- Voir les références dans l'introduction de (Spielman et Teng 2004).
- Voir (Arthur, Manthey et Roglin 2009)
- (Kalai, Samorodnitsky et Teng 2009)
- (Spielman et Teng 2009)
- (Sankar, Spielman et Teng 2006) : analyse numérique du pivot de Gauss
- (Banderier, Beier et Mehlhorn 2003)
- Commentaire de Daniel Spielman sur l'analyse lisse du tri rapide.
- (en) Ian Parberry, « Prix Gödel 2008 », Special Interest Group on Algorithms and Computation Theory
- (en) « Rolf Nevanlinna Prize â Daniel Spielman », ICM 2010
- (Spielman et Teng 2009) section Acknowledgments
- La traduction de smoothed analysis par analyse lisse provient notamment du billet d'Ătienne Ghys sur le prix Nevanlina 2010 (Ghys 2010).