量子計(jì)算 [4].ext + Long算法
Grover搜索算法詳解
Grover搜索算法分為兩步:? 制備均勻疊加態(tài) 和 迭代某個(gè)過程,? 而迭代可以分為兩小步:? 作用相位黑盒 和 作用Grover擴(kuò)散算子.
而Grover算子為??,? 其中W為Walsh-Hadamard變換 [或叫H變換也ok].

Walsh-Hadamard變換
H變換是一個(gè)廣義傅里葉變換,? 同時(shí)也是計(jì)算最簡單的廣義傅里葉變換,? N階H變換定義為:?,??N = 2^n,? 其中
,? n為量子位數(shù)量.? 不難發(fā)現(xiàn)這個(gè)H矩陣定義與H門一致.? 所以H變換在量子計(jì)算表現(xiàn)為把H門作用在全部量子位上.? 并且因?yàn)镠門的逆也為H門,? 所以H變換的逆也為H變換.
既然H變換是廣義傅里葉變換,? 那么不難推測H變換實(shí)質(zhì)上也是在分析頻率.? 但是看到Grover算子中間的部分,? 只與變換后的第1個(gè)分量有關(guān),? 那么只需要關(guān)心變換的第1個(gè)分量:??
,? 可以看到變換的第1個(gè)分量與數(shù)據(jù)的總和有關(guān),? 或者說與均值有關(guān).

Grover算子
稍微把Grover算子扔進(jìn)人肉計(jì)算機(jī)里可以得到:??,? 其中
,? 在不考慮輻角的情況下,? 也就是只有實(shí)數(shù)時(shí),? Grover算子實(shí)際上就是以系統(tǒng)的均值取對稱 [近似對稱].? 原論文里的兩個(gè)例子:



整個(gè)迭代
把正確答案寫為,? 錯(cuò)誤答案寫為
,? 則定義
?和
,? 其中M為全部正確答案的總數(shù),? N為全部答案的總數(shù) [一般N=2^n,?n為量子位數(shù)量].? 則均勻疊加態(tài)寫為?
,? 其中
.
相位黑盒把所有正確答案的相位翻轉(zhuǎn),? 即?
因?yàn)镚rover搜索算法是從均勻疊加態(tài)開始,? 所以在算法中任意時(shí)刻之間的系數(shù)都是一致的,? 同理
之間也存在這樣的關(guān)系.? 設(shè)在某次迭代前系統(tǒng)狀態(tài)為
.??作用相位黑盒把正確答案的相位翻轉(zhuǎn):??
.? 此時(shí)系統(tǒng)的均值為?
,? 作用Grover算子后系統(tǒng)狀態(tài)為
可以看到單次迭代的凈效應(yīng)是在??空間里逆時(shí)針旋轉(zhuǎn)了2θ.? 所以最佳迭代次數(shù) j 應(yīng)該使得系統(tǒng)狀態(tài)最接近
,? 也就是與
的夾角為π/2,? 即?
,? 其中
?為向下取整 [floor].
詳細(xì)計(jì)算過程可以看本文結(jié)尾 -- 附1

Long算法
Long算法由龍桂魯教授提出,? 可以以概率1給出正確答案.
在Grover算法里,? 迭代次數(shù) j 由系統(tǒng)狀態(tài)在 ?空間里轉(zhuǎn)動(dòng)的角度2θ確定,? 但因?yàn)閖只能為正整數(shù),? 并且轉(zhuǎn)動(dòng)角度2θ不夠精細(xì),? 導(dǎo)致系統(tǒng)狀態(tài)幾乎不可能剛好等于
,? 即不太可能以概率1給出正確結(jié)果.
Long算法的篇幅實(shí)在過長,? 需要深入了解的可以去看看原論文.? 這里稍微簡述一下.
拓展Grover搜索算法:? ?相位黑盒從 ?拓展為
,? 即從把正確答案的相位旋轉(zhuǎn)π改為旋轉(zhuǎn)
.??Grover算子從
?拓展為
,? 即從把系統(tǒng)狀態(tài)沿著均值取對稱[近似]變?yōu)檠刂蛋严辔恍D(zhuǎn)φ.? 拓展后為了使算法有意義,? 需要滿足相位匹配條件
.
在Long算法里,? 需要指定迭代次數(shù) j,? 然后?求得旋轉(zhuǎn)相位 ,? 為了確保相位有意義,? 迭代次數(shù)需要滿足?
,? 可以看到Long算法的迭代次數(shù)不可以比Grover算法里的迭代次數(shù)少,? 當(dāng) j 小于等于這個(gè)下限時(shí),? 旋轉(zhuǎn)相位φ為復(fù)數(shù),? 則算法失去意義.
修改本篇里的Grover算法為Long算法,? 需要注意的是,? 旋轉(zhuǎn)門需要在使用前確定,? 并且旋轉(zhuǎn)角度是由迭代次數(shù)確定,? 也就是需要在制作黑盒前就確定迭代次數(shù)
接下來修改黑盒s:
為了確保一致性,? GroverOperator和RunGroverSearching就沒有改名字了.? 因?yàn)長ong算法以概率1給出正確答案,? 所以并不需要檢查答案,? 則主體為
優(yōu)化輸出和結(jié)果檢查套用本篇里的就好.
G. L. Long (2001)

附1
作用相位黑盒后的系統(tǒng)狀態(tài)為
則均值為
作用Grover算子為
又因?yàn)?,? 使用倍角公式
化簡得: