【科普】量子计算通识-2

作者: zhyuzh3d | 来源:发表于2019-07-11 11:15 被阅读15次

    欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
    更多相关文章请点击【量子计算通识】


    以下内容参照微软研究院主题演讲《Quantum Computing for Computer Scientists(计算机科学家量子计算导读)》的结构进行整理和扩充的。
    本篇是第二部分。上一篇【科普】量子计算通识-1

    经典比特位的四种操作

    一个比特位即0或1,代表了两种可能中确定的一种。

    我们对于一个比特位仅有四种操作方法:

    1. f(x)=x

    Identity,恒等,即不变,不操作。原来是0结果就是0,原来是1结果也还是1。或者说是乘以标准单位。
    对于|0>和|1>这样的向量位表示,我们可以乘以单位矩阵:
    \begin{pmatrix}1,0\\0,1\end{pmatrix} \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}1\\0\end{pmatrix}=0 \qquad \begin{pmatrix}1,0\\0,1\end{pmatrix} \begin{pmatrix}0\\1\end{pmatrix}= \begin{pmatrix}0\\1\end{pmatrix}=1

    1. f(x)=﹁x

    Negation,翻转,乘以。原来是0结果就是1,原来是1结果也还是0。或者说是乘以翻转单位,这在矩阵中就是一个右上角到左下角的单位翻转矩阵:

    \begin{pmatrix}0,1\\1,0\end{pmatrix} \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}0\\1\end{pmatrix}=1 \qquad \begin{pmatrix}0,1\\1,0\end{pmatrix} \begin{pmatrix}0\\1\end{pmatrix}= \begin{pmatrix}1\\0\end{pmatrix}=0

    1. f(x)=0

    Constant-0,固定等于0,或者说强制设置为0,不管你原来是0还是1,操作之后都是0。
    这样可以用矩阵表示,结果第一项取被乘数两项之和,因为两项必然有一个是1所以结果第一项是1;而结果第二项什么都不取,直接是0:
    \begin{pmatrix}1,1\\0,0\end{pmatrix} \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}1\\0\end{pmatrix}=0 \qquad \begin{pmatrix}1,1\\0,0\end{pmatrix} \begin{pmatrix}0\\1\end{pmatrix}= \begin{pmatrix}1\\0\end{pmatrix}=0

    1. f(x)=1

    Constant-1,固定等于1,或者说强制设置为1,不管你原来是0还是1,操作之后都是1。
    这样可以用矩阵表示,结果第二项取被乘数两项之和,因为两项必然有一个是1所以结果第一项是1;而结果第一项什么都不取,直接是0:
    \begin{pmatrix}0,0\\1,1\end{pmatrix} \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}0\\1\end{pmatrix}=1 \qquad \begin{pmatrix}0,0\\1,1\end{pmatrix} \begin{pmatrix}0\\1\end{pmatrix}= \begin{pmatrix}0\\1\end{pmatrix}=1

    可逆性Reversible

    不变,翻转,等0,等1。
    在这四种运算中,前两个是可逆的,而后两者是不可逆的。

    可逆的意思是如果我们知道结果并且知道操作类型,那么我们就能反推得到原来的值。

    f(x)=y

    即知道y和f,就能反向运算得到x。
    比如说知道结果是0,而且进行过翻转运算,那么原来一定是1。

    但等0和等1操作就是不可逆的,知道结果是0,而且进行过等0操作,我们仍然无法确定原来到底是0还是1。

    向量的张量积Tensor product of vectors

    我们用⊗符号表示张量积,它的算法公式是:
    \begin{pmatrix}x_0\\x_1\end{pmatrix} \otimes \begin{pmatrix}y_0\\y_1\end{pmatrix}= \begin{pmatrix}x_0\begin{pmatrix}y_0\\y_1\end{pmatrix}\\x_1\begin{pmatrix}y_0\\y_1\end{pmatrix}\end{pmatrix}= \begin{pmatrix}x_0y_0\\x_0y_1\\x_1y_0\\x_1y_1\end{pmatrix}

    例如:
    \begin{pmatrix}1\\2\end{pmatrix} \otimes \begin{pmatrix}3\\4\end{pmatrix}= \begin{pmatrix}1*3\\1*4\\2*3\\2*4\end{pmatrix}= \begin{pmatrix}3\\4\\6\\8\end{pmatrix}

    如果是多个向量连续张量积运算也是类似:
    \begin{pmatrix}x_0\\x_1\end{pmatrix} \otimes \begin{pmatrix}y_0\\y_1\end{pmatrix} \otimes \begin{pmatrix}z_0\\z_1\end{pmatrix}= \begin{pmatrix}x_0y_0z_0\\x_0y_0z_1\\x_0y_1z_0\\x_0y_1z_1\\x_1y_0z_0\\x_1y_0z_1 \\x_1y_1z_0 \\x_1y_0z_1\end{pmatrix}

    同样的:
    \begin{pmatrix}0\\1\end{pmatrix} \otimes \begin{pmatrix}0\\1\end{pmatrix} \otimes \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}0*0*1\\0*0*0\\0*1*1\\0*1*0\\1*0*1\\1*0*0\\1*1*1\\1*1*0 \end{pmatrix}= \begin{pmatrix}0\\0\\0\\0\\0\\0\\1 \\0 \end{pmatrix}

    乘积态Product state

    在上一篇【科普】量子计算通识-1的开始我们就介绍了0和1的另一种写法,|0>和|1>这样的向量表示,但如何将多个经典位用向量连续表示呢?如何用向量比特格式表示5?

    答案是向量积,我们把它称为乘积态,比如|00>就表示:

    |00>= \begin{pmatrix}1\\0\end{pmatrix} \otimes \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}1\\0\\0\\0\end{pmatrix}

    如果我们设定抛出硬币落地情况有两种可能,或反或正,我们就可以计作【反,正】
    向量(1,0)或者写作(100%,0%),我们把它理解为有100%的可能性是【反】,0%的可能性是【正】,当然这相当于判决它就是【反】。
    同样,(0,1)相当于判决它就是【正】。

    如果我们抛两次会怎样?那就共有四种情况,【反反,反正,正反,正正】,我们可以把这四种情况用四个字母表示【A0,A1,A2,A3】,总之不必纠结每一项都是两次的结果,而是只看做一种可能。
    我们再看|00>对应的(1,0,0,0)恰好是判决它属于四种可能中的一种,这和我们用1,2,3,4来计数或者用00,01,10,11来计数是一个道理,只是写法的不同。

    我们把四种情况都写出来:

    |00>= \begin{pmatrix}1\\0\end{pmatrix} \otimes \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}1\\0\\0\\0\end{pmatrix}\qquad |01>= \begin{pmatrix}1\\0\end{pmatrix} \otimes \begin{pmatrix}0\\1\end{pmatrix}= \begin{pmatrix}0\\1\\0\\0 \end{pmatrix}

    |10>= \begin{pmatrix}0\\1\end{pmatrix} \otimes \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}0\\0\\1\\0\end{pmatrix} \qquad |11>= \begin{pmatrix}0\\1\end{pmatrix} \otimes \begin{pmatrix}0\\1\end{pmatrix}= \begin{pmatrix}0\\0\\0\\1\end{pmatrix}

    这样我们就可以把任意数字写为乘积态或向量位的形式:

    十进制的4等于二进制的100即 :4_{10}=100_2

    |4>=|100>= \begin{pmatrix}0\\1\end{pmatrix} \otimes \begin{pmatrix}1\\0\end{pmatrix} \otimes \begin{pmatrix}1\\0\end{pmatrix}= \begin{pmatrix}0\\0\\0\\0\\1\\0\\0\\0 \end{pmatrix}

    当然这个也可以反写,把一个乘积态向量分解成两个低维独立态Individual state向量,我们把这个过程叫做分解Factor

    |11>= \begin{pmatrix}0\\0\\0\\1 \end{pmatrix}= \begin{pmatrix}0\\1 \end{pmatrix} \otimes \begin{pmatrix}0\\1 \end{pmatrix}= |11>

    小结

    • 比特位的四种操作:不变、翻转、等0、等1;
    • 前两者操作可逆,后两者不可逆;
    • 两个2维向量的张量积会变成4维的向量;
    • |01>表示|0> \otimes|1>,实际是四维向量;
    • 向量做张量积运算得到结果叫乘积态,反向分解得到独立态向量。

    有了这些基础,接下来我们就可以来看量子计算的最基本操作CNOT门了。

    下一篇【科普】量子计算通识-3


    欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
    更多相关文章请点击【量子计算通识】


    每个人的智能新时代

    如果您发现文章错误,请不吝留言指正;
    如果您觉得有用,请点喜欢;
    如果您觉得很有用,欢迎转载~


    END

    相关文章

      网友评论

        本文标题:【科普】量子计算通识-2

        本文链接:https://www.haomeiwen.com/subject/lrvkkctx.html