メインコンテンツへスキップ

位相推定手順

次に、位相推定問題を解くための量子アルゴリズムである位相推定手順について説明します。

まず精度の低いウォームアップから始め、この手法の基本的な直感を説明します。 続いて、位相推定手順で使用される重要な量子演算である量子フーリエ変換と、その量子回路実装について説明します。 量子フーリエ変換を理解した後、位相推定手順を完全な一般性で記述し、その性能を分析します。

ウォームアップ:低精度による位相の近似

まず、位相推定問題に対して低精度の解を提供する、位相推定手順のいくつかの単純なバージョンから始めます。 これは、レッスンの後半で見る一般的な手順の背後にある直感を説明するのに役立ちます。

位相キックバックの利用

位相推定問題に対するシンプルなアプローチとして、求める値 θ\theta について何かを学べる方法があります。それは位相キックバック現象に基づいています。 後で見るように、これは本質的に、レッスンの後半で説明する一般的な位相推定手順の1量子ビット版です。

位相推定問題への入力の一部として、演算 UU の量子回路が与えられています。 この回路の記述を使って、制御-UU 演算の回路を作成できます。次の図はこれを示しています(左に演算 UU を量子ゲートとして表し、右に制御-UU 演算を示しています)。

ユニタリ演算の非制御版と制御版

制御-UU 演算の量子回路を作成するには、まず UU の回路に制御量子ビットを追加し、UU の回路内のすべてのゲートをそのゲートの制御版に置き換えます。これにより、1つの新しい制御量子ビットが UU の回路内のすべてのゲートを効果的に制御します。 これにはすべてのゲートの制御版が必要ですが、ゲートセットに含まれていない場合でも、これらの制御演算の回路を常に構築できます。

次に、以下の回路を考えます。ここで、上の量子ビット以外のすべての量子ビットの入力状態 ψ\vert\psi\rangle は、UU の固有ベクトルである量子状態です。

位相推定のための1量子ビット回路

この回路の測定結果の確率は、固有ベクトル ψ\vert\psi\rangle に対応する UU の固有値に依存します。 どのように依存するかを正確に決定するために、回路を詳しく分析しましょう。

位相推定のための1量子ビット回路の状態

回路の初期状態は

π0=ψ0\vert\pi_0\rangle = \vert\psi\rangle \vert 0\rangle

であり、最初のアダマールゲートはこの状態を次のように変換します。

π1=ψ+=12ψ0+12ψ1.\vert\pi_1\rangle = \vert\psi\rangle \vert +\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 1\rangle.

次に、制御-UU 演算が実行され、状態は次のようになります。

π2=12ψ0+12(Uψ)1.\vert\pi_2\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{1}{\sqrt{2}} \bigl(U \vert\psi\rangle\bigr) \vert 1\rangle.

ψ\vert\psi\rangle が固有値 λ=e2πiθ\lambda = e^{2\pi i\theta} を持つ UU の固有ベクトルであるという仮定を使うと、 この状態を次のように表すことができます。

π2=12ψ0+e2πiθ2ψ1=ψ(120+e2πiθ21)\vert\pi_2\rangle = \frac{1}{\sqrt{2}} \vert\psi\rangle \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert\psi\rangle \vert 1\rangle = \vert\psi\rangle \otimes \left( \frac{1}{\sqrt{2}} \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert 1\rangle\right)

ここで位相キックバック現象が観察されます。 ドイッチュのアルゴリズムやドイッチュ-ジョザアルゴリズムの場合とは少し異なります。クエリゲートを使っていないからですが、考え方は似ています。

最後に、2番目のアダマールゲートが実行されます。少し簡略化すると、この状態の次の式が得られます。

π3=ψ(1+e2πiθ20+1e2πiθ21)\vert\pi_3\rangle = \vert\psi\rangle \otimes \left( \frac{1+ e^{2\pi i \theta}}{2} \vert 0\rangle + \frac{1 - e^{2\pi i \theta}}{2} \vert 1\rangle\right)

測定は以下の確率で結果 0011 を生じます。

p0=1+e2πiθ22=cos2(πθ)p1=1e2πiθ22=sin2(πθ).\begin{aligned} p_0 &= \left\vert \frac{1+ e^{2\pi i \theta}}{2} \right\vert^2 = \cos^2(\pi\theta)\\[1mm] p_1 &= \left\vert \frac{1- e^{2\pi i \theta}}{2} \right\vert^2 = \sin^2(\pi\theta). \end{aligned}

θ\theta の関数として、2つの可能な結果 0011 の確率をプロットしたものを示します。

位相キックバックによる結果の確率

当然ながら、2つの確率の合計は常に 11 です。 θ=0\theta = 0 のとき、測定結果は常に 00 となり、θ=1/2\theta = 1/2 のとき、測定結果は常に 11 となることに注目してください。 つまり、測定結果から θ\theta が正確に何であるかはわかりませんが、それに関するある情報が得られます。もし θ=0\theta = 0 または θ=1/2\theta = 1/2 のどちらかであることが保証されていれば、この回路からどちらが正しいかをエラーなしに学べます。

直感的には、回路の測定結果を θ\theta の「1ビットの精度」での推測として考えることができます。 言い換えると、θ\theta を2進数表記で書いて1ビットに丸めると、次のような数になります。

0.a={0a=012a=1.0.a = \begin{cases} 0 & a = 0\\ \frac{1}{2} & a = 1. \end{cases}

測定結果はビット aa の推測と見なすことができます。 θ\theta00 でも 1/21/2 でもない場合、推測が間違える確率はゼロではありませんが、 00 または 1/21/2 に近づくほど、エラーの確率は小さくなります。

この手順で2つのアダマールゲートが果たす役割を問うのは自然なことです。

  • 最初のアダマールゲートは、制御量子ビットを 0\vert 0\rangle1\vert 1\rangle の均一な重ね合わせに設定します。これにより、位相キックバックが発生するとき、0\vert 0\rangle の状態ではなく 1\vert 1\rangle の状態に対して発生し、測定結果に影響する相対的な位相差が生まれます。これをしなかった場合、位相キックバックがグローバルな位相を生じさせ、異なる測定結果の確率には何の影響も与えないでしょう。

  • 2番目のアダマールゲートにより、干渉という現象を通じて数 θ\theta について何かを学べます。2番目のアダマールゲートの前の上の量子ビットの状態は

    120+e2πiθ21,\frac{1}{\sqrt{2}} \vert 0\rangle + \frac{e^{2\pi i \theta}}{\sqrt{2}} \vert 1\rangle,

    であり、この状態を測定すると 0011 をそれぞれ確率 1/21/2 で得ることになり、θ\theta について何も教えてくれません。しかし、2番目のアダマールゲートを実行することで、θ\theta が出力確率に影響するようになります。

位相の倍増

上の回路は位相キックバック現象を使って θ\theta を1ビットの精度で近似します。 1ビットの精度で十分な状況もありますが、素因数分解にはそれよりもはるかに高い精度が必要です。 自然な疑問として、θ\theta についてさらに多くを学ぶにはどうすればよいでしょうか?

非常に単純な方法の1つは、回路内の制御-UU 演算を次のような回路のようにこの演算の2つのコピーに置き換えることです。

1ビット位相推定を倍増させたもの

制御-UU 演算の2つのコピーは、制御-U2U^2 演算と等価です。 ψ\vert\psi\rangle が固有値 λ=e2πiθ\lambda = e^{2\pi i \theta} を持つ UU の固有ベクトルであれば、この状態は U2U^2 の固有ベクトルでもあり、今度は固有値 λ2=e2πi(2θ)\lambda^2 = e^{2\pi i (2\theta)} を持ちます。

したがって、このバージョンの回路を実行すると、θ\theta2θ2\theta に置き換えられる以外は、前と同じ計算を実行していることになります。 θ\theta00 から 11 の範囲で変化したときの出力確率を示すプロットを示します。

二重位相キックバ�ックによる結果の確率

これにより、θ\theta に関するさらなる情報が得られます。 θ\theta の2進数表現が

θ=0.a1a2a3\theta = 0.a_1 a_2 a_3\cdots

であれば、θ\theta を2倍にすることで2進数の小数点が1つ右にシフトされます。

2θ=a1.a2a32\theta = a_1. a_2 a_3\cdots

また、単位円を周回するにつれて θ=1\theta = 1θ=0\theta = 0 と同一視しているので、ビット a1a_1 は確率に影響せず、θ\theta を2ビットに丸めた場合の2番目のビットの推測を効果的に得ていることになります。 たとえば、θ\theta00 または 1/41/4 のどちらかであることが事前にわかっていれば、測定結果を完全に信頼してどちらかを判断できます。

ただし、この推定を元の(倍増していない)位相キックバック回路から学んだこととどのように統合して θ\theta についての最も正確な情報を与えるかは、すぐには明確ではありません。 では、一歩下がって進め方を考えてみましょう。

2量子ビット位相推定

上で説明した2つのオプションを別々に検討するのではなく、次のように1つの回路に組み合わせましょう。

2量子ビットによる位相推定の初期設定

制御演算の後のアダマールゲートは削除され、測定はまだありません。 θ\theta についてできる限り多くを学ぶためのオプションを検討しながら、回路にさらに追加していきます。

ψ\vert\psi\rangleUU の固有ベクトルであるときにこの回路を実行すると、下の量子ビットの状態は回路全体を通じて ψ\vert\psi\rangle のままであり、位相が上の2量子ビットの状態にキックされます。 次の図を使って回路を注意深く分析しましょう。

2量子ビットによる位相推定の状態

状態 π1\vert\pi_1\rangle は次のように表せます。

π1=ψ12a0=01a1=01a1a0.\vert\pi_1\rangle = \vert \psi\rangle \otimes \frac{1}{2} \sum_{a_0 = 0}^1 \sum_{a_1 = 0}^1 \vert a_1 a_0 \rangle.

最初の制御-UU 演算が実行されると、a0a_0(上の量子ビット)が 11 のとき固有値 λ=e2πiθ\lambda = e^{2\pi i\theta} が位相にキックされますが、00 のときはキックされません。 したがって、結果の状態を次のように表せます。

π2=ψ12a0=01a1=01e2πia0θa1a0.\vert\pi_2\rangle = \vert\psi\rangle \otimes \frac{1}{2} \sum_{a_0=0}^1 \sum_{a_1=0}^1 e^{2 \pi i a_0 \theta} \vert a_1 a_0 \rangle.

2番目と3番目の制御-UU ゲートも同様のことをしますが、a0a_0 ではなく a1a_1 に対して、θ\theta2θ2\theta に置き換えられます。 結果の状態を次のように表せます。

π3=ψ12a0=01a1=01e2πi(2a1+a0)θa1a0.\vert\pi_3\rangle = \vert\psi\rangle\otimes\frac{1}{2}\sum_{a_0 = 0}^1 \sum_{a_1 = 0}^1 e^{2\pi i (2 a_1 + a_0)\theta} \vert a_1 a_0 \rangle.

2進数文字列 a1a0a_1 a_0 を2進数表記の整数 x{0,1,2,3}x \in \{0,1,2,3\}(つまり x=2a1+a0x = 2 a_1 + a_0)として考えると、この状態を次のように表せます。

π3=ψ12x=03e2πixθx\vert\pi_3\rangle = \vert \psi\rangle \otimes \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i x \theta} \vert x \rangle

私たちの目標は、この状態から θ\theta についてできる限り多くの情報を抽出することです。

ここで特殊なケースを考えます。ある整数 y{0,1,2,3}y\in\{0,1,2,3\} に対して θ=y4\theta = \frac{y}{4} であることが保証されている場合です。 言い換えると、θ{0,1/4,1/2,3/4}\theta\in \{0, 1/4, 1/2, 3/4\} であり、この数を2ビットの2進数表記で正確に表せます(0.000.000.010.010.100.10、または 0.110.11)。 一般には θ\theta はこれら4つの値のいずれかではないかもしれませんが、この特殊なケースを考えることで、一般的な場合に θ\theta に関する情報を最も効果的に抽出する方法を見つけるのに役立ちます。

まず、各可能な値 y{0,1,2,3}y \in \{0, 1, 2, 3\} に対して2量子ビット状態ベクトルを定義します。

