問題定義:
問題:
\(F:\ {0,1,2,3、...、N-1 \} \ RIGHTARROW \ {0,1 \} \)
検索\(f(x)が=を1 \) xの
ソリューション
クラシックソリューション:
古典的な解決策は、非常に単純であり、XがF(X)= 1に対応して1個のみであり、その後平均はそのXを見つけるために、半分見ている場合、それぞれを介して読み取ることです。
Oの時間複雑度(N)
量子ソリューション:
グローバーの検索アルゴリズムを使用して、時間の複雑\(O(\ sqrtのN) \)
グローバーの検索アルゴリズム
グローバー検索アルゴリズムの合計は、2つのステップに分かれています。
- 位相反転
- 平均についての反転
その後、我々は結果を得ることができますこの2つのステップの繰り返しを続けます。
まずは、この2つのステップが行われているものを見てみましょう:
私たちは、$ Fを置く(X)= 1 $ A \(| X \ rangle \)と呼ばれる(X- ^ * \)\を、我々が探しているのです\(^ X- * \) 。
位相反転:
このステップでは、主にある\(X ^ * \)他は変わらないまま、負に反転確率振幅、なりました。
つまり、\は(\ sum_ {X} \ alpha_x | X \ rangle \) となる(\ \ sum_ {X \ NEQ \ alpha_ {X ^ *} - X \ rangle | | X ^ * X ^ *} \ alpha_x \ rangle \)
平均についての反転
この工程、すなわち、(\ \ alpha_xは\)となる(2 \ MU-\ alpha_x \ \ )を
\(\ MU \) 、すべての確率振幅の平均である(\ \ MU = \ FRAC {\ SUM_X \ alpha_x {N} \)
図これらの2つのステップは、より良い何をすべきかを正確に表現することができます。
図1〜2、つまり、位相反転、\(X ^ * \)点線は2〜3の私の確率振幅の平均はおよそ私たちの反転である。図2に比べて次のように確率振幅ロール、一度ひっくり返すの平均に対して、xの確率振幅の残りの部分は平均よりも高くなっているので、平均\(2 \ミュー\ alpha_x \ ) それらを小さくするが、我々は、(X ^ * \)\彼確率振幅が負の数、そうである(\ alpha_xミュー\ \ 2 \ ) と彼は付け加えた後。
、このステップを繰り返してください\(\ X- ^ *)自分の確率振幅が大きくなり、最終的に我々は彼が非常に排他的になります見つけるための時間を測定します。
た(\ \ SQRT N \)ウェブが彼に到達する確率、\(\ FRACは1} {{\ SQRT 2} \) 、計算された確率は1/2です。
だから、次の質問は、これらの操作が実装されているか、でしょうか?
位相反転:
このステップは行うことです、
\(\ sum_ {X} \ alpha_x | X \ rangleは\) になる\ sum_ {X \ NEQ(\ X ^ * \ rangle | - | \ alpha_ {X ^ *} X \ rangle X ^ *} \ alpha_x \)
シンボルF(X)1つのに関するさらなる簡略化がされている(\ SUM_X(-1)^ \ | X \ rangle \ {F(X)} \ alpha_x)
親近感の痕跡はありませんか?
f(x)が我慢するフェーズの結果、これは私たちであるパリティ問題の問題が発生しました。
当時ソリューションは、ビットになる答えることである(| - \ rangle \)\。
我々が配置する場合、一般的には、回答ビットがある(| \ rangle \ b)の\は、その後、入力ビットがある\(| bは\のoplusのF( x)は\ rangle \)
如果F(X)= 0那么\(|(\ FRAC {1} {\ SQRT2} | 0 \ rangle- \ FRAC {1} {\ SQRT2} | 1 \ガタ)\ oplusのF(X)\ =ガラガラ\ FRAC {1} {\ SQRT2} | 0 \ rangle- \ FRAC {1} {\ SQRT2} | 1つの\ガラガラ= | - \ラトル\)
如果F(X)= 1那么\((\ FRAC {1} {\ SQRT2} | 0 \ rangle- \ FRAC {1} {\ SQRT2} | 1 \ガタ)\ oplusのF(X)\ =ラトルの\ FRAC {1} {\ SQRT2} | 1 \ rangle- \ FRAC {1} {\ SQRT2} | 0 \ガラガラ= - | - \ラトル\)
最後に、ビットの値であれば\(| + \ rangle | - \ rangle \) 測定座標、それがなければならない(\ | - \ rangle \) 、差分のF(X)も、すなわちシンボルに変更される\(( -1)^ {f(x)が } \)
Inversion about the Mean
把 \(\alpha_x\) 变成 \(2\mu- \alpha_x\) ,这个就要比前一个麻烦了
这其实是要求我把现在的态对着 \(\mu\) 翻转。
对着 \(\mu\) 翻转会吗?
不太会。
但是我会对着 \(|0\rangle\) 的翻转啊。
对角线第一个值为1,其余为-1,非对角线的都为0。
\(\left[ \begin{array}{} 1 & 0 & …& 0 \\ 0 & -1 & …& 0 \\…\\0 & 0 & …& -1 \end{array}\right]\left[ \begin{array}{} a_0\\a_1\\…\\a_{n-1} \end{array}\right]=\left[ \begin{array}{} a_0\\-a_1\\…\\-a_{n-1} \end{array}\right]\)
这个矩阵轻而易举的可以让 \(|0\rangle\) 保持不变,非 \(|0\rangle\) 的符号全都翻转。
量子变换要求矩阵式酉矩阵,这个矩阵很明显满足 \(UU^\dagger=U^\dagger U=I\)
接下来怎么做呢?
我们先把我们的态整体来一个从 \(|\mu\rangle\) 到 \(|0\rangle\) 的旋转,对着 \(|0\rangle\) 翻转后,又从 \(|0\rangle\) 到 \(|\mu\rangle\) 翻转回去。
\(|\mu\rangle\) 是一个怎样的态?
所有的x的概率都一样,也就是我们的superposition \(\frac{1}{2^{\frac{n}{2}}} \sum_{x \in \{0,1 \}^n}|x\rangle\)
\(\frac{1}{2^{\frac{n}{2}}} \sum_{x \in \{0,1 \}^n}|x\rangle\) 和 \(|0\rangle\)之间的相互转换,这就是我们最最熟悉的Hadamard Transform了
第二部分的电路图如下:
这个矩阵是可以直接计算的:
我这里直接给出答案,得到的矩阵值呢是下图左边的这个矩阵:
在对应的 \(\alpha_x\)的结果恰好是 \(\frac{2}{N} \sum _{y=0}^{N} \alpha_y -\alpha_x\)
而 \(\frac{2}{N} \sum _{y=0}^{N} \alpha_y\) 恰好就是 \(2\mu\)
至此,呈上最完整的电路图模块:
第一个H门是数据的初始化,第二个门是为了翻转 \(x^*\),第三四五个门是为了对 \(| \mu \rangle\) 翻转,二三四五这四个门就是要给重复的模块了,不断的重复他们就可以不断的提高 \(x^*\)的概率幅,最终找到 \(x^*\)。
参考资料: