Wyklad-12 - usz.edu.pl

advertisement
Wykład 12
Algorytm Shora
Algorytm Shora powstał z dwóch głównych źródeł. Jednym ze źródeł jest teoria liczb,
którą nie będziemy tu rozważać dokładnie i która wykazuje, że faktoryzacja może być
sprowadzona do znalezienia okresu niektórych funkcji. Znalezienie okresu jest oczywiście
związane z przekształceniem Fouriera, z którym spotykamy każdy dzień i to jest drugim
źródłem algorytmu Shora. Komputer kwantowy może bardzo efektywnie wyliczać paralelnie
potrzebną liczbowo-teoretyczną funkcję dla wielu danych wejściowych i może też
wykonywać niektóre aspekty transformacji Fouriera tak efektywnie, że był wprowadzony
termin „kwantowe przekształcenie Fouriera” (QFT).
Dla czego jest interesującym znalezienie głównych mnożników liczb wielkich?
Motywacja naukowa jest taka, że to jest trudny problem. Okazuje się, że to jest dowolnie
rzadki przypadek, kiedy taką samą motywację mają naukowcy, bankierzy i wojskowe.
Przyczyną tego jest kryptografia, przekazywanie tajne danych (na przykład, finansowych albo
wojskowych) za pomocą tak zwanych schematów otwartego klucza kryptograficznego. W
tych schematach wielka liczba (otwarty klucz) wykorzystuje się dla generacji zakodowanej
wiadomości, która zostaje przekazywana do odbiorcy. Wiadomość można dekodować tylko
wykorzystując główne mnożniki otwartego (public) klucza. Te główne mnożniki (prywatny
klucz) zna tylko odbiorca (bank, kierownik jednostki itd.). Przykładem dość niskiego
poziomu jest liczba 29083  127  229 . Za pomocą tylko ołówka i papieru, prawdopodobnie,
główne mnożniki można znaleźć za jakiś czas, natomiast operacja odwrotna (mnożenie)
zajmie nie więcej niż minutę.
Teoria liczb
Załóżmy, że N  3 jest nieparzystą dużą liczbą, którą chcemy sfaktoryzować, a
a  N jest inną liczbą. Załóżmy, że największy wspólny dzielnik (greatest common divisor gcd) gcd N , a  1 , tj. N i a są wzajemne proste liczby. (Jeżeli one nie są wzajemnie proste,
f  gcd N , a jest już nietrywialnym głównym mnożnikiem N i my startujemy z N / f
zamiast N .) Dla znalezienia gcd skorzystamy z algorytmu Euclidesa, który w języku
nowoczesnym nazywa się algorytmem efektywnym.
Algorytm działa następująco. Załóżmy x i y dwie całkowite liczby, x  y , a
z  gcd( x, y ) . Wtedy jak x tak i y ,a również x  y, x  2 y,  są mnożnikami z i ostatek
1
r  x  ky  y otrzymuje się przy podziale x przez y . Jeżeli r jest równe zero, to z  y i
problem jest rozwiązany. Jeżeli r  0 , to problem transformuje się w podobny problem ale z
mniejszą liczbą
z  gcd x, y   gcd  y, r  .
(12.1)
Powyższe argumenty można powtórzyć z parą liczb ( y , r ) zamiast ( x, y ) itd. A zatem z
wyraża się jako gcd par zmniejszających się liczb. Ostatni niezerowy ostatek otrzymany w
taki sposób jest poszukiwaną liczbą z .
Przechodząc do naszego zagadnienia faktoryzacji liczby N rozważmy drugi blok z
teorii liczb, który nosi nazwę modular exponention. Pamiętając, że N i a są wzajemne proste
liczby, rozważmy potęgi a r liczby a , modulo N (tj, znajdziemy ostatek od dzielenia a r
przez N ). Najmniejsza dodatnie liczba całkowita r taka, że
ar
mod
N 1
(12.2)
nosi nazwę się rzędu (order) a mod N . To oznacza, że dla niektórego k
ar  k  N 1
(12.3)
a zatem
a r 1  k  N  a  a
(12.4)
i
a r 1 mod
N  a mod
N ,
(12.5)
a z tego wynika, że r jest okresową modular exponential funkcją
FN ( x)  a x mod
N .
(12.6)
A propos, to oznacza, że r  N ponieważ FN (x) (która jest ostatkiem przy podziale przez
N ) nie może być zakładamy większe niż N innych wielkości przed powtórzeniem.
Mogą istnieć trzy przypadki:
1.
r jest nieparzystą,
2.
r jest parzystą i a r / 2 mod N  1 ,
3.
r jest parzystą i a r / 2 mod N  1 .
Przypadki 1) i 2) są nierelevant (nie możliwe) dla faktoryzacji N , ale w przypadku 3),