ϕy=12x=03e2πix(y4)x=12x=03e2πixy4x\vert \phi_y\rangle = \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i x (\frac{y}{4})} \vert x \rangle = \frac{1}{2} \sum_{x = 0}^3 e^{2\pi i \frac{x y}{4}} \vert x \rangle

指数関数を簡略化すると、これらのベクトルを次のように書けます。

ϕ0=120+121+122+123ϕ1=120+i21122i23ϕ2=120121+122123ϕ3=120i21122+i23\begin{aligned} \vert\phi_0\rangle & = \frac{1}{2} \vert 0 \rangle + \frac{1}{2} \vert 1 \rangle + \frac{1}{2} \vert 2 \rangle + \frac{1}{2} \vert 3 \rangle \\[3mm] \vert\phi_1\rangle & = \frac{1}{2} \vert 0 \rangle + \frac{i}{2} \vert 1 \rangle - \frac{1}{2} \vert 2 \rangle - \frac{i}{2} \vert 3 \rangle \\[3mm] \vert\phi_2\rangle & = \frac{1}{2} \vert 0 \rangle - \frac{1}{2} \vert 1 \rangle + \frac{1}{2} \vert 2 \rangle - \frac{1}{2} \vert 3 \rangle \\[3mm] \vert\phi_3\rangle & = \frac{1}{2} \vert 0 \rangle - \frac{i}{2} \vert 1 \rangle - \frac{1}{2} \vert 2 \rangle + \frac{i}{2} \vert 3 \rangle \end{aligned}

これらのベクトルは直交しています。つまり、任意のペアを選んで内積を計算すると 00 になります。 各ベクトルは単位ベクトルでもあるため、{ϕ0,ϕ1,ϕ2,ϕ3}\{\vert\phi_0\rangle, \vert\phi_1\rangle, \vert\phi_2\rangle, \vert\phi_3\rangle\} は正規直交基底です。 したがって、これらを完全に識別できる測定が存在することがすぐにわかります。つまり、どれか1つが与えられてもどれかわからない場合でも、エラーなしにどれであるかを特定できます。

量子回路でこのような識別を行うには、まず標準基底状態を上記の4つの状態に変換するユニタリ演算 VV を定義できます。

V00=ϕ0V01=ϕ1V10=ϕ2V11=ϕ3\begin{aligned} V \vert 00 \rangle & = \vert\phi_0\rangle \\ V \vert 01 \rangle & = \vert\phi_1\rangle \\ V \vert 10 \rangle & = \vert\phi_2\rangle \\ V \vert 11 \rangle & = \vert\phi_3\rangle \end{aligned}

VV4×44\times 4 行列として書き下すには、VV の列を状態 ϕ0,,ϕ3\vert\phi_0\rangle,\ldots,\vert\phi_3\rangle とするだけです。

V=12(11111i1i11111i1i)V = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix}

これは特別な行列であり、以前に見たことのある読者もいるでしょう。 これは 44 次元の離散フーリエ変換に関連する行列です。 この事実を踏まえて、VV ではなく QFT4\mathrm{QFT}_4 という名前で呼ぶことにします。 QFT\mathrm{QFT} という名前は量子フーリエ変換(quantum Fourier transform)の略で、本質的には離散フーリエ変換をユニタリ演算として見たものです。 量子フーリエ変換については、まもなくより詳細かつ一般的に説明します。

QFT4=12(11111i1i11111i1i)\mathrm{QFT}_4 = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix}

この演算の逆を実行することで逆方向に進み、状態 ϕ0,,ϕ3\vert\phi_0\rangle,\ldots,\vert\phi_3\rangle を標準基底状態 0,,3\vert 0\rangle,\ldots,\vert 3\rangle に変換できます。 これを実行すれば、θ=y/4\theta = y/4 として θ\theta を記述する値 y{0,1,2,3}y\in\{0,1,2,3\} を測定によって学べます。 これを実現する量子回路の図を示します。

2量子ビットによる位相推定

まとめると、y{0,1,2,3}y\in\{0,1,2,3\}y/4y/4 に対して θ=y/4\theta = y/4 のときにこの回路を実行すると、測定直前の状態は ψy\vert \psi\rangle \vert y\rangleyy を2ビットの2進数文字列としてエンコード)になり、測定によってエラーなしに値 yy が明らかになります。

この回路は θ{0,1/4,1/2,3/4}\theta \in \{0,1/4,1/2,3/4\} という特殊なケースに動機付けられていますが、任意の UUψ\vert \psi\rangle、したがって任意の θ\theta の選択で実行できます。 この回路が θ\theta の任意の選択に対して生成する出力確率のプロットを示します。

2量子ビット位相推定による結果の確率

これはレッスンの前半で説明した1量子ビット版に比べて明らかな改善です。 完璧ではありません。間違った答えを出すこともあります。しかし、答えは y/4y/4θ\theta に近い値の yy に向けて大きく偏っています。 特に、最も可能性の高い結果は常に θ\theta に最も近い y/4y/4 の値に対応し(前と同様に θ=0\theta = 0θ=1\theta = 1 を同一視して)、プロットからこの xx の最も近い値は常に約 40%40\% を超える確率で現れることがわかります。 θ\theta がちょうど2つの値の中間にある場合、たとえば θ=0.375\theta = 0.375 の場合、2つの等しく近い yy の値は等しく可能性が高くなります。

多数量子ビットへの一般化の準備

1つの制御量子ビットではなく2つの制御量子ビットを使用することで得られた改善を踏まえ、44次元量子フーリエ変換の逆変換と組み合わせると、さらなる制御量子ビットの追加という一般化を自然に検討できます。 これを行うと、一般的な位相推定手続きが得られます。 これがどのように機能するかをすぐに見ていきますが、正確に記述するためには、量子フーリエ変換をより一般的な形で議論し、他の次元でどのように定義されるか、また量子回路でそれ(またはその逆変換)をどのように実装できるかを理解する必要があります。

量子フーリエ変換

量子フーリエ変換は、任意の正の整数次元 NN に対して定義できるユニタリ演算です。 このセクションでは、この演算がどのように定義されるか、そして N=2mN = 2^m のときに mm 量子ビット上でコスト O(m2)O(m^2) の量子回路によってどのように実装できるかを見ていきます。

