Uniwersalność bramy Toffoli

20

Odnośnie kwantowej bramy Toffoli :

  1. czy jest klasycznie uniwersalny, a jeśli tak, to dlaczego?
  2. czy jest kwantowo uniwersalny i dlaczego?
Ran G.
źródło
W logice nie kwantowej pokazujesz, że inny zestaw operatorów logicznych, który jest znany jako uniwersalny, może być symulowany przez dany zestaw. Nie wiem, czy jest tak samo w świecie kwantowym, ale tak mi się wydaje.
Raphael
8
W logice kwantowej brama Toffoli nie jest uniwersalna, ponieważ można nią wykonywać tylko klasyczne obliczenia. Potrzebujesz także kwantowej bramki, która, jeśli dane wejściowe są w stanie bazowym, umieszcza dane wyjściowe w superpozycji stanów bazowych.
Peter Shor,
Zdaję sobie sprawę, że pytanie może być mylące, może powinno zostać zredagowane, aby zadać pytanie o różnicę między uniwersalnością w świecie kwantowym / klasycznym.
Ran G.
Zredagowałem swoją odpowiedź, aby objąć przypadek kwantowy. Co teraz myślisz
Victor Stafusa,
1
@RanG. Mamy wskazać drogę dla przyszłych pytań, pytanie to jest oznaczone pracą domową, ale wydaje się, że nie wyjaśniasz, dlaczego nie możesz rozwiązać go samodzielnie (i gdzie leży problem). Myślę, że nie jest to dobre pytanie dla prywatnej wersji beta (patrz meta dyskusja ). Głosuję za zamknięciem tego pytania.
Gopi,

Odpowiedzi:

13

Toffoli jest uniwersalny do obliczeń klasycznych (jak pokazuje @Victor). Jednak Toffoli NIE jest uniwersalny do obliczeń kwantowych (chyba że mamy coś szalonego jak ).P=BQP

Aby być uniwersalnym w obliczeniach kwantowych (zgodnie ze zwykłą definicją), grupa generowana przez wasze bramki musi być gęsta w jednostkach. Innymi słowy, biorąc pod uwagę arbitralny i docelową jednostkową istnieje sposób na zastosowanie skończonej liczby bramek kwantowych w celu uzyskania jednolitego takiego, że .U U | | U - U | | < ϵϵUU||UU||<ϵ

Sam Toffoli wyraźnie nie jest uniwersalny w tej definicji, ponieważ zawsze przyjmuje stany bazowe do stanów bazowych, a zatem nie może implementować czegoś, co wymaga . Innymi słowy, nie może tworzyć superpozycji.|012(|0+|1)

Artem Kaznatcheev
źródło
10

Z cytowanego artykułu w Wikipedii :

Brama Toffoli jest uniwersalna; oznacza to, że dla każdej funkcji boolowskiej f (x1, x2, ..., xm) istnieje obwód składający się z bramek Toffoli, który przyjmuje x1, x2, ..., xm i niektóre dodatkowe bity ustawione na 0 lub 1 i wyjścia x1, x2, ..., xm, f (x1, x2, ..., xm) i kilka dodatkowych bitów (zwanych śmieciami). Zasadniczo oznacza to, że można użyć bramek Toffoli do budowy systemów, które będą wykonywać dowolne pożądane obliczenia funkcji logicznej w sposób odwracalny.

Co w uproszczeniu oznacza, że ​​dowolną funkcję boolowską można zbudować tylko z bramkami Toffoli.

Funkcje boolowskie są zwykle budowane z bramek OR, AND i NOT, które można łączyć, tworząc dowolną funkcję boolowską. Powszechnie wiadomo, że to samo jest możliwe tylko w przypadku bram NOR lub tylko w przypadku bram NAND.

Bramę Toffoli można podsumować jako:

