干渉という計算資源 — 振幅の足し引きで答えを残す

「量子コンピュータは2n通りを同時に計算するから速い」— この説明は半分しか合っていません。重ね合わせを作っても、測定すればランダムな1つの結果が出るだけ。速さの本当の源泉は、間違った答えの振幅を打ち消し、正しい答えに振幅を集める「干渉」にあります。この章ではその干渉を、干渉計・回路・アルゴリズムの3段階で動かします。

1. 確率にはない「引き算」— 振幅の干渉項

古典の確率は必ず足し算です。事象Aに至る経路が2つあれば、確率は p1 + p2 と増える一方。ところが量子力学では、経路ごとに複素数の振幅が割り当てられ、確率は「振幅を足してから2乗」で決まります。

|a1 + a2|² = |a1|² + |a2|² + 2|a1||a2| cos Δφ 最後の項が干渉項。位相差 Δφ = 0 で強め合い(確率が増える)、Δφ = π で打ち消し合う(確率が減る、ゼロにもなる)

Δφ = π のとき、2つの経路があるのに到達確率が0になる — 経路を増やしたら結果が消える、という古典確率では絶対に起きない現象です。この「引き算」こそが量子計算の道具箱にしかない武器です。

POINT — 計算とは振幅の編み込み 量子アルゴリズムの実行中、2n本の計算経路が並行して振幅を運び、ゲートのたびに合流・分岐して足し引きされます。プログラマの仕事は、正解に向かう経路たちの位相を揃え(強め合い)、不正解に向かう経路の位相を反対に向ける(打ち消し)ようにゲート列を編むことです。

2. 波として干渉し、粒として検出される — マッハ・ツェンダー干渉計

干渉の最小の実験装置がマッハ・ツェンダー干渉計です。光子1個がビームスプリッタで2経路の重ね合わせになり(振幅 1/√2 ずつ)、片方の経路で位相 φ を受け、2つ目のビームスプリッタで再結合します。検出器 D0 に届く振幅は2経路の合計 ½ + ½eiφ になり、確率は次のとおり振動します。

P(D0) = |½ + ½eiφ|² = cos²(φ/2),    P(D1) = sin²(φ/2) φ = 0 なら全光子が D0 へ、φ = 180° なら全光子が D1 へ。経路は2つあるのに片方の検出器が「消灯」する
マッハ・ツェンダー干渉計 — 位相差 φ で出口が変わる
光子は波として2経路を同時に進み(半透明の2つのパルス)、検出の瞬間は粒としてどちらか一方の検出器で1回だけカチッと鳴ります。どちらで鳴るかは確率的ですが、その確率が干渉で決まる — φ = 180° にして D0 が完全に沈黙するのを確かめてください。右上の枠は D0 に届く2つの振幅(水色 = 経路B、紫 = 経路A)のベクトル和です。

3. 位相を確率に変える — H–φ–H 回路

同じ現象を量子回路の言葉で書いたのが H → 位相ゲート φ → H という並びです。実は最初の H がビームスプリッタ①、次の H がビームスプリッタ②に対応しています。

重要なのは真ん中の時点。位相ゲートを通った直後の状態は (|0⟩ + eiφ|1⟩)/√2 ですが、この時点で測定しても P(0) = P(1) = 50% のままで、φ の痕跡はまったく見えません。位相は確率に直接は現れないのです。ところが2つ目の H で2つの振幅を干渉させると、φ が測定確率 cos²(φ/2) として浮かび上がります。

H–φ–H — 見えない位相を干渉で見える化する
3つの複素平面は回路の各時点での振幅 c₀(水色)と c₁(オレンジ)。②では c₁ が回るだけで確率は 50/50 のまま。③で干渉した瞬間、確率が φ に依存し始めます。右のグラフが測定確率のカーブ cos²(φ/2)。φ をスライダーで動かすか、自動スキャンで眺めてください。
注意 — 位相そのものは観測できない 状態全体に掛かるグローバル位相 eiθ は物理的に無意味で、どんな測定でも検出不能です。意味を持つのは振幅どうしの相対位相だけ。そしてその相対位相ですら、干渉させて振幅の大きさに変換して初めて測定にかかります。「H で挟んで位相を読む」は量子アルゴリズムに何度も登場する基本イディオムです。