量子フーリエ変換を記述する行列は、離散フーリエ変換として知られる NN 次元ベクトルへの類似演算から導出されます。 この演算はさまざまな観点から考えることができます。 たとえば、離散フーリエ変換を純粋に抽象的な数学的観点から線形写像として考えることができます。 あるいは、計算的な観点から考えることもできます。この場合、複素数の NN 次元ベクトルが与えられ(実部と虚部を二進表記でエンコードするとします)、離散フーリエ変換を適用して得られる NN 次元ベクトルを計算することが目標です。 ここでは3番目の観点、すなわちこの変換を量子系で実行できるユニタリ演算として捉えることに焦点を当てます。

与えられた入力ベクトルに対して離散フーリエ変換を計算する効率的なアルゴリズムとして、高速フーリエ変換があります。 これは信号処理やその他多くの分野で応用されており、これまでに発見されたアルゴリズムの中でも最も重要なものの1つと多くの人が考えています。 実際、NN が2の冪乗のときに学習する量子フーリエ変換の実装は、高速フーリエ変換を可能にするのとまったく同じ基本構造に基づいています。

量子フーリエ変換の定義

量子フーリエ変換を定義するにあたり、まず各正の整数 NN に対して複素数 ωN\omega_N を次のように定義します。

ωN=e2πiN=cos(2πN)+isin(2πN).\omega_N = e^{\frac{2\pi i}{N}} = \cos\left(\frac{2\pi}{N}\right) + i \sin\left(\frac{2\pi}{N}\right).

これは複素単位円上の数であり、11 から出発して反時計回りに 2π/N2\pi/N ラジアン、すなわち円周の 1/N1/N の弧長だけ進んだ位置にあります。いくつかの例を示します。

ω1=1ω2=1ω3=12+32iω4=iω8=1+i2ω16=2+22+222iω1000.998+0.063i\begin{gathered} \omega_1 = 1\\[1mm] \omega_2 = -1\\[1mm] \omega_3 = -\frac{1}{2} + \frac{\sqrt{3}}{2} i\\[2mm] \omega_4 = i\\[1mm] \omega_8 = \frac{1+i}{\sqrt{2}}\\[3mm] \omega_{16} = \frac{\sqrt{2 + \sqrt{2}}}{2} + \frac{\sqrt{2 - \sqrt{2}}}{2} i\\[2mm] \omega_{100} \approx 0.998 + 0.063 i \end{gathered}

これで NN 次元量子フーリエ変換を定義できます。これは N×NN\times N 行列で記述され、その行と列は標準基底状態 0,,N1\vert 0\rangle,\ldots,\vert N-1\rangle に対応します。 位相推定では N=2mN = 2^m が2の冪乗の場合のみ必要ですが、この演算は任意の正の整数 NN に対して定義できます。

QFTN=1Nx=0N1y=0N1ωNxyxy\mathrm{QFT}_N = \frac{1}{\sqrt{N}} \sum_{x = 0}^{N-1} \sum_{y = 0}^{N-1} \omega_N^{xy} \vert x \rangle\langle y\vert

すでに述べたように、これは NN 次元離散フーリエ変換に対応する行列です。 この行列の定義では先頭の 1/N1/\sqrt{N} の係数が省略されることも多いですが、ユニタリ行列を得るためにはこれを含める必要があります。

NN の小さな値に対する量子フーリエ変換を行列として示します。

QFT1=(1)\mathrm{QFT}_1 = \begin{pmatrix} 1 \end{pmatrix} QFT2=12(1111)\mathrm{QFT}_2 = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1\\[1mm] 1 & -1 \end{pmatrix} QFT3=13(11111+i321i3211i321+i32)\mathrm{QFT}_3 = \frac{1}{\sqrt{3}} \begin{pmatrix} 1 & 1 & 1\\[2mm] 1 & \frac{-1 + i\sqrt{3}}{2} & \frac{-1 - i\sqrt{3}}{2}\\[2mm] 1 & \frac{-1 - i\sqrt{3}}{2} & \frac{-1 + i\sqrt{3}}{2} \end{pmatrix} QFT4=12(11111i1i11111i1i)\mathrm{QFT}_4 = \frac{1}{2} \begin{pmatrix} 1 & 1 & 1 & 1\\[1mm] 1 & i & -1 & -i\\[1mm] 1 & -1 & 1 & -1\\[1mm] 1 & -i & -1 & i \end{pmatrix} QFT8=122(1111111111+i2i1+i211i2i1i21i1i1i1i11+i2i1+i211i2i1i21111111111i2i1i211+i2i1+i21i1i1i1i11i2i1i211+i2i1+i2)\mathrm{QFT}_8 = \frac{1}{2\sqrt{2}} \begin{pmatrix} 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1\\[2mm] 1 & \frac{1+i}{\sqrt{2}} & i & \frac{-1+i}{\sqrt{2}} & -1 & \frac{-1-i}{\sqrt{2}} & -i & \frac{1-i}{\sqrt{2}}\\[2mm] 1 & i & -1 & -i & 1 & i & -1 & -i\\[2mm] 1 & \frac{-1+i}{\sqrt{2}} & -i & \frac{1+i}{\sqrt{2}} & -1 & \frac{1-i}{\sqrt{2}} & i & \frac{-1-i}{\sqrt{2}}\\[2mm] 1 & -1 & 1 & -1 & 1 & -1 & 1 & -1\\[2mm] 1 & \frac{-1-i}{\sqrt{2}} & i & \frac{1-i}{\sqrt{2}} & -1 & \frac{1+i}{\sqrt{2}} & -i & \frac{-1+i}{\sqrt{2}}\\[2mm] 1 & -i & -1 & i & 1 & -i & -1 & i\\[2mm] 1 & \frac{1-i}{\sqrt{2}} & -i & \frac{-1-i}{\sqrt{2}} & -1 & \frac{-1+i}{\sqrt{2}} & i & \frac{1+i}{\sqrt{2}}\\[2mm] \end{pmatrix}

特に、QFT2\mathrm{QFT}_2 はアダマール演算の別名であることに注意してください。

ユニタリ性

