量子位相推定の前半は位相キックバックと呼ばれるおもしろい仕組みを使っています。
位相キックバックの効果を知るために、次の回路を見てみましょう。
この回路は つき を何度も実行するものです。
最初の 4 ビットは
を置くためのコントロールビットとして使います。 最後の 1 ビットは \(|1\rangle\)
に初期化した後、
を実行するためのターゲットビットとして使います。
実行結果は直感と反するものです。 最終的な状態ベクトルを最初の 4 ビット (コントロールビット)
と最後の 1 ビット (ターゲットビット) に分けて円表示すると、次のようになります。 を実行したターゲットビットでは、状態は初期状態の \(|1\rangle\)
からまったく変化していません。 一方で に使った 4
つのコントロールビットは、 を実行していないにもかかわらず、きれいに位相が
π/4 刻みで回転しています。
最初の 4 ビット ( を置いたコントロールビット):
最後の 1 ビット ( を置いたターゲットビット):
このように、位相回転の効果がなぜかコントロールビット側で起こるのが位相キックバックの効果です。
この現象は、ターゲットビットで位相回転したつもりが、その効果がコントロールビット側にはね返る (=
キックバックされる) と解釈できます。 たとえば今回のように
を置くビットをずらしながら規則的に何度も位相キックバックすると、コントロールビット側に位相回転が蓄積され、位相回転のパターンを作ることができます。
位相キックバックを起こすには、固有状態を考える必要があります。
の固有状態の 1 つは \(|1\rangle\) で、その固有位相は
の回転角と同じ、ということを思い出してください。
を置いた量子ビットの初期状態は、その固有状態である \(|1\rangle\) で初期化しました。
こうしておくと、コントロールビット側にキックバックが起こり固有位相分 (= 今回は π/4)
の位相回転が起こります。
量子位相推定回路での位相キックバック
量子位相推定回路の前半は、位相キックバックそのものです。
量子位相推定によって固有位相を取り出したい QPU 命令を前回と同じ だとします。
この時、位相キックバックを起こすためにターゲットビット側の初期状態を
の固有位相 π に対応する の固有状態にセットします。
こうすることでコントロールビットに π 刻みの回転パターンが書き込まれます。