Ogólna konstrukcja stanu

12

Dwa najbardziej znane stany splątane to stan GHZ i , gdzie .|ψ=1/2(|0n+|1n)WnW3=1/3(|100+|010+|001)

Konstruowanie stanu GHZ jest proste dla dowolnego . Jednak implementacja stanu jest trudniejsza. Dla jest to łatwe, a dla możemy użyćnWnn=2n=4

H q[0,3]
X q[0,3]
Toffoli q[0],q[3],q[1]
X q[0,3]
Toffoli q[0],q[3],q[2]
CNOT q[2],q[0]
CNOT q[2],q[3]

Nawet dla mamy implementacje, zobacz na przykład tę odpowiedź . Jednak nie znalazłem algorytmu, który, biorąc pod uwagę , wyprowadza obwód do konstruowania stanu .n=3nWn

Czy istnieje taki algorytm zdefiniowany przez bramki jedno- i dwubitowe? A jeśli tak, to o co chodzi?

Nippon
źródło

Odpowiedzi:

8

Tak, istnieje kilka implementacji tego algorytmu w kata kwantowym Superpozycja (zadania 14 i 15):

  • Dla możesz użyć algorytmu rekurencyjnego: utwórz stan W na pierwszych , przypisz kubit pomocniczy w stanie , zrób kilka kontrolowanych SWAP, aby ustawić stan drugi qubity , a następnie niektóre kontrolowane NOTy, aby zresetować ancilla z powrotem do ( operacja).n=2k2k1|+2k1|0WState_PowerOfTwo_Reference
  • Dla dowolnego można użyć algorytmu rekurencyjnego opisanego przez DaftWullie ( operacja).nWState_Arbitrary_Reference
  • Istnieje również sztuczka, której można użyć do utworzenia stanu dla dowolnego za pomocą pierwszego algorytmu rekurencyjnego. Przydziel dodatkowe kubity, aby wstawić podanych do , utwórz na nich stan i zmierz dodatkowe kubity; jeśli wszystkie kubity mają wartość 0, stanem oryginalnych jest , w przeciwnym razie zresetuj i powtórz proces ( operację).Wnnn2kW2kWnWState_Arbitrary_Postselect

To jest moje ulubione zadanie tego kata, ponieważ pozwala na tak wiele różnych podejść.

Mariia Michajłowa
źródło
6

Koncepcyjnie najprostszy sposób wytworzenia stanu W jest nieco analogiczny do klasycznego próbkowania w zbiorniku , ponieważ obejmuje szereg lokalnych operacji, które ostatecznie dają jednolity efekt.

Zasadniczo, patrzysz kolejno na każdy kubit i zastanawiasz się „ile amplitudy pozostawiłem w stanie zerowym i ile chcę przenieść do stanu właśnie ten kubit?”. Okazuje się, że potrzebna jest rodzina rotacji, którą nazywam „bramkami szans”, które mają następującą macierz:

M(p:q)=1p+q[pqqp]

Za pomocą tych bramek można uzyskać stan W z sekwencją coraz bardziej kontrolowanych operacji:

przeniesienie poza 0

Ten obwód jest nieco nieefektywny. Ma koszt gdzie jest liczbą kubitów, a jest pożądaną absolutną precyzją (ponieważ w kontekście skorygowanym błędem zmienne szans nie są rodzime i musi być przybliżony).O(N2+Nlg(1/ϵ))Nϵ

Możemy poprawić efektywność, przechodząc ze strategii „przeniesienia z tego, co pozostawiono” na strategię „przeniesienia z tego, co się dzieje”. Dodaje to przegląd naprawczy na końcu, ale wymaga tylko pojedynczych elementów sterujących dla każdej operacji. Zmniejsza to koszt do :O(Nlg(1/ϵ))

przeniesienie poza 1

Nadal można lepiej, ale zaczyna się komplikować. Zasadniczo można użyć pojedynczego częściowego kroku Grovera, aby uzyskać amplitud równych ale zostaną one zakodowane w rejestrze binarnym (chcemy rejestru z jednym zestawem bitów). Naprawienie tego wymaga obwodu konwersji binarnej na unarską. Potrzebne do tego narzędzia opisano w „Kodowaniu widm elektronicznych w obwodach kwantowych o liniowej złożoności T” . Oto odpowiednie liczby.N1/N

Częściowy etap grover:

Przygotowanie równomiernego rozkładu z częściowym etapem powiększania

Jak wykonać operację indeksowaną (cóż ... w pewnym sensie najbliższa postać miała akumulator, co nie jest w tym przypadku całkiem odpowiednie):

operacja indeksowana

Zastosowanie tego bardziej skomplikowanego podejścia zmniejsza koszt z do .O(Nlg(1/ϵ))O(N+lg(1/ϵ))

Craig Gidney
źródło
4

Możesz zdefiniować sekwencję rekurencyjnie. Koncepcyjnie to, co chcesz zrobić, to:

  • Utwórz stan początkowy|0N

  • W qubit 1 zastosuj bramkę

    1N(1N1N11)

  • Kontrolowany poza kubit 1, zastosuj „make ” na kubitach 2 do (tj. Zrób to, jeśli kubit 1 jest w stanie , w przeciwnym razie nic nie rób)|WN1N|1

  • Zastosuj bramkę bit-flip na qubit 1.

Algorytm ten, jak wyrażono, nie składa się tylko z bramek jedno- i dwu kubitowych, ale z pewnością można go rozbić za pomocą standardowych konstrukcji uniwersalności.

Może to nie być najskuteczniejszy algorytm, jaki można wymyślić. Na przykład, jeśli , możesz użyć tylko warstw pierwiastka kwadratowego bramek wymiany, aby uzyskać to, czego chcesz - zacznij od na pojedynczym kubicie. Zamiana korzeni z drugim kubitem, a ty masz (aż do faz, które musisz zająć). Umieść ancilla obok obu z nich i wykonaj wymiany root między parami W-ancilla, a otrzymasz , powtórz i masz , i tak dalej. Wierzę, że to jest właśnie to, co robią tutaj eksperymentalnie . Powinieneś być w stanie włączyć ten algorytm do pierwszego, aby był bardziej wydajny (N=2nn|1|W2|W4|W8O ( log N ) O(logN) ) dla dowolnego dowolnego rozmiaru, ale nigdy nie przestałem opracowywać szczegółów z wielką starannością.

DaftWullie
źródło