NN の任意の選択に対して QFTN\mathrm{QFT}_N がユニタリであることを確認しましょう。 これを示す一つの方法は、その列が正規直交基底を形成することを示すことです。 列番号 yyy=0y = 0 から y=N1y = N-1 まで)に対応するベクトルを次のように定義します。

ϕy=1Nx=0N1ωNxyx.\vert\phi_y\rangle = \frac{1}{\sqrt{N}} \sum_{x = 0}^{N-1} \omega_N^{xy} \vert x \rangle.

これらのベクトル間の内積を取ると、次の式が得られます。

ϕzϕy=1Nx=0N1ωNx(yz)\langle \phi_z \vert \phi_y \rangle = \frac{1}{N} \sum_{x = 0}^{N-1} \omega_N^{x (y - z)}

このような和は、等比数列の最初の NN 項の和に関する次の公式を用いて評価できます。

1+α+α2++αN1={αN1α1if α1Nif α=11 + \alpha + \alpha^2 + \cdots + \alpha^{N-1} = \begin{cases} \frac{\alpha^N - 1}{\alpha - 1} & \text{if } \alpha\neq 1\\[2mm] N & \text{if } \alpha=1 \end{cases}

具体的には、α=ωNyz\alpha = \omega_N^{y-z} のときにこの公式を使用できます。 y=zy = z のとき α=1\alpha = 1 なので、公式を使って NN で割ると

ϕyϕy=1.\langle \phi_y \vert \phi_y \rangle = 1.

yzy\neq z のとき α1\alpha \neq 1 なので、公式より次が分かります。

ϕzϕy=1NωNN(yz)1ωNyz1=1N11ωNyz1=0.\langle \phi_z \vert \phi_y \rangle = \frac{1}{N} \frac{\omega_N^{N(y-z)} - 1}{\omega_N^{y-z} - 1} = \frac{1}{N} \frac{1 - 1}{\omega_N^{y-z} - 1} = 0.

これは ωNN=e2πi=1\omega_N^N = e^{2\pi i} = 1 であるため ωNN(yz)=1yz=1\omega_N^{N(y-z)} = 1^{y-z} = 1 となり分子がゼロになる一方、ωNyz1\omega_N^{y-z} \neq 1 より分母はゼロではないことによります。 直感的に言えば、単位円上に均等に分布した点の総和を取っており、それらが打ち消し合って 00 になるということです。

したがって、{ϕ0,,ϕN1}\{\vert\phi_0\rangle,\ldots,\vert\phi_{N-1}\rangle\} が正規直交集合であることが示されました。

ϕzϕy={1y=z0yz,\langle \phi_z \vert \phi_y \rangle = \begin{cases} 1 & y=z\\ 0 & y\neq z, \end{cases}

これにより QFTN\mathrm{QFT}_N がユニタリであることが明らかになります。

制御位相ゲート

量子回路で量子フーリエ変換を実装するには、制御位相ゲートを使用する必要があります。 位相演算とは、任意の実数 α\alpha に対して次の形の単一量子ビットユニタリ演算であることを思い出してください。

Pα=(100eiα)P_{\alpha} = \begin{pmatrix} 1 & 0\\[1mm] 0 & e^{i\alpha} \end{pmatrix}

このゲートの制御版は次の行列を持ちます。

CPα=(100001000010000eiα)CP_{\alpha} = \begin{pmatrix} 1 & 0 & 0 & 0\\[1mm] 0 & 1 & 0 & 0\\[1mm] 0 & 0 & 1 & 0\\[1mm] 0 & 0 & 0 & e^{i\alpha} \end{pmatrix}

この制御ゲートでは、どちらの量子ビットが制御でどちらがターゲットであるかは実際には問題になりません。なぜなら2つの可能性は等価だからです。 量子回路図でこのゲートを表すには、次のいずれかの記号を使用できます。

制御位相ゲートの量子回路図表現

3番目の形式では、都合に応じて制御線の側面または下側の制御の下に α\alpha のラベルが付くこともあります。

N=2mN = 2^m かつ m2m\geq 2 のときに量子フーリエ変換を実行するには、mm 量子ビット上で次の作用を持つ演算を実行する必要があります。

yaω2mayya,\vert y \rangle \vert a \rangle \mapsto \omega_{2^m}^{ay} \vert y \rangle \vert a \rangle,

ここで aa は1ビットであり、y{0,,2m11}y \in \{0,\ldots,2^{m-1} - 1\}m1m-1 ビットの二進表記でエンコードされた数です。 これは制御位相ゲートを使って、m=5m=5 の次の例を一般化することで実現できます。

位相注入の量子回路図

一般に、m2m\geq 2 の任意の選択に対して、ビット aa に対応する最上位の量子ビットを制御として考えることができます。位相ゲート PαP_{\alpha}α\alpha は、yy の最下位ビットに対応する量子ビットの α=π/2m1\alpha = \pi/2^{m-1} から yy の最上位ビットに対応する量子ビットの α=π2\alpha = \frac{\pi}{2} まで変化します。 これらの制御位相ゲートはすべて互いに可換であり、任意の順序で実行できます。

QFTの回路実装

次元 N=2mN = 2^m が2の冪乗の場合に、量子回路で量子フーリエ変換をどのように実装できるかを見ていきます。 実際、量子フーリエ変換を実装する方法は複数ありますが、これはおそらく知られている中で最も単純な方法です。 量子フーリエ変換を量子回路で実装する方法が分かれば、その逆変換の実装も簡単です。各ゲートをその逆(同等に言えば、共役転置)に置き換え、逆順にゲートを適用すれば良いのです。 ユニタリゲートのみで構成された量子回路はすべてこの方法で逆変換できます。

実装は再帰的な性質を持つため、そのように説明するのが最も自然です。 基底ケースは m=1m=1 であり、このとき量子フーリエ変換はアダマール演算です。

m2m \geq 2mm 量子ビット上で量子フーリエ変換を実行するには、次のステップを実行します。x{0,,2m11}x\in\{0,\ldots,2^{m-1} - 1\} を二進表記で m1m-1 ビットにエンコードされた整数、aa を単一ビットとして、xa\vert x \rangle \vert a\rangle の形の標準基底状態に対する各ステップの作用を説明します。

  1. まず、下位/左側の m1m-1 量子ビットに 2m12^{m-1} 次元量子フーリエ変換を適用して次の状態を得ます。

    (QFT2m1x)a=12m1y=02m11ω2m1xyya.\Bigl(\mathrm{QFT}_{2^{m-1}} \vert x \rangle\Bigr) \vert a\rangle = \frac{1}{\sqrt{2^{m-1}}} \sum_{y = 0}^{2^{m-1} - 1} \omega_{2^{m-1}}^{xy} \vert y \rangle \vert a \rangle.

    これは、単一量子ビットでのアダマール演算を基底ケースとして、1量子ビット少ない場合の方法を再帰的に適用することで行います。

  2. 上位/右側の量子ビットを制御として使用し、残りの m1m-1 量子ビットの各標準基底状態 y\vert y\rangle に位相 ω2my\omega_{2^m}^y を注入して(上記の方法で)次の状態を得ます。

    12m1y=02m11ω2m1xyω2mayya.\frac{1}{\sqrt{2^{m-1}}} \sum_{y = 0}^{2^{m-1} - 1} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert y \rangle \vert a \rangle.
  3. 上位/右側の量子ビットにアダマールゲートを適用して次の状態を得ます。

    12my=02m11b=01(1)abω2m1xyω2mayyb.\frac{1}{\sqrt{2^{m}}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert y \rangle \vert b \rangle.
  4. 最下位ビットが最上位ビットになり、他のすべてが上位/右側にシフトされるように量子ビットの順序を入れ替えます。

    12my=02m11b=01(1)abω2m1xyω2mayby.\frac{1}{\sqrt{2^{m}}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert b \rangle \vert y \rangle.

たとえば、N=32=25N = 32 = 2^5 の場合に得られる回路を示します。 この図では、明確にするために量子ビットに(入力の)標準基底ベクトル xa\vert x\rangle \vert a\rangle と(出力の)by\vert b\rangle \vert y\rangle に対応する名前が付けられています。

32次元量子フーリエ変換の量子回路図

解析

上記の回路が 2m2^m 次元量子フーリエ変換を実装していることを検証するために必要な重要な公式は次のとおりです。

(1)abω2m1xyω2may=ω2m(2x+a)(2m1b+y).(-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} = \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)}.

この公式は任意の整数 a,a, b,b, x,x, yy に対して成り立ちますが、a,b{0,1}a,b\in\{0,1\} かつ x,y{0,,2m11}x,y\in\{0,\ldots,2^{m-1}-1\} の場合のみ使用します。 右辺の指数の積を展開することで確認できます。

ω2m(2x+a)(2m1b+y)=ω2m2mxbω2m2xyω2m2m1abω2may=(1)abω2m1xyω2may, \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)} = \omega_{2^m}^{2^m xb} \omega_{2^m}^{2xy} \omega_{2^m}^{2^{m-1}ab} \omega_{2^m}^{ay} = (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay},

