AccueilđŸ‡«đŸ‡·Chercher

Algorithme de Monte-Carlo

En algorithmique, un algorithme de Monte-Carlo est un algorithme randomisĂ© dont le temps d'exĂ©cution est dĂ©terministe, mais dont le rĂ©sultat peut ĂȘtre incorrect avec une certaine probabilitĂ© (gĂ©nĂ©ralement minime). Autrement dit un algorithme de Monte-Carlo est un algorithme qui utilise une source de hasard, dont le temps de calcul est connu dĂšs le dĂ©part (pas de surprise sur la durĂ©e du calcul), cependant dont la sortie peut ne pas ĂȘtre la rĂ©ponse au problĂšme posĂ©, mais c'est un cas trĂšs rare. L’intĂ©rĂȘt de tels algorithmes est d'avoir une probabilitĂ© d'Ă©chec faible et d'ĂȘtre rapide.

Deux autres types d'algorithmes probabilistes sont la famille des algorithmes de Las Vegas et la famille des algorithmes d'Atlantic City. Les algorithmes de Las Vegas prennent un temps d'exĂ©cution alĂ©atoire, mais produisent toujours une rĂ©ponse correcte. Les algorithmes d'Atlantic City donnent une rĂ©ponse probablement correcte dans un temps d'exĂ©cution probablement rapide. Un algorithme de Monte-Carlo peut ĂȘtre transformĂ© en un algorithme de Las Vegas quand il existe une procĂ©dure capable de vĂ©rifier la correction du rĂ©sultat. En effet, il suffit d'exĂ©cuter l'algorithme de Monte-Carlo jusqu'Ă  lui faire produire une rĂ©ponse correcte.

Accessoirement, le qualificatif Monte-Carlo fait référence à la Principauté de Monaco et à son célÚbre casino appelé Casino de Monte-Carlo, haut lieu des jeux de hasard.

DĂ©finition et intĂ©rĂȘt

Un algorithme de Monte-Carlo a deux caractĂ©ristiques : primo il est randomisĂ©, c'est-Ă -dire qu'il utilise un alĂ©a au cours de son calcul, secundo son temps d'exĂ©cution est dĂ©terministe. Sa nature alĂ©atoire se manifeste dans son rĂ©sultat qui peut ĂȘtre incorrect avec une certaine probabilitĂ© (gĂ©nĂ©ralement minime), mais qui peut-ĂȘtre quantifiĂ©e rigoureusement[1].

Exemple

Le test de primalitĂ© de Solovay-Strassen est un test qui dĂ©termine si un nombre donnĂ© est premier. Il rĂ©pond toujours vrai pour les nombres premiers, tandis que pour les nombres composĂ©s (c'est-Ă -dire non premiers), il rĂ©pond faux avec une probabilitĂ© d'au moins Âœ et vrai avec une probabilitĂ© d'au plus Âœ. Ainsi, les rĂ©ponses faux de l'algorithme sont correctes, alors que les rĂ©ponses vrai sont alĂ©atoires ; autrement dit l'algorithme est biaisĂ© vers le faux.

Biais ou non

Alors que la rĂ©ponse renvoyĂ©e par un algorithme dĂ©terministe est toujours exacte, ce n'est pas le cas pour les algorithmes de Monte-Carlo qui peuvent ne l'ĂȘtre que dans le cas d'un biais. Supposons qu'il s'agisse de rĂ©soudre un problĂšme de dĂ©cision, ces algorithmes sont dits alors soit non biaisĂ©s, soit biaisĂ©s vers le faux, soit biaisĂ©s vers le vrai. Un algorithme de Monte-Carlo biaisĂ© vers le faux est toujours correct quand il retourne faux ; un algorithme biaisĂ© vers le vrai est toujours correct quand il retourne vrai. Quant aux algorithmes de Monte-Carlo non biaisĂ©s, leur rĂ©ponse (vrai ou faux) sera soit incorrecte, soit correcte avec une certaine probabilitĂ© bornĂ©e.

En anglais, on parle de one-sided error et two-sided error[1].

Amplification

Étant donnĂ© un algorithme de Monte-Carlo biaisĂ©, sa probabilitĂ© d'Ă©chec peut ĂȘtre rĂ©duite (et sa probabilitĂ© de succĂšs augmentĂ©e) en l'exĂ©cutant k fois[1]. ConsidĂ©rons Ă  nouveau l'algorithme de Solovay-Strassen qui est biaisĂ© vers le faux. On peut l'exĂ©cuter plusieurs fois lui faisant retourner vrai s'il rĂ©pond vrai lors des k Ă©tapes de l'itĂ©ration et faux autrement. Ainsi, si le nombre est premier, alors la rĂ©ponse est vraiment correcte, et si le nombre est composĂ©, alors la rĂ©ponse est correcte, avec une probabilitĂ© renforcĂ©e au moins 1−(1−œ)k = 1−2−k.

Pour les algorithmes de dĂ©cision de Monte-Carlo non biaisĂ©s, la probabilitĂ© d'erreur peut aussi ĂȘtre rĂ©duite en exĂ©cutant l'algorithme k fois et en retournant la rĂ©ponse qui correspond Ă  la majoritĂ©.

Classes de complexité

La classe de complexitĂ© BPP (pour bounded-error probabilistic polynomial time) dĂ©crit les problĂšmes de dĂ©cision qui peuvent ĂȘtre rĂ©solus par un algorithme de Monte-Carlo non biaisĂ© en temps polynomial, avec une probabilitĂ© bornĂ©e d'erreur[2].

La classe de complexitĂ© RP (pour randomized polynomial time) dĂ©crit les problĂšmes qui peuvent ĂȘtre rĂ©solus avec une probabilitĂ© bornĂ©e d'erreur par un algorithme de Monte-Carlo biaisĂ© : si la bonne rĂ©ponse est faux, l'algorithme le dit, mais il peut rĂ©pondre faux dans des cas oĂč la rĂ©ponse correcte est vrai.

En revanche, la classe de complexitĂ© ZPP (pour zero-error probabilistic polynomial time) dĂ©crit les problĂšmes solubles en temps polynomial par un algorithme de Las Vegas. On a ZPP ⊆ RP ⊆ BPP, mais on ne sait pas si ces classes de complexitĂ© sont mutuellement distinctes. Autrement dit, les algorithmes de Monte-Carlo peuvent avoir de meilleures performances que les algorithmes de Las Vegas, mais cela n'a pas Ă©tĂ© dĂ©montrĂ©.

Une autre classe de complexitĂ© est PP (pour polynomial probabilistic) ; elle dĂ©crit les problĂšmes de dĂ©cision rĂ©solus en temps polynomial par un algorithme de Monte-Carlo qui donne un rĂ©sultat plus prĂ©cis qu'un simple tirage Ă  pile ou face, mais dont la probabilitĂ© d'erreur ne peut ĂȘtre ramenĂ©e significativement en dessous de Âœ.

Exemples

En théorie algorithmique des nombres

Des algorithmes Monte-Carlo notables comprennent le test de primalité de Solovay-Strassen et le test de primalité de Miller-Rabin, et certaines variantes rapides de l'algorithme de Schreier-Sims dans la théorie computationnelle des groupes.

ProblĂšme du voyageur de commerce

La résolution du problÚme du voyageur de commerce est difficile, du fait de la complexité du problÚme, l'emploi de méthodes d'optimisation probabilistes peut s'avérer efficace pour obtenir une approximation de la meilleure solution, en un temps plus court que pour des méthodes déterministes.

Coupe minimum

L'algorithme de Karger est un algorithme de Monte-Carlo pour le problĂšme de la coupe minimum[3] - [1].

Notes et références

  1. (en) Rajeev Motwani et Prabhakar Raghavan, Randomized Algorithms, Cambridge, New York et Melbourne, Cambridge University Press, (réimpr. 1997, 2000), 1re éd., 476 p. (ISBN 978-0-521-47465-8, lire en ligne), chap. 1 (« Introduction »), p. 7-9
  2. (en) Sanjeev Arora et Boaz Barak, Computational Complexity : A Modern Approach, Cambridge University Press, (ISBN 0-521-42426-7), chap. 7 (« Randomized Computation »)
  3. (en) David R. Karger et Clifford Stein, « A new approach to the minimum cut problem », Journal of the ACM, vol. 43, no 4,‎ , p. 601 (DOI 10.1145/234533.234534, lire en ligne)

Bibliographie

  • (en) Rajeev Motwani et Prabhakar Raghavan, Randomized Algorithms, New York, Cambridge University Press, , 476 p. (ISBN 978-0-521-47465-8)
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest et Clifford Stein (trad. de l'anglais), Algorithmique : Cours avec 957 exercices et 158 problĂšmes, Dunod, , 3e Ă©d. (1re Ă©d. 1990), 1188 p. (ISBN 978-2-10-054526-1, BNF 42363501)
  • (en) Kenneth A Berman et Jerome L. Paul, Algorithms : Sequential, Parallel, and Distributed, Boston, Course Technology, , 962 p. (ISBN 978-0-534-42057-4), « Ch 24. Probabilistic and Randomized Algorithms »

Voir aussi

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.