Axiom 1: Superposition principle函数
量子态是能够叠加的。spa
而叠加态的性质赋予了量子指数增加的可能。设计
一个量子比特就是二维Hilbert空间中的向量,两个量子比特就是四维Hilbert空间的中向量,三个就是八维, \(n\) 个量子比特就是 \(2^n\) 维Hilbert空间中的向量。3d
另外,须要注意的一点是,即便我只是在一个量子比特上操做,变化的也是整个系统。blog
Axiom 2: Unitary Evolutionip
量子电路和经典另外一个重要的不一样就是量子电路是可逆的。ci
经典电路没有可逆的要求,好比OR门,若是输出是1,你知道输入是什么吗?(1,1)、(1,0)、(0,1)都有可能,由于信息丢失了,四种输入的可能,输出却只有两种,信息丢失了。rem
而量子的操做变换则必须是酉变换,即,可逆,我能够根据我输出的信息反推个人输入。get
经典可逆电路实际上是比较容易的。it
NOT门,他本身就是可逆的,取反再取反就是自己。
AND门,C-SWAP门其实就能够代替AND门
将z固定为0,则c只有在x和y都为1的时候为1,其他时候为0,知足AND门的要求。同时由于有a和b的存在,能够轻易的推导出x,y。
若是将但愿可以从输出推导出输入,那么显然,会有junk bit(垃圾比特)的存在,即除了咱们想要目标之外的结果,不是咱们想要的目的,可是是咱们推导输入不可或缺的存在,对于C-SWAP门来讲,就是a,b。
junk bit对于经典比特来讲,就是多出来的比特而已,可是对于量子比特来讲,倒是须要被remove的东西。若是不处理,会影响后续的计算。因此说,设计量子电路,第一个问题其实不是量子电路可以比经典电路加速多少倍,而是量子电路是否能够作到经典电路作到的事。
对于经典比特来讲,我不须要的比特,直接不要就能够了。个人后续操做中不涉及这些垃圾比特就没有关系,可是由于有量子相干的存在,若是我直接无论垃圾比特会让后续的测量获得彻底不同的结果。
例子:
令咱们的目标函数是f(x)=x,A是没有垃圾比特的状况,即,咱们输入什么输出什么。而B是有垃圾比特状况,第一个比特存目标答案,f(x)=x,第二个比特是咱们的垃圾比特,假设这里的垃圾比特是junk(x)=x。
例子A:
在A的状况下,若是咱们的输入是 \(\frac{1}{\sqrt2}|0\rangle + \frac{1}{\sqrt2}|1\rangle\) ,通过A门,仍是 \(\frac{1}{\sqrt2}|0\rangle + \frac{1}{\sqrt2}|1\rangle\) ,在H门后,咱们的比特又变成了 \(|0\rangle\) ,此时测量,获得的结果必定是 \(|0\rangle\) 。
例子B:
在B的状况下,若是咱们的输入是 \((\frac{1}{\sqrt2}|0\rangle + \frac{1}{\sqrt2}|1\rangle)|0\rangle\) ,通过A门,则变成了\(\frac{1}{\sqrt2}|00\rangle + \frac{1}{\sqrt2}|11\rangle\) ,此时对第一个比特进行H门操做,获得结果 \(\frac{1}{2}|00\rangle + \frac{1}{2}|10\rangle+\frac{1}{2}|10\rangle - \frac{1}{2}|10\rangle\) 。此时对第一个比特测量,获得的结果是 \(|0\rangle\) 或者是 \(|1\rangle\) 的几率是同样的。
由于有了第二个比特的存在,因此上述式子中的 \(-\) 不能直接抵消第一个比特为 \(|1\rangle\) 的可能性,这也就是垃圾比特不得不移除的缘由。
垃圾比特对后续有影响,那么将他移除就行了,由于量子的操做是可逆的,因此怎么来的怎么回去。
可是在回去以前,把咱们须要的目标 \(C(x)\) 的量子态用CNOT门复制出来就好。这样就获得了没有垃圾比特的结果。
可能有人想问,不是量子态不能复制吗?事实上,咱们并无复制 \(C(x)\) 的结果,当咱们把结果从原来的比特上转移到y上后,原来的比特和垃圾比特又经过逆操做返回了最初的状况。垃圾比特最初的状态是 \(|0 \rangle\) ,并不是叠加态的状况,量子的纠缠或者相干是由于有量子叠加态,不是纯态的缘由,而今回到纯态,就不在形成影响。