Algorithmes Probabilistes COMPLEX - PolSys

publicité
Algorithmes Probabilistes
COMPLEX
Ludovic Perret
Université Pierre et Marie Curie (Paris VI)
[email protected]
Introduction
Algorithme
Il retourne toujours une solution correcte, et
pour une même entrée, il retourne toujours la même réponse (et
toujours avec la même complexité.
Introduction
Algorithme Probabiliste
Pour une même entrée, l’algorithme ne
retourne pas toujours la même réponse (et
pas toujours avec la même complexité).
la sortie n’est pas forcément correcte.
Introduction
Las-Vegas
Définition
Un algorithme de type Las-Vegas est un algorithme probabiliste qui
retourne toujours un résultat correct.
Le temps d’exécution peut varier ; la complexité d’un algorithme de
Las-Vegas est une variable aléatoire.
QuickSort avec pivot aléatoire : Θ(n2 ) dans le
pire cas, Θ(n log n) en moyenne.
Introduction
Monte-Carlo
Définition
Un algorithme de type Monte-Carlo est un algorithme probabiliste
qui termine toujours en temps polynomial.
Le résultat n’est pas toujours correct, mais on contrôle la
probabilité d’erreur.
Introduction
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Tests de Primalité
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Tests de Primalité
Motivation
Contexte
Cryptographie à clef publique ≡ fonction à sens unique avec trappe.
Problème difficile (dans NP).
Tests de Primalité
Motivation
Contexte
Cryptographie à clef publique ≡ fonction à sens unique avec trappe.
Problème difficile (dans NP).
FACT
Entrée : un entier N ∈ N∗ .
Question : trouver un diviseur
non-trivial p de N.
Génération de Grands Premiers
π(N) = {n ∈ [1 . . . , N] | n premier}.
π(N) ∼
N
.
log(N)
Tests de Primalité
Primalité
PREMIER
Entrée : un entier N ∈ N∗ .
Question : N est-il premier ?
Historique
PREMIER ∈ NP ∩ coNP.
Tests de Primalité
Primalité
PREMIER
Entrée : un entier N ∈ N∗ .
Question : N est-il premier ?
Historique
PREMIER ∈ NP ∩ coNP.
Tests de primalité probabilistes.
Si TestPREMIER(N) retourne
composé, alors N est
toujours composé.
Si TestPREMIER(N) retourne
premier, alors N est peut
être premier.
Tests de Primalité
Primalité
PREMIER
Entrée : un entier N ∈ N∗ .
Question : N est-il premier ?
Historique
PREMIER ∈ NP ∩ coNP.
Tests de primalité probabilistes.
Si TestPREMIER(N) retourne
composé, alors N est
toujours composé.
Si TestPREMIER(N) retourne
premier, alors N est peut
être premier.
Algorithme déterministe en
O(log(N)15/2+ ), pour > 0.
M. Agrawal, N. Kayal, N.
Saxena.
“PRIMES is in P” .
Annals of Mathematis,
2004.
Tests de Primalité
Rappels
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Tests de Primalité
Rappels
Éléments inversibles
Theorem
Soit x ∈ ZN , alors x est inversible modulo N si et seulement si
pgcd(x, N) = 1.
Définition
L’ensemble des éléments inversibles modulo N est noté Z×
N.
Calcul de l’inverse modulaire
Il existe (u, v ) t.q. u · x + v · N = pgcd(x, N) = 1, c’est à dire :
u·x ≡1
mod N.
Calculer l’inverse de x, c’est donc calculer u (et v ).
On utilise l’algorithme d’Euclide étendu.
Tests de Primalité
Rappels
Fonction ϕ d’Euler
Ordre de Z×
N
Si N est premier alors Z×
N = ZN \ {0}.
#Z×
N =N −1
Si N n’est pas premier alors
Z×
N 6= ZN \ {0}
#Z×
N =???
Tests de Primalité
Rappels
Fonction ϕ d’Euler
Définition
Pour un entier N :
ϕ(N) = #{x ∈ [1, . . . N−1] | pgcd(x, N) = 1}.
Calcul de ϕ
p est premier, ϕ(p) = p − 1.
Si p et q sont relativement premiers alors
ϕ(pq) = ϕ(p)ϕ(q)
Tests de Primalité
Rappels
Fonction ϕ d’Euler
Theorem (Euler)
Soit N ∈ N∗ . Alors, pour tout entier a tel que
pgcd(a, N) = 1 :
aϕ(N) ≡ 1 mod N.
Tests de Primalité
Rappels
Rappels Probabilité
Soient deux événements A et B.
Pr(A ∪ B) = Pr(A) + Pr(B) − P(A ∩ B).
Soient deux événements A et B. La probabilité conditionnel de
l’événement “A sachant B” est :
Pr(A|B) =
Pr(A ∩ B)
.
Pr(B)
Tests de Primalité
Test de Fermat
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Tests de Primalité
Test de Fermat
Test de Fermat – (I)
Principe Général des Tests
Condition calculatoirement facile à vérifier qui caractérise les premiers.
+ Test probabiliste ≡ condition nécessaire.
Tests de Primalité
Test de Fermat
Test de Fermat – (I)
Principe Général des Tests
Condition calculatoirement facile à vérifier qui caractérise les premiers.
+ Test probabiliste ≡ condition nécessaire.
+ Test déterministe AKS ≡ condition nécessaire et suffisante.
Theorem (Fermat)
Soit N un premier. Alors, pour tout entier a tel que pgcd(a, N) = 1 :
aN−1 ≡ 1 mod N.
Tests de Primalité
Test de Fermat
Test de Fermat – (I)
Principe Général des Tests
Condition calculatoirement facile à vérifier qui caractérise les premiers.
+ Test probabiliste ≡ condition nécessaire.
+ Test déterministe AKS ≡ condition nécessaire et suffisante.
Theorem (Fermat)
Soit N un premier. Alors, pour tout entier a tel que pgcd(a, N) = 1 :
aN−1 ≡ 1 mod N.
Soit a, 1 < a < N tel que pgcd(a, N) = 1 et aN−1 6≡ 1 mod N alors N
est composé (a est un témoin de Fermat).
Tests de Primalité
Test de Fermat
Test de Fermat – (I)
Principe Général des Tests
Condition calculatoirement facile à vérifier qui caractérise les premiers.
+ Test probabiliste ≡ condition nécessaire.
+ Test déterministe AKS ≡ condition nécessaire et suffisante.
Theorem (Fermat)
Soit N un premier. Alors, pour tout entier a tel que pgcd(a, N) = 1 :
aN−1 ≡ 1 mod N.
Soit a, 1 < a < N tel que pgcd(a, N) = 1 et aN−1 6≡ 1 mod N alors N
est composé (a est un témoin de Fermat).
Soient N un entier impair composé et a, 1 < a < N relativement
premier avec N. Alors, N est pseudo-premier en base a si :
aN−1 ≡ 1 mod N.
Tests de Primalité
Test de Fermat
Test de Fermat – (II)
TestFermat(N)
Choisir aléatoirement a ∈ {2, . . . , N − 1}
Calculer Reste ≡ aN−1 mod N
Si Reste 6= 1 mod N alors retourner composé.
Retourner premier
Tests de Primalité
Test de Fermat
Test de Fermat – (II)
TestFermat(N)
Choisir aléatoirement a ∈ {2, . . . , N − 1}
Calculer Reste ≡ aN−1 mod N
Si Reste 6= 1 mod N alors retourner composé.
Retourner premier
Complexité
O log3 (N) .
Tests de Primalité
Test de Fermat
Test de Fermat – (II)
TestFermat(N)
Choisir aléatoirement a ∈ {2, . . . , N − 1}
Calculer Reste ≡ aN−1 mod N
Si Reste 6= 1 mod N alors retourner composé.
Retourner premier
Caractéristiques
Si TestFermat(N, t) retourne composé alors N n’est pas premier
(réciproque du théorème de Fermat).
Si TestFermat(N, t) retourne premier, alors N est peut être premier
(le théorème de Fermat n’est pas une équivalence).
L’algorithme échoue pour les a tels que N est pseudo-premier en base a
(par exemple, 341 = 11 · 31 pour a = 2).
Tests de Primalité
Test de Fermat
Test de Fermat – (II)
Nombres de Carmichaël
Un nombre de Carmichaël est un entier N qui ∀a ∈ {2, . . . , N − 1} est
pseudo-premier en base a.
TestFermat(N) échoue si N est un nombre Carmichaël
Le plus petit nombre de Carmichaël est 561 = 3 · 11 · 17.
Tests de Primalité
Test de Fermat
Test de Fermat – (II)
Nombres de Carmichaël
Un nombre de Carmichaël est un entier N qui ∀a ∈ {2, . . . , N − 1} est
pseudo-premier en base a.
TestFermat(N) échoue si N est un nombre Carmichaël
Le plus petit nombre de Carmichaël est 561 = 3 · 11 · 17.
Densité des Nombres de Carmichaël [Harman, 2002]
Soit C (N) le nombre d’entiers de Carmichaël ≤ N, alors ∃ β > 0.33 :
C (N) > N β , pour N “suffissament” grand.
+ C (1014 ) = 44706, et d1014·0.33 e = 41687.
Tests de Primalité
Test de Fermat
Test de Fermat – (II)
Densité des Nombres de Carmichaël [Harman, 2002]
Soit C (N) le nombre d’entiers de Carmichaël ≤ N, alors ∃ β > 0.33 :
C (N) > N β , pour N “suffissament” grand.
+ C (1014 ) = 44706, et d1014·0.33 e = 41687.
Prn∈[1,...,N] (N est de Carmichaël) =
C (N)
1
≤ 0.66 .
N
n
Tests de Primalité
Test de Rabin-Miller
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (I)
Lemme
Soient X et N des entiers positifs. Si X 6≡ ±1 mod N et X 2 ≡ 1 mod N
alors N est composé.
Theorem
Soit N un premier. Nous écrivons N − 1 = 2s · r , avec r impair. Si a est tel
que pgcd(a, N) = 1, alors :
j
ar ≡ 1 mod N ou ∃j, 0 ≤ j ≤ s − 1 tel que a2 ·r ≡ −1 mod N.
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (I)
Si ∃ a, 1 < a < N tel que pgcd(a, N) = 1,
j
ar 6≡ 1 mod N et a2 ·r 6≡ −1 mod N, ∀j, 0 ≤ j ≤ s − 1,
⇒ N est composé.
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (I)
Définition
Soit N un entier impair composé que nous écrivons comme N − 1 = 2s · r ,
avec r impair et un entier a ∈ Z tel que pgcd(a, N) = 1. Nous dirons que
N est pseudo-premier fort en base a si :
j
ar ≡ 1 mod N ou ∃j, 0 ≤ j ≤ s − 1 tel que a2 ·r ≡ −1 mod N.
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (I)
Définition
Soit N un entier impair composé que nous écrivons comme N − 1 = 2s · r ,
avec r impair et un entier a ∈ Z tel que pgcd(a, N) = 1. Nous dirons que
N est pseudo-premier fort en base a si :
j
ar ≡ 1 mod N ou ∃j, 0 ≤ j ≤ s − 1 tel que a2 ·r ≡ −1 mod N.
Theorem
Soit N un entier impair composé. Il existe au plus N/4 entiers
a, 2 ≤ a ≤ N − 1 tel que N est pseudo-premier fort en base a.
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (II)
TestRabinMiller(N)
Trouver r impair et s tels que N − 1 = 2s · r
Choisir aléatoirement a ∈ {2, . . . , N − 1} et calculer Reste ≡ ar mod N
Si Reste 6≡ ±1 mod N alors
j ←1
Tant que 1 ≤ j ≤ s − 1 et Reste 6≡ −1 mod N Faire
Reste ← Reste2 mod N
Si Reste ≡ 1 mod N alors retourner composé
j ←j +1
FinTantQue
Si Reste 6≡ −1 mod N retourner composé.
FinSi
Retourner premier
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (II)
TestRabinMiller(N)
Trouver r impair et s tels que N − 1 = 2s · r
Choisir aléatoirement a ∈ {2, . . . , N − 1} et calculer Reste ≡ ar mod N
Si Reste 6≡ ±1 mod N alors
j ←1
Tant que 1 ≤ j ≤ s − 1 et Reste 6≡ −1 mod N Faire
Reste ← Reste2 mod N
Si Reste ≡ 1 mod N alors retourner composé
j ←j +1
FinTantQue
Si Reste 6≡ −1 mod N retourner composé.
FinSi
Retourner premier
Complexité
O log3 (N) .
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (II)
TestRabinMiller(N)
Trouver r impair et s tels que N − 1 = 2s · r
Choisir aléatoirement a ∈ {2, . . . , N − 1} et calculer Reste ≡ ar mod N
Si Reste 6≡ ±1 mod N alors
j ←1
Tant que 1 ≤ j ≤ s − 1 et Reste 6≡ −1 mod N Faire
Reste ← Reste2 mod N
Si Reste ≡ 1 mod N alors retourner composé
j ←j +1
FinTantQue
Si Reste 6≡ −1 mod N retourner composé.
FinSi
Retourner premier
Si TestRabinMiller(N) retourne composé alors N n’est pas premier
j
Si ∃ a, 1 < a < N tel que ar 6≡ 1 mod N et a2 ·r 6≡ −1 mod N,
∀j, 0 ≤ j ≤ s − 1 alors ⇒ N est composé.
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (II)
Si TestRabinMiller(N) retourne premier alors N :
1
PrN (TestRabinMiller(N) retourne premier | N est composé) ≤ .
4
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller – (II)
Si TestRabinMiller(N) retourne premier alors N :
1
PrN (TestRabinMiller(N) retourne premier | N est composé) ≤ .
4
Démonstration.
Si N est un entier composé impair et si TestRabinMiller(N) retourne
premier, alors N est pseudo-premier fort en base a. Le probabilité de tirer
a ∈ {2, . . . , N − 1} tel que N est pseudo-premier fort en base a est
≤
1 N
· .
N 4
Polynomial Identity Testing
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Polynomial Identity Testing
Polynomial Identity Testing – Motivation
Soit n > 0 et une matrice de Vandermonde

1 x1
1 x2

Vd(x1 , . . . , xn ) =  .
 ..
:
...
...
..
.
1 xn . . .

x1 n−1
x2 n−1 

..  .
. 
xn n−1
Polynomial Identity Testing
Polynomial Identity Testing – Motivation
Soit n > 0 et une matrice de Vandermonde

1 x1
1 x2

Vd(x1 , . . . , xn ) =  .
 ..
:
...
...
..
.
1 xn . . .

x1 n−1
x2 n−1 

..  .
. 
xn n−1
On sait montrer mathématiquement :
Det V (x1 , . . . , xn ) =
Y
1≤i<j≤n
(xj − xi ).
Polynomial Identity Testing
Polynomial Identity Testing – Motivation
On sait montrer mathématiquement :
Det V (x1 , . . . , xn ) =
Y
(xj − xi ).
1≤i<j≤n
On souhaite vérifier l’identité :
Det V (x1 , . . . , xn ) −
Y
1≤i<j≤n
(xi − xj ) = 0.
Polynomial Identity Testing
Polynomial Identity Testing – Motivation
On souhaite vérifier l’identité :
Det V (x1 , . . . , xn ) −
Y
(xi − xj ) = 0.
1≤i<j≤n
Pour n = 2 :
1 x1
Vd(x1 , x2 ) =
,
1 x2
et Det Vd(x1 , x2 ) = x2 − x1 .
Polynomial Identity Testing
Polynomial Identity Testing – Motivation
On souhaite vérifier l’identité :
Det V (x1 , . . . , xn ) −
Y
1≤i<j≤n
(xi − xj ) = 0.
Polynomial Identity Testing
Polynomial Identity Testing – Motivation
Pour n = 3 :

1 x1 x1 2
Vd(x1 , x2 , x3 ) = 1 x2 x2 2  ,
1 x3 x3 2
et Det Vd(x1 , x2 , x3 ) =

(−1)1+1 (x2 x3 2 − x3 x2 2 ) + (−1)2+1 (x1 x3 2 − x3 x1 2 ) + (−1)3+1 (x1 x2 2 − x2 x1 2 ).
Polynomial Identity Testing
Polynomial Identity Testing – Motivation
Pour n = 3 :

1 x1 x1 2
Vd(x1 , x2 , x3 ) = 1 x2 x2 2  ,
1 x3 x3 2
et Det Vd(x1 , x2 , x3 ) =

(x2 x3 2 − x2 2 x3 ) − (x1 x3 2 − x1 2 x3 ) + (x1 x2 2 − x1 2 x2 ).
Pour n = 100, Det Vd(x1 , . . . xn ) est un poly. de degré ≈ 5000 avec
≈ 25000 termes.
Polynomial Identity Testing
Polynomial Identity Testing – Motivation
Pour n = 3 :

1 x1 x1 2
Vd(x1 , x2 , x3 ) = 1 x2 x2 2  ,
1 x3 x3 2
et Det Vd(x1 , x2 , x3 ) =

(x2 x3 2 − x2 2 x3 ) − (x1 x3 2 − x1 2 x3 ) + (x1 x2 2 − x1 2 x2 ).
Pour n = 100, Det Vd(x1 , . . . xn ) est un poly. de degré ≈ 5000 avec
≈ 25000 termes.
Définiton
Soit f ∈ K[x1 , . . . , xn ] de degré d > 0.
Un monôme de f est une produit de puissances des variables, i.e. un
terme est de la forme x1α1 · · · xnαn .
P
Le degré d’un monôme x1α1 · xnαn est ni=1 αi .
Le nombre de monôme de degré d en n variables est O(nd ).
Polynomial Identity Testing
Polynomial Identity Testing
Définition
f ∈ K[x1 , . . . , xn ] est donné par une boîte noire s’il
est possible d’évaluer f efficacement (mais pas
accéder à ses coefficients).
Par exemple, Det Vd(x1 , . . . , xn ) .
Polynomial Identity Testing
Polynomial Identity Testing
Définition
f ∈ K[x1 , . . . , xn ] est donné par une boîte noire s’il
est possible d’évaluer f efficacement (mais pas
accéder à ses coefficients).
Par exemple, Det Vd(x1 , . . . , xn ) .
PIT
Entrée : un polynôme f ∈ K[x1 , . . . , xn ] de degré d > 1 donné par
une boîte-noire.
Question : Est-ce que le polynôme f est nul ?
Polynomial Identity Testing
PIT – Cas Univarié
UnivPIT
Entrée : un polynôme f ∈ C[X ] de degré d > 0 donné par une boîte
noire.
Question : Est-ce que le polynôme f est nul ?
Polynomial Identity Testing
PIT – Cas Univarié
UnivPIT
Entrée : un polynôme f ∈ C[X ] de degré d > 0 donné par une boîte
noire.
Question : Est-ce que le polynôme f est nul ?
Lemme
Il existe une algorithme polynomial déterministe pour résoudre UnivPIT.
Polynomial Identity Testing
PIT – Cas Univarié
UnivPIT
Entrée : un polynôme f ∈ C[X ] de degré d > 0 donné par une boîte
noire.
Question : Est-ce que le polynôme f est nul ?
Lemme
Il existe une algorithme polynomial déterministe pour résoudre UnivPIT.
Démonstration.
f s’annule sur au plus d points distincts. L’algorithme consiste à évaluer le
polynôme f sur d + 1 poins distincts r1 , . . . , rn ∈ C. Si f (xi ) = 0, pour tout
i, 1 ≤ i ≤ n, alors nous pouvons dire que f est nul.
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
PIT – Cas Général (n > 1)
Lemme de Schwartz-Zippel-DeMillo-Lipton
Soit f ∈ K[x1 , . . . , xn ] de degré d > 0, et S ⊆ K. Si f est non-nul, alors :
Pr(r1 ,...,rn )∈S n (f (r1 , . . . , rn ) = 0) ≤
d
,
|S|
avec |S| qui dénote la taille d’un sous-ensemble S ⊆ K.
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
The Curious History of Schwartz-Zippel (DeMillo-Lipton)
Lemma
http://rjlipton.wordpress.com/2009/11/30/the-curious-history-of-the-schwartz-zippel-lemma/
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
The Curious History of Schwartz-Zippel (DeMillo-Lipton)
Lemma
Richard A. DeMillo, Richard J. Lipton.
“A Probabilistic Remark on Algebraic Program Testing”.
Inf. Process. Lett. 1978.
Jacob T. Schwartz.
“Probabilistic Algorithms for Verification of Polynomial Identities
(invited)”.
An International Symposium on Symbolic and Algebraic Computation,
1979.
Richard Zippel.
“Probabilistic Algorithms for Sparse Polynomials.”
An International Symposium on Symbolic and Algebraic Computation,
1979.
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
Rappels
Soient deux événements A et B.
Pr(A ∪ B) = Pr(A) + Pr(B) − P(A ∩ B).
Soient deux événements A et B. La probabilité conditionnel de
l’événement “A sachant B” est :
Pr(A|B) =
Pr(A ∩ B)
.
Pr(B)
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
PIT – Cas Général (n > 1)
Démonstration.
Cas de base. Pour n = 1, nous savons qu’un polynôme univarié possède au
plus d racines distincts.
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
PIT – Cas Général (n > 1)
Démonstration.
Induction. Soit k la plus grande puissance de x1 qui divise les monômes de
f . Nous allons écrire :
f =
k
X
x1i · fi (x2 , . . . , xn ).
i=0
Par définition, fk est non-nul. Nous voyons aussi que fk est de degré
≤ d − k. Par hypothèse d’induction :
Pr(r2 ,...,rn )∈S n (fk (r2 , . . . , rn ) = 0) ≤
d −k
,
|S|
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
PIT – Cas Général (n > 1)
Démonstration.
Induction.
Soit A l’événement “f (r1 , . . . , rn ) = 0” et B “fk (r2 , . . . , rn ) = 0”.
Nous avons A = (A ∩ B) ∪ (A ∩ B̄) et :
Pr(A) = Pr(A ∩ B) + Pr(A ∩ B̄)
Pr(A) = Pr(A|B)Pr(B) + Pr(A|B̄)Pr(B̄)
Pr(A) ≤ Pr(B) + Pr(A|B̄).
Nous avons Pr(B) = Pr(r2 ,...,rn )∈S n (fk (r2 , . . . , rn ) = 0) ≤
d−k
|S| .
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
PIT – Cas Général (n > 1)
Démonstration.
Induction.
Soit A l’événement “f (r1 , . . . , rn ) = 0” et B “fk (r2 , . . . , rn ) = 0” :
Pr(A) ≤
d −k
+ Pr(A|B̄).
|S|
Soit r2 , . . . , rn ∈ S (n−1) . On pose
p(x1 ) = f (x1 , r2 , . . . , rn ) =
k
X
x1i · fi (r2 , . . . , rn ).
i=0
Si “fk (r2 , . . . , rn ) 6= 0”, alors p est un polynôme univarié non-nul. Nous
avons alors :
d −k
k
d
Pr(A) ≤
+
=
.
|S|
|S|
|S|
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
PIT – Cas Général
PIT
Entrée : un polynôme f ∈ K[x1 . . . , xn ] de degré d > 0 donné par une
boîte noire.
Question : Est-ce que le polynôme f est nul ?
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
PIT – Cas Général
PIT
Entrée : un polynôme f ∈ K[x1 . . . , xn ] de degré d > 0 donné par une
boîte noire.
Question : Est-ce que le polynôme f est nul ?
Proposition
Soit K fini, et d > |K|. Il existe une algorithme polynomial probabiliste
pour résoudre PIT. L’algorithme retourne non-zero alors f est bien non
nul. Sinon, l’algorithme retourne zero si le polynôme f est nul avec
d
probabilité ≤ |K|
Si K est infini, avec probabilité ≥ 1 − , pour tout 0 < < 1.
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
PIT – Cas Général
Démonstration.
L’algorithme consiste à évaluer le polynôme f sur un point
(r1 , . . . , rn ) ∈ Kn tiré aléatoirement.
Si f (r1 , . . . , rn ) 6= 0, alors l’algorithme retourne non zero.
Si f (r1 , . . . , rn ) = 0, alors l’algorithme retourne zero.
Aussi, si f est non nul, alors Pr(r1 ,...,rn )∈Kn (f (r1 , . . . , rn ) = 0) ≤
d
|K| ,
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
Schwartz-Zippel-DeMillo-Lipton – Cas Particulier
Lemme de Schwartz-Zippel-DeMillo-Lipton
Soit f ∈ F2 [x1 , . . . , xn ] un polynôme multilinéaire de degré d > 0. Si f est
non-nul, alors :
Pr(r1 ,...,rn )∈Fn2 (f (r1 , . . . , rn ) = 0) ≤ 1 −
1
.
2d
MAX3SAT
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
MAX3SAT
3SAT et MAX3SAT
Définition
Soit x une variable booléenne. Un littéral est x ou x̄ (négation
logique).
Une (3-)clause est une disjonction de 3 littéraux (x1 ∨ x¯2 ∨ x¯3 )
Une (3-)formule est un conjonction de plusieurs 3-clauses.
MAX3SAT
3SAT et MAX3SAT
Définition
Soit x une variable booléenne. Un littéral est x ou x̄ (négation
logique).
Une (3-)clause est une disjonction de 3 littéraux (x1 ∨ x¯2 ∨ x¯3 )
Une (3-)formule est un conjonction de plusieurs 3-clauses.
3SAT
Entrée : une formule φ de m clauses en les variables x1 , . . . , xn .
Question : existe t-il une affection des variables satisfaisant φ ?
Theorem
3SAT est NP-complet.
MAX3SAT
3SAT et MAX3SAT
Définition
Soit x une variable booléenne. Un littéral est x ou x̄ (négation
logique).
Une (3-)clause est une disjonction de 3 littéraux (x1 ∨ x¯2 ∨ x¯3 )
Une (3-)formule est un conjonction de plusieurs 3-clauses.
MAX3SAT
Entrée : une formule φ de m clauses en les variables x1 , . . . , xn .
Question : trouver une affection des variables satisfaisant un
maximum de clauses de φ.
MAX3SAT
Algorithme Probabiliste pour MAX3SAT
Lemme
Soit φ(x1 , . . . , xn ) une formule de m clauses C1 . . . , Cm . Une affectation
aléatoire des variables permet de satisfaire simultanément 7·m
8 clauses en
moyenne.
Démonstration.
Soit
Xj =
1, si Cj est vrai.
0, sinon.
Nous avons :
7
E(Xj ) = 1 · Pr(Xj = 1) = .
8
Pn
Finalement, si X = j=1 Xj , alors :
E(X ) =
m
X
i=1
1 · Pr(Xj = 1) =
7·m
.
8
MAX3SAT
Algorithme Probabiliste pour MAX3SAT
Lemme
Soit φ(x1 , . . . , xn ) une formule de m clauses. Il existe toujours une
affectation des variables satisfaisant au moins 7·m
8 clauses φ.
MAX3SAT
Algorithme Probabiliste pour MAX3SAT
Lemme
Soient φ(x1 , . . . , xn ) une formule de m clauses et A l’événement “ une
affectation aléatoire des variables satisfait ≥ 7·m
8 clauses de φ”. Alors :
Pr(A) ≥
1
.
8·m
Démonstration.
Soient p = Pr(A) et pj proba. de satisfaire exactement j clauses de φ.
m
X
j · pj
m
X
j · pj
≤
8
=
m
X
j =0
j · pj
≤
7·m
8
j =0
7·m
j · pj +
7·m
8
X
j · pj
j ≥ 7·m
8
j < 7·m
8
j =0
E(X ) =
X
=
−
−
1
8
1
8
X
pj + m ·
j < 7·m
8
+m·p
X
j ≥ 7·m
8
pj .
MAX3SAT
Algorithme de Johnson
Entrée. une formule φ(x1 , . . . , xn ) de m clauses
Sortie. Une affectation satisfaisant ≥ 7·m
8 clauses.
Choisir aléatoirement (z1 , . . . , zn ) ∈ {0, 1}n .
Tant que # clauses true dans φ(z1 , . . . , zn ) est <
n
Choisir aléatoirement (z1 , . . . , zn ) ∈ {0, 1} .
FinTantQue
Retourner (z1 , . . . , zn ) ∈ {0, 1}n
7·m
8
Faire
MAX3SAT
Algorithme de Johnson
Entrée. une formule φ(x1 , . . . , xn ) de m clauses
Sortie. Une affectation satisfaisant ≥ 7·m
8 clauses.
Choisir aléatoirement (z1 , . . . , zn ) ∈ {0, 1}n .
Tant que # clauses true dans φ(z1 , . . . , zn ) est <
n
Choisir aléatoirement (z1 , . . . , zn ) ∈ {0, 1} .
FinTantQue
Retourner (z1 , . . . , zn ) ∈ {0, 1}n
Théorème
Le nombre moyen d’itérations est ≤ 8 · m.
7·m
8
Faire
MAX3SAT
Analyse
C : v.a. du nombre d’itérations de l’algorithme.
Soit p =
1
8·m
la proba. de satisfaire ≥
E(C ) =
X
7·m
8
clauses de φ.
j · Pr(C = j)
j≥0
E(C ) =
X
j · (1 − p)j−1 · p
j≥0
E(C ) =
p X
j · (1 − p)j
1−p
j≥0
p 1−p
1
E(C ) =
=
2
1−p p
p
E(C ) ≤ 8 · m
Classes de Complexité Probabilistes
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Classes de Complexité Probabilistes
Modèle de Calcul
Machine de Turing Probabiliste
Définition
Une machine de Turing probabiliste est une machine de Turing déterministe
avec une bande distinguée dite bande d’aléa en lecture seule.
Les transitions dépendent de la bande d’aléa.
Classes de Complexité Probabilistes
Randomized Polynomial-Time
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Classes de Complexité Probabilistes
Randomized Polynomial-Time
La Classe Randomized P
Définition
Un langage L ⊂ {0, 1}∗ est dans RP (Randomized Polynomial-Time) s’il
existe une machine de Turing probabiliste M qui fonctionne en temps
polynomial telle que :
si x ∈ L, alors Pr(M n’accepte pas x) ≤ 12 ,
si x 6∈ L, alors Pr(M accepte x) = 0.
Classes de Complexité Probabilistes
Randomized Polynomial-Time
Amplification
Définition équivalente de RP
Soit , 0 < ≤ 12 . Un langage L ⊂ {0, 1}∗ est dans RP s’il existe une
machine de Turing probabiliste M 0 qui fonctionne en temps polynomial :
si x ∈ L, alors Pr(M 0 n’accepte pas x) ≤ ,
si x 6∈ L, alors Pr(M 0 accepte x) = 0.
Démonstration.
Soient L ∈ RP, M une MT probabiliste pour L et un entier k > 0.
1
Pr(M n’accepte pas x | x ∈ L) ≤ .
2
M 0 une MT probabiliste qui sur une entrée x simule k fois M telle que M 0
accepte x ⇐⇒ au moins une exécution de M accepte x.
Classes de Complexité Probabilistes
Randomized Polynomial-Time
Amplification
Définition équivalente de RP
Soit , 0 < ≤ 12 . Un langage L ⊂ {0, 1}∗ est dans RP s’il existe une
machine de Turing probabiliste M 0 qui fonctionne en temps polynomial :
si x ∈ L, alors Pr(M 0 n’accepte pas x) ≤ ,
si x 6∈ L, alors Pr(M 0 accepte x) = 0.
Démonstration.
Soient L ∈ RP, M une MT probabiliste pour L et un entier k > 0. M 0 une
MT probabiliste qui sur une entrée x simule k fois M telle que M 0 accepte
x ⇐⇒ au moins une exécution de M accepte x.
Pr(M 0 n’accepte pas x | x ∈ L) = Pr(M n’accepte pas x | x ∈ L)
If faut choisir k tel que
1
2k
k
≤
1
.
2k
≤ . Finalement, Pr(M 0 accepte x | x 6∈ L) = 0.
Classes de Complexité Probabilistes
Randomized Polynomial-Time
La Classe coRP
Définition
Un langage L ⊂ {0, 1}∗ est dans coRP s’il existe une machine de Turing
probabiliste M qui fonctionne en temps polynomial telle que :
si x ∈ L, alors Pr(M n’accepte pas x) = 0,
si x 6∈ L, alors Pr(M accepte x) ≤ 12 .
Classes de Complexité Probabilistes
Randomized Polynomial-Time
La Classe coRP
Définition
Un langage L ⊂ {0, 1}∗ est dans coRP s’il existe une machine de Turing
probabiliste M qui fonctionne en temps polynomial telle que :
si x ∈ L, alors Pr(M n’accepte pas x) = 0,
si x 6∈ L, alors Pr(M accepte x) ≤ 12 .
Définition équivalente de coRP
Soit , 0 < ≤ 12 . Un langage L ⊂ {0, 1}∗ est dans coRP s’il existe une
machine de Turing probabiliste M 0 qui fonctionne en temps polynomial telle
que :
si x ∈ L, alors Pr(M 0 n’accepte pas x) = 0,
si x 6∈ L, alors Pr(M 0 accepte x) ≤ .
Classes de Complexité Probabilistes
Randomized Polynomial-Time
La Classe coRP
Définition
Un langage L ⊂ {0, 1}∗ est dans coRP s’il existe une machine de Turing
probabiliste M qui fonctionne en temps polynomial telle que :
si x ∈ L, alors Pr(M n’accepte pas x) = 0,
si x 6∈ L, alors Pr(M accepte x) ≤ 12 .
PREMIER ∈ coRP
Si N est premier, TestRabinMiller(N) retourne toujours premier.
Si N est composé, TestRabinMiller(N) retourne premier avec
proba. ≤ 14 < 21 .
Classes de Complexité Probabilistes
Randomized Polynomial-Time
La Classe coRP
Définition
Un langage L ⊂ {0, 1}∗ est dans coRP s’il existe une machine de Turing
probabiliste M qui fonctionne en temps polynomial telle que :
si x ∈ L, alors Pr(M n’accepte pas x) = 0,
si x 6∈ L, alors Pr(M accepte x) ≤ 12 .
PIT
Entrée : un polynôme f ∈ K[x1 . . . , xn ] de degré d > 0 donné par une
boîte noire.
Question : Est-ce que le polynôme f est nul ?
Si f est nul, on retourne toujours nul.
Si f n’est pas nul, on retourne nul avec proba. ≤
d
|K| .
Classes de Complexité Probabilistes
Randomized Polynomial-Time
La Classe Zerro-Error P
Définition
La classe ZPP (Zero-Error Probabilictic Polynomial-Time) est :
ZPP = RP ∩ coRP.
Classes de Complexité Probabilistes
Bounded Polynomial-Time
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Classes de Complexité Probabilistes
Bounded Polynomial-Time
Classe Bounded P
Définition
Un langage L ⊂ {0, 1}∗ est dans BPP (Bounded Polynomial-Time) s’il
existe une machine de Turing probabiliste M qui fonctionne en temps
polynomial telle que :
si x ∈ L, alors Pr(M n’accepte pas x) ≤ 13 ,
si x 6∈ L, alors Pr(M accepte x) ≤ 13 .
Classes de Complexité Probabilistes
Bounded Polynomial-Time
Classe Bounded P
Définition
Un langage L ⊂ {0, 1}∗ est dans BPP (Bounded Polynomial-Time) s’il
existe une machine de Turing probabiliste M qui fonctionne en temps
polynomial telle que :
si x ∈ L, alors Pr(M n’accepte pas x) ≤ 13 ,
si x 6∈ L, alors Pr(M accepte x) ≤ 13 .
Amplification
Soit , 0 < < 12 . Un langage L ⊂ {0, 1}∗ est dans BPP (Bounded
Polynomial-Time) s’il existe une machine de Turing probabiliste M qui
fonctionne en temps polynomial telle que :
si x ∈ L, alors Pr(M n’accepte pas x) ≤ ,
si x 6∈ L, alors Pr(M accepte x) ≤ .
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Algorithmes de Monte Carlo
Définition
Un algorithme de Monte-Carlo est un algorithme probabiliste qui
fonctionne toujours en temps polynomial, mais qui peux se tromper. La
probabilité d’erreur reste inférieure à 13 .
Monte-Carlo :
des erreurs sont possibles,
le temps est garanti polynomial.
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Algorithmes de Monte Carlo
Définition
Un algorithme de Monte-Carlo est un algorithme probabiliste qui
fonctionne toujours en temps polynomial, mais qui peux se tromper. La
probabilité d’erreur reste inférieure à 13 .
Monte-Carlo :
des erreurs sont possibles,
le temps est garanti polynomial.
Théorème
BPP correspond aux algorithmes de Monte-Carlo.
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Algorithme de Las-Vegas
Définition
Un algorithme de Las-Vegas est un algorithme probabiliste qui ne se
trompe jamais mais dont le temps d’exécution moyen est polynomial.
Las-Vegas :
aucune erreur,
pas garanti sur le pire cas.
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Algorithme de Las-Vegas
Définition
Un algorithme de Las-Vegas est un algorithme probabiliste qui ne se
trompe jamais mais dont le temps d’exécution moyen est polynomial.
Las-Vegas :
aucune erreur,
pas garanti sur le pire cas.
Théorème
ZPP = RP ∩ coRP ≡ Las-Vegas.
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Las-Vegas ≡ ZPP
Démonstration.
Proposition (Inégalité de Markov)
Soit X une variable aléatoire positive. Alors, pour tout a > 0 :
Pr(X ≥ a) ≤
E(X )
.
a
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Las-Vegas ≡ ZPP
Démonstration.
Soit L un langage décidé par un algorithme Las-Vegas A dont le temps
d’exécution moyen est T .
M une MT probabiliste qui accepte une entrée x si, et seulement si, A
accepte x en un temps < 3 · T .
M n’accepte jamais x 6∈ L.
Soit X la v.a. du temps d’exécution de A :
1
Pr X ≥ 3 · E(X ) = Pr X ≥ 3 · T ≤ .
3
Si x ∈ L, alors Pr(M n’accepte pas x) ≤ 13 .
L ∈ RP.
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Las-Vegas ≡ ZPP
Démonstration.
Soit un L un langage décidé par un algorithme Las-Vegas A dont le temps
d’exécution moyen est T .
M une machine de Turing probabiliste qui rejette une entrée x si, et
seulement si, A rejette x en un temps < 3 · T .
Nous avons :
M accepte toujours x ∈ L.
Soit X la v.a. du temps d’exécution de A :
1
Pr X ≥ 3 · E(X ) = Pr X ≥ 3 · T ≤ .
3
Si x 6∈ L, alors Pr(M accepte x) ≤ 13 .
L ∈ coRP ∩ RP.
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Las-Vegas ≡ ZPP
Démonstration.
Soient L ∈ coRP ∩ RP et M une MT probabiliste pour L ∈ RP, M 0 une MT
probabiliste pour L ∈ coRP). Nous avons :
Si x ∈ L, Pr(“M accepte x” et “M 0 accepte x”) ≥ 12 .
Si x 6∈ L, Pr(“M accepte x” et “M 0 accepte x”) ≥ 12 .
M ∗ est une MT probabiliste qui accepte une entrée x si, et seulement si, M
et M 0 acceptent x. M ∗ n’accepte pas x si, et seulement si, M et M 0
rejettent x.
Classes de Complexité Probabilistes
Monte-Carlo, Las-Vegas et Classes Probabilistes
Las-Vegas ≡ ZPP
Démonstration.
C : v.a. du nombre d’itérations de M ∗ .
Soit p ≥
1
2
la proba. que M et M 0 retournent la même réponse.
E(C ) =
X
E(C ) =
X
j · Pr(C = j)
j≥0
j · (1 − p)j−1 · p
j≥0
E(C ) =
p X
j · (1 − p)j
1−p
j≥0
1
p 1−p
E(C ) =
=
2
1−p p
p
E(C ) ≤ 2
Classes de Complexité Probabilistes
Relation entre les Classes
Plan du cours
1
Introduction
2
Tests de Primalité
Rappels
Test de Fermat
Test de Rabin-Miller
3
Polynomial Identity Testing
Lemme de Schwartz-Zippel-DeMillo-Lipton
4
MAX3SAT
5
Classes de Complexité Probabilistes
Modèle de Calcul
Randomized Polynomial-Time
Bounded Polynomial-Time
Monte-Carlo, Las-Vegas et Classes Probabilistes
Relation entre les Classes
Classes de Complexité Probabilistes
Relation entre les Classes
Relations entre les Classes
Théorème
P ⊂ RP et P ⊂ coRP.
Classes de Complexité Probabilistes
Relation entre les Classes
Relations entre les Classes
Théorème
P ⊂ RP et P ⊂ coRP.
Corollaire
P ⊂ ZPP.
Classes de Complexité Probabilistes
Relation entre les Classes
Relations entre les Classes
Théorème
P ⊂ RP et P ⊂ coRP.
Corollaire
P ⊂ ZPP.
Théorème
RP ⊂ BPP et coRP ⊂ BPP.
Téléchargement