Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2...

24
A l g o r i t h m e s d e M o n t e C a r l o F a i t u n e e r r e u r d e t e m p s e n t e m p s m a i s t r o u v e l a b o n n e r é p o n s e a v e c u n e g r a n d e p r o b a b i l i t é . E x e m p l e : V é r i f i e r u n p r o d u i t m a t r i c i e l A B C . f o n c t i o n v e r i f ( A , B , C , n ) p o u r j 1 à n f a i r e X j u n i f o r m e ( { 0 , 1 } ) s i X A B X C a l o r s r e t o u r n e r v r a i s i n o n r e t o u r n e r f a u x T e m p s n 2

Transcript of Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2...

Page 1: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 2: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 3: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 4: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 5: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 6: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 7: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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 �

Page 8: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 9: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 10: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 11: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 12: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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)

Page 13: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 14: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 15: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 16: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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)

Page 17: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 18: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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)

Page 19: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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:

Page 20: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 21: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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

Page 22: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 23: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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.

Page 24: Algorithmes de Monte Carlo - UQAC · k mk a i S xi b Z p1 m1/2 p 2 m2/2 p k mk/2 On a alors que a2 b2 modn Fait: La probabilité que a bmodn est au moins 1/2 Conséquense du théorème

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 .