View
2
Download
0
Category
Preview:
Citation preview
Algorithmes de Monte Carlo
Fait une erreur de temps en temps maistrouve la bonne réponse avec une grandeprobabilité.
Exemple: Vérifier un produit matricielAB C.
fonction verif(A,B,C,n)
pour j 1 à n faire
X j uniforme({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 D 0 alors XD 0 pour tout vecteur X
Si D 0 alors la i ième ligne de D est nonnulle.
Si X et Y sont deux vecteurs identiques sauf àla i-ième position alors XD YD
Pr XD 0 1/2 puisqu’on ne peut avoirXD 0 pour les deux choix possibles de X i.
Remarque: Le fait qu’un algorithme de MCretourne une bonne réponse avec unegrande probabilité ne veut pas dire qu’ilfonctionne correctement sur une majoritéd’entrées.
Exemple: Déterminer si un nombre estpremier.
f onct i on f aux_pr emi er (n)
m 2*3*5*7*11*13
si pgcd(n,m) 1 al or s
r et our ner vr ai
s i non
r et our ner f aux
Correct dans 80% des casPour certain n, cet algorithmeretournetoujours unemauvaise réponse.
Définition: Soit p R t.q. 1/2 p 1.Unalgorithme de MC est p-correct s’ilretourne une bonne réponse avec uneprobabilité p.
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 retournevrai.
Étant donné un problème de décision P, ondéfini l’ensemble LP de la façon suivante:
LP x : P x vrai
Nous nous intéressons aux situations:
biaisé non biaisé
x LP 1/2 1/2
x LP 0 1/2
Amplification déterministe
Étant donné un algorithme de MC, on veutconstruire un algorithme ayant uneprobabilité d’erreur plus petite.
Algorithmes biaisés
Probabilité de succès p 1/2.
Répéter k fois l’algorithme.Retourner vrai si unedes réponses est vraiRetourner faux sinon
Pr erreur 12k
Pr succès 1 12k
Algorithmes non biaisés
Probabilité de succes: 12
Probabilité d’erreur: 12
Répéter k fois l’algorithmesur l’entrée xRetourner vrai si lenombrede vrais est k/2Retourner faux sinon
Pr erreur 12���
k �
Pr succès 1 12���
k �
Inégalité de Chernoff: Soit Z1, ...,Zk t.q.Pr Z i 1 1 Pr Z i 0 p.
Si Zi� 1
k
Z i alors
Pr |Z E Z | k 1
2� 2k/3
E Z k 12 si x LP
E Z k 12 si x LP
Pr erreurPr Z k
2 si x LP
Pr Z k2 si x LP
Pr E Z Z k si x LP
Pr Z E Z k si x LP
Pr |Z E Z | k
1
2 2k/3
12��
k
Pr succès 1 12���
k �
Exemple: Test de primalité
On veut déterminer si un nombre est premier.
Aucun algorithme déterministe efficaceconnu.
Fait 1: Soit n, un nombre premier. Alors,l’équation
x2 1 mod na exactement deux solutions: 1 et -1
Remarque: Cela n’est pas vrai en général(12 52 72 112 mod12
Théorème [Fermat]: Si n est premier alorspour tout b 1,2,...,n 1 on a
bn � 1 1 modn
fonction Fermat(n)
b uniforme(1..n-1)
si (bn � 1 mod n 1 alors retourner vrai
sinon retourner faux
Fait: Il n’existe pas de 0 p 1 tel queFermat(n) est p-correct.
Exemple 1: Si n 561 alors il existe 318valeurs b tel que b560 mod 561 1.
Exemple 2: Si n 651693055693681 alorsFermat(n) retourne une mauvaise réponse99.9965% du temps.
Soit n premier t.q. n 1 2st où t est impair.
Par le théorème de Fermat on a:
bn� 1 b2st 1 modn
bn� 12 b2s� 1t a1 modn
bn� 12s b t as modn
Fait: Le 1 ier a i différent de 1 doit être -1.
Définition: Un nombre est fortementpseudo-premier à la base b s’il satisfait unedes deux conditions suivantes:1. b t 1 modn2. b2rt 1 modn où 0 r s
Fait 1: Si un nombre est premier alors il estfortement pseudo premier.
Fait 2: Il existe des nombres composés quisont fortement pseudo premier.
Lemme: Si n est un nombre impair composéalors n est fortement pseudo-premier à labase b pour au plus 25% de tous les0 b n.
fonction Btest(a,n)
s 0; t n-1
répéter
s s 1; t t/2
jusqu’à (t mod 2 1)
x a t mod n
si x 1 ou x n-1 alors retourner vrai
pour i 1 à s-1 faire
x x2 mod n
si x n-1 alors retourner vrai
retourner faux
fonction MillRab(n)
si n 2 ou n 3 retourner vrai
si n est pair retourner faux
a uniforme(2..n-2)
retourner Btest(a,n)
Analyse
Pr erreur 1/4
Algorithme biaisé.
Temps: n 1 2st
1 exponentiation modulaire: O lgt
s 1 multiplications modulaires:
O s 1 lg2n
Total: O lg3n
Algorithme de Las Vegas
La réponse retournéepar ces algorithmes esttoujours exacte.Un algorithmedeLV peut retourner unmessagedisant qu’ il n’apas pu trouver deréponse.Dans cedernier cas, on execute l’algorithmeuneautre fois.
Un appel typique à un algorithme de LV a laforme:
r éponse LV(x,succès)
où x succès est une variable booléenneindiquant si la fonction a retourné uneréponse correcte.
Factorisation
Étant donné un nombre entier composé n, onveut trouver un facteur non trivial.
f onct i on f act eur (n)
pour i 2 à n f ai r e
si n mod i 0 al or s
r et our ner i
r et our ner 1
Temps: n 10m/2 où m logn
Fait: On ne connait aucun algorithmecapable de factoriser un nombre en tempspolynomial en m.
Algorithme de Dixon
1) Trouver 1 a,b n tels que
a2 b2 modn mais a b modn .
Exemple: n 2537,a 2012,b 1127.
a2 1595n 1629
b2 500n 1629
2) On a a2 b2 a b a b 0 (mod n)
Exemple:20122 11272 2778015 1095 2537
3) a b (mod n) a b 0 (mod n) et
a b (mod n) a b 0 (mod n)
Exemple: 2012 1127 0 2537 885
2012 1127 3139 1 2537 602
4) On a donc n xy tel que
x|a b et y|a b
Exemple: 2537 43 59
602 14 43
885 15 59
5) On a a b kx pour un certain k 0
6) Donc PGCG(a b,n) est un facteur nontrivial de n.
Exemple: PGCD 3139,2537 43
f onct i on Di xon(n,succès)
Si n est pai r al or s
succès vr ai
r et our ner 2
Si non pour i 2 à log3n f ai r e
Si n1/i est un ent i er al or s
succès vr ai
r et our ner n1/i
Tr ouver a,b t .q. a2 b2 modn
Si a b modn al or s succès f aux
Si non
succès vr ai
r et our ner PGCD(a b,n)
Comment trouver a et b t.q. a2 b2 modn ?
Fait: Tout entier n est décomposable enn p1
n1 p2n2 pm
nm où les p i sont desnombre premiers.
Définition: Un entier est k-uniforme si tousses facteurs premiers sont parmi les kpremiers
Exemple: 120 23 3 5 est 3-uniforme.
35 5 7 est 4-uniforme.
3 phases:
Phase 1: Soit k, une valeur entière à êtrespécifiée plus tard.
X uniforme(1,n 1)
Y X2 modn
On vérifie si Y est k-uniforme.
Si oui, on conserve X et la factorisation de Ydans une table.
On répète le processus jusquà ce qu’onobtienne k 1 entiers distincs k-uniforme.
Exemple: n 2537 et k 7
nombres premiers: 2,3,5,7,11,13,17
x1 2455 y1 1650 2 3 52 11
x2 970 y2 2210 2 5 13 17
x3 1105 y3 728 23 7 13
x4 1458 y4 2295 33 5 17
x5 216 y5 990 2 32 5 11
x6 80 y6 1326 2 3 13 17
x7 1844 y7 756 22 33 7
x8 433 y8 2288 24 11 13
Phase 2:
Trouver un sous-ensemble S 1,2,...,k 1tel que
Zi � S
y i p1m1 p2
m2 pkmk
où tous les m i sont pairs.
Exemple:y1y2y4y8 26 34 54 70 112 132 172
Fait: Le problème de trouver un tel ensembleconsiste à trouver une combinaison linéairedu système d’équation précédent.
Phase 3:
Zi � S
y i p1m1 p2
m2 pkmk
ai � S
x i
b Z p1m1/2 p2
m2/2 pkmk/2
On a alors que a2 b2 modn
Fait: La probabilité que a bmodn est aumoins 1/2
Conséquense du théorème suivant.
Théorème: Si n est un nombre composé et aest n’importe quel entier tel quePGCD a,n 1, alors a2 possède au moins4 racine carrées distinctes modulo n.
Analyse
The temps espéré est optimisé en prenantk e
12
lnn ln lnn
L’algorithme de Dixon trouve un facteur nontrivial avec probabilité 1/2 et en temps espéréO e2 lnn ln lnn .
Recommended