jak zobaczymy niżej, chociaż jedna z dwóch liczb gcd N , a r / 2  1 jest nietrywialnym
mnożnikiem N .
2
Strategia faktoryzacji
Udowodnimy teraz, że powyższy przypadek 3) daje nietrywialny mnożnik N . Dla
uproszczenia oznaczeń oznaczmy a r / 2  x . Ze wzoru x 2
mod
N  1 wynika, że
x 2  1  x  1x  1 dzieli się przez N , a zatem mają wspólny mnożnik z x  1 albo z x  1 .
A zatem samo N nie może być wspólnym mnożnikiem, ponieważ x mod N  1 , a zatem
x  1 nie jest krotnym N ; x  1 nie może też być krotnym N , ponieważ jeżeli to jest tak, to
a r / 2 mod N  1 i rząd (order) musi być r / 2 , a nie r . (Przypomnijmy, że rząd jest określony
jako najmniejsza liczba taka, że a r mod N  1 ). Wspólny mnożnik musi być wtedy jedną z


liczb gcd N , a r / 2  1 i gcd może być efektywnie wyliczony za pomocą algorytmu Euclidesa.
Dalej udowodnimy, że przypadek powyższy 3) ma wysoką szansę zajść, jeżeli losowo
wybieramy dowolne liczby a . Następne fakty dają nam nadzieję:

Jeżeli N jest dokładnie główną potęgą N  p s ( s  2 ), to można to efektywnie
zarejestrować, ponieważ wtedy warunek s  log N / log p (z całkowitym p ) musi być
słuszny, co może być sprawdzone dla wszystkich dowolnych wartości s . (Zauważmy
że s musi być chociażby log N / log 2 ).

Jeżeli N jest nieparzyście złożoną liczbą N  p11  p m m ( m  2 ), a a jest losowo
wybraną całkowitą liczbą 1  a  N  1 wzajemnie prostą (comprime) do N i
a r  1 mod N (tj. r jest rządem a mod N ), to prawdopodobieństwo
probr parzysta a a r / 2 mod N  1  1 
1
3
 .
m
4
2
(12.7)
A to oznacza, że każdy raz wyliczając rząd a mod N , mamy szansę lepsze niż 75% znaleźć
nietrywialny główny mnożnik N . Obliczenia rządu m razy zmniejsza szansę niepowodzenia
do 4  m . Szansę znalezienia głównego mnożnika (jeżeli on istnieje!) może być doprowadzony
do wielkości dowolnie zbliżony do 1, jednak ważne jest pamiętać, że algorytm Shora jest
algorytmem probabilistycznym.
Udowodnienie tego wyniku z teorii liczb nie jest trudnym, ale ono zawiera kilku
dowodów z klasycznych kultur, takich jak twierdzenie chińskiego ostatku, które ma 750 lat.
Teraz
jesteśmy
w
stanie
przedstawić
algorytm,
który
(z
dużym
prawdopodobieństwem) daje nietrywialny mnożnik dla dowolnego skomplikowanego N .
Wszystkie kroki mogą być wykonane efektywnie na komputerze kwantowym, za wyjątkiem
zadania wyliczenia rzędu, który liczy komputer kwantowy.
3
1. Jeżeli N jest parzystym wybieramy mnożnik 2.
2. Określamy, czy N  a b dla całego a  1 i b  2 i jeżeli tak, to wybieramy
mnożnik a .
3. Losowo wybieramy x w obszarze od 1 do N  1 . Jeżeli gcd x, N   1, to
wybieramy mnożnik gcd x, N  .
4. Stosujemy podprogram znalezienia rządu dla znalezienia rządu x modulo N .


5. Jeżeli r jest parzyste, a x r / 2 mod N  1, to wyliczamy gcd x r / 2  1, N i
sprawdzamy, czy jeden z nich jest nietrywialnym faktorem, i jeżeli tak, to
wybieramy ten mnożnik. W przeciwnym przypadku, algorytm zawiódł i
musimy wracać do kroku 3).
Rdzeń algorytmu Shora
Centralną częścią algorytmu Shora jest wyliczenie rzędu a mod N , tj. okres modular
exponential function (12.6). Strategią wykonania tego jest wyliczenie paralelnie funkcję
FN (x) dla wielu wartości x i skorzystanie z techniki Fouriera dla określenia okresu w
sekwencji wartości funkcji. Żeby zrobić to dla danego N są potrzebne dwa rejestry
kwantowe:

źródłowy rejestr z K kubitami, taki, że N 2  Q : 2 K  2 N 2 i

celowy rejestr z N albo więcej stanów bazowych, jednak nie mniej niż log 2 N
kubitów.
Krok 1 algorytmu jest inicjalizacja dwóch rejestrów
~ ~
1  0 0 .
(12.8)
Drugim krokiem jest „kwantowe przekształcenie Fouriera” rejestru źródłowego. Kwantowe
przekształcenie Fouriera to nic nowego. To zwykłe dyskretne przekształcenie Fouriera
szeregu danych o długości Q . Odpowiedni operator unitarny działający na początkowe dane
rejestru przestrzeni Hilberta ma postać
U FQ : q 

qq /

exp
2

i

Q
Q q / 0 
1
Q 1
 /
 q .

(12.9)
Liczba q między 0 i Q  1 ma binarne rozwinięcie q   j 0 q j 2 j , a q jest skrócony zapis
K 1
q K 1 q1q0 . Celowy rejestr nie modyfikuje się, a zatem po drugim kroku mamy
4


Q 1

 2  U F  1  1  Q 1 / 2  q 0 ;
Q
(12.10)
q 0
wszystkie mnożniki fazowe Fouriera są równe jedynce, ponieważ wszystkie początkowe
kubity były równy zeru. Zauważmy, że ten szczególny wyjściowy wynik może być również
otrzymany po transformacji Hadamarda początkowego rejestru.
Krokiem 3 jest zastosowanie bramki
U a , która realizuje modular exponention
q  f (q)  a q mod N (nie będziemy rozważać jak jest zbudowana ta bramka). Wynikiem
jest
Q 1
 3  U a  2  Q 1 / 2  q a q mod N .
(12.11)
q 0
Tutaj Q  N 2 funkcjonalne wartości funkcji FN (q) obliczają się paralelnie jednym krokiem,
a ponieważ r  N okres r musi wykazywać w niektórych miejscach tej sekwencji
funkcjonalne wartości (function values).
Krok 4. Stosujemy znów przekształcenie Fouriera ku początkowemu rejestru. Ta daje


 4  U F 1  3  Q
Q
1
Q 1 Q 1
 e
