Jak działa sprzężenie zwrotne w prostym algorytmie Grovera, gdzie $n=4$?
W tym przykładzie implementacja algorytmu Grovers z podręcznika Qiskit, która rozwiązuje problem $2\times 2$ puzzle sudoku:
https://qiskit.org/textbook/ch-algorithms/grover.html
Obwód iteruje dwukrotnie (patrz rysunek)
Moje pytanie brzmi:
Jak są dane w $c_0 - c_3$ i out0 qubitów.
Dla mnie to wygląda $c_0 - c_3$ i na zewnątrz nigdy nie są wprowadzane z powrotem do $v_0 - v_3$ kubity i $v_0 - v_3$ są jedynymi, które są mierzone na końcu.
Nie jestem pewien, czy źle zinterpretowałem, jak działa splątanie, lub jak działają bramki CX.

Odpowiedzi
Rejestr kwantowy c
można uznać za ancylę. W pierwszej części każdej iteracji (przed CCCC-NOT
) każde dwa cx
porównuje, czy stan dwóch kubitów jest identyczny, jeśli nie, jedna ancyla zostanie przekonwertowana na stan$|1\rangle$. Do CCCC-NOT
sprawdza, czy są wszystkie cztery ancillae$|1\rangle$jeśli tak, to wykonywana jest operacja odwrócenia fazy.
Druga część każdej iteracji (między CCCC-NOT
i unitarna dyfuzyjna) przekształca ancillae w ich pierwotny stan ($|0000\rangle$, dla odwracalności). Działanie jednolitej dyfuzji powinno być wam znane.
Wprowadzenie ancyli do obwodu kwantowego z pewnością zwiększy trudność klasycznej symulacji, ale może zmniejszyć trudność projektowania algorytmu (czasami bez ancyli osiągnięcie celu jest niemożliwe).