【科普】量子计算通识-8-Deutsch-Jozsa算法解析

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
更多相关文章请点击【量子计算通识】
上一篇:【科普】量子计算通识-7-Deutsch算法解析


这一篇我们来看一下多伊奇问题n位算法是怎么推导出来的。关于多伊奇问题请看【上一篇文章】的开始部分。

多位电路

我们先看一下上篇文章使用过的这张电路图:

上篇文章我们只考虑输入一个|0>比特,忽略了n

计算\Psi_1

在这个电路里面,输入的是n|0>和1个|1>比特,即:

\begin{align} \Psi_0&=\underbrace{|0>\otimes|0>\otimes \dots |0>}_{n} \otimes|1>\\ &=|0>^{\otimes n}|1> \end{align}

很多时候,量子位之间的\otimes被省略。

每个量子位都经过Hadamard门,即|0>变为\frac{|0>+|1>}{\sqrt{2}},即|1>变为\frac{|0>-|1>}{\sqrt{2}},这就得到\Psi_1

\begin{align} \Psi_1&=H^{\otimes n}|0>^{\otimes n}H|1>\\ &=\underbrace{(\frac{|0>+|1>)}{\sqrt{2}})(\frac{|0>+|1>)}{\sqrt{2}})\dots}_{n}(\frac{|0>-|1>}{\sqrt{2}})\\ &=\frac{1}{\sqrt{2^n}}\underbrace{\begin{pmatrix}1\\1\end{pmatrix}\begin{pmatrix}1\\1\end{pmatrix}\dots}_{n}(\frac{|0>-|1>}{\sqrt{2}})\\ \end{align}

我们注意到:
\frac{1}{\sqrt{2^n}} \underbrace{\begin{pmatrix}1\\1\end{pmatrix}\begin{pmatrix}1\\1\end{pmatrix}\dots \begin{pmatrix}1\\1\end{pmatrix}}_{n}= \frac{1}{\sqrt{2^n}} \left.\begin{pmatrix}1\\1\\\dots\\1\end{pmatrix} \right \}2^n

这表示什么呢?还记得抛两枚硬币的情况吗?

\begin{align} \begin{pmatrix}\frac{1}{4}\\\frac{1}{4}\\\frac{1}{4}\\\frac{1}{4}\end{pmatrix} =\frac{1}{4}\begin{pmatrix}1\\1\\1\\1\end{pmatrix} =\frac{1}{4}\left[\begin{pmatrix}1\\0\\0\\0\end{pmatrix}+\begin{pmatrix}0\\1\\0\\0\end{pmatrix}+\begin{pmatrix}0\\0\\1\\0\end{pmatrix} +\begin{pmatrix}0\\0\\0\\1\end{pmatrix}\right] \end{align}

这个表示4种状态的每一种状态可能性都是\frac{1}{4},它处于不确定的叠加态。对每一种状态来说,都可以对应一个十进制数字,那么就是0,1,2,3,我们用下标表示10进制,也就有:

\frac{1}{4}\begin{pmatrix}1\\1\\1\\1\end{pmatrix}=\frac{1}{4}(|0_{10}>+|1_{10}>+|2_{10}>+|3_{10}>)

推而广之,忽略10进制下标,变成求和,从x=0x=2^n-1,就得到:

\frac{1}{\sqrt{2^n}} \underbrace{\begin{pmatrix}1\\1\end{pmatrix}\begin{pmatrix}1\\1\end{pmatrix}\dots \begin{pmatrix}1\\1\end{pmatrix}}_{n}=\frac{1}{\sqrt{2^n}} \sum_{x=0}^{2^n-1}|x>

替换到\Psi_1中得到:
\begin{align} \Psi_1&=H^{\otimes n}|0>^{\otimes n}H|1>\\ &=\frac{1}{\sqrt{2^n}} \sum_{x=0}^{2^n-1}|x> (\frac{|0>-|1>}{\sqrt{2}})\\ &=\frac{1}{\sqrt{2^{n+1}}} \sum_{x=0}^{2^n-1}|x> (|0>-|1>)\\ \end{align}

计算\Psi_2

U操作的作用是:

U:|x>|y>\Rightarrow|x>|y\oplus f(x)>

我们在上一篇文章推导过,|0>-|1>U操作后,无论f(0)=0或f(0)=1都有:
|0\oplus f(0)>-|1\oplus f(0)>=(-1)^{f(0)}(|0>-|1>)

同样f(1)=0或f(1)=1时候都有:
|0\oplus f(x)>-|1\oplus f(x)>=(-1)^{f(1)}(|0>-|1>)

实际上对于任意f(x)\in\{0,1\}都有:
|0\oplus f(x)>-|1\oplus f(x)>=(-1)^{f(x)}(|0>-|1>)

即:
U(|0>-|1>)=(-1)^{f(x)}(|0>-|1>)

