*** Fassen Sie die Implementierung von Adamal Walk im Zyklus $ 3 $ zusammen ***. Quantum Walk Quantum Computer Implementation 2 führte den Fall ein, in dem die Zyklusgröße $ 2 ^ n $ beträgt, führte aber auch den Fall ein, in dem die Zyklusgröße nicht $ 2 ^ n $ beträgt. Machen. Implementieren Sie eine einfache Zyklusgröße von $ 3 $. Die hier vorgestellte Methode ist dieselbe wie Effiziente Quantenschaltungsimplementierung von Quantenwanderungen.
Eine kurze Erläuterung des Quantenlaufs finden Sie unter Quantum Walk Quantum Computer Implementation 1.
Der Zyklus, um über diese Zeit nachzudenken, ist
Ist. Definieren Sie einen Quantenlauf in diesem Zyklus ($ 00,01,10 $ (0-2 in Dezimalzahl))
Wie die Gesamtdynamik
\hat{C}=(I\otimes H)\\
\mbox{jedoch}I=\sum_{x}|x\rangle\langle x|,\quad
H=\frac{1}{\sqrt{2}}\begin{bmatrix}
1&1\\1&-1
\end{bmatrix}
\hat{S}=\sum_{x}|x-1\rangle\langle x|\otimes|0\rangle\langle 0|+|x+1\rangle\langle x|\otimes|1\rangle\langle 1|
Lassen. $ X \ pm 1 $ wird jedoch als $ mod 3 $ betrachtet.
Unter Berücksichtigung der Tore des "Münzaktivators" und des "Verschiebungsaktivators" kann die zeitliche Entwicklung des Quantenlaufs als Quantenlauf ausgedrückt werden.
Speziell,
*** Münzagonist *** $ \ hat {C} = I \ otimes H $ kann ausgedrückt werden, indem $ H $ nur durch die Quantenbits des Zustands geleitet wird.
*** Shift Agonist *** $ \ hat {S} $ ist
-Wenn der Zustand `0``` ist, ist der Ort`
x -1 ・ Wenn der Zustand `` `1
ist, ist der Ort` `` x``` +1
Denken Sie an ein Tor zu tun.
Für diese Implementierung werden 3 Qubits ($ q [0] q [1] q [2] $) verwendet. Betrachten Sie $ q [0] q [1] $ als das der Stelle entsprechende qbit (00,01,10) und $ q [2] $ als das dem Zustand entsprechende Qubit.
Ich würde gerne einen Algorithmus für die +1 Operation und -1 Operation von $ n $ Ziffernbinär betrachten, aber da $ q [0] q [1] $ auch $ 11 $ enthält, ist es notwendig, ihn gut zu eliminieren. .. Fügen Sie daher basierend auf der Verschiebung des Quantenlaufs in Zyklus 4 (Quantencomputer-Implementierung 1 des Quantenlaufs) den Switch-Teil hinzu, der den nicht verwandten Zyklus ausschließt. ..
-1 Operation (Status ist 0)
Zyklus 4-1 Operation
Wechseln Sie zu den Positionen 11 und 10
Zyklus 3-1 Operation
+1 Operation (Status ist 1)
Zyklus 4+1 Operation
Wechseln Sie zu den Positionen 11 und 00
Zyklus 3+1 Operation
Um das Obige zusammenzufassen, ist der Shift-Agonist Es wird. Zyklus 4-Schicht-Agonist </ font> + Bei Status 0 wechseln Position 11 und 10 </ font> + Wenn Status 1 Die Schalter für Position 11 und 00 </ font>
Quantenregister, klassisches Register und eingestellte Quantenschaltung qwqc von ihnen
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
from qiskit import execute
from qiskit.tools.visualization import plot_histogram
q = QuantumRegister(3, 'q')
c = ClassicalRegister(2, 'c')
qwqc = QuantumCircuit(q,c)
#Zeit
t=1
#Stellen Sie den Ausgangszustand ein
qwqc.h(q[2])
qwqc.s(q[2])
#Zeitentwicklung
for i in range(t):
#Münzbetrieb
qwqc.h(q[2])
#Verschiebung
qwqc.x(q[1])
qwqc.cx(q[2],q[0])
qwqc.cx(q[1],q[0])
#-1 Umdrehung fix
qwqc.x(q[2])
qwqc.ccx(q[0],q[2],q[1])
qwqc.x(q[2])
#+1 Umdrehung fix
qwqc.ccx(q[1],q[2],q[0])
qwqc.x(q[0])
qwqc.ccx(q[0],q[2],q[1])
qwqc.x(q[0])
qwqc.ccx(q[1],q[2],q[0])
#Überwachung
qwqc.measure(q[0],c[0])
qwqc.measure(q[1],c[1])
qwqc.draw()
from qiskit import BasicAer
backend_s=BasicAer.get_backend('qasm_simulator')
job_s = execute(qwqc, backend_s,shots=1024)
result_s = job_s.result()
counts_s = result_s.get_counts(qwqc)
plot_histogram(counts_s)
from qiskit.tools.monitor import job_monitor
provider = IBMQ.get_provider(hub='ibm-q')
backend_r=provider.get_backend('ibmqx2')
job_r = execute(qwqc, backend=backend_r,shots=1024)
job_monitor(job_r)
Job Status: job has successfully run
result_r= job_r.result()
counts_r = result_r.get_counts(qwqc)
plot_histogram(counts_r)
Auf die gleiche Weise ist es möglich, einen Quantenlauf für jede Zyklusgröße zu implementieren. Verschieben Sie für die Implementierung eines beliebigen Zyklus n für das kleinste $ N $, das $ n \ leq 2 ^ N $ ist, den Zyklus $ 2 ^ N $ [Quantum Walk Quantum Computer Implementation 2](https: // qiita). Ein beliebiger Zyklus kann erstellt werden, indem er mit der Methode com / YNUqw / items / 091f71ef71c75cbbc574) erstellt und durch Betätigen eines Schalters geändert wird.
Recommended Posts