当前位置: 代码迷 >> 综合 >> 量子Deutsch算法过程推导(Qantum Deutsch Algorithm)
  详细解决方案

量子Deutsch算法过程推导(Qantum Deutsch Algorithm)

热度:141   发布时间:2023-10-08 22:18:57.0

Deutsch算法过程的推导

本文中的内容参考的是 Micheal A.Nielsen与Isaac L.Chuang合著的《Quantum Computation and Quantum Information》有兴趣的同学可以去阅读原文。

Deutsch算法背景介绍

假设,我们有函数f(x)f(x)f(x), 对于一个输入x∈{0,1}x\in\{0,1\}x{ 0,1},有f(x)f(x)f(x)或者为一个常值函数f(0)=f(1)∈{0,1}f(0)=f(1)\in\{0,1\}f(0)=f(1){ 0,1}, 或者为一个平衡函数f(x)=1?xf(x)=1-xf(x)=1?x 满足 x∈{0,1}x\in\{0,1\}x{ 0,1}。现在的问题是我们应该如何判断f(x)f(x)f(x)是属于哪一个类别。对于经典计算机来说,我们需要两次计算即,计算f(0)f(0)f(0)f(1)f(1)f(1), 再比较。而对于量子计算机我们只需要一次计算即可进行判断。

Deutsch算法电路图1

量子Deutsch算法过程推导(Qantum Deutsch Algorithm)
上图中的 UfU_fUf?模块的作用效果可以写成Uf:∣x?∣y?→∣x?∣y?f(x)?U_f:|x\rangle|y\rangle\rightarrow|x\rangle|y\oplus f(x)\rangleUf?:x?y?x?y?f(x)?,容易说明UfU_fUf?是酉的。

Deutsch算法推导过程

初始状态我们可以简单写出 ∣ψ0?=∣0?∣1?|\psi_0\rangle=|0\rangle|1\rangleψ0??=0?1?,在这里我们省略的张量积符号。
第一步,我们在上下两个比特上分别作用两个Hadamard门,于是我们可以得到
∣ψ1?=[∣0?+∣1?2][∣0??∣1?2]|\psi_1\rangle=[\frac{|0\rangle+|1\rangle}{\sqrt{2}}][\frac{|0\rangle-|1\rangle}{\sqrt{2}}]ψ1??=[2 ?0?+1??][2 ?0??1??]
第二步,我们作用构造的UfU_fUf?门可以得到
∣ψ2?=Uf∣ψ1?=12[∣0,f(0)??∣0,1?f(0)?+∣1,f(1)??∣1,1?f(1)?]|\psi_2\rangle=U_f|\psi_1\rangle=\frac{1}{2}[|0,f(0)\rangle-|0,1\oplus f(0)\rangle+|1,f(1)\rangle-|1,1\oplus f(1)\rangle]ψ2??=Uf?ψ1??=21?[0,f(0)??0,1?f(0)?+1,f(1)??1,1?f(1)?]
=12[∣0?(∣f(0)??∣1?f(0)?)+∣1?(∣f(1)??∣1?f(1)?)]=\frac{1}{2}[|0\rangle(|f(0)\rangle-|1\oplus f(0)\rangle)+|1\rangle(|f(1)\rangle-|1\oplus f(1)\rangle)]=21?[0?(f(0)??1?f(0)?)+1?(f(1)??1?f(1)?)]
此时,我们根据背景里面提到的两种情况进行讨论。
第一种情况,f(0)=f(1)f(0)=f(1)f(0)=f(1):
此时,∣ψ2?|\psi_2\rangleψ2??可以重新写成
∣ψ2?=12[∣0?(∣f(0)??∣1?f(0)?)+∣1?(∣f(0)??∣1?f(0)?)]=12[∣0?+∣1?][∣f(0)??∣1?f(0)?]|\psi_2\rangle=\frac{1}{2}[|0\rangle(|f(0)\rangle-|1\oplus f(0)\rangle)+|1\rangle(|f(0)\rangle-|1\oplus f(0)\rangle)]=\frac{1}{2}[|0\rangle+|1\rangle][|f(0)\rangle-|1\oplus f(0)\rangle]ψ2??=21?[0?(f(0)??1?f(0)?)+1?(f(0)??1?f(0)?)]=21?[0?+1?][f(0)??1?f(0)?]
第二种情况,f(0)≠f(1)f(0)\neq f(1)f(0)?=f(1),此时,满足f(1)=1?f(0),1?f(1)=f(0)f(1)=1\oplus f(0), 1\oplus f(1)=f(0)f(1)=1?f(0),1?f(1)=f(0):
∣ψ2?=12[∣0?(∣f(0)??∣1?f(0)?)+∣1?(∣1?f(0)??∣f(0)?)]=12[∣0??∣1?][∣f(0)??∣1?f(0)?]|\psi_2\rangle=\frac{1}{2}[|0\rangle(|f(0)\rangle-|1\oplus f(0)\rangle)+|1\rangle(|1\oplus f(0)\rangle-| f(0)\rangle)]=\frac{1}{2}[|0\rangle-|1\rangle][|f(0)\rangle-|1\oplus f(0)\rangle]ψ2??=21?[0?(f(0)??1?f(0)?)+1?(1?f(0)??f(0)?)]=21?[0??1?][f(0)??1?f(0)?]
此时,我们对第一个qubit作用一个Hadamard门,可以看到
对于第一种情况,我们有
∣ψ3?=12∣0?[∣f(0)??∣1?f(0)?]|\psi_3\rangle=\frac{1}{\sqrt{2}}|0\rangle[|f(0)\rangle-|1\oplus f(0)\rangle]ψ3??=2 ?1?0?[f(0)??1?f(0)?]
对于第二种情况我们有
∣ψ3?=12∣1?[∣f(0)??∣1?f(0)?]|\psi_3\rangle=\frac{1}{\sqrt{2}}|1\rangle[|f(0)\rangle-|1\oplus f(0)\rangle]ψ3??=2 ?1?1?[f(0)??1?f(0)?]
所以,当我们对第一个qubit进行测量。通过测量结果,我们就可以知道关于f(x)f(x)f(x)的特性了。


  1. 图片来自于 Micheal A.Nielsen与Isaac L.Chuang合著的《Quantum Computation and Quantum Information》 ??

  相关解决方案