Single Qubit Superposition
量子态可以通过一些unitary transformation转变为叠加态量子态。
如Hardmard Gate就可以将
∣
0
⟩
|0\rangle
∣0⟩转变为叠加态
q
0
q_{0}
q0。
H
∣
0
⟩
=
(
1
2
1
2
1
2
−
1
2
)
(
1
0
)
=
(
1
2
1
2
)
H|0\rangle=\left(\begin{array}{cc}\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{-1}{\sqrt{2}}\end{array}\right)\left(\begin{array}{l}1 \\ 0\end{array}\right)=\left(\begin{array}{l}\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}}\end{array}\right)
H∣0⟩=(2121212−1)(10)=(2121)
∣ q 0 ⟩ = 1 2 ∣ 0 ⟩ + 1 2 ∣ 1 ⟩ \left|q_{0}\right\rangle=\frac{1}{\sqrt{2}}|0\rangle+\frac{1}{\sqrt{2}}|1\rangle ∣q0⟩=21∣0⟩+21∣1⟩
有趣的是,量子计算机中的任何操作均是可逆的(reversible),这也就意味着,叠加态 ∣ q 0 ⟩ |q_{0}\rangle ∣q0⟩可以通过变化再重新变回 ∣ 0 ⟩ |0\rangle ∣0⟩。
这里我们只需要对 q 0 q_{0} q0再进行一次Hardmard变换即可。
H ∣ q 0 ⟩ = ( 1 2 1 2 1 2 − 1 2 ) ( 1 2 1 2 ) = ( 1 0 ) H|q_{0}\rangle=\left(\begin{array}{cc}\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{-1}{\sqrt{2}}\end{array}\right)\left(\begin{array}{l}\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{array}\right)=\left(\begin{array}{l}1 \\ 0\end{array}\right) H∣q0⟩=(2121212−1)(2121)=(10)
对于叠加态,如 ∣ q 0 ⟩ |q_{0}\rangle ∣q0⟩,我们在测量时会有50%的概率得到0,50%的概率得到1。这里的概率是由振幅决定的,振幅的平方即是概率。对于 ∣ q 0 ⟩ |q_{0}\rangle ∣q0⟩, ∣ 0 ⟩ |0\rangle ∣0⟩的振幅为 1 2 \frac{1}{\sqrt{2}} 21。
这里的测量,是在01坐标系下来看结果的,如果我们变更坐标系,得到的结果又将不同。
我们通过qiskit来进行测量一下。
from qiskit import QuantumCircuit, Aer, assemble
from math import pi
import numpy as np
from qiskit.visualization import plot_histogram, plot_bloch_multivector
qc = QuantumCircuit(1,1)
qc.h([0])
qc.measure(0,0)
qc.draw("mpl")
# use local simulator
qasm_sim = Aer.get_backend('qasm_simulator')
qobj = assemble(qc)
results = qasm_sim.run(qobj,shots = 1).result()
answer = results.get_counts()
plot_histogram(answer)
这里设置为测量一次,结果自然是一种。图中为1。
若测量1024次,结果就接近50%的均分。
Multiple Qubits Superposition
以上讨论了单个qubit的系统,对于多个qubit呢?
qc = QuantumCircuit(2,2)
# Apply H-gate and measure to each qubit:
for qubit in range(2):
qc.h(qubit)
qc.measure(qubit,qubit)
qc.draw('mpl')
测量1024次,我们得到的结果仍然接近均分。
这里是为什么呢?我们用数学来推导。
首先对于multiple Qubits的表示方法,我们需要借助tensor product。
基本规则如下,如初始状态
∣
00
⟩
=
∣
0
⟩
⊗
∣
0
⟩
|00\rangle=|0\rangle \otimes|0\rangle
∣00⟩=∣0⟩⊗∣0⟩。
∣ a ⟩ = [ a 0 a 1 ] , ∣ b ⟩ = [ b 0 b 1 ] |a\rangle=\left[\begin{array}{l}a_{0} \\ a_{1}\end{array}\right], \quad|b\rangle=\left[\begin{array}{l}b_{0} \\ b_{1}\end{array}\right] ∣a⟩=[a0a1],∣b⟩=[b0b1]
∣ b a ⟩ = ∣ b ⟩ ⊗ ∣ a ⟩ = [ b 0 × [ a 0 a 1 ] b 1 × [ a 0 a 1 ] ] = [ b 0 a 0 b 0 a 1 b 1 a 0 b 1 a 1 ] |b a\rangle=|b\rangle \otimes|a\rangle=\left[\begin{array}{l}b_{0} \times\left[\begin{array}{l}a_{0} \\ a_{1}\end{array}\right] \\ b_{1} \times\left[\begin{array}{l}a_{0} \\ a_{1}\end{array}\right]\end{array}\right]=\left[\begin{array}{l}b_{0} a_{0} \\ b_{0} a_{1} \\ b_{1} a_{0} \\ b_{1} a_{1}\end{array}\right] ∣ba⟩=∣b⟩⊗∣a⟩=⎣⎢⎢⎡b0×[a0a1]b1×[a0a1]⎦⎥⎥⎤=⎣⎢⎢⎡b0a0b0a1b1a0b1a1⎦⎥⎥⎤
知道这些之后,再看经过Hardmard Gate作用后的系统状态。
∣ q 0 ⟩ = H ∣ 0 ⟩ = ( 1 2 1 2 1 2 − 1 2 ) ( 1 0 ) = ( 1 2 1 2 ) |q_{0}\rangle=H|0\rangle=\left(\begin{array}{cc}\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{-1}{\sqrt{2}}\end{array}\right)\left(\begin{array}{l}1 \\ 0\end{array}\right)=\left(\begin{array}{l}\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}}\end{array}\right) ∣q0⟩=H∣0⟩=(2121212−1)(10)=(2121)
∣ q 1 ⟩ = H ∣ 0 ⟩ = ( 1 2 1 2 1 2 − 1 2 ) ( 1 0 ) = ( 1 2 1 2 ) |q_{1}\rangle=H|0\rangle=\left(\begin{array}{cc}\frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} & \frac{-1}{\sqrt{2}}\end{array}\right)\left(\begin{array}{l}1 \\ 0\end{array}\right)=\left(\begin{array}{l}\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}}\end{array}\right) ∣q1⟩=H∣0⟩=(2121212−1)(10)=(2121)
∣ q 0 q 1 ⟩ = ∣ q 0 ⟩ ⊗ ∣ q 1 ⟩ = [ 1 2 × [ 1 2 1 2 ] 1 2 × [ 1 2 1 2 ] ] = [ 1 2 1 2 1 2 1 2 ] = 1 2 ∣ 00 ⟩ + 1 2 ∣ 01 ⟩ + 1 2 ∣ 10 ⟩ + 1 2 ∣ 11 ⟩ |q_{0} q_{1}\rangle=|q_{0}\rangle \otimes|q_{1}\rangle=\left[\begin{array}{l}\frac{1}{\sqrt{2}}\times\left[\begin{array}{l}\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}}\end{array}\right] \\ \frac{1}{\sqrt{2}} \times\left[\begin{array}{l}\frac{1}{\sqrt{2}}\\ \frac{1}{\sqrt{2}} \end{array}\right]\end{array}\right]=\left[\begin{array}{l}\frac{1}{{2}}\\ \frac{1}{{2}} \\ \frac{1}{{2}} \\ \frac{1}{{2}}\end{array}\right] = \frac{1}{2} |00\rangle+\frac{1}{2} |01\rangle + \frac{1}{2} |10\rangle + \frac{1}{2} |11\rangle ∣q0q1⟩=∣q0⟩⊗∣q1⟩=⎣⎢⎢⎢⎢⎡21×[2121]21×[2121]⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎡21212121⎦⎥⎥⎤=21∣00⟩+21∣01⟩+21∣10⟩+21∣11⟩
现在我们已经知道多个qubits的叠加态。
Entanglement
Rule: 可以通过tensor product分解的叠加态,不存在Entanglement.
看这个叠加态: ∣ ϕ ⟩ = 1 2 ∣ 00 ⟩ + 1 2 ∣ 11 ⟩ |\phi\rangle=\frac{1}{\sqrt{2}} |00\rangle + \frac{1}{\sqrt{2}} |11\rangle ∣ϕ⟩=21∣00⟩+21∣11⟩
这个叠加态并不能分解。
试想,当我们对Qubit 1 进行测量,得到0,Qubit 2的结果会是如何?
不难看出,结果一定也是0.
同样,如果我们的测量结果为1,那么Qubit 2得到的结果将会是1.
注意!当我们在qubit 1进行测量时,我们已经可以得知 qubit 2的结果!!!这种现象我们称之为Entanglement。
最神奇的是,Entanglement出现后,无论距离远近,两个量子将持续保存Entangled。2013年我国在太空与地面进行实验,证实了Entanglement的存在。
接下来,通过qiskit验证以上。
qc = QuantumCircuit(2,2)
qc.h(0)
qc.cx(0,1)
qc.measure(0,0)
qc.measure(1,1)
qc.draw("mpl")
这个circuit是我们常见构造entanglement的方法。
我们对两个量子位进行测量:
完结!