Jeśli obwód przyjmuje na wejściu więcej niż jeden kubit i ma bramki kwantowe, które przyjmują różne liczby kubitów jako dane wejściowe, jak interpretowalibyśmy ten obwód jako macierz?
Oto przykład zabawki:
źródło
Jeśli obwód przyjmuje na wejściu więcej niż jeden kubit i ma bramki kwantowe, które przyjmują różne liczby kubitów jako dane wejściowe, jak interpretowalibyśmy ten obwód jako macierz?
Oto przykład zabawki:
Następnie mamy bramę CNOT. Zazwyczaj jest to reprezentowane przez
Jest to odpowiedni rozmiar dla dwóch kubitów, więc nie musimy skalować za pomocą produktów Kronecker. Następnie mamy kolejną bramę Hadamard, której skala była taka sama jak pierwsza. Aby znaleźć ogólną macierz obwodu, mnożymy je wszystkie razem:
i dostać
(jeśli python pomnoży się poprawnie =) Pomnożymy to przez nasz pierwotny stan qubit i uzyskamy nasz wynik.
Zasadniczo więc przechodzisz przez każdą bramkę jeden po drugim, bierzesz podstawową reprezentację i odpowiednio ją skalujesz za pomocą produktów Kronecker z matrycami tożsamości. Następnie mnożymy wszystkie macierze razem w kolejności ich zastosowania. Pamiętaj, aby zrobić to tak, aby po wypisaniu mnożenia pierwsza brama znajdowała się po prawej stronie; jak wskazuje arriopolis, jest to częsty błąd. Macierze nie są przemienne! Jeśli nie znasz podstawowej reprezentacji macierzy, sprawdź pierwszy artykuł Wikipedii na temat bram kwantowych, który ma wiele.