量子ゲートと量子回路
量子アルゴリズムを読み書きする土台。ゲートがなぜユニタリ行列で必ず可逆なのか、X/Y/Z・H・位相・CNOT の働きから回路図の読み方と普遍ゲート集合までを原理でつかめます。
- 1.量子ゲートは状態ベクトルに作用するユニタリ行列 U(U†U=I)であり、内積とノルムを保つ。逆行列が必ず存在するため全ての量子ゲートは可逆で、測定を除く量子演算に情報の消去は起きない。
- 2.1量子ビットゲートはブロッホ球の回転で、パウリ X/Y/Z が各軸まわりのπ回転、アダマール H が基底と重ね合わせを入れ替え、位相ゲート S/T が相対位相を回す。2量子ビットの CNOT が制御ビットに応じてもつれを生む。
- 3.量子回路は左から右へ時間発展を読む図で、各ワイヤが1量子ビット、記号がゲート、末尾が測定。任意のユニタリを任意精度で近似できるゲートの組を普遍ゲート集合と呼び、{H, T, CNOT} が代表例。
量子ゲート=状態に作用するユニタリ演算
古典回路が AND・OR・NOT でビット列を書き換えるのに対し、量子回路は量子ビットの状態ベクトルを行列で回すことで計算を進めます。1量子ビットの状態は複素数の組 (a, b) で表され、a|0> + b|1>(|a|²+|b|²=1)という縦ベクトルです。この上に作用する量子ゲートは、必ずユニタリ行列 U になります。ユニタリとは、共役転置 U† が逆行列に一致する行列、すなわち次を満たすものです。
U† U = U U† = I (I は単位行列、U† は U の共役転置)
なぜ必ずユニタリなのか。量子力学の要請は「状態ベクトルのノルム(長さ)が常に1に保たれる」ことです。長さ1の確率振幅の集合を、長さ1のまま別の集合へ移す線形変換こそがユニタリ変換だからです。ユニタリは内積を保存する(任意のベクトルで <Uψ|Uφ> = <ψ|φ>)ため、確率の総和1という規格化条件がゲート適用の前後で壊れません。
U†U=I は、行列の各列(各行)が互いに直交する長さ1のベクトルであることと同値です。つまりユニタリゲートは基底ベクトルを別の正規直交基底へ「回転」させる操作にほかならず、確率振幅を漏らしたり増やしたりしません。ここに測定は含まれません。測定はユニタリではなく、状態を確率的に射影する非可逆な別種の操作です。
可逆性:量子ゲートに消去はない
ユニタリ行列には逆行列 U⁻¹ = U† が常に存在します。したがって全ての量子ゲートは可逆で、出力から入力を一意に復元できます。古典の AND(2入力1出力)のように入力情報が失われる不可逆演算は、量子ゲートには原理的に存在しません。
これは物理的な帰結でもあります。ランダウアーの原理により、1ビットの情報を消去すると最低でも kT ln2 の熱が発生します。量子計算が可逆演算だけで構成されるのは、この消去に伴う不可逆性・発熱を避け、干渉を保ったまま計算を進めるためです。可逆であるがゆえに、量子回路は「入力と同じ本数のワイヤが最後まで貫く」形になり、途中でビットを捨てることはできません。
可逆性と「コピーできること」は別物です。未知の量子状態を複製するユニタリは存在しない――これが複製不可能定理です。もし複製できると仮定すると線形性と矛盾するため、CNOT などで既知の基底状態を写すことはできても、任意の重ね合わせを丸ごと複製することはできません。可逆だからといって古典的なファンアウト(1本の値を何本にも分配)が自由にできるわけではない点に注意してください。
1量子ビットゲート:ブロッホ球の回転として読む
1量子ビットの純粋状態は、大域位相を除けばブロッホ球(半径1の球面)上の1点で表せます。すると1量子ビットゲートは、この球面を回す3次元回転として直感的に読めます。代表的なゲートを、行列と回転の対応で並べます。
X = [[0, 1], Z = [[1, 0], H = (1/√2)[[1, 1],
[1, 0]] [0, -1]] [1, -1]]
Y = [[0, -i], S = [[1, 0], T = [[1, 0],
[i, 0]] [0, i]] [0, e^(iπ/4)]]
- パウリ X:
|0>と|1>を入れ替える。古典 NOT に相当し、ブロッホ球の X 軸まわりπ回転(ビット反転)。 - パウリ Z:
|1>の符号だけを反転する(|0>→|0>,|1>→-|1>)。Z 軸まわりπ回転で、位相反転の基本。 - パウリ Y:ビット反転と位相反転を同時に行う(
Y = iXZ)。Y 軸まわりπ回転。 - アダマール H:
|0>→(|0>+|1>)/√2、|1>→(|0>-|1>)/√2。基底状態を等重ね合わせに変え、重ね合わせを生む要。H·H=Iなので自分自身が逆ゲート。 - 位相ゲート S・T:
|1>にだけ位相を掛ける(S はi=90度、T は 45度)。S=T²、Z=S²の関係にあり、Z 軸まわりの細かい回転を担う。
パウリ行列 {I, X, Y, Z} は2×2の任意のユニタリを表す土台(基底)になり、X²=Y²=Z²=I かつ2つを掛けると3つ目が(位相付きで)現れる、という美しい代数を持ちます。誤り訂正では、量子ビットに起きる誤りを「ビット反転 X・位相反転 Z・その両方 Y」の3種に分類できるため、パウリ演算子は誤りモデルの共通語彙として機能します。
CNOT:もつれを生む2量子ビットゲート
1量子ビットゲートだけでは、量子ビット同士を関係づけられません。そこで登場するのが2量子ビットゲート CNOT(制御 NOT) です。2本のワイヤのうち一方を制御(control)、他方を標的(target)とし、制御が |1> のときだけ標的に X(反転)を適用します。基底 |control, target> に対する作用は次の通りです。
CNOT: |00> -> |00>
|01> -> |01>
|10> -> |11> (制御=1 なので標的を反転)
|11> -> |10>
行列(基底 00,01,10,11 の順):
[[1,0,0,0],
[0,1,0,0],
[0,0,0,1],
[0,0,1,0]]
CNOT の真価は、制御ビットが重ね合わせのときに現れます。制御に H をかけて (|0>+|1>)/√2 を作り、標的 |0> との積に CNOT を通すと、(|00>+|11>)/√2 という**もつれ状態(ベル状態)**が生まれます。この状態はもはや「1番目の状態」×「2番目の状態」の積に分解できず、2量子ビットが相関した一体の状態になります。もつれと干渉の生成こそが、量子計算の並列性を支える源泉です。
量子回路モデルの読み方
量子回路図は、左から右へ時間発展を読む図です。読み方の規則を押さえておきます。
- ワイヤ(横線):1本が1量子ビット。上から順に q0, q1, … と並べ、初期状態は通常
|0>。 - 箱・記号:ワイヤ上のゲート。左のゲートから順に作用する。
- 制御構造:制御ビットに黒丸(●)、標的側にゲート記号を置き、縦線で結ぶ(CNOT なら標的側は⊕)。
- 末尾のメーター記号:測定。ここで初めて確率的に
0/1が確定し、状態は射影される。
重要なのは、回路の順序と行列の掛け算順が逆になる点です。回路で左から A→B→C の順に作用させたとき、状態ベクトルへの数式は C·B·A·|ψ> と、後のゲートほど左に積みます(行列は左から作用するため)。擬似コードで書くと直感的です。
# 2量子ビットでベル状態を作る回路
state = |00>
state = (H ⊗ I) · state # q0 にアダマール → (|00>+|10>)/√2
state = CNOT(control=q0, target=q1) · state # → (|00>+|11>)/√2
result = measure(state) # 00 か 11 が各50%で観測される
n 量子ビットの状態は 2 の n 乗次元のベクトルで、個々のゲートはテンソル積 ⊗ で全体のユニタリに拡張します。例えば q0 にだけ H をかけ q1 に何もしないなら、全体は H ⊗ I(4×4行列)。回路の各時刻(レイヤ)は、その時刻に並ぶゲートのテンソル積であり、回路全体はそれらの行列積として1つの巨大ユニタリにまとまります。状態次元が量子ビット数に対し指数的に増えるため、一般の量子回路を古典計算機で愚直にシミュレートするのは困難です。
普遍ゲート集合:有限の部品で任意の計算を
古典計算で {NAND} だけあれば任意の論理関数を作れるように、量子計算にも普遍ゲート集合があります。定義は「その集合のゲートを有限個組み合わせるだけで、任意の n 量子ビットユニタリを任意の精度で近似できる」ことです。古典と違い量子は連続パラメータ(回転角)を持つため「厳密に構成」ではなく「いくらでも良く近似」となる点がポイントです。
理論的支柱がソロヴェイ–キタエフの定理で、ある普遍集合で目標ユニタリを誤差 ε 未満に近似するのに必要なゲート数は、ε に対して穏やか(対数の多項式オーダー)に抑えられることを保証します。つまり普遍集合を1つ用意すれば、精度を上げるコストは破綻しません。代表的な普遍集合を整理します。
| ゲート集合 | 内訳 | 特徴 | 近似か厳密か |
|---|---|---|---|
| {H, T, CNOT} | アダマール・T(π/4位相)・CNOT | 誤り訂正と相性が良い定番。フォールトトレラント量子計算の標準部品 | 任意ユニタリを任意精度で近似 |
| {任意1量子ビット回転, CNOT} | 連続回転ゲート全て+CNOT | 理論議論で扱いやすいが、連続ゲートは物理実装で誤差を持つ | 近似(回転自体が連続量) |
| {H, S, CNOT}(Clifford) | アダマール・S・CNOT のみ | 普遍ではない。Gottesman–Knill 定理により古典で効率シミュレート可能 | 普遍でない(T の追加が必須) |
3行目が示すように、{H, S, CNOT} すなわちクリフォードゲートだけでは普遍にならず、古典計算機で効率的に模倣できてしまうことが知られています(ゴッテスマン–クニルの定理)。ここに T ゲートを1種類加えると一気に普遍になり、古典シミュレーションも困難になります。この「T が量子的な難しさの源泉」という事実は、フォールトトレラント設計で T ゲートのコストが支配的になる理由でもあります。
- ユニタリと可逆:量子ゲート=ユニタリ行列(
U†U=I)で、必ず逆行列U†を持つため可逆。ノルム(確率)を保存することまで言えると満点。 - 各ゲートの役割:X=ビット反転、Z=位相反転、Y=両方、H=重ね合わせ生成(自己逆)、S/T=位相回転、CNOT=もつれ生成。ベル状態
(|00>+|11>)/√2の作り方(H→CNOT)は頻出。 - 回路の読み方:左→右が時間、末尾が測定、行列積は逆順(後のゲートほど左)。
- 普遍ゲート集合:
{H, T, CNOT}が代表。クリフォード({H,S,CNOT})だけでは普遍でなく T が要る、ソロヴェイ–キタエフで近似コストが抑えられる、を押さえる。
まとめ
量子ゲートは状態ベクトルを回すユニタリ行列であり、U†U=I からノルム保存・可逆性が自動的に従います。1量子ビットゲート(X/Y/Z・H・S/T)はブロッホ球の回転として、2量子ビットの CNOT はもつれの生成器として読めば、複雑に見える回路も「左から右への行列積」に還元できます。そして有限の部品 {H, T, CNOT} だけで任意のユニタリを近似できる――この普遍性が、量子アルゴリズムを現実の物理素子へ落とし込む橋渡しになります。可逆計算という共通の土台は プログラミング の計算モデル論や、量子が暗号に与える影響を扱う セキュリティ のポスト量子暗号とも地続きです。
量子コンピューティング Article
量子ゲートと量子回路を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
量子コンピュータ
比較で見る軸
難易度: advanced / カテゴリ: 量子コンピューティング / タグ数: 6
導入後に効く点
1量子ビットゲートはブロッホ球の回転で、パウリ X/Y/Z が各軸まわりのπ回転、アダマール H が基底と重ね合わせを入れ替え、位相ゲート S/T が相対位相を回す。2量子ビットの CNOT が制御ビットに応じてもつれを生む。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- 量子コンピューティング
- タグ数
- 6
判断チェックリスト
- 自社の用途が「量子コンピュータ / 量子ゲート」に近いか確認する。
- 強みである「量子ゲートは状態ベクトルに作用するユニタリ行列 U(U†U=I)であり、内積とノルムを保つ。逆行列が必ず存在するため全ての量子ゲートは可逆で、測定を除く量子演算に情報の消去は起きない。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。