量子编程的基本单元就是量子门。量子编程有点像传统的电路设计,一个量子程序可以被写成量子门序列。



图中有一些符合,比如H门、X门、Z门、测量等,我们都会接触到。

传统计算机程序的输入和输出可以不一样,但是量子程序是绝对不允许这样的。在两个方向可以逆转的操作不会丢失信息,而比如加法这样的就不行,你知道3是1+2还是0+3?



同理,qubit不会被拆分或合并。所以量子编程没有if-then-else之类的控制流程。

qubit运算

叠加态可以表示成

\(
|\psi\rangle=a_0|0\rangle+a_1|1\rangle\\=\cos\frac{\theta}{2}|0\rangle+e^{i\phi}\sin\frac{\theta}{2}|1\rangle\\=\cos\frac{\theta}{2}|0\rangle+\left(\cos\phi+i\sin\phi\right)\sin\frac{\theta}{2}|1\rangle
\)

所以量子计算就是在控制\(\phi\)和\(\theta\)这两个角。

哈德玛门

前面我们已经了解了哈德玛门,它的逆矩阵等于它自己。哈德玛门可以用来制备纠缠粒子,也可以用来强化某个状态的概率(比如将另一个状态的概率降为0)。

对于\(n\)个qubit组成的系统,可以分别给每个qubit应用哈德玛门来制备一个状态均匀分布的叠加系统:



右上角的\(\otimes n\)表示并行应用\(n\)次;右边的\(x\)是状态空间中的每个向量。2应的方程是(这是\(n+1\)个qubit,但只给\(n\)个使用了哈德玛门):

整体相位

一个叠加态可以表示为

\[|\psi\rangle=e^{i\gamma}\left(\cos\frac{\theta}{2}|0\rangle+e^{i\phi}\sin\frac{\theta}{2}|1\rangle\right)
\]

其中,括号外面的称为整体相位,括号里面每个基向量的系数称为相对相位。两个向量在数学上不一样的话,如果它们只是整体相位不同,那在实际世界中是区分不出来的。比如两个向量整体相位相差\(\Delta\gamma=\pi\),它们测量的结果就是一样的。例如:

\[\frac{-|0\rangle+|1\rangle}{\sqrt{2}},\frac{|0\rangle-|1\rangle}{\sqrt{2}}
\]

只有两个向量的相对相位不一样,它们测量结果才不一样。下面两个向量只有整体相位不同,所以测量结果一样;给他俩都应用\(H\)门,它们的相对相位就会变化,它们就会分别变成\(|0\rangle\)和\(|1\rangle\):

\[\frac{|0\rangle+|1\rangle}{\sqrt{2}},\frac{|0\rangle-|1\rangle}{\sqrt{2}}
\]

一些算法就是利用的这个原理对向量进行分组测量:

泡利门

泡利门有三个,都非常简单,不像哈德玛门的定义那么复杂。三个泡利门是为了在三个维度方向旋转向量的:

X泡利门

\(X\)门会交换两个基向量的振幅,它将向量沿着\(x\)轴旋转。它一般被和经典逻辑中的(NOT)进行对比,因为它会反转\(|0\rangle\)和\(|1\rangle\)。

\[\mathbf{X}=\begin{bmatrix}
0 & 1 \\
1 & 0 \\
\end{bmatrix}=|1\rangle\langle0|+|0\rangle\langle1|\\
\alpha_0|0\rangle+\alpha_1|1\rangle\overset{X}{\rightarrow}\alpha_1|0\rangle+\alpha_0|1\rangle
\]

Y泡利门

顾名思义,\(Y\)门会把向量沿着\(y\)轴翻转。

\[\mathbf{Y}=\begin{bmatrix}
0 & i \\
i & 0 \\
\end{bmatrix}=i|1\rangle\langle0|-i|0\rangle\langle1|\\
\alpha_0|0\rangle+\alpha_1|1\rangle\overset{X}{\rightarrow}-i\alpha_1|0\rangle+i\alpha_0|1\rangle
\]

