Wykład 8 Operacje dwukubitowe Pokażemy, że jedno-kubitowe i CNOT bramki są uniwersalne, ponieważ mogą być wykorzystane do zbudowania dowolnych dwupoziomych bramek omówionych wyżej. Podstawowa idea jest prosta. Przekształcamy przestrzeń Hilberta tak aby dwa relewantne stany bazowe stały stanami bazowymi jednego kubitu, wykonujemy na tym kubicie potrzebną operacje i wykonujemy przekształcenie z powrotem do pierwotnej bazy. Baza przetasowania może być otrzymana za pomocą operacji kontrol-NOT wyższego rzędu, które po kolei można sprowadzić do prostych operacji CNOT. Rozważmy przykład trzech kubitów: jak wykonać dwu-poziomą operację U dla stanów ABC 000 i 111 ? Najpierw zastosujemy bramkę Toffoli do trzech argumentów NOT A , NOT B i C (przypomnijmy, że bramka Toffoli jest trójkubitową bramką): ( 3) (NOT A , NOT B, C ). Pierwsze dwa kubity są kubitami kontrolnymi, które w tym przypadku muszą być 0, ostatni kubit jest celowy. Ta operacja wymienia 000 z 001 i pozostawia pozostałe kubity bez zmian. Teraz zastosujemy ( 3) (NOT A, C , B ). To wymienia 001 z 011 . Kolejny efekt wymieni 000 z 011 . Potem możemy zastosować C 2U wykonując operację U na kubicie A , przy założeniu, że jak B , tak C są równe 1. Na koniec stany bazowe mogą być przegrupowane do ich oryginalnego porządku. Podobne przegrupowania można zawsze wykonać za pomocą sekwencji stanów bazowych kubitów (albo binarnych liczb reprezentujących stany) dwóch kolejnych członów, które różnią się tylko jednym położeniem. (Taka sekwencja jest wiadoma jako kod Gray’a). Jasne, że ta droga konstruowania dowolnych kwantowych bramek nie zawsze jest najefektywną (z punktu widzenia najmniejszej liczby możliwych operacji). Jednak, to nie jest poważnym problemem, ponieważ istnieją, w każdym przypadku, unitarne n - kubitowe operacje które potrzebują O(e n ) bramek a zatem są wewnętrzne nieefektywne. Aproksymacja jedno-kubitowych bramek Udowodnimy, że bramki Hadamarda, fazowa i / 8 są (w przybliżeniu) uniwersalnymi jedno-kubitowymi bramkami. Przypomnijmy, że bardziej ogólną jednokubitową bramką jest obrót sfery Blocha na dowolny kąt dookoła dowolnej osi 1 (kombinowany z trywialnym mnożnikiem fazowym). Załóżmy, że musimy dokonać obrotu około osi n o kąt , który jest irracjonalnym mnożnikiem 2 . Dzięki irracjonalności, kąty n mod 2 (n 0,1,2,) (8.1) są gęste (dense) w 0,2 , a zatem dowolna rotacja około n może być aproksymowana dowolną precesją powtarzających rotacji Rn Rn O . (8.2) Jeżeli wykonamy dwie takich irracjonalnych rotacji około wzajemnie prostopadłych osi, to możemy zrealizować dowolną rotację dzięki Z-Y-Z dekompozycji. Z fundamentalnych reguł mnożenia macierzy Pauli’jego X 2 Y 2 Z 2 1, XY iZ YX itd. (8.3) i z określenia bramki Hadamarda H 1 2 X Z (8.4) otrzymujemy HXH Z , HZH X . (8.5) Dalej wróćmy do rotacji sfery Blocha dookoła jednostkowego wektora n o kąt exp i n cos 1 i sin n , 2 2 2 (8.6) ( X , Y , Z 2S / ) i bramki / 8 i 8 T e 8 e 0 i 1 0 e i 8 e i 8 Z Z 4 i e 8 i HTH e 8 e i X 8 1 X4 . (8.7) Wtedy Z 1 4 X 1 4 cos 1 i sin Z cos 1 i sin X 8 8 8 8 cos 2 1 i sin cos X sin Y cos Z 8 8 8 8 8 cos 2 1 i sin q , 8 8 2 (8.8) gdzie q cos , sin , cos . 8 8 8 (8.9) Dla n q / q możemy (8.8) przepisać w postaci Z 1 4 1 X 4 cos 1 i sin n , (8.10) gdzie 1 1 cos cos 2 1 . 2 8 2 (8.11) Korzystając z niektórych twierdzeń z algebry i teorii liczb można udowodnić, że jest irracjonalnym mnożnikiem 2 . To jest pierwsza z dwóch potrzebnych rotacji. Druga jest H 1 2 1 2 Z 1 4 1 4 1 2 X H , (8.12) gdzie H e i 4 2 1 iH . (8.13) Teraz można udowodnić, że H 1 2 1 2 XH 1 1 H 2 YH 2 H 1 2 1 2 1 X Z 2Y . 2 1 2 X Z . (8.14) (8.15) 1 X Z 2Y . 2 (8.16) X 4 H 2 cos 2 1 i sin m , 8 8 (8.17) ZH i ostatecznie H 1 2 Z 1 4 1 1 gdzie 1 1 m sin , 2 cos , sin , 2 8 8 2 8 3 (8.18) skąd widać, że m 2 q 2 i m q 0 . To jest znów rotacja o ten sam kąt , jak wyżej, około osi prostopadłej do poprzedniej osi n 1 1 1 1 1 1 W literaturze byłe zaproponowane też rotacje X 4 Z 4 i HX 4 Z 4 H Z 4 X 4 , które podobne do tych co rozważaliśmy wyżej. Jednak w tym przypadku osi rotacji nie są ortogonalnymi, a tworzą kąt 32,650 . Oprócz tego, w tym przypadku prosta Z-Y-Z dekompozycja dowolnej rotacji na trzy mnożniki nie jest możliwa, ale dekompozycja na większą niż trzy mnożnika jest możliwa. Symulacje fizyczne za pomocą komputera. Wkład Feynmana W 1982 i 1985 roku Richard Feynman opublikował dwa artykuły, z których powstała dziedzina informatyki kwantowej. Oba artykuły to są referaty zaproszone na konferencjach, a interes Feynmana był inicjowany przedstawieniem przez Fredkina, Bennetta i Toffoli rewersyjnych obliczeń. W pierwszym ze swoich artykułów Feynman rozważał metody symulacji różnych układów fizycznych za pomocą komputerów. Symulacje deterministyczne układów kwantowych na komputerze kwantowym napotykają się na problemy, ponieważ potrzebne resursy rosną eksponencjalnie ze zwiększeniem rozmiarów układu. Nawet dla kilku cząstek o spinie 1/2 bez jakiś innych stopni swobody rozmiar przestrzeni Hilberta jest nie do zrealizowania. Sytuacja znacznie pogarsza się jeżeli musimy uwzględnić dodatkowe (ciągłe) stopni swobody cząstek. Z drugiej strony, klasyczna (deterministyczna) dynamika jest znaczniej prostsza dla symulacji ponieważ ona jest lokalna, przyczynowa i odwracalna. Oczywiście taka symulacja zawsze zawiera niektóry rodzaj dyskretyzacji dla możliwych wartości zmiennych ciągłych takich jak czas, współrzędne, wartości polowe itd. Na przykład ruch N oddziałujących klasycznych punktowych cząstek w trzech wymiarach opisują 3N równań ruchu. Liczba różniczkowych równań proporcjonalna do liczby cząstek. Zwykły numeryczny algorytm dla rozwiązania tych równań ruchu musi zawierać dyskretyzację czasu i przybliżeń dla różniczek. To daje możliwość przekształcić układ równań różniczkowych do układu równań algebraicznych. Resurs potrzebny do rozwiązania tego układu równań algebraicznych będzie rósł jako potęga od liczby cząstek, ale nie jak eksponenta. To oznacza, że klasyczna deterministyczna dynamika może być efektywnie symulowana za pomocą komputera. To już nie jest tak dla klasycznej probabilistycznej dynamiki; nawet jeżeli deterministyczne symulacje wykonujemy. Dla zrozumienia tego, rozważmy jako przykład klasyczne równanie dyfuzji 4 p D 2 p t (8.19) (gdzie D - współczynnik dyfuzji). pr , t - gęstość prawdopodobieństwa znalezienia jednej cząstki, która wykonuje ruch Browna. Dla symulacji różniczkowego równania, musimy dyskretyzować czas i przestrzeń oraz dynamika musi być aproksymowana zbiorem reguł przejścia określających ile wynosi prawdopodobieństwo „skoku” do przodu i do tyłu między sąsiednimi punktami w przestrzeni w każdym czasowym kroku. A zatem ciągła funkcja p(r , t ) zamienia się na szereg liczb p ik , prawdopodobieństw znalezienia dyfundującą cząstkę w punkcie przestrzeni ri w chwili t k . Symulacje zachowują ciąg wszystkich tych liczb, startując z określonej początkowej konfiguracji pi 0 i kończąc w określonej końcowej konfiguracji piT , gdzie i zawsze przebiega od 1 do S , liczby punktów sieci w której r były dyskretyzowane. Trudności zaczynają się przy zwiększeniu liczby dyfundujących cząstek. Dla dwóch cząstek p(r , t ) musimy zamienić przez p(r1 , r2 , t ) , gdzie r1 i r2 są współrzędne dwóch cząstek. To doprowadzi do powstawania dyskretyzowanego zespołu liczb p i , j , k , gdzie ri i r j są możliwe dyskretne wartości współrzędnych r1 i r2 odpowiednio. Teraz symulacje muszą na każdy krok czasowy zachowywać ciąg z S 2 liczb. W przypadku N cząstek mamy S N liczb na jeden krok czasowy, co szybko przerasta pojemności dowolnego komputera klasycznego. Oczywiście istnieją sytuacje w których nie musimy wychodzić za granicy opisu w przybliżeniu współrzędnych indywidualnej cząstki, na przykład jeżeli cząstki nie oddziałują między sobą. Symulacje probabilistyczne Symulowanie deterministyczne dynamiki probabilistycznej wymaga zachowania ciągu wszystkich możliwych (dyskretyzowanych) konfiguracji układu, jak ważnych tak i mających małe prawdopodobieństwo. Cel symulacji probabilistycznej obejść nie potrzebne straty resursu przy obliczeniach komputerowych wszystkich możliwych konfiguracji. Symulacje probabilistyczne konstruują się w taki sposób, żeby przyjść do dowolnego końcowego wyniku (albo konfiguracji) z takim samym prawdopodobieństwem jak w procesie naturalnym. To można wykonać bez eksponencjalnego wzrostu resursu przy zwiększeniu liczby cząstek. Oczywiście dla symulacji probabilistycznych potrzebne jest powtórzenie symulacyjnych ruchów (plus zastosowania niektórych statystyk dla generacji błędów dla wyników). 5 Faktycznie probabilistyczne symulacje takiego rodzaju wykorzystują każdy dzień w swojej prace naukowcy i inżynierze w różnych dziedzinach. Jednak okazuje się, że probabilistyczne symulowanie układów kwantowych na komputerach kwantowych nie jest możliwe. Fundamentalne przyczyny tego są związane z naturą korelacji w układach kwantowych. Możliwość probabilistycznej symulacji układów kwantowych musi zakładać istnienie niektórych „skrytych” klasycznych zmiennych, które nie dostępne są do obserwatora i uśredniają się przy otrzymaniu rezultatu fizycznego. Jednak jak omawialiśmy wcześniej istnienie takich zmiennych, jak wskazują nierówności Bella i CHSH, ograniczają wartości korelacji systemy. Te nierówności nie zgadzają się z kwantową teorią i jak udowodniono w wielu eksperymentach kwantowych one nie są słuszne. A zatem konsekwentna symulacja probabilistyczna układów kwantowych na komputerze kwantowym jest niemożliwa i po raz pierwszy wskazał Feynman. Właśnie ta niemożliwość doprowadziła Feynmana do sugestii zbadania możliwości symulacji kwantowych za pomocą komputerów kwantowych. Komputery kwantowo-mechaniczne. Proste bramki Drugi artykuł Feynmana zawierał dowolnie detaliczną propozycję kwantowej realizacji klasycznych obliczeniowych zadań. Z artykułu wynika też, że Feynman dobrze rozumiał problem czułości układów kwantowych ku małym zaburzeniom; jednak on powiedział: „To badanie jest badaniem zasad; naszym celem jest pokazać, że istnieją niektóre Hamiltoniany dla układów, które można rozważać jako kandydaci na komputery. Nie rozważamy, czy istnieją najefektywniejsze układy, nie jak można ich zrealizować”. Rys.8.1. Lewa część: prosta bramka CNOT. Prawa część: bramka CCNOT (Toffoli) Już wiemy niektóre odwracalne bramki na poziomie 1-, 2- i 3-bitów: NOT maps x 1 x , 6 (8.20) CNOT maps x, y x, xXORy x, y if x,1 y if x0 x 1 , (8.21) i bramka Toffoli, kontrolna-kontrolna NOT albo ( 3) bramka: C CNOT maps x, y, z x, y, xyXORz x, y,1 z iff x, y, z x y 1 otherwise , (8.22) gdzie „iff” jest jak zwykle skrótem dla „ jeżeli i tylko jeżeli”. Dwie ostatnie bramki są pokazane na rys.8.1. Zwróćmy uwagę, że symbol symbolizuje XOR albo ekwiwalentnie sumę (addition) modulo 2. Ponieważ dla wszystkich trzech bramek chociaż jeden bit „flipuje”, wszystkie trzy bramki są odwracalne, co jak zobaczymy dalej jest ważnym. Rozważając ich jako operatory kwantowo-mechaniczne, możemy powiedzieć, że są one oczywiście unitarne. Obwody sumujące Z tych elementów możemy skonstruować sumator (dokładniej, pół-sumator), który zawiera dwa wejściowe bity a i b oraz bit przenoszenia (carry bit) c , który na początku był zerowy (rys.8.2). CCNOT zmienia bit przeniesienia na 1, jeżeli i tylko jeżeli obaj a i b są równe 1. Wyjściowy bit na średniej linii jest równy 1 jeżeli a 1 i b 0 albo a 0 i b 1 oraz równy zero w innych przypadkach, a zatem otrzymujemy a b . Rys.8.2. Obwód sumujący (pół-sumujący) Kolejnym obwodem (tym obwodem dla którego będziemy konstruować Hamiltonian) jest pełny sumator (rys.8.3). On zawiera dwa bity danych a i b oraz bit przenoszenia c z poprzedniej bramki i oblicza a b c , plus bit przenoszenia, który jest równy 1, jeżeli dwa albo więcej a, b, c są równe 1. 7 Co się dzieje się wzdłuż trzech górnych linii jest zupełnie jasne, „trikowym bitem” jest bit przenoszenia d , osobiście działanie drugiej CCNOT bramki. Zauważmy, że jeżeli a b 1, to d 1 poprzez pierwszą CCNOT bramkę. Rys.8.3. Pełny sumujący obwód Wtedy kontrolny bit a b 0 drugiej bramki CCNOT jest równy zero, tak że d nie powraca z powrotem do 0 w niezależności od wartości c . Istnieje tylko jeden przypadek, kiedy d zmienia się od 0 do 1 - a b 1 i c 1 , wtedy istotnie d 1 , jeżeli a b c 2 . Kubitowe operatory podwyższające i obniżające Przejdźmy teraz od klasyki do kwantów. W tym celu zmapujemy bity na kubity, które wykorzystują tylko stany bitowe 0 i 1 , ponieważ (obecnie) nas nie interesują specjalne własności kwantowe związane z zasada superpozycji. Przetłumaczymy bramki i obwody rozważane wyżej na operatory kwantowo-mechaniczny. Już wiemy, jak odwrócić (flip) kubit za pomocą operatorów podwyższających i obniżających S a a S a ; a a a . (8.23) Indeks a prosto wskazuje nam, że mamy do czynienia z kubitem a . Dla kolejnego rozważania dogodniej jest wykorzystywanie trochę innego oznaczenia i Interpretujemy bazowe stany 0 a i 1 a języka. jak brak albo istnienie cząstki w kubicie a , odpowiednio. Ilość cząstek w kubicie a może być albo zero albo 1 i ta liczba może być zmieniona za pomocą kreacji albo anihilacji „cząstki a -typu”. Te działania wykonują operator kreacji a i jego sprzężony operator – operator anihilacji a a 0 a 1 a; a1 a 0 8 a . (8.24) Porównując (8.24) i (8.23) widzimy, że a odpowiada S a i a odpowiada S a . Podkreślimy, że będziemy wykorzystywać język operatorów kreacji i anihilacji jako dogodny sposób rozważać stany kubitów; nie będziemy stosować całej formalnej maszynerii „przedstawienia liczb obsadzenia”, która wiadoma jest jako „kwantowanie wtórne”. Przypominając relację S x 1 X S S , możemy wyrazić operację NOT na 2 2 kubicie a w terminach a -cząsteczkowych operatorów kreacji i anihilacji NOT (a) a a . (8.25) Ponieważ kubit a może być wykorzystany jako kontrolny kubit w CNOT albo CCNOT bramce, musimy stworzyć operator nie zmieniające stanu a . W nowym języku to oznacza, że ,musi być „licznik liczby a -cząstek” i to można zrealizować za pomocą operatora liczby cząstek a a , który jak łatwo sprawdzić spełnia tożsamość aa x a xx a x 0,1 . (8.26) Dla tego, żeby uwzględnić inne kubity b, c itd., wprowadźmy cząstki b -typu, c typu itd., z odpowiednimi operatorami kreacji i anihilacji b i b , c i c itd. Wtedy łatwo zapisać operator obniżający odpowiadający bramce CNOT z a jako bit kontrolny. Zakłada się, że ten operator odwraca b jeżeli a 1 i nic nie zmienia jeżeli a 0 CNOT (a, b) b b a a 1b 1a a a b b 1b a a 1b1a . (8.27) Dla tego, żeby ominąć zbój znaku, zakładamy, że operatory różnych kubitów (albo różnych miejsc, jeżeli kubity lokalizowane w różnych punktach przestrzeni) komutują. To jest właściwość cząstek Bose (bozonów), w tym czasie komutacyjna relacja dla cząstki w tym samym miejscu a a aa 1a , (8.28) jest typową dla cząstek Fermi’jego (fermionów). A zatem cząstki, które wykorzystujemy tu są nie bozonami, nie fermionami, co doprowadza do niektórych komplikacji jeżeli chcemy stosować standardową wielo-cząsteczkową technikę obliczeń. Jednak, jak podkreśliliśmy wyżej, nie chcemy robić tego. Dla kontynuacji budowy „Hamiltonianu, który sumuje” potrzebne jest stworzenie operatora bramki Toffoli’jego ( 3) albo CCNOT, który jest podobny do CNOT 9 (3) a, b, c 1a1b1c c c 1c a ab b . (8.29) Operator pełnego sumatora może być zapisany korzystając z diagramu przedstawionego na rys.8.3, zaczynając z lewej strony i zapisując elementarne operatory od początku ku stronie prawej CNOT (b, c) (3) b, c, d CNOT a, b (3) a, b, d a, b, c,0 (8.30) Ht : A4 A3 A2 A1 a, b, c,0 exp i a, b, c,0 (z oczywistymi określeniami operatorów A1 A4 ). Czy istnieje Hamiltonian H oraz czas t , które obaj spełniają to równanie? Oczywiście to nie jest proste pytanie, ponieważ 2 3 1 Ht Ht Ht 1 Ht exp i 1 i i i , 2 6 (8.31) a zatem prawa strona powyższego równania na pełny sumator musi być superpozycją stanów, na które H działa dowolną liczbę raz, od zera do nieskończoności. Jednak okazuje się, że to jest możliwe, czyli: jest możliwość budowy H , takiego żeby pożądany końcowy stan był przedstawiony (spośród innych) i jest możliwość rozróżnić pożądany stan od innych stanów. Trik tu polega na zachowaniu tego, co operatory działy już na wejściowy stan. To notowanie wykonuje się za pomocą pomocniczych (albo „rabskich”) cząstek. Załóżmy, że chcemy obliczyć f Ak Ak 1 A1 i (8.32) (w naszym przykładzie k 4 ) dla n - kubitowego stanu i ( n 4 w naszym przykładzie). Wprowadźmy „szereg” k 1 nowych „programowych kontrolnych kubitów” oznaczonych indeksem i 0k z odpowiednimi operatorami kreacji i anihilacji q i , q i . Hamiltonian sumatora Poszukiwany Hamiltonian wtedy ma postać k 1 k 1 k 1 H qi1 qi Ai 1 h.c. qi1 qi Ai 1 Ai1 qi qi 1 qi1 qi qi qi 1 Ai 1 . i 0 i 0 i 0 10 (8.33) Tu „h.c.” oznacza sprzężenie Hermitowskie (które działa H ) operatorem hermitowskim. Wykorzystaliśmy fakt, że operatory A są operatorami hermitowskimi, a operatory q zakładamy komutują między sobą i ze wszystkimi bramkowymi operatorami Ai . Zauważmy, że liczba „ q cząstek” k i 0 qi qi jest stała; będziemy interesować się wyłącznie przypadkiem jednej cząstki. Działanie Hamiltonianu jest przedstawiono na rys.8.4. Rys.8.4. Hamiltonian z operatorami rejestru Ai Gdy „program liczenia cząstek” rusza od położenia i ku położeniu i 1 albo odwrotnie operator Ai 1 działa na kubity rejestru, gdzie wykonują się obliczenia. Obliczenia startują z kubitów rejestru w stanie wejściowym i i pojedynczy zlicza cząstkę w położeniu 0. A zatem działanie H daje H 1000 0 i H 1 0100 0 A1 i H 2 0010 0 A2 A1 i 1000 0 A1 A1 i 1 , (8.34) gdzie wykorzystaliśmy to, że bramki A pokrywają się z ich odwrotnymi bramkami. Widzimy, że jeżeli program liczenia znajduje się w miejscu l , ostatnim operatorem, które jest aktywnym jest Al 0 1 0 Al i . (8.35) l Wtedy kolejne zastosowanie H doprowadza do dwóch możliwości: l l 1; Al będzie w drugiej potędze (a zatem będzie skasowany ponieważ on jest równy swojemu operatorowi odwrotnemu) l l 1; Al 1 będzie przedstawiony jako szereg operatorów A . 11 (Ten argument może być oczywiście być transformowany w ścisły dowód za pomocą indukcji.) Otrzymujemy, że jeżeli nasz stan końcowy zawiera składową z liczoną cząstką w miejscu k kończymy proces obliczeniowy. Pożądaną składową na wyjściu mamy kiedy 00 01 f q k q k exp i Ht 100 0 i , (8.36) gdzie mnożnik normujący, rozmiar którego może być ważny w praktyce. Feynman w swoim artykule po skonstruowaniu Hamiltonianu pełnego sumatora przeszedł ku rozważaniu wpływu niedokładności (na przykład nie dokładnie równe „siły wiązania” w programowym szeregu sumowania kubitów), uproszczeniu realizacji i bolej skomplikowanych zadań podobnych realizacji pętli, które wykonują część kodu określonej długości czasu. Rekomendujemy przeczytać oryginalny artykuł dla zapoznania się z detalami. 12