Jak zaimplementować „Pierwiastek kwadratowy bramki wymiany” w IBM Q (kompozytor)?

9

Chciałbym zasymulować algorytm kwantowy, w którym jednym z kroków jest „Pierwiastek kwadratowy bramki wymiany” między 2 kubitami.

Jak mogę zaimplementować ten krok za pomocą kompozytora IBM ?

JanVdA
źródło
Być może przydatne może być użycie prostej bramki wymiany jako „cegły” do skonstruowania pierwiastka kwadratowego bramki wymiany. Można symulować na IBM Q w ten sposób: cx q [1], q [0]; hq [0]; hq [1]; cx q [1], q [0]; hq [0]; hq [1]; cx q [1], q [0];
Lying Dancer
1
@JanVdA Pierwiastek kwadratowy nie jest unikalny. W rzeczywistości powinno być 2 ^ 4 = 16 możliwych korzeni. Który masz na myśli?
Norbert Schuch,
Każdy by mi zrobił. Brak preferencji dla konkretnego.
JanVdA

Odpowiedzi:

9

Oto konstrukcja SQRT (SWAP), która wymaga tylko CNOT w jednym kierunku, Hadamards, S bram ( ), bram sztyletowych S ( ), T bramy ( ) i T bramy sztylet ( ):Z12Z12Z14Z14

wprowadź opis zdjęcia tutaj

Powinieneś być w stanie zakodować go bezpośrednio w kompozytorze.

Craig Gidney
źródło
Jak uzyskać to na podstawie pierwszych zasad?
user1271772,
@ user1271772 Jakie są „pierwsze zasady”?
Norbert Schuch,
Nie wiem, jak zaimplementować i za pomocą kompozytora IBM. Z1/2Z1/2
JanVdA
@ user1271772 Zacząłem od obwodu SWOT CNOT-NOTC-CNOT, zamieniłem środkowy CNOT na C-sqrt (nie), aby zrobić całość z sqrt (SWAP), rozłożyłem C-srt (nie) na bramki S + CNOT , przesunąłem niektóre bramy, aż udało mi się anulować jedną z CNOT, a następnie użyłem Hadamardsa, aby odwrócić kierunek dowolnego CNOT skierowanego w niewłaściwy sposób.
Craig Gidney
@JanVdA to , a to (spójrz na niebieskie bramy kompozytora). Z1/2SZ1/2S
Craig Gidney
2

To, co chcesz zrobić, to obrót w podprzestrzeni o zakresie i który obraca go o . W tym celu możesz najpierw wykonać CNOT, który mapuje tę podprzestrzeń na . Teraz musisz wykonać obrót na pierwszym kubicie, pod warunkiem, że drugi kubit będzie jednym. Wdrażanie kontrolowanych bramek za pomocą CNOT jest standardową konstrukcją, którą można znaleźć w wielu miejscach, patrz np . Https://arxiv.org/abs/quant-ph/9503016 . W zależności od tego, jak wykonasz ten krok, być może będziesz musiał naprawić fazę „globalną” pierwszego kubita (biorąc pod uwagę, że drugi to ). Na koniec musisz cofnąć CNOT.|01|10X{|01,|11}XU|1

Norbert Schuch
źródło
Nie jest dla mnie jasne 1) w jaki sposób wykonujesz w kompozytorze. 2) jak cofnąć CNOT w kompozytorze 3) wspominasz bramki U-kontrolowane, ale nie jest jasne, gdzie powinny być użyte w algorytmie. Myślę, że krok po kroku opis algorytmu byłby pomocny przy implementacji tego na kompozytorze IBM. X
JanVdA
@JanVdA Obawiam się, że będziesz musiał sam popracować, aby zapoznać się z obwodami kwantowymi i ich manipulacjami. W przeciwnym razie, co będziesz robić, gdy poznasz obwód dla sqrt-SWAP?
Norbert Schuch,
FYI: Użyłem powyższego opisu sqrt-SWAP do przetestowania rozwiązania zaproponowanego dla quantumcomputing.stackexchange.com/questions/2209/... na kompozytorze IBM.
JanVdA
@JanVdA Który? Akceptowany? Ten mówi tylko o kontrolowanym SWAP. (W tym celu: journals.aps.org/pra/abstract/10.1103/PhysRevA.53.2855 )
Norbert Schuch
Przepraszam, odnoszę się do przyjętego rozwiązania pytania: mathoverflow.net/questions/301733/…
JanVdA
-1

Każda 2-kubitowa bramka ma „rozkład Paulinomialny”, co oznacza, że ​​można ją zapisać jako wielomian macierzy Pauliego.

W przypadku bramy, którą chcesz:

SWAP=[1000012(1+i)12(1i)0012(1i)12(1+i)00001]=1i4(X1X2+Y1Y2+Z1Z2)+3+i2I,

gdzie jest bramą zastosowaną do qubit .XiXith

użytkownik1271772
źródło
OK, dziękuję za odpowiedź - muszę się trochę nauczyć, aby dowiedzieć się, jak mogę to przetłumaczyć na IBM Composer.
JanVdA
@JanVdA Co się stało? Nie możesz przeciągać i upuszczać bramek X, Y i Z do obwodu? Możesz zadać osobne pytanie, jak pomnożyć bramę przez stałą.
user1271772,
Mogę przeciągać i upuszczać bramki X, Y, Z, ale nie wiem, jak wykonać multiplikacje (np X1X2), dodatki (np X1X2+Y1Y2), pomnożenie przez stałą, nawet nie wiem, co masz na myśli I. Chyba muszę brzmieć jak kompletny idiota.
JanVdA
X1X2 oznacza, że ​​aplikujesz X do qubit 1 i Xqubit 2. Jednak, jak wspomniałem w poprzednim komentarzu, myślę, że powinieneś zadać osobne pytanie, jak pomnożyć przez stałą.
user1271772
Zobacz także Eq. 8 tego artykułu: arxiv.org/pdf/1805.10478.pdf oraz schematy połączeń w materiale uzupełniającym. Równ. 8 artykułów jest dokładnie takich, jakie ci dałem, z wyjątkiem tylkoZbramy To wciąż „Paulinomial”, ale tylko zZgates, i jest zaimplementowany w kompozytorze IBM w tym dokumencie.
user1271772,