Q_01_05 多个量子比特_双量子比特-程序员宅基地

技术标签: Q#  

多个Qubits  

虽然单量子比特门具有一些反直觉特征,例如在给定时间处于多于一种状态的能力,如果我们在量子计算机中所有的都是单量子比特门,那么我们将具有计算能力的设备即使是一台计算器,更不用说一台经典的超级计算机了。 量子计算的真正能力只有在我们增加量子比特时才变得可见。 这种能力的产生部分是因为量子态矢量随量子比特数呈指数增长的向量空间的维数。 这意味着虽然单个量子位可以进行简单模拟,但模拟一个五十个量子位的量子计算可能会推动现有超级计算机的极限。 只需增加一个额外量子位就可以增加计算量,使存储状态所需的存储量增加一倍,并使计算时间大约增加一倍 计算能力的快速倍增是为什么具有相对少量量子位的量子计算机远远超过今天,明天和未来一些计算任务中最强大的超级计算机。

为什么我们有量子状态向量的指数增长? 我们在本节中的目标是回顾用于从单量子比特状态构建多量子比特状态的规则,并讨论我们需要包含在门控组中以形成通用多量子比特计算机的门控操作。 这些工具对于理解Q#代码中常用的门设置是非常必要的,并且为了理解为什么量子效应(如纠缠或干扰)使量子计算比经典计算更强大,我们对此有直觉。

代表两个Qubits

一个和两个量子比特状态的主要区别在于两个量子比特状态是四维的而不是二维的。 这是因为两个量子比特状态的计算基础是由一个量子比特状态的张量积形成的。


很容易看出,更一般地说,n量子位的量子态用维数2n的单位向量表示。 矢量如果 正如单个量子位一样,多个量子位的量子态向量包含描述系统行为所需的所有信息。

如果给出两个单独的量子位,一个在状态  和状态 相应的两个量子比特状态是

操作 称为向量的张量积(或Kronecker乘积)。 请注意,尽管我们总是可以将两个单量子比特状态的张量积形成一个双量子比特状态,但并不是所有的双量子比特状态都可以写成两个单量子比特状态的张量积。 例如,没有状态 使得他们的张量积是状态 这种不能被写成单量子比特状态的张量积的两个量子比特状态被称为“纠缠态”。 据说这两个量子纠缠在一起 松散地说,因为量子态不能被认为是单个量子比特状态的张量积,所以状态信息并不局限于任何一个量子比特。 相反,信息非本地存储在两个状态之间的相关性中。 信息的非局域性是量子计算与经典计算相比的主要特征之一,对于包括量子隐形传态和量子纠错在内的许多量子协议来说都是必不可少的。

测量两个Qubit状态

测量两个量子比特状态与单量子比特测量非常相似。 测量状态 以概率

10 以概率 产生概率为 01 00 11 ,概率为 变量    是故意命名的,以使此连接清晰。 在测量之后,如果结果是00 ,那么两个量子位系统的量子态已经崩溃并且现在是

也可以测量两个量子位量子态的一个量子位。 在只测量其中一个量子位的情况下,测量的影响微妙地不同,因为整个状态不会折叠到计算基础状态,而是会折叠为仅一个子系统。 换句话说,在这种情况下,只测量一个量子位只会使其中一个子系统崩溃,而不是全部。

为了看到这个问题,考虑测量下面状态的第一个量子位,它是通过在最初设置为“0”状态的两个量子位上应用Hadamard变换H

而形成的: 

两种结果都有50%的可能性发生。 两者的结果是50%的概率可以从以下事实直观得知:在第一个量子位上交换01时初始量子状态向量是不变的。

测量第一或第二量子位的数学规则很简单。 如果我们让ek计算基向量并让S为所有ek的集合,使得所讨论的量子位的值为1的值为k 例如,如果我们有兴趣测量第一个量子位,那么S将包含e2 10e3 11 同样,如果我们对第二个量子位感兴趣,S将包含e1 01e3 11 那么测量选择的量子位为1的概率就是状态向量 

由于每个量子比特测量只能产生01,因此测量0的概率仅为1P outcome=1 这就是为什么我们只明确给出一个衡量1的概率的公式。

这种测量对状态的作用可以用数学表示为

谨慎的读者可能担心测量的概率为零时会发生什么。 虽然在这种情况下结果状态在技术上是不确定的,但我们从不需要担心这种可能性,因为概率为零!

如果我们将 作为上面给出的统一状态向量,并且对测量第一个量子位感兴趣

