01.29 从" Hello World"到" Hello Quantum"

嘿! 欢迎来到我们的第一个教程!

今天,我们将介绍量子计算的基本概念之一-叠加和纠缠。

在开始之前,我们强烈建议您在Quantum Double Slit实验中观看此简短视频。 这段视频是我们对这个领域产生如此浓厚兴趣的原因,并且我们相信它也会使您赞叹不已!

叠合

现在,您已经通过视频了解了量子怪异,让我们再来看一个怪异的方面-叠加。

经典计算机-我们几乎每天都会使用的经典计算机-使用"位"作为存储数据的基本单位。 这些"位"只能取两个值之一-0或1。

在事物的量子方面,我们将这些"量子位"称为"量子位"。 关于qubit的一个很酷的事实是,它们可以取0或1的值,或者-等待它-同时取0和1! 我们称这种中间状态为量子叠加。

实际上,这是每个量子位所处的状态,直到我们决定对其进行测量。 是的,我要说,直到我们尝试对其进行测量,因为测量qubit值的行为使它"崩溃"为两个值0或1中的一个。我们永远看不到一个处于叠加状态的qubit(想想薛定谔的猫?)。

这是一个小插图,以突出经典位和量子位之间的区别,而另一个插图则可以使您直观地了解叠加是什么样的:

从

Classical vs Quantum Bit


从

Quantum Superposition


您可能想知道量子位图像中的符号|0⟩和|1⟩是什么意思? 这些不过是我们用来表示qubit值的表示法,被称为Bra-Ket表示法。 (|0⟩+ |1⟩)/√2表示量子位的"中间"或叠加值,它是|0⟩和|1⟩状态的组合。

纠缠

现在我们已经了解了什么是叠加,让我们继续进行纠缠。

量子纠缠是一种量子力学现象,即使单个物体可能在空间上分离,两个或多个物体的量子态也必须相互参照。

那条线让你不知所措吗? 不用担心,我们在这里为您简化操作。 让我们通过一个例子来理解这个概念:

考虑两个无偏硬币A和B。抛硬币A并假设它读为正面。 现在,您是否可以确定投掷硬币B会读到什么? 呵呵……可能不是。 (尽管您可能以50%的概率是正确的)。

相反,如果我们考虑两个"纠缠"的硬币A和B,并说硬币A被扔掉并读为正面。 现在,在这种情况下,我们可以100%确信硬币B也将变成正面。 硬币B不可能像尾巴那样被读取。 A和B都将读为正面,或者都将读为反面。

因此,以相同的方式,两个纠缠的量子比特在测量时要么都为0,要么都为1。因此,我们可以将输出设为00或11,机会为0%。 等于01或10。这就是量子纠缠的思想。 听起来不错,不是吗?

让我们再举一个例子,使这个概念清晰易懂-

我们的系统可以有两个我们称为c-ons的对象。 " c"的意思是"经典",但如果您想记住一些具体而令人愉快的内容,则可以将我们的c-ons视为蛋糕。 我们的C形符号有两种形状,正方形或圆形,我们将其标识为可能的状态。 然后,对于两个c-ons,四个可能的关节状态是(正方形,正方形),(正方形,圆形),(圆形,正方形),(圆形,圆形)。 下表显示了两个示例,说明在这四个状态的每种状态下找到系统的概率。

我们说,如果c-ons之一的状态知识不能提供有关另一c-ons状态的有用信息,则它们是"独立的"。 我们的第一个表具有此属性。 如果第一个C-ons(或蛋糕)是方形的,那么第二个C-on的形状仍然不为人所知。 同样,第二个形状并没有显示任何有关第一个形状的有用信息。

从

另一方面,当关于一个的信息改善了我们对另一个的知识时,我们说我们的两个要素纠缠不清。 我们的第二张桌子展示了极端的纠缠。 在这种情况下,无论何时第一个c-ons是圆形的,我们都知道第二个也是圆形的。 当第一个c-ons是正方形时,第二个也是如此。 知道一个的形状,我们就可以确定地推断另一个的形状。

从

是时候使用Code了!

好的,现在就足够了,现在让我们看看我们自己如何通过代码纠缠两个量子比特! 我们将使用Qiskit工具包来编写我们的Python代码,我们可以在模拟器上,甚至可以在IBM实验室中的真实Quantum计算机上运行该Python代码!

<code># Import libraries
from qiskit import ClassicalRegister, QuantumRegister, QuantumCircuit
from qiskit import execute
from qiskit import BasicAer

# import basic plot tools
from qiskit.tools.visualization import plot_histogram, circuit_drawer/<code>
<code>#Selecting the qasm simulator as backend for executing the circuit using BasicAer
backend = BasicAer.get_backend('qasm_simulator')/<code>
<code>q = QuantumRegister(2)     # A qauntum register of size 2 qubits
c = ClassicalRegister(2) # A classical register of size 2 bits to measure the probability
qc = QuantumCircuit(q, c) # Making a quantum circuit

# Add a Hadamard Gate at q0 bit
qc.h(q[0])

# Add a controlled-NOT Gate with control bit at q0 and target bit at q1
qc.cx(q[0], q[1])

# Measure the circuit
qc.measure(q, c)

#Execute the circuit
job_exp = execute(qc, backend=backend, shots=1024)/<code>
<code># plot the graph to visualize the probabilities of 00 and 11 states
plot_histogram(job_exp.result().get_counts(qc))/<code>


从

<code>print('You have made entanglement!')/<code>
<code>#Representing the circuit
qc.draw()/<code>


从


在上面的代码中,您一定想知道Hadamard和C-Not门是什么,它们的作用是什么?

Hadamard哈达玛门只是将其应用于量子位时使其处于叠加状态的门。

C-Not门具有两个参数-第一个称为控制位,第二个是目标位。 它所做的是读取控制位的值,如果它为|0⟩,则门保持目标位不变,而如果控制位的值|1⟩,则C-Not门将翻转控制位。 目标位。

这样,我们的纠缠电路基本上由处于叠加状态的量子位组成,其值是|0⟩和|1⟩的组合,并且该量子位用作C-Not门的控制位,目标量子位 是另一个可用的量子位。 由于我们的量子位有50-50的机会|0⟩或|1⟩,因此目标量子位是否有50-50的机会被翻转。

该过程就是"纠缠"我们两个量子位的过程,因此无论它们在物理上靠近或分开的位置,它们在测量时始终读取相同的值。

结论

因此,这就是您对量子怪异世界的介绍,我们希望它能吸引您,同时也吸引我们!

总结了我们关于量子纠缠的第一篇文章。 我们真的希望您喜欢它,并很快回来获得更多类似的教程!

(本文翻译自Art of Quantum的文章《From "Hello World" to "Hello Quantum"》,参考:https://medium.com/art-of-quantum/from-hello-world-to-hello-quantum-a0658b40fcb8)


分享到:


相關文章: