量子笔记:多比特量子门

news2024/11/15 1:23:49

目录

0. 前言

2. 量子多重H门

3. 量子SWAP门

4. 量子CNOT门(CX门):受控非门

5. 量子CY和CZ门

6. 量子C*门

6.1 受控S门

6.2 受控H门

6.3 受控Z旋转门

6.4 受控X旋转门

6.4 受控Y旋转门 

7. 量子托佛利门(CCNOT门)

8. 量子弗雷德金门(CSWAP门)


0. 前言


        量子计算、量子信息、量子编程自学笔记系列。

        用自己能看懂的方式来表述对于量子计算基础知识的理解。

        不求体系完备和逻辑严谨、但求通俗易懂。或能顺便给路过的小伙伴一些参考和启发那是纯属巧合概不认账^-^。当然,仅限于轮廓的勾勒和要点简述,对细节感兴趣的话还是要亲自正儿八经地啃正经的参考书。

        本节介绍用于多个量子比特的操作的量子门。单个量子比特的操作无法使量子比特之间发生“化学反应”--纠缠。虽然对单量子比特的门操作也是不可或缺的,但是只有多比特量子门作用于多个量子比特才能真正的产生有趣的事情。

        回顾一下,当我们有n个量子比特构成一个量子系统Q时,Q的状态空间为维度为2^n维,可以用一个2^n维复希尔伯特空间来表示量子系统Q的状态空间。可以将其简记为(\mathbb{C}^2)^{\otimes n},这个符号的意思表示它是由n个复希尔伯特空间\mathbb{C}^2的张量积构成的张量积空间。

        量子系统Q的基向量可以简记为|a_1 a_2 ... a_n\rangle, a_1,...,a_n \in \{0,1\},又可以进一步用一个十进制无符号数来表示,但是此时需要标记清楚量子数n,比如说在n=8时,以下两种标记法是等价的:

|10010010\rangle = | 162\rangle_8

2. 量子多重H门

        量子H^{\otimes n}门(但是标题上不允许出现这种符号,故杜撰了名字“多重H门”,勿要当真^-^)。

        前面已经介绍过H门的矩阵为:\bold{H} = \begin{bmatrix} \frac{1}{\sqrt{2}} & \frac{1}{\sqrt{2}}\\ \frac{1}{\sqrt{2}} & -\frac{1}{\sqrt{2}} \end{bmatrix},简单计算可以得到H门作用于计算基底向量的效果如下:

                \bold{H}|0\rangle = \frac{1}{\sqrt(2)}(|0\rangle + |1\rangle)

                \bold{H}|1\rangle = \frac{1}{\sqrt(2)}(|0\rangle - |1\rangle)                               

        它将两个基向量变换成了两个等概率叠加态。H门在量子电路中的作用就是用于创建叠加态,它通常用在量子电路的最前端。

        将H矩阵同时作用于两个量子比特时是什么效果呢?考虑两个量子比特状态(注意,以下用下标来表示各计算基是属于哪个量子比特的)

                |\psi\rangle_1 = a_1|0\rangle_1 + b_1|1\rangle_1|\psi\rangle_2 = a_2 |0\rangle_2 + b_2 |1\rangle_2

        将H矩阵作用于量子比特相当于:

        \begin{align} (H|\psi\rangle_1)\otimes(H|\psi\rangle_2) &= (H \otimes H)(|\psi\rangle_1 \otimes |\psi\rangle_2) \\ &=H^{\otimes 2}(a_1a_2|00\rangle + a_1b_2|01\rangle + b_1a_2|10\rangle + b_1b_2|11\rangle) \end{}

        其中, H^{\otimes 2} =\frac{1}{2} \begin{bmatrix} 1 & 1 & 1 & 1\\ 1 & -1 & 1 & -1\\ 1 & 1 & -1 & -1\\ 1 & -1 & -1 & 1 \end{bmatrix} = \frac{\sqrt(2)}{2}\begin{bmatrix} H & H\\ H & -H \end{bmatrix},这是一个4x4的幺正矩阵。

        虽然以上公式写得这么花里胡哨,其实,H^{\otimes 2}所用于量子比特得效果就是用两个量子H门分别作用于其中一个量子比特。通常用于将两个初始化均为|0\rangle得量子比特调整至叠加态。H^{\otimes n}依此同理类推,写成2^n \times 2^n的幺正矩阵主要是为了方便数学推导处理吧。

        需要注意的一点是H^{\otimes n}可以以递推的方式生成,如下所示:

                H^{\otimes n} = \frac{\sqrt{2}}{2} \begin{bmatrix} H^{\otimes (n-1)} & H^{\otimes (n-1)}\\ H^{\otimes (n-1)} & -H^{\otimes (n-1)} \end{bmatrix}

3. 量子SWAP门

        前面介绍张量积的时候说过张量积是不可交换的,即,通常来说:

                |\psi\rangle_1 \otimes |\psi\rangle_2 \neq |\psi\rangle_2 \otimes |\psi\rangle_1 

        量子SWAP门,字面意思就是交换门。问题是交换什么呢?交换以上张量积的顺序!

        令M表示量子SWAP门的矩阵,则有:

                M (|\psi\rangle_1 \otimes |\psi\rangle_2) = (|\psi\rangle_2 \otimes |\psi\rangle_1)

        令:|\psi\rangle_1 = a_1 |0\rangle + b_1 |1\rangle,  |\psi\rangle_2 = a_2 |0\rangle + b_2 |1\rangle,则上式可以展开为:

                M(a_1a_2|00\rangle_{12} + a_1b_2|01\rangle_{12} + b_1b_2|10\rangle_{12} + b_1b_2|11\rangle_{12} ) \\= a_2a_1|00\rangle_{21} + a_2b_1|01\rangle_{21} + b_2a_1|10\rangle_{21} + b_2b_1|11\rangle_{21}

        需要注意的是,等式左边是第一个量子比特在前第二个量子比特在后的表示(用下标(12)表示),而等式右边是第二个量子比特在前第一个量子比特在后的表示(用下标(21)表示)。

        但是,从测量的角度来说,|00\rangle_{12}|00\rangle_{21}是无法区分的,其它四种双量子基态同理。因此,以上式子中的表示两个量子比特顺序的下标可以去掉。进一步改用坐标形式的表示的话就可以得到:

        ​​​​​​​        M\begin{bmatrix} a_1a_2\\ a_1b_2\\ a_2b_1\\ b_1b_2 \end{bmatrix} = \begin{bmatrix} a_1a_2\\ a_2b_1\\ a_1b_2\\ b_1b_2 \end{bmatrix} 

        由此可以看出,M实际上就是一个4x4的置换矩阵:M = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} 

4. 量子CNOT门(CX门):受控非门

        CNOT门,用于创建纠缠的量子比特,是量子计算中最重要的门之一。C指Controlled,受控的,NOT门即量子非门、也即量子X门,连起来就是执行有条件地进行量子比特翻转的门,也称CX门。

        CNOT门有两个量子比特输入,两个量子比特输出(这是因为量子门必须是可逆的,因此输出和输入的个数必须相等)。记两个量子比特分别为q_1q_2,它们的量子态分别为|\psi\rangle_1|\psi\rangle_2。CNOT门的工作方式是:

        如果|\psi\rangle_1|1\rangle,则q_2的状态由|\psi\rangle_2变为X|\psi\rangle_2

        如果|\psi\rangle_1|0\rangle, 则q_2的状态保持不变;

        q_1的状态始终保持不变;

        CNOT门的矩阵也是一个置换矩阵: \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0 \end{bmatrix},左上角为2x2的单位矩阵(ID门,对应于第一个量子比特不发生变化),右下角是单量子X门的矩阵。

        CNOT门作用于\mathbb{C}^2 \otimes \mathbb{C}^2的标准基底的效果如下:

        ​​​​​​​        \begin{align} CX |00\rangle &= |00\rangle \\ CX |00\rangle &= |00\rangle \\ CX |10\rangle &= |11\rangle \\ CX |11\rangle &= |10\rangle \end{} 

        根据线性性质可得:

        ​​​​​​​        CX(a_{00}|00\rangle + a_{01}|01\rangle + a_{10}|10\rangle + a_{11}|11\rangle ) \\= a_{00}|00\rangle + a_{01}|01\rangle + a_{11}|10\rangle + a_{10}|11\rangle

        在CNOT门前、后各使用一个能够改变基底的H门可以得到一个有趣的结果,如下所示:

        M(H^{\otimes 2} \cdot CX \cdot H^{\otimes 2}) \\= \begin{bmatrix} 1/2 & 1/2 & 1/2 & 1/2\\ 1/2 & -1/2 & 1/2 & -1/2\\ 1/2 & 1/2 & -1/2 & -1/2\\ 1/2 & -1/2 & -1/2 & 1/2 \end{bmatrix}\begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} 1/2 & 1/2 & 1/2 & 1/2\\ 1/2 & -1/2 & 1/2 & -1/2\\ 1/2 & 1/2 & -1/2 & -1/2\\ 1/2 & -1/2 & -1/2 & 1/2 \end{bmatrix} \\= \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0 \end{bmatrix}

        它实现了 \mathbb{C}^2 \otimes \mathbb{C}^2的标准右矢表达式中第二项和第四项系数的置换操作。更具体一点来说,它的等价效果是,当第二个量子比特为|1\rangle时,则翻转第一个量子比特;否则保持不变。也就是说它仍然实现了受控非门的功能,但是控制比特由CX的第一个量子比特变成了第一个量子比特!与CNOT门的行为刚好相反,所以有时也被称为逆CNOT门(reverse CNOT)。

        CNOT门可用于构建贝尔纠缠态,具体构建方式后面再讨论。CNOT门符号图如下所示:

 

5. 量子CY和CZ门

        与CX(受控X门)一样,以量子Y门、量子Z门为基础可以创建对应的受控Y门(CY门)和受控Z门(CZ门)。

         (参考CX门的矩阵的构建方式)CY门的矩阵如下所示,左上角为2x2的单位矩阵(ID门,对应于第一个量子比特不发生变化),右下角是单量子Y门的矩阵。

        ​​​​​​​        M(CY) = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & -i\\ 0 & 0 & i & 0 \end{bmatrix}

        同样可得CZ门的矩阵如下所示, 左上角为2x2的单位矩阵(ID门,对应于第一个量子比特不发生变化),右下角是单量子Z门的矩阵。

        ​​​​​​​        M(CZ) = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & -1 \end{bmatrix}

         

6. 量子C*门

        参考前两节的受控X门、受控Y门和受控Z门的矩阵的构建方式,容易猜到通用的受控某某门的构建方式。

        一般来说,如果U = \begin{bmatrix} a & b\\ c & d \end{bmatrix}是一个幺正矩阵,则我们已经知道它代表量子门(可以称为量子U门)的矩阵。那么受控U门的矩阵就是:

        CU = \begin{bmatrix} I_{2\times2} & 0\\ 0 & U \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & a & b\\ 0 & 0 & c & d \end{bmatrix}

        所以,我们得到了一族量子门!

6.1 受控S门

        S门 --> 受控S门

        S=R_{\frac{\pi}{2}}^Z = \begin{bmatrix} 1 & 0\\ 0 & e^{\frac{i\pi}{2}} \end{bmatrix} = \begin{bmatrix} 1 & 0\\ 0 & i \end{bmatrix} \rightarrow CS = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & i \end{bmatrix}

6.2 受控H门

        CH = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\\ 0 & 0 & \frac{\sqrt{2}}{2} & -\frac{\sqrt{2}}{2} \end{bmatrix}

6.3 受控Z旋转门

        CZ = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & e^{i \phi} \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & cos(\phi) + i sin(\phi) \end{bmatrix}

6.4 受控X旋转门

        CX = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & cos(\frac{\phi}{2}) & -i sin(\frac{\phi}{2})\\ 0 & 0 & -i sin(\frac{\phi}{2}) & cos(\frac{\phi}{2}) \end{bmatrix}

6.4 受控Y旋转门 

        CY = \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & cos(\frac{\phi}{2}) & - sin(\frac{\phi}{2})\\ 0 & 0 & sin(\frac{\phi}{2}) & cos(\frac{\phi}{2}) \end{bmatrix} 

