0% ont trouvé ce document utile (0 vote)
10 vues22 pages

Algorithme de Grover en Informatique Quantique

Le document décrit des algorithmes quantiques simples comme le calcul de fonctions, l'algorithme de Grover, l'algorithme de Deutsch et l'algorithme de Deutsch-Josza. Il présente également l'algorithme de Simon qui permet de trouver une clé secrète à partir d'une fonction.

Transféré par

herve djomguem
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues22 pages

Algorithme de Grover en Informatique Quantique

Le document décrit des algorithmes quantiques simples comme le calcul de fonctions, l'algorithme de Grover, l'algorithme de Deutsch et l'algorithme de Deutsch-Josza. Il présente également l'algorithme de Simon qui permet de trouver une clé secrète à partir d'une fonction.

Transféré par

herve djomguem
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Informatique quantique IFT6155

Algorithmes simples

1
Calcul de fonctions
À chaque fonction f : X → Y on peut associer une opération unitaire

F |xi |yi := |xi |y ⊕ f (x)i


clairement F = F †, F F = I et

F |xi |0i := |xi |f (x)i

Si f est une fonction binaire, on peut aussi définir

F 0 |xi := (−1)f (x) |xi


encore une fois F 0 = F 0† et F 0F 0 = I.

2
Calcul de fonctions
À partir de F , on peut construire F 0 en utilisant un qubit
supplémentaire dans l’état
1
√ (|0i − |1i)
2

1 1 E
F |xi √ (|0i − |1i) = |xi √ (|f (x)i − f (x) )

2 2
f (x) 1
= |xi (−1) √ (|0i − |1i)
2
1
= (−1)f (x) |xi √ (|0i − |1i)
2
0 1
= F |xi √ (|0i − |1i)
2

3
Algorithme de Grover
Soit f : {0, 1}2 → {0, 1} avec la promesse qu’il existe x0 tel que
f (x0) = 1 et si x 6= x0 alors f (x) = 0.

Soit l’opération unitaire U définie par:


1
U |00i = (− |00i + |01i + |10i + |11i)
2
1
U |01i = (+ |00i − |01i + |10i + |11i)
2
1
U |10i = (+ |00i + |01i − |10i + |11i)
2
1
U |11i = (+ |00i + |01i + |10i − |11i)
2

4
Algorithme de Grover
Algorithme de Grover(f)

• |ψi = U †F 0H ⊗2 |00i

• m = Mesure(|ψi)

• retourne m

Classique: 3 requêtes à f .
Quantique: 1 requête à f .

5
Algorithme de Grover analysé

|ψi = U †F 0H ⊗2 |00i
† 0 1
= U F (|00i + |01i + |10i + |11i)
2
1
= U † ((−1)f (00) |00i + (−1)f (01) |01i
2
+(−1)f (10) |10i + (−1)f (11) |11i )
= |x0i

6
Algorithme de Deutsch
Problème de Deutsch (version de R. Cleve et A. Tapp): Étant donné
f : {0, 1} → {0, 1}, décider si f (0) = f (1).

Algorithme Deutsch(f)

• |ψi = HF 0H |0i

• m = Mesure(|ψi)

• si m = 0 répond CONSTANTE sinon ÉQUILIBRÉE

Classique: deux requêtes à f .


Quantique: une requête à f .
7
Rappel

H |0i → √1 (|0i + |1i)


2
H |1i → √1 (|0i − |1i)
2

H = H†

8
Algorithme de Deutsch
Analyse

|ψi = HF 0H |0i
0 1
= HF √ (|0i + |1i)
2
1
= H √ ((−1)f (0) |0i + (−1)f (1) |1i)
2
f (0) 1
= H(−1) √ (|0i + (−1)f (0)(−1)f (1) |1i)
2
1
= H(−1)f (0) √ (|0i + (−1)f (0)⊕f (1) |1i)
2
= (−1)f (0) |f (0) ⊕ f (1)i

On obtient donc f (0) ⊕ f (1) avec certitude. Si f (0) ⊕ f (1) = 0 alors la