请注意,这仅仅是测量结果1011所需的所有量子位的两个概率的总和。 就我们的例子而言,这是评估

这完全符合我们的直觉告诉我们概率应该是什么。 

同样,状态可以写成 再次按照我们的直觉。

两个Qubit操作

和单量子比特情况一样,任何幺正变换都是量子比特的有效操作。 一般来说,qubits上的幺正变换是一个矩阵U,其大小为2n * 2n(这样它就作用于大小为2n的向量),这样U1= 例如,CNOT(controlled-NOT)门是常用的两个量子比特门,由以下酉矩阵表示:

我们还可以通过在两个量子位上应用单量子比特门形成两个量子比特门。 例如,如果我们应用门

 

到第一个和第二个量子位,这相当于应用由它们的张量积给出的二个量子位单元:


因此,我们可以通过获取一些已知的单量子比特门的张量积来形成两个量子比特门。 双比特门的一些例子包括H HX  1X Z

请注意,虽然任何两个单量子比特门通过获取它们的张量积来定义一个二比特门,但反过来却是不正确的。 并不是所有的二比特门都可以写成单量子比特门的张量积。 这样的门被称为纠缠门。 一个纠缠门的例子是CNOT门。

受控非门背后的直觉可以推广到任意门。 一般来说,受控的门是一个门,作为身份(即它没有任何动作),除非特定的量子位是1 我们表示一个受控制的统一体,在这种情况下,在标记为x的量子位上控制着 LambdaxU 作为一个例子  ,其中e0e1是对应于值01的单个量子位的计算基向量。 例如,考虑以下控制的Z门,然后我们可以将其表示为

以有效的方式建立控制单位是一项重大挑战。 要实现这一目标,最简单的方法是建立一个基本门控制版本的数据库,并将原始单一操作中的每个基本门控与其受控对象取代。 这通常是相当浪费的,通常可以使用聪明的洞察力来用受控版本替换几个门来实现相同的影响。 出于这个原因,我们在框架中提供了执行天真方法或控制的能力,或者如果已知优化的手动调整版本,则允许用户定义单一控制版本。

门也可以使用经典信息进行控制。 例如,一个经典控制的非门,只是一个普通的非门,但它只适用于经典位为1而不是量子位的情况。 从这个意义上讲,经典控制的门可以被认为是量子代码中的if语句,其中门仅被应用于代码的一个分支中。

和单量子比特情况一样,如果任何4 * 4酉矩阵可以用这个集合中门的乘积逼近任意精度,那么一个双量子比特门集是通用的。 通用门套件的一个例子是Hadamard门,T门和CNOT门。 通过采用这些门的乘积,我们可以近似两个量子位上的任何酉矩阵。

多-Qubit 系统

我们遵循在两个量子比特情况下探索的完全相同的模式,从较小的系统中建立许多量子比特状态。 这种状态是通过形成较小状态的张量积来建立的。 例如,考虑在量子计算机中编码位串1011001 我们可以将其编码为

量子门的工作方式完全相同。 例如,如果我们希望将X门应用于第一个量子位,然后在第二个和第三个量子位之间执行CNOT,我们可以将此转换表示为

在许多量子位系统中,经常需要分配和解除分配作为量子计算机的临时存储器的量子位。 这种量子位被称为ancilla。 默认情况下,我们假设在分配时qubit状态被初始化为e0 我们进一步假设它在解除分配之前再次返回到e0 这个假设很重要,因为如果ancilla量子位与另一个量子位寄存器纠缠在一起时就会被解除分配,那么解除分配的过程将会损坏辅助子。 出于这个原因,我们总是假设这些量子位在被释放之前恢复到它们的初始状态。

最后,虽然需要将新的门添加到我们的门集以实现两个量子位计算机的通用量子计算,但是在多量子位情况下不需要引入新的门。 HT和CNOT在许多量子位上形成一个通用门,因为任何一般的幺正变换都可以分解为一系列的两个量子位旋转。 然后,我们可以利用为双量子比特情况开发的理论,并在我们有很多量子比特时再次使用它。

虽然我们迄今为止使用的线性代数符号当然可以用来描述多量子比特状态,但随着我们增加状态的大小,它变得越来越麻烦。 例如,长度为7位的字符串的结果列向量是128维,这使得使用前面描述的符号来表达它非常麻烦。 出于这个原因,我们接下来给出了量子计算中的一个通用符号,它允许我们简洁地描述这些高维向量。



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/f980511/article/details/80215826

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf