试验态制备与量子纠缠¶
试验态制备¶
试验态制备,指的是量子计算中任意算法的初始量子态的构造,是量子计算的初始步骤。
以单比特的两态空间为例,在实际量子运算中,我们可以直接得到的默认量子态是基态 \(\left|0\right\rangle\),通过非门可以间接得到基态 \(\left|1\right\rangle\)。
对于任给的目标叠加量子态,我们则需要构造相应的量子门组合来得到。从基态 \(\left|0\right\rangle\) 出发制备任给目标叠加态的过程称为初态制备。
最大叠加态¶
以二比特态空间为例,从 \(\left|0\right\rangle^{\otimes2}\) 出发,对每个量子比特进行Hadamard门操作可以得到二比特空间中所有基态的均匀叠加。
类似地,在任意维态空间中,均可以借助Hadamard门从多维的 \(\left|0\right\rangle\) 基态出发,得到所有基态均匀线性组合的量子态。
这种量子态称为最大叠加态,很多量子计算中量子比特的初始状态要求为最大叠加态,量子计算的并行性也有赖于此。
通过试验态制备,我们就可以得到任意的基础量子态,从而完成量子计算中运算对象的构造。但是在执行运算操作之前,我们需要对量子计算所使用的量子比特给出明确的约束——纠缠关联。
在介绍量子纠缠之前,我们需要介绍一下纯态和混态。
纯态与混态的区分方式有多种,典型的有布洛赫球(Bloch Sphere),将态空间与Bloch球关联,球面上量子态为纯态,球体内的量子态为混态。
另一种重要的区分方式为密度矩阵,混态的密度矩阵的平方的迹小于1。
量子纠缠¶
如果一个量子系统的量子态 \(\left|\psi\right\rangle\) 可以表示成形如 \(\left|\psi\right\rangle=\left|\psi_0\ \right\rangle\otimes\left|\psi_1\right\rangle\) 的两个量子系统的直积形式,我们就将此量子态称为直积态。
备注
不能进行这种直积分解的量子态就是纠缠态。
例如对二比特的Bell态 \(\frac{1}{\sqrt2}\left|00\right\rangle+\frac{1}{\sqrt2}\left|11\right\rangle\),它不能写成两个单比特量子态的直积形式。
量子纠缠态有超越经典关联的量子关联。为了发挥量子计算的并行性和高效性,量子计算使用的量子比特之间应当有着纠缠关联。
最大叠加态制备¶
下面是基于QPanda-2.0的最大叠加态制备的代码实现,调用的量子比特之间有着纠缠关联。
#include "QPanda.h"
USING_QPANDA
int main(void)
{
auto qvm = CPUQVM();
qvm.init();
QVec qvec = qvm.qAllocMany(3);
// 制备最大叠加态
auto prog = QProg();
prog << applySingleGateToAll("H", qvec);
// 以概率方法输出结果量子态的理论值(并非测量)
auto result = qvm.probRunDict(prog, qvec);
// 输出结果
for (auto& aiter : result)
{
cout << aiter.first << " : " << aiter.second << endl;
}
return 0;
}
运行结果应当是以均匀概率1/8得到3比特空间中所有量子态:
000 : 0.125
001 : 0.125
010 : 0.125
011 : 0.125
100 : 0.125
101 : 0.125
110 : 0.125
111 : 0.125