Algorithmes de Monte Carlo
Fait une erreur de temps en temps mais
trouve la bonne réponse avec une grande
probabilité.
Exemple: Vérifier un produit matriciel
AB C.
fonction verif(A,B,C,n)
pour j1ànfaire
Xjuniforme({0,1})
si XA B XC alors retourner vrai
sinon retourner faux
Temps n2
Analyse: Montrons que Pr erreur 1/2
D AB C
Si D0alors XD 0pour tout vecteur X
Si D0alors la ime ligne de D est non
nulle.
Si Xet Ysont deux vecteurs identiques sauf à
la i-ième position alors XD YD
Pr XD 0 1/2 puisqu’on ne peut avoir
XD 0pour les deux choix possibles de Xi.
Remarque: Le fait qu’un algorithme de MC
retourne une bonne réponse avec une
grande probabilité ne veut pas dire qu’il
fonctionne correctement sur une majorité
d’entrées.
Exemple: Déterminer si un nombre est
premier.
fonction faux_premier(n)
m2*3*5*7*11*13
si pgcd(n,m)1 alors
retourner vrai
sinon
retourner faux
Correct dans 80% des cas
Pour certain n, cet algorithme retourne
toujours une mauvaise réponse.
Définition: Soit p R t.q. 1/2 p1.Un
algorithme de MC est p-correct s’il
retourne une bonne réponse avec une
probabilip.
Problèmes de décision: réponse vrai ou faux.
Définition: Un algorithme de MC est biaisé
s’il est toujours correct lorsqu’il retourne
vrai.
Étant donné un problème de décision P, on
défini l’ensemble LPde la façon suivante:
LPx:P x vrai
Nous nous intéressons aux situations:
biaisé non biaisé
x LP1/2 1/2
x LP0 1/2
Amplification déterministe
Étant donné un algorithme de MC, on veut
construire un algorithme ayant une
probabilité d’erreur plus petite.
Algorithmes biaisés
Probabilité de succès p1/2.
Répéter kfois l’algorithme.
Retourner vrai si une des réponses est vrai
Retourner faux sinon
Pr erreur 1
2k
Pr succès 11
2k
1 / 24 100%