Bramka CCCNOT to czterobitowa bramka odwracalna, która odwraca swój czwarty bit, jeśli tylko pierwsze trzy bity są w stanie .
Jak wdrożyć bramę CCCNOT przy użyciu bram Toffoli? Załóżmy, że bity w obszarze roboczym zaczynają się od określonej wartości, 0 lub 1, pod warunkiem, że powrócisz do tej wartości.
quantum-gate
gate-synthesis
chuster
źródło
źródło
Odpowiedzi:
Myślę, że szukasz tego obwodu. Tutajb1,b2,b3,b4∈ {0,1} , a ⊕ jest modułem dodatkowym 2 .
Tutaj piąty kubit jest używany jako kubit pomocniczy lub kubełkowy . Zaczyna się o|0⟩ a kończy w |0⟩ gdy jest stosowany układ.
Pozwól mi rozwinąć sposób działania tego obwodu. Chodzi przede wszystkim o sprawdzenie, czy pierwsze dwa kubity są w stanie|1⟩ . Można tego dokonać za pomocą pojedynczej bramki Toffoli, a wynik jest przechowywany w kubicie pomocniczym. Teraz problem sprowadza się do odwracania kubitu 4 , ilekroć kubity 3 i kubit pomocniczy są w | 1⟩ . Można to również osiągnąć, stosując jedno zastosowanie bramki Toffoli, a mianowicie środkowe w pokazanym powyżej obwodzie. Wreszcie ostatnia brama Toffoli służy do obliczenia tymczasowego wyniku, który zapisaliśmy w kubicie pomocniczym, tak że stan tego kubita powraca do | 0⟩ po zastosowaniu obwodu.
W sekcji komentarzy pojawiło się pytanie, czy możliwe jest zaimplementowanie takiego obwodu przy użyciu tylko bramek Toffoli, bez użycia kubitów pomocniczych. Na to pytanie można odpowiedzieć przecząco, jak pokażę tutaj.
Chcemy wdrożyćC C C N OT -gate, który działa na czterech qubitach. Można określić następującą macierz (reprezentację matryca Pauli- X -gate):
X=[0110]
Ponadto, oznaczenia N -wymiarową macierz tożsamości przez IN . Teraz obserwujemy, że reprezentacja macierzy drzwi CCCNOT , działająca na cztery kubity, daje następująca macierz 16×16 :
CCCNOT=[I1400X] det(CCCNOT)=−1 4 Toffoli⊗I2=[I600X]⊗I2=[I1200X⊗I2]=⎡⎣⎢I120000I2)0I20⎤⎦⎥ det ( T offao l i ⊗ I2)) = 1 | 0001 ⟩ | 0010 ⟩ | 0101 ⟩ | 0110 ⟩ 2 S 4 S 4 1
Bramy Toffoli mogą oczywiście działać na różne kubity. Załóżmy, że pozwalamy bramce Toffoli działać na pierwszy, drugi i czwarty kubit, gdzie czwarty kubit jest kubitem docelowym. Następnie otrzymujemy nową reprezentację macierzy z tej pokazanej powyżej poprzez zamianę kolumn odpowiadających stanom, które różnią się tylko trzecim i czwartym kubitem, tj. z , z itp. Należy tutaj zauważyć, że liczba zamian kolumn jest parzysta, a zatem determinant pozostaje niezmieniony. Jak możemy zapisać każdą permutację kubitów jako sekwencję kolejnych permutacji tylko kubitów (to znaczy| 0001⟩ | 0010⟩ | 0101⟩ | 0110⟩ 2) S.4 jest generowany przez transpozycje w ), okazuje się, że dla wszystkich bramek Toffoli, zastosowanych do dowolnej kombinacji kontrolnych i docelowych, jego reprezentacja macierzowa ma wyznacznik .S.4 1
Ostatnią rzeczą do odnotowania jest to, że wyznacznik dojeżdża do mnożenia macierzy, tj. , dla dowolnych dwóch macierzy i zgodnych z mnożeniem macierzy. Stąd teraz staje się oczywiste, że zastosowanie wielu bramek Toffoli w sekwencji nigdy nie tworzy obwodu, którego reprezentacja macierzowa ma wyznacznik inny niż , co w szczególności oznacza, że nie można wdrożyć -gate przy użyciu tylko bramek Toffoli na kubitach .det(AB)=det(A)det(B) A B 1 CCCNOT 4
Oczywistym pytaniem jest teraz, co się zmieni, kiedy pozwolimy na dodatkowy kubit. Odpowiedź znajdziemy, gdy działanie -gate w systemie qubit: Jeśli obliczymy ten wyznacznik, znajdziemy : Stąd wyznacznikiem -gate działającego na kubitów jest , zamiast . Dlatego poprzedni argument nie jest ważny dlaCCCNOT 5 CCCNOT⊗I2=[I1400X]⊗I2=⎡⎣⎢I280000I20I20⎤⎦⎥ det ( C C C N O T ⊗ I2)) = 1 C C C N O T 5 1 - 1 5 kubity, jak już wiedzieliśmy, z powodu wyraźnie skonstruowanego obwodu, o który poprosił OP.
źródło