2
qq /
Q
/
q a q mod N .
(12.12)
q 0 q / 0
Krok 5. Mierzymy początkowe kubity w bazie obliczeniowej. Prawdopodobieństwo
znalezienia początkowego rejestru w stanie q zmienia dane (pattern) (wskutek interferencji
kwantowej) od regularności, porządek r którego można wyprowadzić. Dla tego, żeby
widzieć to, załóżmy (chociaż to założenie jest niemożliwym, ponieważ Q jest potęgą dwójki,
ale jak zobaczymy niżej, to nie powoduje wrażliwych głównych efektów) na moment, że Q
dzieli się przez r , tj.
Q  nr .
(12.13)
Wprowadźmy skrócone oznaczenie dla stanu  4
 4   qq q f (q / ) ,
/
q
(12.14)
q/
gdzie sumowanie jest wykonane od zera do Q  1 . Prawdopodobieństwo znalezienia
początkowego rejestru w określonym stanie bazowym q0 jest równe wartości oczekiwanej
5
Pq0  1 , gdzie Pq0  q0 q0 jest operatorem rzutowym na q0 , a 1 odnosi się do celowego
kubitu
 4 Pq  1  4   pp  qq p q0 q0 q f ( p / ) f (q / ) 
/
0
p
p/
/
q/
q
  q p /  q q / f ( p / ) f (q / ) .
p/
0
q/
(12.15)
0
Modular exponential funkcja f ( p)  a p mod N ma okres r i r wartości funkcji wewnątrz
okresu są wszystkie różne, wskutek natury funkcji. A zatem, iloczyn skalarny f ( p / ) f (q / )
stanów celowego rejestru jest okresowy względem obu zmiennych p / i q / , i możemy
sortować człony w (12.15) zgodnie z niezerowymi wartościami
najpierw
przypadek
q /  0, r ,2r ,, (n  1)r .
p/  0.
Iloczyn
Dla
dowolnego
f (0) f (q / )  f (0) f (0)  1
skalarny
q/
z
f ( p / ) f (q / ) . Rozważmy
tych
f ( p / ) f (0)  1
liczb
dla
dla
p /  0, r ,2r ,, (n  1)r . A więc człony w (12.15) zawierające niezerowe iloczyny skalarne
f (0) f (0) generują następujący wkład
n 1 n 1

 0  0

q0 ,r
 q ,r 
0
2
n 1



0
q0 , r
.
(12.16)
W podobny sposób możemy pozbierać wkłady, związane z
f (1) f (1) ,
f (2) f (2) ,
, f (r  1) f (r  1) i otrzymać szukane prawdopodobieństwo znalezienia początkowego
(source) rejestru w stanie bazowym q0
2
r 1 n 1
 4 Pq  1  4    q ,r  j
0
j 0  0
0
.
(12.17)
Suma wewnętrzna zawsze zawiera n członów, w niezależności od j . To jest wynikiem
założenia (12.13). Bez tego założenia, tj. dla (n  1)r  Q  nr wewnętrzna suma będzie miała
n  1 członów tylko dla niektórych j . Ale to nie daje dużego efektu, jeżeli będziemy
zakładali, że zwykle rozważamy duże liczby. Zapisując abrewiatury  qq/ w postaci jawnej
znajdujemy
6
2
n 1



0
q0 , r  j
1
 2
Q
2
q


exp  2i 0 r  j  

Q
 0


n 1
q j  n 1 
q r 


1
 2 exp  2i 0   exp  2i 0  
Q   0 
Q 
Q


 2
.
(12.18)
Mnożnik fazowy z przodu sumy jest nieistotny. Suma (geometryczna) daje n , jeżeli q0 r / Q
jest liczbą całą i zero w pozostałych przypadkach, w niezależności od j . A zatem
prawdopodobieństwo (12.17) wykazuje strukturę pików równej wysokości, z której możemy
znaleźć r .
Bez upraszczającego założenia (12.3) struktura pików nie jest dokładnie regularną, ale
prawdopodobieństwo znalezienia źródłowego (source) registru w stanie q0 może być wciąż
wyrażone przez kilku sum geometrycznych
 4 Pq  1  4 
0
1
Q2
 Q 1 j 
int

r 1
 r 
 

j 0
0
2

q r 

 exp  2i 0  

Q  