可见\(Y\)门会给系数乘上\(\pm i\)然后交换,它和\(X\)门的差别是查一个相位。

Z泡利门

\(Z\)门会保持\(|0\rangle\)的振幅不变,而给\(|1\rangle\)引一个负相位:

\[\mathbf{Z}=\begin{bmatrix}
1 & 0 \\
0 & -1 \\
\end{bmatrix}=|1\rangle\langle0|-|0\rangle\langle1|\\
\alpha_0|0\rangle+\alpha_1|1\rangle\overset{X}{\rightarrow}\alpha_0|0\rangle-\alpha_1|1\rangle
\]

相移

除了\(Z\)门,还有一些门是向量沿着\(z\)轴翻转,比如\(T\)、\(S\):

S门

\(Z\)门是绕\(z\)轴转\(\pi\),\(S\)门是转半\(\pi\)。

\[\mathbf{S}=\begin{bmatrix}
1 & 0 \\
0 & i \\
\end{bmatrix}=|1\rangle\langle0|+i|0\rangle\langle1|
\]

T门

\(Z\)门是绕\(z\)轴转\(\pi\),\(S\)门是转\(\frac{\pi}{2}\),\(T\)门是转\(\frac{\pi}{4}\)。

\[\mathbf{S}=\begin{bmatrix}
1 & 0 \\
0 & e^{{i\pi}/{4}} \\
\end{bmatrix}=|1\rangle\langle0|+e^{i\pi/4}|0\rangle\langle1|
\]

相移门

更一般的,对于绕\(z\)轴转任意的\(\theta\)角,对\(|1\rangle\)的影响如下:

\[\mathbf{S}=\begin{bmatrix}
1 & 0 \\
0 & e^{i\theta} \\
\end{bmatrix}=|1\rangle\langle0|+e^{i\theta}|0\rangle\langle1|
\]

测量

测量的符号看起来像一个仪表指针

幺矩阵

幺门就是单位矩阵,不影响向量

\[\mathbf{I}=\begin{bmatrix}
1 & 0 \\
0 & 1 \end{bmatrix}
\]

有时候为了看起来清晰,会额外在方程里加上

未完

这里看完了1-qubit操作门,后面我们会说多qubit门。总结下:单qubit门就是在球面上移动向量。