我们把这个式子带入\Psi_1得到经过U操作的\Psi_2:

\begin{align} \Psi_2 &=U\Psi_1\\ &=U\frac{1}{\sqrt{2^{n+1}}} \sum_{x=0}^{2^n-1}|x> (|0>-|1>)\\ &=\frac{1}{\sqrt{2^{n+1}}} \sum_{x=0}^{2^n-1}|x>U (|0>-|1>)\\ &=\frac{1}{\sqrt{2^{n+1}}} \sum_{x=0}^{2^n-1}|x>(-1)^{f(x)}(|0>-|1>)\\ &=\frac{1}{\sqrt{2^{n+1}}} \sum_{x=0}^{2^n-1}(-1)^{f(x)}|x>(|0>-|1>)\\ \end{align}

计算\Psi_3

在这里我们可以直接忽略最后一个比特了,就是忽略掉结尾的\frac{1}{\sqrt{2}}(|0>-|1>),专注前半段内容:

\frac{1}{\sqrt{2^n}} \sum_{x=0}^{2^n-1}(-1)^{f(x)}|x>

我们对每个|x>执行Hadamard操作。注意这里的|x>可以是|1>,也可以是|10>、|17>、|198>...任意十进制数字,如果转为二进制则是|1>、|1010>、|10001>、|11000110>...

怎么计算H^{\otimes n}|x>?我们先从另一个角度看Hadamard门:

\begin{align} H|0>&=\frac{|0>+|1>}{\sqrt{2}}\\ &=\frac{1}{\sqrt{2}}((-1)^{0\cdot0}\cdot|0>+(-1)^{0\cdot1}|1>)\\ &=\frac{1}{\sqrt{2}}\sum_{z\in\{0,1\}} ((-1)^{0\cdot z}|z>) \end{align}

\begin{align} H|1>&=\frac{|0>-|1>}{\sqrt{2}}\\ &=\frac{1}{\sqrt{2}}((-1)^{1\cdot0}\cdot|0>+(-1)^{1\cdot1}|1>)\\ &=\frac{1}{\sqrt{2}}\sum_{z \in\{0,1\}}((-1)^{1\cdot z}|z>) \end{align}

我们注意到|0>|1>的操作区别就是(-1)^{1\cdot z}(-1)^{0\cdot z}的区别,那么我们就有:

\begin{align} H|x_i>=\frac{1}{\sqrt{2}}\sum_{z\in\{0,1\}\ }((-1)^{ x_i\cdot z}|z>) \end{align}

但这只是针对单个比特的,如果是多个比特呢?先看2个比特的情况:

\begin{align} &H|x_1>H|x_2>\\ &=\frac{1}{\sqrt{2^2}}(\sum_{z_1 \in\{0,1\} }((-1)^{ x_1\cdot z_1}|z_1>))(\sum_{z_2 \in\{0,1\} }((-1)^{ x_2\cdot z_2}|z_2>))\\ &=\frac{1}{\sqrt{2^2}}\sum_{z_1,z_2\in\{0,1\} }(-1)^{x_1\cdot z_1}(-1)^{x_2\cdot z_2}|z_1>|z_2>\\ &=\frac{1}{\sqrt{ 2^2}}\sum_{z_1,z_2\in\{0,1\} }(-1)^{x_1\cdot z_1+x_2\cdot z_2}|z_1>|z_2> \end{align}

如果是n位的话,那么就有:

\begin{align} &H^{\otimes n}|x_1,x_2,x_3,\dots x_n>\\ &=\frac{1}{\sqrt{2^n}}\sum_{z_1,z_2,\dots z_n }(-1)^{x_1\cdot z_1+x_2\cdot z_2+\dots x_n\cdot z_n}|z_1,z_2\dots z_n> \end{align}

我们x表示x_1,x_2...x_n,我们z表示z_1,z_2...z_n,设定格式x\cdot z表示x_1\cdot z_1+x_2\cdot z_2+\dots x_n\cdot z_n,用那么就有:

\begin{align} &H^{\otimes n}|x>=\frac{1}{\sqrt{2^n}}\sum_{z=0}^{2^n-1}(-1)^{x\cdot z}|z> \end{align}

注意这里z_1,z_2,...z_n \in \{0, 1\}总计需要2^n次求和。比如前面的两位的例子z_1,z_2\in \{ 0, 1\}就要进行四次:
z_1=0,z_2=0;z_1=0,z_2=1;z_1=1,z_2=0;z_1=1,z_2=1;

好了,我们回到\Psi_3的上部分:

\begin{align} &\Psi_{3'}=H^{\otimes n}\frac{1}{\sqrt{2^n}} \sum_{x=0}^{2^n-1}(-1)^{f(x)}|x>\\ &=\frac{1}{\sqrt{2^n}} \sum_{x=0}^{2^n-1}(-1)^{f(x)}H^{\otimes n} |x>\\ &=\frac{1}{\sqrt{2^n}} \sum_{x=0}^{2^n-1}(-1)^{f(x)}\left[\frac{1}{\sqrt{2^n}}\sum_{z=0}^{2^n-1}(-1)^{x\cdot z}|z>\right]\\ &=\frac{1}{2^n} \sum_{x=0}^{2^n-1}(-1)^{f(x)}\left[\sum_{z=0}^{2^n-1} (-1)^{x\cdot z}|z>\right]\\ &=\frac{1}{2^n} \sum_{z=0}^{2^n-1}\left[\sum_{x=0}^{2^n-1}(-1)^{f(x)+x\cdot z}\right]|z>\\ \end{align}

最终测量

注意上面式子里的x_iz_i都是0或1。
这里的求和\sum来自最早的Hadamard操作,表示从0到2^n-1;而f(x)中的x则是来自U操作,它代表任意数字。|z>表示的是具有n个量子位的|z_1,z_2...z_n>,类似|100...01011>这种。

关于测量,其实就是计算每个方向上的可能性。而每个方向就是每种状态,对于单比特就是每个轴向,横正向和竖正向。

数学上:
\begin{align} &\begin{pmatrix}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\end{pmatrix}=\frac{1}{\sqrt{2}}\begin{pmatrix}1\\1\end{pmatrix} =\frac{1}{\sqrt{2}}(\begin{pmatrix} 1\\0 \end{pmatrix}+\begin{pmatrix} 0\\1\end{pmatrix})\\ &=\frac{1}{\sqrt{2}}|0>+\frac{1}{\sqrt{2}}|1> \end{align}

测量得到|0>=\begin{pmatrix}1\\0\end{pmatrix}|1>=\begin{pmatrix}0\\1\end{pmatrix}两个方向上的概率都是(\frac{1}{\sqrt{2}})^2=\frac{1}{2}

对于四项的竖列也是同样,比如抛两枚硬币得到的结果就有4个方向或者说四个状态:

\begin{pmatrix}1\\0\\0\\0\end{pmatrix} ,\begin{pmatrix}0\\1\\0\\0\end{pmatrix},\begin{pmatrix}0\\0\\1\\0\end{pmatrix},\begin{pmatrix}0\\0\\0\\1\end{pmatrix}

这也对应了四个比特表示|00>、|01>、|10>、|11>,也可以用四个十进制数字表示|0>、|1>、|2>、|3>。如果有一个a|00>+b|01>+c|10>+d|11>那么它在四个状态上的概率就是a^2、b^2、c^2、d^2,并且概率之和是1,就是a^2+b^2+c^2+d^2=1

好了,回到我们的\Psi_3'

\begin{align} &\Psi_{3'}=\frac{1}{2^n} \sum_{z=0}^{2^n-1}\left[\sum_{x=0}^{2^n-1}(-1)^{f(x)+x\cdot z}\right]|z>\\ \end{align}

它也可以视为nz求和,类似a|z_0>+b|z_1>...+d|z_n>这种情况。

我们只关注假设|z_0>=|0>^{\otimes n}=|000...0>的情况,那么求和\sum的每一次z_i都是0,就有x\cdot z=x_1\cdot z_1+x_2\cdot z_2+\dots x_n\cdot z_n也都是0,测量|z>状态的概率,就是对它的系数求平方:

\begin{align} \left (\frac{1}{2^n} \left[\sum_{x=0}^{2^n-1}(-1)^{f(x)}\right]\right )^2 \end{align}

f(x)是Constant常数操作的时候,如果f(x)=0(-1)^{f(x)}=1,求和结果是2^n,最终平方后是1;如果f(x)=1(-1)^{f(x)}=-1,求和结果是-2^n,最终平方后还是1。就是说如果f(x)是常数操作,那么最终测得|z>=|0>^{\otimes n}的概率为1,也就是必然测得|0>^{\otimes n}

f(x)是Balanced平衡操作的时候,一半情况f(x)=0,另一半情况f(x)=1,而进行2^n次求和,这是全部可能,也是个偶数,(-1)^0=1(-1)^1=-1各占一半,正好抵消,结果将是0。也就是说如果f(x)是Balanced平衡,那么就不会测得|0>^{\otimes n}

虽然在数学上似乎是推导完成了,但是很多地方仍然缺乏较好的解释,后续将继续学习和改进。


欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
更多相关文章请点击【量子计算通识】


每个人的智能新时代

如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~


END

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,547评论 4 374
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,787评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,175评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,752评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,169评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,056评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,195评论 2 321
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,980评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,724评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,872评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,344评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,667评论 3 264
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,379评论 3 245
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,202评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,992评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,189评论 2 286
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,987评论 2 279