1. 量子並列性とオラクル
全状態の同時生成
n 個の量子ビットをすべて ∣0⟩ に初期化し、それぞれにアダマールゲート H を適用します。
∣ψ0⟩=H⊗n∣0⟩⊗n=(2∣0⟩+∣1⟩)⊗n=2n1∑x=02n−1∣x⟩
たった1ステップで、0 から 2n−1 までのすべての整数の重ね合わせ状態を作ることができます。これが量子並列性の基礎です。
量子オラクル(Oracle)
ある関数 f(x) (出力は0か1)を計算するブラックボックス(オラクル)を考えます。量子回路では、可逆性を保つために以下のようなユニタリ変換 Uf として定義します。
Uf∣x⟩∣y⟩=∣x⟩∣y⊕f(x)⟩
ここで ⊕ は排他的論理和(XOR)です。
位相キックバック(Phase Kickback)
ここが重要なテクニックです。第2レジスタ(∣y⟩)を ∣−⟩=21(∣0⟩−∣1⟩) に設定して Uf を作用させてみましょう。
Uf∣x⟩∣−⟩=∣x⟩21(∣0⊕f(x)⟩−∣1⊕f(x)⟩)
- f(x)=0 のとき:∣x⟩21(∣0⟩−∣1⟩)=∣x⟩∣−⟩
- f(x)=1 のとき:∣x⟩21(∣1⟩−∣0⟩)=−∣x⟩∣−⟩
まとめると:
Uf∣x⟩∣−⟩=(−1)f(x)∣x⟩∣−⟩
第2レジスタは変化せず、関数 f(x) の値が 位相(符号)として第1レジスタに「キックバック」 されました。これにより、関数の情報を位相に埋め込むことができます。
2. ドイチュのアルゴリズム
最も単純な例として、ドイチュのアルゴリズム(Deutsch's Algorithm)を解きます。
問題設定
入力 x∈{0,1}、出力 f(x)∈{0,1} の関数 f が与えられます。
関数は以下の2種類のどちらかです。
- 定数関数 (Constant): f(0)=f(1) (両方0、または両方1)
- バランス関数 (Balanced): f(0)=f(1) (片方が0、もう片方が1)
古典コンピュータでは、f(0) と f(1) の2回計算しないと判別できません。量子コンピュータなら 1回 で判別できます。
アルゴリズムの手順
-
初期状態:∣0⟩∣1⟩
-
両方にHゲート:∣+⟩∣−⟩
-
オラクル Uf 適用(位相キックバック):
∣ψ2⟩=21∑x=01(−1)f(x)∣x⟩⊗∣−⟩
第1レジスタだけ見ると:
21((−1)f(0)∣0⟩+(−1)f(1)∣1⟩)
-
第1レジスタに再びHゲートを適用:
H∣0⟩=∣+⟩,H∣1⟩=∣−⟩
∣ψ3⟩=21[(−1)f(0)(∣0⟩+∣1⟩)+(−1)f(1)(∣0⟩−∣1⟩)]
これを整理すると(∣0⟩ と ∣1⟩ の係数をまとめる):
=21[((−1)f(0)+(−1)f(1))∣0⟩+((−1)f(0)−(−1)f(1))∣1⟩]
結果の解析
このように、干渉 によって正解の確率振幅を強め合い、不正解を打ち消し合うことで、1回の計算で関数の性質を決定できました。
3. グローバーのアルゴリズム
これを拡張し、データ探索を行うのがグローバーのアルゴリズムです。
N=2n 個のデータから、条件 f(w)=1 を満たす解 w を探します。
幾何学的解釈
状態空間を「正解 ∣w⟩」と「それ以外 ∣s⊥⟩」の2次元平面で考えます。
初期状態 ∣s⟩(全探索空間の重ね合わせ)は、ほとんど ∣s⊥⟩ に近く、ほんの少しだけ ∣w⟩ 成分を含んでいます。
∣s⟩=sinθ∣w⟩+cosθ∣s⊥⟩
ここで sinθ=1/N です。
グローバー反復
-
オラクル Uf: 正解 ∣w⟩ の符号を反転します(位相キックバック)。
幾何学的には、∣s⊥⟩ 軸に対する鏡映反転です。
-
拡散演算子 D: 初期状態 ∣s⟩ 周りの反転を行います。
D=2∣s⟩⟨s∣−I
幾何学的には、ベクトル ∣s⟩ に対する鏡映反転です。
この2つの鏡映操作を組み合わせると、状態ベクトルは平面上で 2θ だけ回転します。これを繰り返すことで、状態ベクトルを ∣w⟩ に近づけます。
計算量
1回の反復で角度が 2θ≈2/N 進みます。
∣w⟩(角度 π/2)に到達するには、およそ以下の回数が必要です。
k≈2/Nπ/2≈4πN
古典探索の O(N) に対し、O(N) の二乗加速を実現します。
まとめ
- 量子並列性: 全状態の重ね合わせに対して一度に関数を適用できる。
- 位相キックバック: 関数の値を位相情報に変換する重要テクニック。
- 量子干渉: 確率振幅の足し合わせ(強め合い・打ち消し合い)を利用して、欲しい答えの確率を高める。
- グローバーのアルゴリズム: 振幅増幅を用いて、確率的に解を探索する。
次回は、現代の暗号システムを脅かす「ショアのアルゴリズム」について、その核心である「量子フーリエ変換」と「周期発見」の仕組みを解説します。
次へ:量子コンピュータ入門 #6:ショアのアルゴリズムと量子フーリエ変換
参考資料
- Shor, P. W. (1994). Algorithms for quantum computation.
- Grover, L. K. (1996). A fast quantum mechanical algorithm for database search.
- Quantum Algorithm Zoo: https://quantumalgorithmzoo.org/
更新履歴
ご注意: 本記事は2025年12月時点の情報に基づいています。最新情報は公式サイトをご確認ください。