量子纠缠是一件很令人困惑的事情,不但常人难以理解,就连高山仰止如爱因斯坦,也觉得不可思议、简直是幽灵一般的现象。简单的说,量子纠缠是两个粒子(其实可以是多个,这里简化问题,就只说两个)之间的一种关联。这种关联跨越空间的限制,两者分处不同的城市这都不是问题,即使在宇宙的两极也不会断绝这种关联。这样的纠缠,十分虐狗。
我们已经知道,量子行为是随机的。如果一个量子,其状态为1/sqrt(2)·|0> + 1/sqrt(2)·|1>,那么这个量子就同时处于|0>态和|1>态。一旦测量,这个量子有0.5的概率坍塌至|0>态、有0.5的概率坍塌至|1>态。至于究竟是坍塌至|0>态还是|1>态,这是完全随机的。
考虑一个由两个粒子构成的量子体系,其状态为1/sqrt(2)·|00> + 1/sqrt(2)·|11>。这个量子体系同时处于|00>态和|11>态,一旦测量,这个量子体系有0.5的概率坍塌至|00>态、有0.5的概率坍塌至|11>态。坍塌至|0>态还是|1>态,是完全随机的。我们观察该量子体系中的第一个粒子(也就是|00>或|11>中的第一位),可以发现,第一个粒子坍塌至|0>态还是|1>态是完全随机的,概率均为0.5;类似的第二个粒子坍塌至|0>态还是|1>态也是完全随机的,概率均为0.5。
如果对这个由两个粒子构成的量子体系中的一个粒子进行一次测量,比如这次测量只测第一个粒子的状态。结果发现,第一个粒子的量子状态坍塌至|0>态。那么,我们立刻可以确定,如果对第二个粒子进行测量,结果肯定是|0>态。类似的,如果第一个粒子测得|1>态,那么第二个粒子肯定是|1>态。也即,虽然第二个粒子的状态是完全随机的,但是,一旦第一个粒子被测量,第二个粒子的状态立刻就被确定了。相应的,如果是先测第二个粒子的状态,那么一旦第二个粒子状态确定,第一个粒子的状态也就立刻被确定了。换言之,两个粒子的状态是随机的,但是两者的状态不是独立的。两者互相关联,测量其中一个使其状态由随机坍塌至确定,另一个也立刻被确定。即使两者相距千里。萬里。千萬里。
思考两个问题,两个粒子构成的量子体系,量子状态为1/sqrt(2)·|01> + 1/sqrt(2)·|11>,是否构成量子纠缠?量子状态为1/sqrt(2)·|01> + 1/sqrt(2)·|10>,是否构成量子纠缠?答案:第一个状态不是,该状态下,第一个粒子状态确定后,不能确定第二个粒子状态;第二个状态是,该状态下,第一个粒子状态确定后,第二个粒子的状态立刻确定。
物理实现上,对于不同的粒子可以使用不同方法创造量子纠缠状态。比如,让一个光子通过BBO晶体,可以得到两个低频光子。这两个光子的偏振有两个状态,都是水平方向和都是竖直方向。这两个光子构成的量子体系同时处于这两种状态,一旦测量,坍塌至任一状态的概率为0.5。如果测量其中一个光子,那么另一个光子的状态也就立刻确定。
编写算法时,实现两个量子位的纠缠需要用到量子计算机中一种重要的单元,CNOT门(受控非门)。受控非门是两元运算逻辑门,参与运算的第一个量子位是控制位、第二个量子位是目标位。当第一位是|0>时,第二位原样输出;第一位是|1>时,第二位进行反转(若是|0>、则变|1>,若是|1>、则变|0>)。第二位是否执行非操作的前提条件是第一位是否为|1>,因而称为受控非门。CNOT门的传输矩阵为{{1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 0, 1}, {0, 0, 1, 0}}。一个由两个量子位构成的量子体系,量子态为a|00> + b|01> + c|10> + d|11>。可以算出:
CNOT·{{a}, {b}, {c}, {d}} = {{a}, {b}, {d}, {c}}
也就是说,经过CNOT门,变为a|00> + b|01> + d|10> + c|11>。第一位测得为|0>,第二位的概率保持不变;第一位测得为|1>,第二位的|0>和|1>状态概率对换。
我们看一个稍微复杂一点的算法。算法涉及两个量子位,初始状态均为|0>态。第一个量子位q1通过哈达玛门之后作为控制位与第二个量子q2一起通过CNOT门。
q1为|0>态,通过哈达玛门后结果为:1/sqrt(2)·|0> + 1/sqrt(2)·|1>
再与|1>态的q2一起通过CNOT门后结果为:1/sqrt(2)·|00> + 1/sqrt(2)·|11> ----(1)
表达式(1)所表示的状态,有0.5的概率是q1为|0>且q2为|0>,还有0.5的概率是q1为|1>且q2为|1>。对于这个状态,我们可以发现,只要测量一个量子位的值,另一个量子位的值立刻确定。比如测得第一个量子位状态为|0>,就立刻可以确定第二个量子位为|0>;再比如测得第二个量子位为|1>,就立刻可以知道第一个量子位为|1>。因此,两个量子位处于纠缠态。
类似的,可以分析初始状态q1为|0>且q2为|1>、q1为|1>且q2为|0>、q1为|1>且q2为|1>这三种情况。通过同样的算法——第一个量子位q1通过哈达玛门之后作为控制位与第二个量子q2一起通过CNOT门——之后,两个量子位都处于纠缠态。换言之,这是一种可以将两个量子位进行纠缠的算法。
我们来用Q#进行量子纠缠的模拟。C#主控程序如下:
Q#量子计算模块中主要内容如下:
其中红框处实现的是我们的算法:第一个量子位q1通过哈达玛门之后作为控制位与第二个量子q2一起通过CNOT门。希望能够将两个量子位进行纠缠。对于q1和q2不同状态的组合,我们每个状态运行1000次,以观察测量结果的概率。运行结果如下:
上图显示了q1和q2不同初始状态的四种组合,经过算法后的测量结果。方便起见,我们只看最后一种情况,初始状态q1为|1>且q2为|1>。经过算法,q1为|0>且q2为|1>的测量结果有496次,与理论预测0.5概率吻合;q1为|0>且q2为|1>的测量结果有504次,与理论预测0.5概率吻合。这两种状态叠加存在,但是,一旦我们测得其中一个量子位的状态,另一个量子位的状态立刻确定。也就是,这两个量子位成功纠缠。
上图中其它三种情况也是类似,经过算法后,两个量子位都能成功纠缠。实际上,这四种输出状态就是大名鼎鼎的贝尔态(以科学家约翰·贝尔的名字命名),是一种简单的量子纠缠状态(只涉及两个粒子、两个粒子输入态只有|0>态或|1>态而不涉及叠加态)。需要说明的是,这里所有情况下,进行量子纠缠的成功率均为100%。这是因为我们使用的是模拟器,这个模拟器模拟的是理想状态的量子计算机。要将真实的量子计算机的保真率提升到100%,这其中还有很多工作要做。
上面就是这篇博文的全部内容:介绍了量子纠缠的概念,模拟仿真了一种算法,实现了对两个量子位进行量子纠缠。薛定谔说,量子纠缠是量子力学领域最显著的特点,没有之一(“I would not call entanglement ONE but rather THE characteristic trait of quantum mechanics”,原谅我的渣翻译)。我觉得薛定谔说的对。
未经允许请勿转载
原文地址:http://blog.51cto.com/13763747/2125848