Toffoli(a,b,c)={(a,b,¬c)when a=b=1(a,b,c)otherwise.

Ponieważ pierwszy i drugi wynik są zawsze równe pierwszemu i drugiemu wejściowi, możemy je odrzucić. Więc mamy:

Toffoli(a,b,c)={¬cwhen a=b=1cotherwise.

Dzięki temu możliwe jest zdefiniowanie bramki NAND jako:

NAND(a,b)=Toffoli(a,b,1)

Ponieważ brama NAND jest uniwersalna, a brama NAND może być zdefiniowana jako brama Toffoli, brama Toffoli jest uniwersalna.

Istnieje inny sposób na udowodnienie, że Toffoli jest uniwersalny, poprzez bezpośrednią budowę bramek AND i NOT:

NOT(x)=Toffoli(1,1,x)

AND(a,b)=Toffoli(a,b,0)

Następnie możemy zbudować bramę OR na podstawie praw De Morgana :

OR(a,b)=NOT(AND(NOT(a),NOT(b))=Toffoli(1,1,Toffoli(Toffoli(1,1,a),Toffoli(1,1,b),0))


EDYCJA, ponieważ pytanie było edytowane, a jego zakres zmieniony:

Po pierwsze, nie rozumiem obliczeń ilościowych, więc jeśli coś jest nie tak, dodaj komentarz. Zrobiłem trochę badań, aby spróbować uzupełnić tę odpowiedź, i zakończyłem to:

Brama Toffoli jest odwracalna (ale użyte powyżej Toffoli nie jest). Oznacza to, że wszelkie wykonane z nim obliczenia można cofnąć. To jest:

(a,b,c)=Toffoli(Toffoli(a,b,c))

Co oznacza, że ​​dla każdego potrójnego (a, b, c), jeśli Toffoli zostanie zastosowany dwukrotnie, oryginalne wejście zostanie pobrane jako wyjście.

Odwracalność jest ważna, ponieważ bramki kwantowe muszą być odwracalne, dlatego (klasyczna) bramka Toffoli może być z tego powodu używana jako bramka kwantowa.

Jak wykazano tutaj , bramka Deutsch jest zdefiniowana w podobny sposób, jak brama Toffoli, ale zamiast klasycznej bramy jest bramą ilościową:

Deutsch(a,b,c)=|a,b,c{icos(θ)|a,b,c+sin(θ)|a,b,1cfor a=b=1|a,b,cotherwise.

W ten sposób brama Toffoli jest szczególnym przypadkiem bramy Deutsch, w której:

Toffoli(a,b,c)=Deutsch(π2)(a,b,c)

Bramka Toffoli wykonuje klasyczne obliczenia, nie ma operacji przesunięcia fazowego, co oznaczałoby, że bramę Toffoli można stosować tylko do przesunięć fazowych 90 stopni ( ) (i łącząc wiele bramek, aby uzyskać wielokrotności 90 stopni). Ale oznacza to również, że nie można go użyć do stworzenia sobrepozycji stanu, ponieważ wymagałoby to przesunięć fazowych na kątach, które nie są wielokrotne niż 90 stopni, dlatego brama Toffoli nie jest uniwersalną bramą kwantową.π2

Uniwersalny kwantowy zestaw Tgate można uzyskać, łącząc bramę Toffoli z bramką Hadamarda. Właśnie to robi bramka Deutsch.

Ciekawe referencje można znaleźć tutaj , tutaj i tutaj . Powinno tu być możliwe cenne odniesienie pokazujące podstawy transformacji Deutscha , jednak link jest chroniony hasłem.

Victor Stafusa
źródło
Toffolli nie jest uniwersalny do obliczeń kwantowych, podobnie jak CNOT same w sobie. Łatwo to zauważyć, ponieważ nie mogą tworzyć superpozycji.
Artem Kaznatcheev
Klasyczna część twojej odpowiedzi jest świetna, nie jestem pewien, czy części kwantowe mają tyle sensu. Nie trzeba argumentować, że brama Toffoli jest odwracalna, ponieważ jest prawidłową bramą kwantową, a zatem z definicji jest odwracalna. Jeśli chodzi o Edit2: ten artykuł mówi, że Hadamard, Toffoli jest zestawem uniwersalnym, ale nie sądzę, że mówi, że Toffoli jest sam w sobie q-uniwersalny (czy coś mi umknęło?)}{}
Ran G.
Twoje odniesienie w EDIT 2 jest nieprawidłowe. Ten artykuł wyraźnie stwierdza, że ​​Toffoli + Hadamard jest uniwersalny, a nie sam Toffoli
Artem Kaznatcheev
@ArtemKaznatcheev: Artykuł mówi „Toffoli i Hadamard”. Potem pomyślałem, że to znaczy „Toffoli jest przykładem, a Hadamart jest kolejnym”. W każdym razie jest teraz jasne.
Victor Stafusa
Zredagowałem to, teraz powinno być w porządku.
Victor Stafusa