4. 1回の呼び出しで見抜く — ドイチュのアルゴリズム

干渉を「計算」に使った史上初の例がドイチュのアルゴリズム(1985)です。問題はこう:1ビット関数 f: {0,1} → {0,1} がブラックボックスとして与えられる。f は定数(f(0) = f(1))か均等(f(0) ≠ f(1))のどちらかだと分かっている。どちらかを判定せよ。

古典コンピュータでは f(0) と f(1) の両方を評価しないと判定できません(呼び出し2回)。量子コンピュータは重ね合わせた入力に Uf を1回だけ適用し、干渉で答えを取り出します。

一歩先へ — 位相キックバック 補助量子ビットを |−⟩ = (|0⟩−|1⟩)/√2 に準備しておくと、Uf: |x⟩|y⟩ → |x⟩|y⊕f(x)⟩ の作用が
Uf |x⟩|−⟩ = (−1)f(x) |x⟩|−⟩
と化けます。f の値がビットの反転としてではなく、入力側の振幅の符号(位相)として「蹴り返される」 — これが位相キックバックです。補助ビット自体は変化しないのに情報が位相に移る、というこのトリックは、ドイチュだけでなくグローバー探索や位相推定(ショアの心臓部)でも主役を務めます。

キックバック後、入力側の状態は (−1)f(0)|0⟩ + (−1)f(1)|1⟩(規格化略)。最後の H が2つの振幅を干渉させ、|0⟩ の振幅は次のようになります。

c0 = ((−1)f(0) + (−1)f(1)) / 2 定数なら同符号の足し算で c₀ = ±1(必ず 0 を測定)、均等なら打ち消し合って c₀ = 0(必ず 1 を測定)
ドイチュのアルゴリズム — ステップ実行
バーは2量子ビットの4振幅(|q0 q1⟩、高さ = 大きさ、色 = 位相。赤系 = +、シアン系 = −)。STEP 2 で f の値が符号に刻まれ、STEP 3 の H で振幅が足し引きされて q0 側が |0⟩ か |1⟩ に確率100%で集まります。4つの f 全部で試して、定数組と均等組で結末が分かれることを確認してください。
古典アルゴリズムドイチュのアルゴリズム
f の呼び出し回数2回(f(0) と f(1))1回(重ね合わせに適用)
答えの出方2つの値を見比べる干渉の結果が確定的に 0 か 1
使っている資源—重ね合わせ + 位相キックバック + 干渉

たった「2回が1回」ですが、これは量子計算が古典より原理的に少ない呼び出しで済む初の証明でした。同じ骨格を n ビットに拡張したドイチュ=ジョザのアルゴリズムでは 2n−1+1 回が1回になります。

5. 量子アルゴリズム設計の考え方 — 正解に振幅を集める

ドイチュのアルゴリズムに、量子アルゴリズム設計の3拍子が全部入っています。

グローバー探索(次章)は「刻む→集める」を √N 回繰り返して振幅を少しずつ正解に寄せ、ショアのアルゴリズムは量子フーリエ変換という巨大な干渉装置で周期だけを浮かび上がらせます。

よくある誤解 — 「全部並列に計算して全部読む」は不可能 重ね合わせ状態で Uf を1回呼べば、確かに全ての f(x) が振幅に「載って」います。しかし測定するとランダムな x が1つ得られるだけで、これは古典乱択と変わりません。読み出せるのは干渉で集めた後の情報だけ。だからどんな問題でも速くなるわけではなく、干渉パターンに落とし込める構造(周期性・対称性など)を持つ問題だけが量子の恩恵を受けます。

6. まとめ