fonction est constante, (f (0) = f (1)) sinon la fonction est équilibrée
(f (0) 6= f (1)).
9
Algorithme de Deutsch-Josza
Problème de Deutsch-Josza: Étant donné f : {0, 1}n → {0, 1} décider si
f est constante (∀x, y, f (x) = f (y)) ou équilibrée (|f −1(0)| = |f −1(1)|).

Algorithme Deutsch-Josza(f)

• |ψi = H ⊗nF 0H ⊗n |0i

• m = Mesure(|ψi)

• si m = 0 répond CONSTANTE sinon ÉQUILIBRÉE

Classique: 2n−1 + 1 requêtes à f .


Quantique: une requête à f .
10
Transformation de Hadamard

Lemme:
n −1
2X
1
(H = H †) H ⊗n |yi = √ n (−1)x·y |xi
2 x=0
où x · y = x1y1 ⊕ x2y2 ⊕ · · · ⊕ xnyn et en particulier
−1
2X n
1
H ⊗n |0i = √ n |xi
2 x=0

Preuve:
Exercice...

11
Algorithme de Deutsch-Josza
Analyse

|ψi = H ⊗nF 0H ⊗n |0i


−1
2X n
1
= H ⊗nF 0 √ n |ii
2 i=0
−1
2X n
1
= H ⊗n √ n (−1)f (i) |ii
2 i=0
2n −1 2n −1
 
1 X f (i) 1 X i·j |ji
= √ n (−1)  √ (−1)
2 i=0 2n j=0
2n −1 2n −1
 
X X (−1)f (i)+i·j
=   |ji
j=0 i=0 2n

12
Algorithme de Deutsch-Josza
Analyse
La probabilité d’observer |0i est donnée par
n 2 n 2
−1 (−1)f (i)+i·0 −1
2X
2X (−1) f (i)

=

i=0 2 n


i=0 2 n

Si f est constante alors


n 2 n
2
2 −1 2X −1
X (−1)f (i) 1

= (−1)f (0)

=1

i=0 2n


i=0 2 n

Si f est équilibrée alors


n 2 2
2 −1 f (i)

n−1 n−1
(−1) 2 2

X
= − =0


i=0 2n
2n 2n

13
Algorithme de Simon
Étant donné f : {0, 1}n → {0, 1}n−1 telle qu’il existe s non nul avec la
propriété que ∀x 6= y : f (x) = f (y) ⇔ x = y ⊕ s, trouver s.

Algorithme Simon(f)
• S = {}
• tant que |S| < n − 1
• |ψi = (H ⊗n ⊗ I2n−1 )F (H ⊗n ⊗ I2n−1 ) |0i |0i
• (m, y) = Mesure(|ψi)
• si m est indépendant de S alors S ← S ∪ {m}
• fin du tant que
• déduire s de S.

Classique: Ω(2(1/2−)n) requêtes à f même avec probabilité de succès


constante.
Quantique: Espérance de O(n) requêtes à f .
14
Algorithme de Simon: analyse
Soit X tel que |X| = 2(n−1) et X ∪ (s ⊕ X) = {0, 1}n.
|ψi = (H ⊗n ⊗ I2n−1 )F (H ⊗n ⊗ I2n ) |0i |0i
 
⊗n
X 1
= (H ⊗ I2n−1 )F  √ n |xi |0i
x∈{0,1}n
2
 
⊗n
X 1
= (H ⊗ I2n−1 )  √ n |xi |f (x)i
x∈{0,1}n
2
 
X 1  X 1
= √ n √ n (−1)x·y |yi |f (x)i
x∈{0,1}n
2 y∈{0,1}n
2
X (−1)x·y
= n
|yi |f (x)i
2
x,y∈{0,1}
n

X (−1)x·y (−1)(x⊕s)·y
= n
|yi |f (x)i + n
|yi |f (x ⊕ s)i
2 2
x∈X,y∈{0,1} n

X (−1)x·y + (−1)(x⊕s)·y
= n
|yi |f (x)i
2
x∈X,y∈{0,1} n

15
Algorithme de Simon: analyse (suite)

X (−1)x·y + (−1)(x⊕s)·y
|ψi = n
|yi |f (x)i
x∈X,y∈{0,1}n
2