ここで2番目の等号は次の観察を利用しています。

ω2m2mxb=(ω2m2m)xb=1xb=1.\omega_{2^m}^{2^m xb} = \bigl(\omega_{2^m}^{2^m}\bigr)^{xb} = 1^{xb} = 1.

2m2^m 次元量子フーリエ変換は、すべての u{0,,2m1}u\in\{0,\ldots,2^m - 1\} に対して次のように定義されます。

QFT2mu=12mv=02m1ω2muvv\mathrm{QFT}_{2^m} \vert u\rangle = \frac{1}{\sqrt{2^m}} \sum_{v = 0}^{2^m - 1} \omega_{2^m}^{uv} \vert v\rangle

uuvv

u=2x+av=2m1b+y\begin{aligned} u & = 2x + a\\ v & = 2^{m-1}b + y \end{aligned}

a,b{0,1}a,b\in\{0,1\} かつ x,y{0,,2m11}x,y\in\{0,\ldots,2^{m-1} - 1\})と書くと、次が得られます。

QFT2m2x+a=12my=02m11b=01ω2m(2x+a)(2m1b+y)b2m1+y=12my=02m11b=01(1)abω2m1xyω2mayb2m1+y.\begin{aligned} \mathrm{QFT}_{2^m} \vert 2x + a\rangle & = \frac{1}{\sqrt{2^m}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 \omega_{2^m}^{(2x+ a)(2^{m-1}b + y)} \vert b 2^{m-1} + y\rangle\\[2mm] & = \frac{1}{\sqrt{2^m}} \sum_{y = 0}^{2^{m-1} - 1} \sum_{b=0}^1 (-1)^{ab} \omega_{2^{m-1}}^{xy} \omega_{2^m}^{ay} \vert b 2^{m-1} + y\rangle. \end{aligned}

最後に、標準基底状態 xa\vert x \rangle \vert a\rangleby\vert b \rangle \vert y \rangle{0,,2m1}\{0,\ldots,2^m-1\} の範囲の整数の二進エンコードとして考えると、

xa=2x+aby=2m1b+y,\begin{aligned} \vert x \rangle \vert a\rangle & = \vert 2x + a \rangle\\ \vert b \rangle \vert y \rangle & = \vert 2^{m-1}b + y\rangle, \end{aligned}

上記の回路が必要な演算を実装していることが分かります。 この量子フーリエ変換の実装方法が驚くべきものに見えるとすれば、それは実際にそうだからです。これは本質的に量子回路の形での高速フーリエ変換です。

最後に、上記の回路で使用されるゲートの数を数えましょう。 制御位相ゲートは前のレッスンで議論した標準ゲートセットにはありませんが、まずこれを無視して、それぞれを単一のゲートとして数えます。

mm の各選択肢に必要なゲート数を sms_m とします。 m=1m=1 のとき、量子フーリエ変換は単にアダマール演算なので、

s1=1.s_1 = 1.

m2m\geq 2 のとき、上記の回路では m1m-1 量子ビットの量子フーリエ変換に sm1s_{m-1} ゲート、m1m-1 個の制御位相ゲート、1つのアダマールゲート、m1m-1 個のスワップゲートが必要なので、

sm=sm1+(2m1).s_m = s_{m-1} + (2m - 1).

総和を取ることで閉形式の表現が得られます。

sm=k=1m(2k1)=m2.s_m = \sum_{k = 1}^m (2k - 1) = m^2.

実際には、この方法が記述するほど多くのスワップゲートは必要ではありません。 ゲートを少し並べ替えると、すべてのスワップゲートを右側に押し出し、必要なスワップゲートの数を m/2\lfloor m/2\rfloor に削減できます。 漸近的に言えば、これは大きな改善ではありません。QFT2m\mathrm{QFT}_{2^m} を実行するための回路のサイズは依然として O(m2)O(m^2) です。

標準ゲートセットのゲートのみを使って量子フーリエ変換を実装したい場合は、各制御位相ゲートをセットのゲートで構築または近似する必要があります。 必要な数は必要な精度によって異なりますが、mm の関数としての総コストは二次のままです。

実際、α\alpha が非常に小さいとき PαP_{\alpha} は恒等演算に非常に近いという事実を利用することで、制御位相ゲートのほとんどを省略しても精度の損失はほとんどないため、二次より少ないゲート数で量子フーリエ変換をかなり精密に近似することが可能です。

一般的な手続きと解析

いよいよ位相推定手続きを一般的な形で検討します。 上記で考えた2量子ビット版の位相推定を、次の図が示す自然な方法で拡張することが基本的なアイデアです。

位相推定手続き

各新しい制御量子ビットを上部に追加するたびに、ユニタリ演算 UU の実行回数が2倍になることに注目してください。 これは、各制御ユニタリ演算の UU の冪によって図中に示されています。

制御-UkU^k 演算を何らかの kk の選択に対して実装する最も単純な方法は、単に制御-UU 演算を kk 回繰り返すことです。 この方法が採用される場合、制御量子ビットの追加が回路のサイズに大きく寄与することを認識しなければなりません。mm 個の制御量子ビットがある場合(図が示すように)、合計で 2m12^m - 1 コピーの制御-UU 演算が必要です。 つまり、mm を増やすにつれて大きな計算コストが発生しますが、後に見るように、θ\theta のより正確な近似も得られます。

ただし、一部の UU の選択については、単に kk 回繰り返す方法よりも効率的に演算 UkU^k を実装する回路を構成できる場合があることに注意することが重要です。 これについては、後のレッスンの整数因数分解の文脈で具体的な例を見ます。前のレッスンで議論したモジュラー冪乗の効率的なアルゴリズムが役に立ちます。

次に、上記の回路を解析しましょう。 逆量子フーリエ変換の直前の状態は次のようになります。

12mx=02m1(Uxψ)x=ψ12mx=02m1e2πixθx.\frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} \bigl( U^x \vert\psi\rangle \bigr) \vert x\rangle = \vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} e^{2\pi i x\theta} \vert x\rangle.

