Obecnie mam 2 jednolite macierze, które chcę aproksymować z dobrą dokładnością przy możliwie jak najmniejszej liczbie bramek kwantowych.
W moim przypadku dwie macierze to:
- Pierwiastek kwadratowy z bramki NOT (do fazy globalnej)
Moje pytanie jest następujące:
Jak mogę aproksymować te konkretne macierze za pomocą mniejszej możliwej liczby bramek kwantowych i dobrej precyzji?
Na to, na co chcę mieć, mogę sobie pozwolić:
- Mogę sobie pozwolić na wykorzystanie kilku dni / tygodni czasu procesora i dużo ilości pamięci RAM.
- Mogę sobie pozwolić na 1 lub 2 ludzkie dni na poszukiwanie sztuczek matematycznych (w ostateczności, dlatego pytam tutaj pierwszy). Ten czas nie obejmuje czasu, w którym musiałbym zaimplementować hipotetyczne algorytmy zastosowane do pierwszego punktu.
- Chcę, aby rozkład był prawie dokładny. W tej chwili nie mam docelowej precyzji, ale 2 bramki powyżej są intensywnie wykorzystywane przez mój obwód i nie chcę, aby błędy były zbyt duże.
- Chcę, aby rozkład wykorzystywał jak najmniej bramek kwantowych. Ten punkt jest w tej chwili drugorzędny.
- Dobra metoda pozwoliłaby mi wybrać pożądany kompromis między liczbą bramek kwantowych a precyzją przybliżenia. Jeśli nie jest to możliwe, prawdopodobnie wymagana jest dokładność co najmniej (pod względem normy śladu) (jak powiedziano wcześniej, nie mam szacunków, więc nie jestem pewien tego progu).
- Zestaw bramek to:
z zgodnie z opisem wWikipedii,obrót względem osi(to,lub) i.
Metody, o których wiem:
- Algorytm Solovay-Kitaev. Mam implementację tego algorytmu i już przetestowałem go na kilku jednolitych macierzach. Algorytm generuje sekwencje, które są dość długie, a kompromis [liczba bramek kwantowych] VS [dokładność przybliżenia] nie jest wystarczająco parametryzowalny. Niemniej jednak wykonam algorytm na tych bramkach i edytuję to pytanie z uzyskanymi wynikami.
- Dwa artykuły na temat przybliżenia bramki 1-kubit i przybliżenia bramki n-qubit . Muszę też przetestować te algorytmy.
EDYCJA: zredagował pytanie, aby „pierwiastek kwadratowy z” nie był bardziej widoczny.
Odpowiedzi:
Wybrałeś dwie szczególnie proste matryce do wdrożenia.
Pierwsza operacja (G) to po prostu pierwiastek kwadratowy bramki X (do fazy globalnej):
W twoim zestawie bramek jest toRX( π/ 2) .
Druga operacja (W) to macierz Hadamarda w środkowym bloku 2x2 macierzy inaczej identycznej. Za każdym razem, gdy zobaczysz ten wzór 2x2 w środku, powinieneś pomyśleć „kontrolowana operacja sprzężona przez CNOT”. I właśnie to działa tutaj (uwaga: być może trzeba zamienić linie; zależy to od twojej konwencji endiannessa):
Tak więc jedynym prawdziwym problemem jest wdrożenie kontrolowanej operacji Hadamarda. Hadamard to obrót o 180 stopni wokół osi X + Z. Możesz użyć obrotu o 45 stopni wokół osi Y, aby przesunąć oś X + Z na oś X, a następnie wykonać CNOT zamiast CH, a następnie przesunąć oś z powrotem:
źródło
Konstrukcja jest optymalna w tym sensie, że wymaga dwóch bram CNOT i co najwyżej 12 pojedynczych bramek kubitowych (w najbardziej ogólnym przypadku prawdziwej dwóch bramek kubitowych). Konstrukcja oparta jest na homomorfizmie:
Korzystając z tej konstrukcji, pełna implementacja bramy podana przez Vatan i Williamsa to:
źródło
Żadna z tych bram nie wymaga przybliżonych sekwencji. Możesz wdrożyć je dokładnie za pomocą określonych zestawów bram bez większego wysiłku.
źródło