Si s · y = 0 alors
x · y = x · y + s · y = (x ⊕ s) · y
d’où l’amplitude de |yi |f (x)i = 2−n+1.

Si par contre s · y = 1 alors

x · y = x · y + s · y + 1 = (x ⊕ s) · y + 1
d’où l’amplitude de |yi |f (x)i est 0.

16
Algorithme de Simon: analyse (suite)

En observant le premier registre, on obtient y uniformément distribué


et tel que y · s = 0.

Posons s = snsn−1 · · · s1. Une fois que |S| = n − 1 nous avons obtenu
n − 1 équations linéaires avec comme variables les si. Le système
d’équations possède deux solutions, dont l’une est la solution triviale
s = 0. Nous avons donc déterminé s.

17
Algorithme de Simon: analyse (suite)
Analysons maintenant le nombre d’essais nécessaires pour obtenir
n − 1 équations linéairement indépendantes.

À chaque itération, tous les vecteurs x tels que x · s = 0 sont


équiprobables. Il en existe exactement 2n−1.

Si |S| = k alors il existe 2k vecteurs linéairement dépendants de S et


donc 2n−1 − 2k vecteurs linéairement indépendants.

Le cas critique (probabilité la plus faible) advient quand |S| = n − 1,


auquel cas exactement la moitié des vecteurs sont acceptables.

À chaque itération, la probabilité de succès est donc au moins 1/2, ce


qui nous donne un nombre d’itérations espéré dans O(n).

18
Mesure partielle

Pour tout état |ψi ∈ HABC on peut mesurer le sous-espace B.


Pour un sous-espace B de dimension d et un état
Pd−1
|ψi = i=0 αi |aii |ii |cii on obtient le résultat classique i avec
probabilité |αi|2 et l’état devient |aii |ii |cii.

19
Exemple 1:
Si on mesure tout un registre dans l’état |ψi = i αi |ii on obtiendra
P

comme résultat |ii avec probabilité |αi|2.

Exemple 2:
Soit l’état |ψi = √1 (|000i + |110i + |111i).
3 √
On a que |ψi = √ |0i |00i + √2 |1i ( √1 (|10i + |11i)).
1
3 3 2
Si on mesure le premier qubit on obtiendra |0i avec probabilité
1 2

√ = 1 et l’état devient |000i. On obtient |1i avec probabilité
3 3
√ 2
2
√ = 2 pour se retrouver dans l’état |1i ( √1 (|10i + |11i)).
3 3 2

Exemple 3:
De façon générale, si on mesure le sous-espace HB d’un registre
|ψi = ijk αijk |ii |ji |ki ∈ HABC on obtiendra |ji avec probabilité
P

2
ik |αijk | .
P

20
Algorithme de Simon: analyse V2
 
⊗n ⊗n ⊗n
X 1
|ψi = (H ⊗ I2n−1 )F (H ⊗ I2n ) |0i |0i = (H ⊗ I2n−1 )F  √ n |xi |0i
x∈{0,1}n
2
 
⊗n
X 1
= (H ⊗ I2n−1 ) √ n |xi |f (x)i
x∈{0,1}n
2
!
X (|xi + |x ⊕ si)
1
= (H ⊗n ⊗ I2n−1 ) √ √ |f (x)i
2 n−1 2
 x∈X 
|xi + |x ⊕ si
= (H ⊗n ⊗ I2n−1 ) √ |f (x)i M ESU RE
2
P (−1)x·y P (−1)(x⊕s)·y
√ n |yi + √ n |yi
y 2 y 2
= √
2
X (−1)x·y + (−1)(x⊕s)·y X (−1)x·y + (−1)(x·y)⊕(s·y)
= √ n |yi = √ n |yi
y
2 + 1 y
2 + 1

21
Algorithme de Simon: analyse V2
X (−1)x·y + (−1)(x·y)⊕(s·y) X (−1)x·y (1 + (−1)s·y )
√ n |yi = √ n |yi
y 2 +1 y 2 +1

p
Si s · y = 0 alors l’amplitude de |yi est 2−n+1.

Si par contre si s · y = 1 alors l’amplitude de |yi est 0.

22

Vous aimerez peut-être aussi