特殊なケース

m=2m=2 のケースで行ったことと同様に、まず y{0,,2m1}y\in\{0,\ldots,2^m-1\} に対して θ=y/2m\theta = y/2^m となる特殊なケースを考えます。 この場合、逆量子フーリエ変換の前の状態は次のように書き直すことができます。

ψ12mx=02m1e2πixy2mx=ψ12mx=02m1ω2mxyx=ψQFT2my.\vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} e^{2\pi i \frac{xy}{2^m}} \vert x\rangle = \vert\psi\rangle \otimes \frac{1}{\sqrt{2^m}} \sum_{x = 0}^{2^m - 1} \omega_{2^m}^{xy} \vert x\rangle = \vert\psi\rangle \otimes \mathrm{QFT}_{2^m} \vert y\rangle.

したがって、逆量子フーリエ変換を適用すると、状態は

ψy\vert\psi\rangle \vert y\rangle

となり、測定によって yy(2進数で符号化)が得られます。

確率の上下界

θ\thetay/2my/2^myy は整数)という形を取らない他の値の場合、測定結果は確定的ではありませんが、異なる結果の確率に対して上下界を証明することができます。 以下では、0θ<10\leq \theta < 1 を満たす任意の θ\theta を考えます。

逆量子フーリエ変換が実行された後、回路の状態は次のようになります。

ψ12my=02m1x=02m1e2πix(θy/2m)y.\vert \psi \rangle \otimes \frac{1}{2^m} \sum_{y=0}^{2^m - 1} \sum_{x=0}^{2^m-1} e^{2\pi i x (\theta - y/2^m)} \vert y\rangle.

したがって、上位 mm 個の量子ビットに対して測定を行うと、各結果 yy は次の確率で観測されます。

py=12mx=02m1e2πix(θy/2m)2.p_y = \left\vert \frac{1}{2^m} \sum_{x=0}^{2^m - 1} e^{2\pi i x (\theta - y/2^m)} \right\vert^2.

これらの確率をより詳しく理解するために、以前に見た等比数列の初項から NN 項の和の公式を利用します。

1+α+α2++αN1={αN1α1if α1Nif α=11 + \alpha + \alpha^2 + \cdots + \alpha^{N-1} = \begin{cases} \frac{\alpha^N - 1}{\alpha - 1} & \text{if } \alpha\neq 1\\[2mm] N & \text{if } \alpha=1 \end{cases}

pyp_y の式に現れる和を、α=e2πi(θy/2m)\alpha = e^{2\pi i (\theta - y/2^m)} と置くことで簡略化できます。 得られる結果は以下の通りです。

x=02m1e2πix(θy/2m)={2mθ=y/2me2πi(2mθy)1e2πi(θy/2m)1θy/2m\sum_{x=0}^{2^m - 1} e^{2\pi i x (\theta - y/2^m)} = \begin{cases} 2^m & \theta = y/2^m\\[2mm] \frac{e^{2\pi i (2^m \theta - y)} - 1}{e^{2\pi i (\theta - y/2^m)} - 1} & \theta\neq y/2^m \end{cases}

したがって、θ=y/2m\theta = y/2^m の場合は py=1p_y = 1(この特殊ケースの考察からすでにわかっていた通り)であり、θy/2m\theta \neq y/2^m の場合は

py=122me2πi(2mθy)1e2πi(θy/2m)12p_y = \frac{1}{2^{2m}} \left\vert \frac{e^{2\pi i (2^m \theta - y)} - 1}{e^{2\pi i (\theta - y/2^m)} - 1}\right\vert^2

となります。

単位円上の弧長と弦長の関係を考えることで、これらの確率についてさらに詳しく知ることができます。 以下の図は、任意の実数 δ[12,12]\delta\in \bigl[ -\frac{1}{2},\frac{1}{2}\bigr] に対して必要な関係を示しています。

弧長と弦長の関係の図解

まず、弦長(青で描かれている)は弧長(紫で描かれている)より大きくなることはあり得ません。

e2πiδ12πδ.\bigl\vert e^{2\pi i \delta} - 1\bigr\vert \leq 2\pi\vert\delta\vert.

逆方向でこれらの長さを関連付けると、弧長と弦長の比が最大になるのは δ=±1/2\delta = \pm 1/2 のときであり、この場合の比は円の半周を直径で割ったもの、すなわち π/2\pi/2 となります。 したがって、

2πδe2πiδ1π2,\frac{2\pi\vert\delta\vert}{\bigl\vert e^{2\pi i \delta} - 1\bigr\vert} \leq \frac{\pi}{2},

となり、

e2πiδ14δ\bigl\vert e^{2\pi i \delta} - 1\bigr\vert \geq 4\vert\delta\vert

が成り立ちます。

これらの関係に基づく解析により、以下の2つの事実が明らかになります。

  1. θ\theta を実数とし、y{0,,2m1}y\in \{0,\ldots,2^m-1\}

    θy2m2(m+1)\Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \leq 2^{-(m+1)}

    を満たすと仮定します。

    これは、y/2my/2^mθ\theta に対する最善の mm ビット近似であるか、あるいは y/2my/2^m(y1)/2m(y-1)/2^m または (y+1)/2m(y+1)/2^m のちょうど中間にあること、すなわち θ\theta に対する2つの最善近似の一方であることを意味します。

    この場合、pyp_y はかなり大きくなることを証明します。 考えている仮定から 2mθy1/2\vert 2^m \theta - y \vert \leq 1/2 が導かれるので、弧長と弦長の関係に関する上記の2番目の観察を使って次のように結論付けることができます。

    e2πi(2mθy)142mθy=42mθy2m.\left\vert e^{2\pi i (2^m \theta - y)} - 1\right\vert \geq 4 \vert 2^m \theta - y \vert = 4 \cdot 2^m \cdot \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert.

    また、弧長と弦長に関する1番目の観察を使って次のように結論付けることもできます。

    e2πi(θy/2m)12πθy2m.\left\vert e^{2\pi i (\theta - y/2^m)} - 1\right\vert \leq 2\pi \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert.

    この2つの不等式を pyp_y に適用すると、

    py122m1622m4π2=4π20.405p_y \geq \frac{1}{2^{2m}} \frac{16 \cdot 2^{2m}}{4 \pi^2} = \frac{4}{\pi^2} \approx 0.405

    が明らかになります。

    これにより、前述の m=2m=2 の位相推定において最善の結果が 40%40\% を超える確率で生じるという観察が説明されます。 正確には 40%40\% ではなく 4/π24/\pi^2 であり、実際にこの下界はすべての mm の選択に対して成立します。

  2. 今度は、y{0,,2m1}y\in \{0,\ldots,2^m-1\}

    2mθy2m122^{-m} \leq \Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \leq \frac{1}{2}

    を満たすと仮定します。

    これは、θ\thetay/2my/2^m の間に θ\theta に対するより良い近似 z/2mz/2^m が存在することを意味します。

    今度は pyp_y がそれほど大きくならないことを証明します。 単位円上の任意の2点の絶対値の差は最大でも 22 であるという事実から、

    e2πi(2mθy)12\left\vert e^{2\pi i (2^m \theta - y)} - 1\right\vert \leq 2

    という単純な観察から始めることができます。

    また、今度は pyp_y の分子ではなく分母に対して上記の弧長と弦長の2番目の観察を使って、

    e2πi(θy/2m)14θy2m42m\left\vert e^{2\pi i (\theta - y/2^m)} - 1\right\vert \geq 4\Bigl\vert \theta - \frac{y}{2^m}\Bigr\vert \geq 4 \cdot 2^{-m}

    と結論付けることができます。

    2つの不等式を合わせると、

    py122m41622m=14p_y \leq \frac{1}{2^{2m}} \frac{4}{16 \cdot 2^{-2m}} = \frac{1}{4}

    が明らかになります。

    この上界は目的には十分ですが、かなり粗い推定であることに注意してください。実際の確率は通常 1/41/4 よりもはるかに低くなります。

この解析から重要な結論として、θ\theta への非常に近い近似は高い確率で生じるということが言えます。すなわち、最善の mm ビット近似が 40%40\% を超える確率で得られる一方で、2m2^{-m} 以上ずれた近似は生じにくく、その確率は 25%25\% で上から抑えられます。

これらの保証が得られることにより、位相推定の手順を複数回繰り返して θ\theta に関する統計的な証拠を集めることで、確信度を高めることができます。 ここで重要なのは、下部の量子ビット群の状態 ψ\vert\psi\rangle は位相推定の手順によって変化しないため、何度でも手順を実行するために使用できるという点です。 特に、回路を実行するたびに 40%40\% を超える確率で θ\theta に対する最善の mm ビット近似が得られ、2m2^{-m} 以上ずれる確率は 25%25\% で上から抑えられます。 回路を複数回実行し、最も頻繁に現れた結果を採用すれば、最も頻繁に現れた結果が最大でも 25%25\% の確率でしか生じないものである可能性は極めて低くなります。 その結果、θ\theta の値から 1/2m1/2^m 以内の近似 y/2my/2^m が得られる可能性が非常に高くなります。 実際、1/2m1/2^m 以上ずれる低い確率は、手順を繰り返す回数に対して指数的に減少します。

以下は、m=3m = 3 および m=4m=4 の場合について、θ\theta の関数として3つの連続する yy の値に対する確率を示した2つのグラフです。 (明瞭さのために3つの結果のみを示しています。他の結果の確率は、同じ基本的な関数を周期的にシフトすることで得られます。)

3量子ビット位相推定の結果確率を示すグラフ

4量子ビット位相推定の結果確率を示すグラフ