Edukacja

Splątanie kwantowe


Drugim zjawiskiem, które jest wykorzystywane w obliczeniach kwantowych, jest splątanie. Oznacza to, że stany kwantowe dwóch cząstek są powiązane ze sobą i zależne od siebie, a pomiar stanu jednej z nich natychmiast powoduje zmianę stanu drugiej. Ta właściwość cząstek pozwala tworzyć stany kwantowe składające się z większej liczby cząstek, dzięki czemu liczba jednocześnie obliczanych rozwiązań przyrasta w sposób wykładniczy.

Splątanie wiąże ze sobą co najmniej dwa kubity przez określone bramki wielokubitowe. Najprostszym przykładem takiej bramki może być kontrolowana bramka X (zapisywana często jako CNOT), w której jeden kubit kontroluje czy na drugim zostanie wykonana operacja negacji.

    \[CNOT = \begin{bmatrix}1 & 0 & 0 & 0 \\0 & 1 & 0 & 0 \\0 & 0 & 0 & 1 \\0 & 0 & 1 & 0\end{bmatrix}\]

W prostym obwodzie zaprezentowanym poniżej bramka CNOT splątuje ze sobą dwa kubity. Na wyjściu mogą się pojawić tylko dwa możliwe stany: |00\rangle lub |11\rangle, ponieważ mimo probabilistycznego charakteru pomiaru stan pierwszego kubitu determinuje stan drugiego.

from qiskit import QuantumCircuit

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
qc.draw('mpl')Code language: Python (python)
from qiskit.primitives import StatevectorSampler
from qiskit.visualization import plot_histogram

sampler = StatevectorSampler()
job = sampler.run([qc], shots=1024)
result = job.result()[0]
counts = result.data.meas.get_counts()
plot_histogram(counts)Code language: Python (python)