7. 量子托佛利门(CCNOT门)

        托佛利门(Toffoli gate)是作用于3个量子比特的双控制式量子门,也称CCNOT门,或者CCX门。如果前两个量子比特的状态均为|1\rangle,则第三个量子比特翻转(即用X门作用于对第三个量子比特),否则,第三个量子比特保持不变。前两个量子比特总是保持不变。

        托佛利门的矩阵为8x8置换矩阵,如下所示:

        CCNOT=\begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{bmatrix}

        如以上矩阵所示,托佛利门的效果是交换最后两个系数。 

        托佛利门符号图如下所示:

 

8. 量子弗雷德金门(CSWAP门)

        弗雷德金门(Fredkin gate)也称CSWAP门,是作用于操作3个量子比特的单控制式量子门(与之相对的是,托佛利门是双控制式3量子比特门)。

        如果第一个量子比特的状态是|1\rangle,则用SWAP门作用于第二个和第三个量子比特;否则,保持全部不变。第一个量子比特总是保持

        弗雷德金门的矩阵为8x8置换矩阵,如下所示:

        CSWAP=\begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix}

        如以上矩阵所示,弗雷德金门的效果是交换倒数第二个和倒数第三个系数。弗雷德金门的符号图如下所示:

 

小结:

        至此,本文和(量子笔记:单比特量子门、泡利矩阵)一起已经完成了一整套量子门的介绍,接下来可以用这些量子门来尝试着搭建量子电路了。。。coming soon!

参考文献

[1] 人人可懂的量子计算,克里斯.伯恩哈特著,邱道文等译,机械工业出版社

[2] 量子计算:一种应用方法,杰克.希德里著,姚彭晖等译,人民邮电出版社

[3] 与量子比特共舞,罗伯特.S.苏托尔著,吴攀译,人民邮电出版社

[4] 图解量子计算机,宇津木健著,胡屹译,人民邮电出版社
[5] Introductory Quantaum Computing (q4quanta.github.io)

 


        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】Linux中的gcc/g++编译器的使用

💬推荐一款模拟面试、刷题神器 、从基础到大厂面试题:👉点击跳转刷题网站进行注册学习 目录 一、编译的过程 1、预处理阶段 1.1预处理的工作——头文件展开、去注释、宏替换、条件编译 1.2外部定义宏(-D选项) 1.…

记一次网络安全应急响应流程

0x01 事件分析 网站源码被篡改,攻击者一定获取到了权限,那么接下来的思路就是推测攻击者入侵手段,找到业务脆弱点,对服务器进行全方位排查,找到攻击者留下来的痕迹并进行分析处理。 2.1 信息收集 与客户简单沟通后&…

【C++】动态联编、delete/free【有无析构】的使用,虚析构

文章目录动态联编的条件:联编的概念:1. 动态联编:2. 静态联编:静态联编时确认了那些属性:结论:基类指针和派生类指针访问虚函数结论:delete和free的使用条件:1. 没有析构函数时&…

由一个按键程序引发的思考(上)

说起按键程序,只要会单片机的肯定都很熟悉。一般开始学习单片机的时候,入门程序基本都是LED灯和按键。那么这个按键程序有什么特别的吗,还需要专门去思考吗?如果我刚开始学单片机的时候也会这么想,但是随着项目的积累&…

微信早安消息推送(大升级版-企业微信)

微信早安消息推送(企业微信) 在微信公众号推送的基础上的一个升级 新增图文、疫情状况等 可以修改头像 、 昵称 效果展示 更多资讯 源代码获取 → 薇信公粽号“Cloud技术栈”,回复“企业微信推送” ———————————————————…

【贪心算法-LeetCode3:无重复字符的最长子串(Java实现)】

无重复字符的最长子串一、题目描述1.题目内容2.样例二、解决方案1.算法流程1)分析2)算法流程2.Java代码1)核心代码2)完整测试代码个人社区:https://bbs.csdn.net/forums/smile 个人主页:https://blog.csdn.…

STM32G070RBT6基于STM32CubeMX创建定时器中断控制LED闪烁

STM32G070RBT6基于STM32CubeMX创建定时器中断控制LED闪烁📍相关篇《【硬件开源电路】STM32G070RBT6开发板》🌺配置内容演示: 📚功能介绍 📑通过STM32CubeMX配置定时器1和定时器3分别作为两个led的定时闹钟。这里作为…

单片机原理及应用实验一交通信号系统(基于Proteus仿真)

1.实验内容与要求 交通信号系统是保障交通安全高效的重要设施。51单片机价格低廉、体积小、低功耗、抗干扰性好等优点,适用于交通信号系统中,本实验利用51单片机IO口的开关量的输入输出功能及内部CPU运算功能,设计一个简易的交通信号灯系统&…

生成.keystore 安卓签名

需要有openssl.exe和keytool.exe支持 signapk.jar手动签名命令 java -jar signapk.jar pl.x509.pem pl.pk8 smartrecord_3.5.8.apk smartrecord_3.5.8-signed.apk除了直接使用signapk.jar签名外,还可以将签名文件生成keystore文件,然后配置编译器给apk进…

数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(5)

文章目录前期准备1. 将create Time列设置为索引2. 生成一个和df长度相同的随机数DataFrame3. 将上一题生成的DataFrame与df合并4. 生成的新的一列new值为salary列减去之前生成的随机数列5. 检查数据中是否含有空值6. 将salary类型转换成浮点数7. 计算salary 大于10000的次数8. …

多线程之线程池

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、什么是线程池二.为什么要有线程池引入:为什么从池子里取,比创建线程速度要快什么是用户态,什么是内核态最终结论&#xf…

aws 负载均衡clb/nlb/alb

目录 概述 传统负载均衡器(Classic Load Balancer) DNS解析 健康检查(Health Check) 监听器(Listeners) 连接耗尽(Connection Draining) 粘性会话/会话关联(Sticky Sessions/…

(四)手写简单版MyBatis框架

文章目录环境搭建第一步:资源⼯具类第二步:定义SqlSessionFactoryBuilder类第三步:定义SqlSessionFactory类第四步:定义JDBC事务管理器第五步:定义数据源类第六步:定义MyMappedStatement类第七步&#xff1…

基于遗传算法卡车无人机旅行推销员问题(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Leetcode刷题111. 二叉树的最小深度

给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:2 示例 2: 输入…

Python_机器学习_算法_第7章_7.拓展知识

Python_机器学习_算法_第7章_7.拓展知识 文章目录Python_机器学习_算法_第7章_7.拓展知识7.拓展知识7.1. 其他距离公式1 标准化欧氏距离2 余弦距离3 汉明距离【了解】4 杰卡德距离【了解】5 马氏距离【了解】7.2.再议数据分割1 留出法2 交叉验证法2.1 交叉验证法基本介绍2.2 KF…

ARM发布Cortex-X3和Cortex-A715

快速链接: . 👉👉👉 个人博客笔记导读目录(全部) 👈👈👈 付费专栏-付费课程 【购买须知】: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 ARM公司发布了第二代 AR…

x86 smbus 下挂eeprom不能写问题

目录 背景 分析 驱动影响 SPD register 接口 只读 修改验证 总结 背景 x86 smbus上下挂一个eeprom,只能读取,不能写入。 写入命令采用: i2cset -y -f 0 0x50 0 0x33 即向总线0 下的0x50 地址的eeprom偏移量0 写入数据0x33, 命令…

哈夫曼树原理及Java编码实现

文章目录前言一、哈夫曼树原理二、哈夫曼编码(Java题解)参考资料前言 所有博客文件目录索引:博客目录索引(持续更新) 源代码:Gitee—Huffman.java、Github—Huffman.java 一、哈夫曼树原理 对于哈夫曼树的构造以及权值计算原理…

Java语言高级-10MySQL-第2节MySQL安装与使用

2、MySQL数据库软件 1、安装 详细见视频 2、卸载 1、去mysql的安装目录找到my.ini文件 “复制datadir “C:/programData/MySQL/MySQL Server 5.5/Data” 2、卸载MySQL 控制面板->程序卸载,但是此时并没有卸载干净 3、删除C:/ProgramData目录下得MySQL文件夹 注意…