Transparents des cours du 29 octobre et du 19 novembre - IA

publicité
COMPLEX
Algorithmes Probabilistes
Ludovic Perret
UPMC Univ. Paris 06 & INRIA
LIP6
Introduction
Outline
1
Introduction
2
Primalité
Arithmétiques dans ZN
3
Tests de Primalité
Test de Fermat
Test de Rabin-Miller
4
Polynomial Identity Testing
Introduction
Algorithme Déterministe
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é)
https://openclassrooms.com/
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
https://www.authenticfx.com/
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,
Θ(log(n) · n) en moyenne.
http://instants-captures.fr/
Introduction
Monte-Carlo
Définition
Un algorithme de type Monte-Carlo est un algorithme qui termine
toujours en temps polynomial
Le résultat n’est pas toujours correct, mais on contrôle la probabilité
d’erreur
http://www.casinosenfrance.net/
Primalité
Outline
1
Introduction
2
Primalité
Arithmétiques dans ZN
3
Tests de Primalité
Test de Fermat
Test de Rabin-Miller
4
Polynomial Identity Testing
Primalité
Motivation
Contexte
Cryptographie à clef publique ≡ fonction à sens unique avec trappe.
Problème difficile (dans NP).
FACT
Entrée : un entier non nul N ∈ N
Question : trouver un diviseur non-trivial
p de N
PREMIER
Entrée : un entier non nul N ∈ N
Question : N est-il premier ?
http://viterbi.usc.edu/
Primalité
Primalité
Génération de Grands Premiers
Soit π(N ) = {n ∈ [1, . . . , N ] | N premier}. Alors :
π(N ) ≈N →∞
N
.
log(N )
Primalité
Primalité
Génération de Grands Premiers
Soit π(N ) = {n ∈ [1, . . . , N ] | N premier}. Alors :
π(N ) ≈N →∞
Historique
PREMIER ∈ NP.
N
.
log(N )
Primalité
Primalité
Génération de Grands Premiers
Soit π(N ) = {n ∈ [1, . . . , N ] | N premier}. Alors :
π(N ) ≈N →∞
N
.
log(N )
Historique
PREMIER ∈ NP.
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
Primalité
Primalité
Génération de Grands Premiers
Soit π(N ) = {n ∈ [1, . . . , N ] | N premier}. Alors :
π(N ) ≈N →∞
N
.
log(N )
Historique
PREMIER ∈ NP.
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 Mathematics, 2004.
Primalité
Outline
1
Introduction
2
Primalité
Arithmétiques dans ZN
3
Tests de Primalité
Test de Fermat
Test de Rabin-Miller
4
Polynomial Identity Testing
Arithmétiques dans ZN
Primalité
Arithmétiques dans ZN
L’ensemble des entiers modulaires
Deux entiers a et b sont dits congruents modulo N, notés a ≡ b mod N si, et
seulement si :
N | a − b.
Définition
ZN = {0, . . . , N − 1}.
http://fr.123rf.com/
Addition/Soustraction
⊕ 0 1 2
Pour tout a, b ∈ ZN :
0
0 1 2
a ⊕ b = s avec s ≡ (a + b)
mod N .
1
1 2 0
a b = s avec s ≡ (a − b)
mod N .
2
2 0 1
Complexité : O (log(N )).
Z3 = {0, 1, 2}
Primalité
Arithmétiques dans ZN
Multiplication dans ZN
Multiplication
⊗ 0 1 2
Pour a, b dans ZN :
a ⊗ b = s avec s ≡ (a × b)
mod N .
Complexité : O (log2 (N )).
0
0 0 0
1
0 1 2
2
0 2 1
Z3 = {0, 1, 2}
⊗
0
1
2
3
0
0
0
0
0
1
0
1
2
3
2
0
2
0
2
3
0
3
2
1
Z4 = {0, 1, 2, 3}
Primalité
Arithmétiques dans ZN
Éléments Inversibles
Théorème
Soit x ∈ ZN , alors x est inversible modulo N si et seulement si
pgcd(x , N ) = 1.
La complexité du pgcd est en O (log2 (N )).
Définition
L’ensemble des éléments inversibles modulo N est noté Z×
N.
Pour un entier N ∈ Z, on note :
ϕ(N ) = #{x ∈ [1, . . . , N − 1] | pgcd(x , N ) = 1}.
Si p est premier, ϕ(p) = p − 1.
Primalité
Arithmétiques dans ZN
Calcul de l’inverse modulaire
Proposition
2
Calculer l’inverse modulo N de x ∈ Z×
N est en O (log (N )).
Principe
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.
Proposition
Soient a ∈ ZN et k < N, on calcule ak mod N en O (log3 (N )).
Primalité
Arithmétiques dans ZN
Euler/Fermat
Théorème (Fermat)
Soient N premier et un entier a ∈ Z. Nous avons :
aN ≡ a mod N .
Si pgcd(a, N ) = 1, alors :
aN −1 ≡ 1 mod N .
Primalité
Arithmétiques dans ZN
Euler/Fermat
Théorème (Fermat)
Soient N premier et un entier a ∈ Z. Nous avons :
aN ≡ a mod N .
Si pgcd(a, N ) = 1, alors :
aN −1 ≡ 1 mod N .
Théorème (Euler)
Soient N ≥ 2 et un entier a ∈ Z tel que pgcd(a, N ) = 1. Nous avons :
aϕ(N ) ≡ 1
mod N .
Tests de Primalité
Outline
1
Introduction
2
Primalité
Arithmétiques dans ZN
3
Tests de Primalité
Test de Fermat
Test de Rabin-Miller
4
Polynomial Identity Testing
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.
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.
Théorème (Fermat)
Soit N 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.
Théorème (Fermat)
Soit N 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é et a est un témoin de Fermat
Si N est un entier composé impair et a, 1 < a < N. Alors, N est
pseudo-premier en base a si
aN −1 ≡ 1 mod N .
Tests de Primalité
Test de Fermat
Test de Fermat
TestFermat(N )
Choisir aléatoirement a ∈ [2, . . . , N − 1]
Si pgcd(a, N ) > 1 retourner composé.
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
TestFermat(N )
Choisir aléatoirement a ∈ [2, . . . , N − 1]
Si pgcd(a, N ) > 1 retourner composé.
Calculer Reste ≡ aN −1 mod N
Si Reste 6≡ 1 mod N alors retourner composé.
Retourner premier
Caractéristiques
Si TestFermat(N ) retourne composé alors N n’est pas premier.
Si TestFermat(N ) retourne premier, alors N est peut être premier.
L’algorithme échoue pour les a tels que pgcd(a, N ) = 1, aN −1 ≡ 1 mod N
mais N composé. Ce sont 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
Nombres de Carmichaël
Définition
Un nombre de Carmichaël est un entier N composé qui ∀a ∈ [2, . . . , N − 1]
avec pgcd(a, N ) = 1 est pseudo-premier en base a.
Tests de Primalité
Test de Fermat
Nombres de Carmichaël
Définition
Un nombre de Carmichaël est un entier N composé qui ∀a ∈ [2, . . . , N − 1]
avec pgcd(a, N ) = 1 est pseudo-premier en base a.
TestFermat(N ) échoue donc systématiquement si N est un nombre de
Carmichaël.
+ 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 ”suffisamment” grand.
C (1014) = 44706, et d10140.33 e = 41687
Tests de Primalité
Test de Fermat
Nombres de Carmichaël
Définition
Un nombre de Carmichaël est un entier N composé qui ∀a ∈ [2, . . . , N − 1]
avec pgcd(a, N ) = 1 est pseudo-premier en base a.
Prn∈[1,...,N ] (n est de Carmichaël) ≤
C (N )
1
≤ 0.66 .
N
N
Tests de Primalité
Outline
1
Introduction
2
Primalité
Arithmétiques dans ZN
3
Tests de Primalité
Test de Fermat
Test de Rabin-Miller
4
Polynomial Identity Testing
Test de Rabin-Miller
Tests de Primalité
Test de Rabin-Miller
Rabin-Miller
Lemme
Soient N un premier et X un entier positif. Si X 2 ≡ 1 mod N alors
X ≡ ±1 mod N.
Tests de Primalité
Test de Rabin-Miller
Rabin-Miller
Lemme
Soient N un premier et X un entier positif. Si X 2 ≡ 1 mod N alors
X ≡ ±1 mod N.
Théorème
Soit N un premier. Nous écrivons N − 1 = r · 2s , avec r impair et s ≥ 0. Soit
a ∈ Z 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
Rabin-Miller
Théorème
Soit N un premier. Nous écrivons N − 1 = r · 2s , avec r impair et s ≥ 0. Soit
a ∈ Z 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 .
N composé si ∃a, 1 < a < N tel que pgcd(a, N ) = 1 et
j
ar 6≡ 1 mod N et ∀j , 0 ≤ j ≤ s − 1 tel que a2 r 6≡ −1 mod N .
Tests de Primalité
Test de Rabin-Miller
Rabin-Miller
Théorème
Soit N un premier. Nous écrivons N − 1 = r · 2s , avec r impair et s ≥ 0. Soit
a ∈ Z 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 .
N composé si ∃a, 1 < a < N tel que pgcd(a, N ) = 1 et
j
ar 6≡ 1 mod N et ∀j , 0 ≤ j ≤ s − 1 tel que a2 r 6≡ −1 mod N .
Définition
Soient N un entier composé impair et a, 1 < a < N tel que pgcd(a, N ) = 1.
On écrit N − 1 = r · 2s , avec r impair. 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
Rabin-Miller
Théorème
Soit N un premier. Nous écrivons N − 1 = r · 2s , avec r impair et s ≥ 0. Soit
a ∈ Z 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 .
Définition
Soient N un entier composé impair et a, 1 < a < N tel que pgcd(a, N ) = 1.
On écrit N − 1 = r · 2s , avec r impair. 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 .
Théorème
Soit N un entier impair composé. Il existe au plus N /4 entiers a, 1 < a < N
tel que N est pseudo-premier fort en base a.
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller
RabinMiller(N )
Choisir aléatoirement a ∈ [2, . . . , N − 1]
Si pgcd(a, N ) > 1 retourner composé
Trouver (r , s) tel que N − 1 = r · 2s avec r impair
Calculer Reste ≡ ar mod N
Si Reste 6≡ ±1 mod N alors
j ←1
Tant que 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 alors retourner composé
retourner premier.
Complexité
O log3 (N ) .
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller
RabinMiller(N )
Choisir aléatoirement a ∈ [2, . . . , N − 1]
Si pgcd(a, N ) > 1 retourner composé
Trouver (r , s) tel que N − 1 = r · 2s avec r impair
Calculer Reste ≡ ar mod N
Si Reste 6≡ ±1 mod N alors
j ←1
Tant que 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 alors retourner composé
retourner premier.
Caractéristiques
Si RabinMiller(N ) retourne composé alors N n’est pas premier.
Si RabinMiller(N ) retourne premier, alors N est peut être premier.
Tests de Primalité
Test de Rabin-Miller
Test de Rabin-Miller
RabinMiller(N )
Choisir aléatoirement a ∈ [2, . . . , N − 1]
Si pgcd(a, N ) > 1 retourner composé
Trouver (r , s) tel que N − 1 = r · 2s avec r impair
Calculer Reste ≡ ar mod N
Si Reste 6≡ ±1 mod N alors
j ←1
Tant que 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 alors retourner composé
retourner premier.
Si RabinMiller(N ) retourne premier alors :
PrN (RabinMiller(N )retourne premier | N est composé) ≤
1
4
Polynomial Identity Testing
Outline
1
Introduction
2
Primalité
Arithmétiques dans ZN
3
Tests de Primalité
Test de Fermat
Test de Rabin-Miller
4
Polynomial Identity Testing
Polynomial Identity Testing
Motivation
Soit n > 0 et une matrice de Vandermonde :

