Obecnie czytam „Obliczenia kwantowe i informacje kwantowe” Nielsena i Chuanga. W części dotyczącej symulacji kwantowej podają przykładowy przykład (sekcja 4.7.3), którego nie do końca rozumiem:
Załóżmy, że mamy Hamiltonian który działa w systemie qubit. Mimo że jest to interakcja obejmująca cały system, w rzeczywistości można go skutecznie symulować. Chcemy prostego obwodu kwantowego, który implementuje , dla dowolnych wartości . Obwód robiąc to dokładnie, dla , pokazano na rysunku 4.19. Głównym spostrzeżeniem jest, że chociaż Hamiltona obejmuje wszystkie qubitów w systemie, czy to w klasyczny sposób: przesunięcie fazy zastosowanej w systemie jest jeżeli parzystości o
kubity w podstawie obliczeniowej są parzyste; w przeciwnym razie przesunięcie fazowe powinno wynosić . Tak więc prosta symulacja jest możliwa poprzez klasyczne obliczenie parzystości (zapisanie wyniku w kubicie ancilla), a następnie zastosowanie odpowiedniego przesunięcia fazowego uwarunkowanego parzystością, a następnie odliczenie parzystości (w celu usunięcia ancilla).Co więcej, rozszerzenie tej samej procedury pozwala nam symulować bardziej skomplikowane rozszerzone hamiltoniany. W szczególności możemy skutecznie symulować dowolny Hamiltonian o postaci
gdzie jest Macierz Pauliego (lub tożsamość) działająca na tym kubicie, gdzie określa jedną z . Kubity, na których przeprowadzana jest operacja tożsamości, można pominąć, a terminy lub można przekształcić pojedynczymi bramkami kubitowymi w operacje Pozostaje nam Hamiltonian w postaci (4.113), który jest symulowany jak opisano powyżej.
Jak możemy uzyskać bramkę z bram elementarnych (na przykład z bram Toffoli)?