量子相关计算基本操作
NOT, SWAP C-NOT量子门
量子门NOT门
NOT:输入与输出相反。
量子门SWAP门
SWAP:交换两个输入
量子门C-NOT门
C-NOT:Controlled-NOT 根据控制位决定输入是否变为相反的值。控制位为0,输出为目标值原值;控制位为1,输出为目标值的非值。此过程控制位的值保持不变。
C-NOT门中,控制位也可能在下方,例如:
练习:
逻辑门-Hadamard门
H门:输入1,或者0,输出是随机的1或者0,各有50%概率。但如果输入为1,则输出的1是带有相位符号的1
这会使叠加两个H门会怎样?
蓝色方框部分应该怎样计算?如下:
结果即为:
练习:
叠加态作为输入
NOT门
相位的行为:Z门
Z门:输入为0时,输出与输入相同。输入为1时,输出需要增加负号代表他的相位改变。
负相位时量子比特的特性。所以相位符号通常应该放在值为1的符号前。例:
但是如果没有处于叠加态的情况,负号在值为0的符号前也不能省略,否则会导致计算结果出错,例:
练习:
狄拉克表示法Bra-ket Notation
其中:|a|2 + |b|2 = 1,|a|2 代表结果为0的概率值,|b|2 代表结果为1的概率值。
+/-表相位
|0> 代表0的概率为100%,1的概率为0%。完全表达式为:1|0> + 0|1>
|1> 代表0的概率为0%,1的概率为100%。完全表达式为:0|0> + 1|1>
上图使用狄拉克表达式Bra-ket表达的结果为:|ψ> = √(1/4)|0> + √(3/4)|1>
*特殊的使用惯例:在 |0> + |1> 中,两个系数的平方为12 + 12 = 2. 不符合|a|2 + |b|2 = 1的原则,实际上|0> + |1> 只是 √(1/2)|0> + √(1/2)|1> 的简写。
练习:
向量矩阵表示
将狄拉克表达式Bra-ket中的系数a和b转换为一个二行一列的矩阵表示形式。需要注意的是我们通常把0的系数放在第一行,1的系数放在第二行。(注意第四个例子)
向量计算的一些规则:
提取公因数:
练习:
矩阵乘法
二行二列的矩阵和二行一列的矩阵相乘得到的是一个一行一列的矩阵。
非门(NOT门)的矩阵乘法计算
非门的矩阵形式为,如下两个应用非门的使用向量矩阵的表达式:
应用的逻辑门作为第一个因数,输入作为第二个因数两个矩阵相乘得到结果。
例2:输入为1/4概率的0和3/4概率的1。通过非门得到的结果为3/4概率的0和1/4概率的1,具体过程如下:
H门的矩阵乘法计算
H门的矩阵表达形式为,所以当|1>作为输入时,矩阵表达式如下:
当|0>作为输入时,矩阵表达如下:
练习:
量子纠缠
目前我们并不知道量子纠缠的原理,但这并不影响使用它。量子纠缠可以摆脱时间和空间的限制,对一个粒子的观测结果将直接决定与它相纠缠的粒子的特性。
Same Entangle
施加了相同纠缠后,我们可以通过一侧的输出判断另一侧的输出,两者必定是相同的状态。
Opposite Entangel
施加了相反纠缠后,我们同样可以通过一侧的输出判断另一侧的输出,两者必定是相反的状态。
两个粒子的计算(未相互纠缠)
两个粒子的表示法:狄拉克表示
例:
向量表示
SWAP门
SWAP门的向量矩阵表示为,以1|10>(上面的例子,上黑下白的情况)作为输入计算过程如下:
以1|01>作为输入,即上白下黑的情况,计算过程如下:
C-NOT门
C-CONT门的向量矩阵表示为:。
以1|10>(上黑下白的情况)作为输入计算过程如下:
练习
叠加态的多量子输入操作
SWAP门
一个叠加态的例子和一个确定值为0的例子同时输入SWAP门,可能会有两种情况:
我们可以把SWAP门拆分成两个相同的SWAP对应两种不同的情况,然后分别应用门逻辑得出结果
计算过程:
C-NOT门
和SWAP门同样的处理方式,将可能出现的输入结果分别应用C-NOT门,得出结果
计算过程:
练习:
算法部分
C-Z门
首先,回顾一下Z门逻辑:输入为0时,输出不变。输入为1时,增加负号改变输入的相位。
C-Z门逻辑:和C-NOT类似,C-Z门为双输入。当控制位为0时,目标输入与输出相同。当控制位为1且目标输入为0时,输出与输入相同。当控制位为1且目标位为1时,输入为改变了相位的输入。
C-Z门的向量矩阵表示为:,所以上图的矩阵计算表示如下:
相位反弹Phase Kickback
相位反弹是一种量子计算中的现象,当一个控制位和一个目标位进行某些操作时,控制位的相位会“反弹”到目标位上,导致目标位上的相位发生变化。这种相位反弹的现象可以在量子算法中被利用,用来实现特定的计算任务。具体而言,通过控制位的相位与目标位的相互作用,可以实现量子门的相互干涉,产生特定的计算结果。相位反弹是量子计算中的重要现象之一,被广泛应用于量子算法的设计和优化中。
当我们把叠加态的粒子作为C-NOT门的控制位和目标位的输入,会发生什么?
控制位为1和0各50%概率。目标位为带相位的1和0,同样各50%概率。这样我们的可能的输入一共有4种情况。每种情况的概率都是25%。
将这四种情况分别作为输入通过C-NOT门。我们可以得到如下结果:
将最上方的两种情况交换位置,便于理解。结果对内部的顺序是不可改变的,但由于概率相同,所以结果对之间的顺序是可以改变的
可以看到,不考虑相位的存在,输出的4种结果和4种输入是相同的,唯一的问题是,代表相位的负号应该放在哪里。
用狄拉克表示法可得结果的四种情况可表达为:1/2|00> - 1/2|01> - 1/2|10> + 1/2|11> = 1/2(1|00 - 1|01 - 1|10 + 1|11) = 1/2(1|0 - 1|1)(1|0 - 1|1)。
由此可得最终结果如下:
即:
结果为目标位不变,但控制位的相位改变了。这种情况称为相位反弹。
练习:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战