单qubit量子门的更多相关文章

  1. 用MATLB仿真一个单闭环控制量,同时还存在两个开环控制变量的阶跃响应曲线。(自动控制方法是PID中的P控制。通过查表法直接给开环参数稳态最佳的大小)

    实际项目背景:甘肃省,航天510所的LIPS100电推力器.一共有三个控制变量,开环控制变量是:Ia(阳极电流).mmrf(阳极主流率) 这个阳极主流率是阀门变量,不能够突变,模拟用(大学一年级课,电 ...

  2. [转帖]谷歌宣称首次实现量子优越性,IBM“不服”,中国同行咋看?

    谷歌宣称首次实现量子优越性,IBM“不服”,中国同行咋看? 投递人 itwriter 发布于 2019-10-24 15:46 评论(7) 有306人阅读 原文链接 [收藏] « » https:// ...

  3. Python数据可视化:网易云音乐歌单

    通过Python对网易云音乐华语歌单数据的获取,对华语歌单数据进行可视化分析. 可视化库不采用pyecharts,来点新东西. 使用matplotlib可视化库,利用这个底层库来进行可视化展示. 推荐 ...

  4. ASO--简单了解

    ASO是“应用商店优化”的简称.ASO(App Search Optimization)就是提升你APP在各类APP应用商店/市场排行榜和搜索结果排名的过程. 类似普通网站针对搜索引擎的优化,即SEO ...

  5. 性能测试:深入理解线程数,并发量,TPS,看这一篇就够了

    并发数,线程数,吞吐量,每秒事务数(TPS)都是性能测试领域非常关键的数据和指标. 那么他们之间究竟是怎样的一个对应关系和内在联系? 测试时,我们经常容易将线程数等同于表述为并发数,这一表述正确吗? ...

  6. 痞子衡嵌入式:串行NOR Flash的页编程模式对于量产时间的影响

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是串行NOR Flash的页编程模式对于量产时间的影响. 任何嵌入式产品最终都绕不开量产效率话题,尤其是对于主控是非内置 Flash 型 ...

  7. Memcached+PHP+Mysql+Linux 实践

    首先确保你的服务器环境已经具备了memcached和lamp,关于在Linux上搭建memcahced+php环境可以参考我的另外一篇帖子( http://www.cnblogs.com/codeAB ...

  8. 龙芯将两款 CPU 核开源,这意味着什么?

    10月21日,教育部计算机类教学指导委员会.中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和G ...

  9. 记录近期小改Apriori至MapReduce上的心得

    ·背景 前一阵,一直在研究一些ML的东东,后来工作关系暂停了一阵.现在继续把剩下一些热门的算法再吃吃透,"无聊+逗比"地把他们搞到MapReduce上.这次选择的入手对象为Apri ...

  10. BotVS开发基础—2.1 账户、行情、K线、深度

    代码 import json def main(): Log("账号信息:", exchange.GetAccount()); # Log("K 线数据:", ...

随机推荐

  1. Dash 2.17版本新特性介绍

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/dash-master 大家好我是费老师,不久前Dash发布了其2.17.0版本,执行下面的命令进行最 ...

  2. PLC输出指令频率F计算

    本文章为学习记录,水平有限,望各路大佬们轻喷!!!    转载请注明出处!!!

  3. vue3语法糖script setup

    在vue3种setup的写法,可以单独写setup()也可以写到script标签中,当然我们推荐后面这种 他的好处有很多,代码也简洁很多. 1.属性和方法无需return,可直接使用 /*原先*/ & ...

  4. 密码学—Vigenere加密Python程序

    文章目录 维吉尼亚加密 加密算法 解密算法 注意事项 维吉尼亚加密 古典密码,属于多表加密. 怎么就是多表了? 维吉尼亚密码的加密算法实质是凯撒密码,因为他是先分好小组,然后用密钥串对应着分好组的每一 ...

  5. 一次nginx文件打开数的问题排查处理

    现象:nginx域名配置合并之后,发现consul-template无法完成nginx重载,然后发现需要重启nginx,才能让配置生效. 注意:下次哪个服务有报错,就看重启时所有日志输出,各种情况日志 ...

  6. 组合数学:Burnside引理和Polya定理解决染色置换问题

    例题 给3x3的格子上色,4种颜色,可以重复.排除旋转后相同的情况,请问有多少种不同的上色方法? 解答 设格子编号如下: | 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 ...

  7. 深入学习Semantic Kernel:创建和配置prompts functions

    引言 上一章我们熟悉了一下 Semantic Kernel 的理论知识,Kernel 创建以及简单的Sample熟悉了一下 SK 的基本使用.在Semantic Kernel中的 kernel fun ...

  8. 基于FPGA的4x4矩阵键盘驱动设计---第一版

    欢迎各位朋友关注"郝旭帅电子设计团队",本篇为各位朋友介绍基于FPGA的4x4矩阵键盘驱动设计---第一版 功能说明: 1. 驱动4x4矩阵键盘:按下任意一个按键,解析出对应按键信 ...

  9. 源码分析——MyBatis核心接口SqlSession的实现原理

    在上一篇文章中(<MyBatis动态代理调用过程源码分析>),我们知道了MyBatis动态代理的核心是MapperProxy,在它内部封装了动态代理的调用逻辑,而我们也知道了在使用动态代理 ...

  10. 8.11考试总结(NOIP模拟36)[Dove 打扑克·Cicada 与排序·Cicada 拿衣服]

    我会化作人间的风雨陪在你的身边 T1 Dove 打扑克 解题思路 考场上是想了一个树状数组维护的打法,但是竟然和 \(qn^2\) 的算法一样是 65pts 暴力就是对于每一次 2 询问重新建一下树状 ...