,
(12.19)
gdzie „int” oznacza całą część rzeczywistej liczby. Funkcja (12.19) jest pokazana na rys.12.1
dla Q  256 i r  10 . Ze struktury regularnej pików, podobnej do struktury przedstawionej
na tym rysunku rząd r można wyprowadzić z wysokim prawdopodobieństwem (ale nie z
pewnością), jeżeli wziąć pod uwagę dość dużą liczbę pików
Rys.12.1. Prawdopodobieństwo pomiaru q dla Q  256 i r  10
7
Pozostało zrozumieć realizację modular exponentiation i dyskretną transformację
Fouriera. Pominiemy wszystkie szczegóły modular exponentiation za wyjątkiem jednej
uwagi, związanej z efektywnym wyliczeniem (wyższych) potęg x a dowolnej całkowitej a .
Za pomocą M można wygenerować M  1 liczb x, x 2 , x 4 ,, x 2 . Korzystając z binarnego
M
rozwinięcia a  i 0 ai 2i ( ai  0,1 ), szukaną potęgę możemy zapisać w postaci
M
M
 
xa   x2
i 0
i
ai
.
(12.20)
A zatem, ponieważ ten iloczyn zawiera chociażby M  1 mnożników, duża potęga x a może
być wyliczona wykorzystując tylko rzędu log 2 a mnożników. Potrzebnym dodatkowym
ingredientem jest tylko algorytm mnożenia dwóch całych za pomocą bramek kwantowych,
który jednak istnieje.
Transformacja kwantowa Fouriera
Rozważmy najpierw „klasyczną” dyskretną transformację Fouriera z krótką dygresją o
szybkim przekształceniu Fouriera (FFT), a potem przejdźmy do kwantowej transformacji
Fouriera (QFT) i zobaczymy, że ona jest nawet szybsza, niż szybka transformacja Fouriera.
Zwykła dyskretna transformacja Fouriera mapuje urojony wejściowy wektor ze składowymi
x0 , x1 ,, x N 1 na wektor wyjściowy (współczynniki Fouriera) y 0 , y1 ,, y N 1 zgodnie z
yk  N

1 N 1
2
 2i 
kj x j ,
N 
(12.21)
 2i 
kj  y j .
N 
(12.22)
 exp 
j 0
i odwrotnie
xk  N

1 N 1
2
 exp  
j 0
Zauważmy, że obie transformację mogą być zinterpretowany jako operacji „matrix times
vector”. To, że dwie macierzy przekształceń są odwrotne jedna do drugiej wynika, z równości
N 1
 2i
 j  l k   N jl ,
N

 exp 
k 0
(12.23)
która jest skutkiem sumowania geometrycznego. Zwykle wyliczenie przekształcenia Fouriera
zawiera około N 2 urojonych mnożeń i prawie tyle dodawań. A zatem, podwojenie rozmiaru
zbioru danych powoduje zwiększenie operacji o cztery razy.
8
FFT (które ma początek od pracy Gauβ z 1805 roku) opiera się na obserwacji, że
rozdzielając w (12.21) parzyste i nieparzyste j otrzymujemy
yk  N

1
2
N
1
 N2 1

2

i
2

i


2
 2i 
 exp 
kl  x 2l  exp 
k   exp 
kl x 2l 1  ,



 N /2 
 N  l 0
 N /2 
l 0


(12.24)
gdzie zakładamy, że N jest parzyste. Zauważmy, że dwie sumy są znów przekształceniami
Fouriera N / 2 danych każda, co prowadzi do 2N / 2  N 2 / 2 operacji obliczeniowych. A
2
zatem prosta reorganizacja sumy Fouriera zmniejsza ilość operacji o połowę i nie ma
przeszkód pozostawać na tym etapie, jeżeli N / 2 jest parzystą liczbą. Kontynuacja tego
procesu do N  2 n daje FFT algorytm, który zmniejsza ilość operacji z O( N 2 ) do
O ( N log N ) , co pozwala w wielu aplikacjach, na przykład procesie obrazowania, tomografii
komputerowej itd., przejść od „pryncypialnej możliwości” do „praktycznej i wygodnej dla
wykorzystywania na co dzień aplikacji”.
Kwantowa transformacja Fouriera jest operatorem określonym
za pomocą
następującego mapowania stanów bazowych na przestrzeni N -wymiarowej Hilberta
j N

 2i 