1 x1

1 x2
Vd(x1 , . . . , xn ) = 
.

1 ..
1 xn

. . . x1n−1

. . . x2n−1 

.. 
...
. 
. . . xnn−1
Polynomial Identity Testing
Motivation
Soit n > 0 et une matrice de Vandermonde :

1 x1

1 x2
Vd(x1 , . . . , xn ) = 
.

1 ..
1 xn

. . . x1n−1

. . . x2n−1 

.. 
...
. 
. . . xnn−1
On sait montrer mathématiquement :
Det Vd(x1 , . . . , xn ) =
∏
1≤i <j ≤n
(xj − xi ).
Polynomial Identity Testing
Motivation
Soit n > 0 et une matrice de Vandermonde :

. . . x1n−1

. . . x2n−1 

.. 
...
. 
. . . xnn−1

1 x1

1 x2
Vd(x1 , . . . , xn ) = 
.

1 ..
1 xn
On sait montrer mathématiquement :
Det Vd(x1 , . . . , xn ) =
∏
(xj − xi ).
1≤i <j ≤n
On souhaite vérifier l’identité :
Det Vd(x1 , . . . , xn ) −
∏
1≤i <j ≤n
(xj − xi ) = 0.
Polynomial Identity Testing
Motivation
On souhaite vérifier l’identité :
Det Vd(x1 , . . . , xn ) −
∏
(xj − xi ) = 0.
1≤i <j ≤n
Pour n = 2, Det Vd(x1 , x2 ) = x2 − x1 . est un poly. de degré ≈ 5000
avec 25000 termes.
Pour n = 100, Det Vd(x1 , . . . , x100 ) est un poly. de degré ≈ 5000 avec
25000 termes.
Polynomial Identity Testing
Motivation
On souhaite vérifier l’identité :
Det Vd(x1 , . . . , xn ) −
∏
(xj − xi ) = 0.
1≤i <j ≤n
Définition
K[x1 , . . . , xn ] l’ensemble des polynômes en les variables x1 , . . . , xn dont
les coefficients sont dans K
Un monôme est un produit de puissances des variables, i.e. x1α1 · · · xnαn .
Le degré d’un monôme x1α1 · · · xnαn est ∑ni=1 αi .
Le nombre de monômes de degré ≤ d en n variables
n +d
d
∈ O (nd ).
Polynomial Identity Testing
Polynomial Idendity Testing
Définition
Soit f ∈ K[x1 , . . . , xn ] de degré d > 0.
Nous dirons que f est donné par une
boîte noire s’il est possible d’évaluer
f efficacement, i.e. en temps
polynomial (sans forcement accéder à
ses coefficients).
https://en.wikipedia.org/wiki/Black_box
Ex : Det Vd(x1 , . . . , xn ) .
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
PIT – Cas Univarié
UnivPIT
Entrée : un polynôme f ∈ K[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 ∈ K[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 ∈ K[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.
Si f est non nul, alors d s’annule sur au plus d points distincts.
L’algorithme consiste à évaluer le polynôme f sur d + 1 poins distincts
r1 , . . . , rn+1 ∈ K. Si f (ri ) = 0, pour tout i , 1 ≤ i ≤ n + 1, alors nous pouvons
dire que f est nul. Sinon, f est nul.
Polynomial Identity Testing
PIT – Cas Général
Lemme de Schwartz-Zippel-DeMillo-Lipton
Soit f ∈ K[x1 , . . . , xn ] de degré d > 0, et S ⊆ K. Si f est non-nul, alors :
d
Pr(r1 ,...,rn )∈S n f (r1 , . . . , rn ) = 0 ≤
,
|S |
avec |S | qui dénote la taille d’un sous-ensemble fini S ⊆ K.
Polynomial Identity Testing
The Curious History of the Schwartz-Zippel Lemma
https://rjlipton.wordpress.com/2009/11/30/the-curious-history-of-the-schwartz-zippel-lemma/
Polynomial Identity Testing
The Curious History of the Schwartz-Zippel 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)".
International Symposium on Symbolic and Algebraic Computation, 1979.
Richard Zippel.
“Probabilistic Algorithms for Sparse Polynomials".
International Symposium on Symbolic and Algebraic Computation, 1979.
Polynomial Identity Testing
PIT – Cas Général
Lemme de Schwartz-Zippel-DeMillo-Lipton
Soit f ∈ K[x1 , . . . , xn ] de degré d > 0, et S ⊆ K. Si f est non-nul, alors :
d
Pr(r1 ,...,rn )∈S n f (r1 , . . . , rn ) = 0 ≤
,
|S |
avec |S | qui dénote la taille d’un sous-ensemble fini S ⊆ K.
Polynomial Identity Testing
PIT – Cas Général
Lemme de Schwartz-Zippel-DeMillo-Lipton
Soit f ∈ K[x1 , . . . , xn ] de degré d > 0, et S ⊆ K. Si f est non-nul, alors :
d
,
Pr(r1 ,...,rn )∈S n f (r1 , . . . , rn ) = 0 ≤
|S |
avec |S | qui dénote la taille d’un sous-ensemble fini S ⊆ K.
Démonstration.
Cas de base. Pour n = 1, un polynôme univarié possède au plus d racines
distinctes.
Polynomial Identity Testing
PIT – Cas Général
Démonstration.
Induction. Soit f ∈ K[x1 , . . . , xn ] de degré d > 0 non nul. On dénote par k la
plus grande puissance de x1 qui divise les monômes de f .
k
f=
∑ x1i · fi (x2 , . . . , xn ).
i =0
Par définition, fk est non-nul et de degré ≤ d − k . Par hypothèse d’induction :
d −k
.
Pr(r2 ,...,rn )∈S n−1 fk (r2 , . . . , rn ) = 0 ≤
|S |
Polynomial Identity Testing
PIT – Cas Général
Démonstration.
Soient A l’événement “f (r1 , . . . , rn ) = 0” et B l’événement
“fk (r2 , . . . , rn ) = 0”. Clairement, 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 :
d −k
.
Pr(B ) = Pr(r2 ,...,rn )∈S n−1 fk (r2 , . . . , rn ) = 0 ≤
|S |
Polynomial Identity Testing
PIT – Cas Général
Démonstration.
Soit (r2 , . . . , rn ) ∈ S n−1 . On pose :
k
p(x1 ) = f (x1 , r2 , . . . , rn ) =
∑ x1i · fi (r2 , . . . , rn ).
i =0
Si “fk (r2 , . . . , rn ) 6= 0”, alors p est un polynôme univarié non-nul de degré k .
Finalement :
Pr(A) ≤ Pr(B ) + Pr(A|B̄ ) ≤
d −k
k
d
+
≤
.
|S |
|S | |S |
Polynomial Identity Testing
Résolution du PIT
Proposition
Soit K fini, et f ∈ K[x1 , . . . , xn ] de degré d > |K|. Il existe une algorithme
polynomial probabiliste pour résoudre PIT. Si l’algorithme retourne
non-zero, alors f est bien non nul. Si l’algorithme retourne zero, alors f est
d
.
nul avec probabilité ≤ |K|
Si K est infini, avec probabilité ≤ ε , pour tout 0 < ε < 1.
Polynomial Identity Testing
Résolution du PIT
Proposition
Soit K fini, et f ∈ K[x1 , . . . , xn ] de degré d > |K|. Il existe une algorithme
polynomial probabiliste pour résoudre PIT. Si l’algorithme retourne
non-zero, alors f est bien non nul. Si l’algorithme retourne zero, alors f est
d
.
nul avec probabilité ≤ |K|
Si K est infini, avec probabilité ≤ ε , pour tout 0 < ε < 1.
Démonstration.
On évalue 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.
Finalement, si f est non-nul, alors :
d
Pr(r1 ,...,rn )∈Kn f (r1 , . . . , rn ) = 0 ≤
.
|K|
Téléchargement