jk  k .
N

1 N 1
2
 exp 
k 0
(12.25)
Wtedy dowolny stan kwantowy z amplitudami x j transformuje się jako
N 1
N 1
j 0
k 0
 x j j   yk k
(12.26)
gdzie y k określają formuły (12.21) „klasycznego” przekształcenia Fouriera. Ta transformacja
jest unitarną, tj. ona zachowuje normę stanu kwantowego
N 1
y
k 0
N
2
k
1
2
 2i 
 N   x j exp 
jk  
 N

k 0 j 0
1
N 1 N 1
N 1 N 1 N 1
 x j x e
k 0 j 0 l 0

l
2i
 j  l k
N
N 1
  xl
l 0
gdzie na ostatnim kroku skorzystaliśmy z równości (12.23).
9
2
,

Załóżmy teraz, że N  2 n tak, że bazowe stany 0  2 n  1
 tworzą obliczeniową
bazę dla n - kubitowego komputera kwantowego. Będziemy oznaczać te stany bazowe albo
za pomocą wskaźnika j , albo za pomocą sekwencji j1 j 2  j n z binarnej reprezentacji j
n
j  j1 2 n 1    j n 2 0   j 2 n  .
(12.27)
 1
Nam potrzebna będzie też binarna reprezentacja ułamkowych liczb (pomiędzy 0 i 1), którą
zapiszemy jako binarny ułamek
0, jl jl 1  j m  jl 2 1  jl 1 2 2    j m 2  m l 1 .
(12.28)
Rozważmy inne podejście do przekształcenia Fouriera
j 2

 2i
n 2 n 1
2
 exp  2
k 0
n

jk  k ,

(12.29)
i podstawiając binarne przedstawienie k znajdujemy
j 2
2

n
2
1
1

n
2
1
 2i  n

 n j  k l 2 nl   k1  k n =

exp


k1 0
k n 0

 2  l 1
1

n

   exp 2ijk l 2 l k l  2
k n  0 l 1
k1  0
2

n
2
 0
n
l 1
l

n
2
 1

l
  exp 2ijk l 2 k l  

l 1  kl  0


n

 .

 exp 2ij 2 l 1
l
Na pierwszym kroku k1 k n było przedstawione jako jawny iloczyn tensorowy
następnie

i
j
sumy
ai b j 
zostały
przegrupowane
zgodnie
z

n
l 1
formalną
kl , a
strukturą
 a  b . Na końcu rozważanie w eksponencie daje binarny ułamek
i
i
j
j
n
j 2 l   j 2 n  l  j1 j 2  j n l  j n l 1  j n .
(12.30)
 1
Cała część (z lewej strony od kropki) jest nieistotna ponieważ e i 2k  1 i możemy zapisać
kwantową transformację Fouriera jako
j 2

n
2
0
1

 e i 2 0, jn 1 1 0
2
 e i 2 0, jn 1 jn 1
10
2
 0
n
 e i 2 0, j1 j2  jn 1
n
.
Bramki do QFT
A zatem kwantowe przekształcenie Fouriera jest niczym innym jak prostym
przesunięciem fazowym poszczególnych kubitów: stan 1 każdego z n kubitów otrzymuje
dodatkowy mnożnik fazowy. Ta operacja może być realizowana efektywnie za pomocą
obwodu kwantowego zbudowanego z kilku prostych bramek kwantowych. Wprowadźmy
unitarny (przesuwający fazę) operator
0
1
Rk  
2i 2 k
0 e



(12.31)
i odpowiednią kontrolną Rk bramkę, która stosuje Rk do celowego (target) kubitu, jeżeli
kontrolny kubit znajduje się w stanie 1 . W odpowiednim symbolicznym (rys.12.2)
„drutowym diagramie” komputera kwantowego wykonującego kwantowe przekształcenie
Fouriera, górny drut oznacza celowy kubit, dolny drut oznacza kontrolny kubit, a dane, jak
zwykle, rozchodzą się z lewej strony w stronę prawą.
Rys.12.2. Kontrolna Rk bramka
Kontrolnych Rk bramek (dla różnych wartości k ) oraz bramek Hadamarda wystarczy
dla zbudowania obwodu wykonującego kwantowe przekształcenie Fouriera (Rys.12.3).
Rys.12.3. Obwód dla przekształcenia kwantowego Fouriera. Nie pokazane są swap bramki,
które są potrzebne do przegrupowania wyjścia do dogodnej postaci
11
W celu analizy, jak obwód na rys.12.3 wykonuje kwantowe przekształcenie Fouriera,
rozważmy wejściowy stan
j1 j2  j n . Bramka Hadamarda działająca na pierwszy kubit
generuje stan


2 1 / 2 0  e 2i 0, j1 1 j2  jn ,
(12.32)
ponieważ e 2i 0, j1   1 1 . Kontrolna R2 bramka daje
j


2 1 / 2 0  e 2i 0, j1 j2 1 j2  jn ,
(12.33)
a kolejna kontrolna bramka R dodaje dodatkowe bity do eksponencjalnego fazowego
mnożnika 1 1 , co daje w końcu


2 1 / 2 0  e 2i 0, j1 j2  jn 1 j 2  j n ,
(12.34)
Drugi kubit rozważamy w podobny sposób. Bramka Hadamarda generuje



2 2 / 2 0  e 2i 0, j1 j2  jn 1 0  e 2i 0, j2 1 j3  j n ,
(12.35)
a kontrolne R2 przez Rn1 bramek dodają bity mniejszego rzędu w eksponencjalnym
fazowym mnożniku 1 2 , co daje w końcu



2 2 / 2 0  e 2i 0, j1 j2  jn 1 0  e 2i 0, j2  jn 1 j3  j n .
(12.36)
Przedłużając ten proces otrzymujemy na końcu


 

2  n / 2 0  e 2i 0, j1 j2  jn 1 0  e 2i 0, j2  jn 1  0  e 2i 0, jn 1 .
(12.37)
To jest prawie pożądany wynik, za wyjątkiem porządku kubitów, który można przegrupować
za pomocą bramek SWAP.
Ogólną liczbę operatorów (bramek) dla przekształcenia kwantowego Fouriera łatwo
wyliczyć. Na pierwszy kubit działa bramka Hadamarda i n  1 kontrolnych R bramek, czyli
w ogóle n bramek. Następny kubit potrzebuje na jedną kontrolną R bramkę mniej itd. A
zatem,
ogólna
liczba
bramek,
pokazanych
(jawnie)
na
rys.12.3
wynosi
n  (n  1)    1  n(n  1) / 2 . Oprócz tego potrzebne są około n / 2 bramek SWAP, każda z
których zawiera trzy bramki CNOT. A więc kwantowe przekształcenie Fouriera potrzebuje
rzędu n 2 bramek (operacji) dla transformacji Fouriera 2 n wejściowych danych. Ten wynik
jest znacznie lepszy, niż FFT, który potrzebuje O(n2 n ) kroków, jak omawialiśmy wyżej.
12
Zauważmy jednak, że nie jest możliwym otrzymanie wszystkich amplitud końcowego stanu
przekształcenia kwantowego Fouriera oraz nie jest możliwym efektywnie przygotować
wejściowy stan dla dowolnych amplitud. To ogranicza zastosowanie QFT do specjalnej klasy
aplikacji, takich jak algorytm Shora.
13
Download