本記事、『量子ゲートの操作と行列:完全リファレンス』は、記述された量子状態を「操作」するための手段である量子ゲートに焦点を当てた、網羅的なリファレンスです。
量子コンピューティングにおける計算とは、この量子ゲートを組み合わせて実行するユニタリ操作に他なりません。
本記事では、すべての量子ゲートを、以下の2つの視点から詳細に解説します。
- 数学的表現: 量子ゲートを定義する行列(ユニタリ行列)。
- 物理的作用: ゲートがブラケット表記の量子状態 \(|\psi\rangle\) に与える効果。
この記事は、主要な量子ゲートすべての辞書として、量子プログラミングの学習と実践を強力にサポートすることを目指します。
目次
I. 量子ゲートの基礎と表現形式
1-1. 量子ゲートの定義とユニタリ性
量子ゲートは、量子状態 \(|\psi\rangle\) を別の量子状態 \(|\psi’\rangle\) へと変換する操作(演算子)であり、古典コンピューティングにおける論理ゲート(AND, NOTなど)に相当します。
ユニタリ性とは、量子状態の時間発展(変化)が、確率の総和を \(1\) に保ち続けるという性質です。
1-1-1. ユニタリ操作としての量子ゲート
量子ゲート \(U\) は、数学的にはユニタリ行列として定義されます。
ユニタリ行列であるという性質は、量子ゲートが満たすべき最も重要な要件であり、以下の式で表現されます。
\(U^\dagger U = UU^\dagger = I\)
上記の式で、
- \(U^\dagger\) はゲート \(U\) のエルミート共役を意味します。
- \(I\) は単位行列を意味します。
1-1-2. ユニタリ性の物理的意味(可逆性)
量子ゲートがユニタリであることには、重要な物理的意味があります。
- 確率の保存(正規化): 量子状態の正規化条件(\(|\alpha|^2 + |\beta|^2 = 1\))が、ゲート操作後も必ず保たれます。
- 情報の可逆性: \(U\) がユニタリ行列であるため、常に逆行列 \(U^{-1}\) が存在し、\(U^{-1} = U^\dagger\) となります。これは、量子ゲートの操作が可逆的(操作を元に戻せる)であることを意味します。
1-2. 量子ゲートの数学的表現
量子ゲート \(U\) は、その作用を記述するために主に2つの数学的表現方法が用いられます。
一つは計算に便利な行列演算、もう一つは作用の過程を分かりやすく示す外積による演算子表現です。
1-2-1. 行列による作用の記述(行列演算)
量子ゲート \(U\) の操作は、行列 \(U\) を状態ベクトル \(|\psi\rangle\) に左から掛けるという、シンプルな行列演算によって記述されます。
量子計算は、この線形代数の枠組みで扱われます。
\(|\psi’\rangle = U|\psi\rangle\)
上記の数式で右辺 \(U|\psi\rangle\) に着目します。
右辺の各項は、行列とベクトルの積の定義上、量子ゲート(行列)\(U\) は常に量子状態(ベクトル)\(|\psi\rangle\) の左側に配置されます。
1-2-2. 外積による演算子表現と作用
量子ゲート \(U\) は、ブラとケットの組み合わせである外積を用いて、その作用を明示する形で表現することも可能です。
この表現は、ゲートがどの基底状態を、どの基底状態に変換するかを直接示します。
\(\text{ゲート } U = \sum_{i, j} \langle j|U|i\rangle |j\rangle \langle i|\)
上記の外積による演算子表現を理解する上で、射影演算子の概念が鍵となります。
ゲート \(U\) の式(\(\sum\) の式)の総和の内部にある 外積 \(|j\rangle\langle i|\) は、射影演算子の概念に基づいた項です。
\(\text{ゲート } U = \sum_{i, j} \underbrace{\langle j|U|i\rangle |j\rangle \langle i|}_{\text{総和の内部}}\)
- 射影演算子(固有名詞): 特定の基底 \(|k\rangle\) へ状態を純粋に射影する演算子は、\(|k\rangle\langle k|\) の形で定義されます。
- 総和の項(\(|j\rangle\langle i|\) の役割): ゲート \(U\) の式(\(\sum\) の式)の総和の内部にある外積 \(|j\rangle\langle i|\) は、射影演算子の概念に基づいた項です。
- \(\langle i|\) の部分は、入力状態から \(|i\rangle\) の成分を抽出(射影)する役割を持ちます。
- \(|j\rangle\) の部分は、抽出された成分を新しい \(|j\rangle\) 状態へ変換(再構成)する役割を持ちます。
1-3. 量子ゲートの分類:外積による演算子表現と作用
1-3-1. 作用(ユニタリ変換)の基本
量子計算における量子ゲート \(U\) は、量子状態 \(|\psi\rangle\) を別の量子状態 \(|\psi’\rangle\) へと変換するユニタリ演算子(行列)です。
この変換は、以下の数式で表されます。
\(|\psi’\rangle = U|\psi\rangle\)
- \(|\psi\rangle\): 量子状態(複素数の縦ベクトル)
- \(U\): 量子ゲート(複素数の行列)
- \(|\psi’\rangle\): 新しい量子状態
上記の数式で右辺の各項に着目すると、行列とベクトルの積の定義により、量子ゲート(行列)\(U\) は常に量子状態(ベクトル)\(|\psi\rangle\) の左側に配置されます。
1-3-2. 外積による演算子表現と作用
量子ゲート \(U\) は、ブラとケットの組み合わせである外積を用いて、その作用を明示する形で表現することも可能です。
この表現を理解するために、まず、その部品となる基本的な演算子から見ていきましょう。
1-3-2-1. 投影演算子(射影演算子)の定義
特定の基底状態 \(|k\rangle\) を用いて \(\vert k \rangle \langle k \vert\) の形で定義される演算子を、投影演算子(または射影演算子)と呼びます。
この演算子は、状態 \(|\psi\rangle\) に作用すると、その状態の \(|k\rangle\) 成分(\(\langle k|\psi\rangle\))を抽出し、結果を \(|k\rangle\) に射影する役割を果たします。
投影演算子の作用:
\((|k\rangle\langle k|)|\psi\rangle = \langle k|\psi\rangle|k\rangle\)
- \(|k\rangle\langle k|\): 投影演算子。状態 \(|\psi\rangle\) から \(|k\rangle\) 成分を抽出する。
- \(|\psi\rangle\): 作用される量子状態(ベクトル)。
- \(\langle k|\psi\rangle\): 内積。状態 \(|\psi\rangle\) のうち、基底 \(|k\rangle\) 方向の振幅(成分)を示す。
- \(|k\rangle\): 射影先の基底。抽出された振幅が、この基底に掛けられる。
1-3-2-2. ゲートの一般外積表現
量子ゲート \(U\) は、この投影演算子を組み合わせた以下のような総和の形で表現されます。
\(ゲート \ U = \sum_{i,j} |j\rangle\langle j|U|i\rangle\langle i|\)
- \(\sum_{i,j}\): 全ての基底状態のペア \((|i\rangle, |j\rangle)\) に関する総和。
- \(|j\rangle\langle j|\): 変換後の状態 \(|j\rangle\) に射影するための投影演算子。
- \(U\): 量子ゲート(変換演算子)。
- \(|i\rangle\langle i|\): 変換前の状態 \(|i\rangle\) の成分を抽出するための投影演算子。
この定義されたゲート \(U\) を、任意の量子状態 \(|\psi\rangle\) に作用させた際の数式は、以下のようになります。
作用(計算プロセス)
\(U|\psi\rangle = \sum_{i,j} |j\rangle\langle j|U|i\rangle\langle i| \cdot |\psi\rangle\)
この作用後の数式を見ると、次のプロセスが明確になります。
- 右端の投影演算子 \(|i\rangle\langle i|\) が状態 \(|\psi\rangle\) から \(|i\rangle\) 成分を抽出します。
- 抽出された \(|i\rangle\)成分を含む状態が、ゲート \(U\) によって変換されます。
- 左端の投影演算子 \(|j\rangle\langle j|\) が、変換結果から \(|j\rangle\) 成分だけを選び出し、その重み(振幅)を確定させます。
第2章:主要な単一量子ゲートの表現
ここでは、量子計算の基礎となる主要な1量子ビットゲートについて、その行列表現と、前章で学んだ外積表現を解説します。
量子ゲートは、ユニタリ行列として表現されます。2次元のヒルベルト空間における1量子ビットゲートは、以下の2つの方法で記述できます。
| 記述方法 | 形式 | 特徴 |
|---|---|---|
| 行列表現 | \(2 \times 2\) 行列 | 量子状態ベクトルに作用する際の具体的な計算規則を示す。 |
| 外積表現 | \(\sum_{i,j} \alpha_{ij} |j\rangle\langle i|\) | ゲートが基底状態をどのように変換するかという論理的な役割を示す。 |
なお、単一量子ゲートには、任意の回転角度や位相といったパラメータを持つ一般化されたゲート(\(R_x, R_y\)など)も存在しますが、これらは理論的な一般化という目的から、第4章:一般化された回転ゲートと表現で後述します。
2-1. パウリゲート(X, Y, Z)
パウリゲートは、量子情報の反転や位相の操作を行う最も基本的なゲートです。
2-1-1. パウリ-X ゲート (Pauli-X Gate)
パウリ-X ゲートは、古典的な NOT ゲートに相当し、量子状態のビットを反転させます(\(|0\rangle \leftrightarrow |1\rangle\))。
- 行列表現:
- \(X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}\)
- 外積表現:
- \(X = |0\rangle\langle 1| + |1\rangle\langle 0|\)
- 作用:\(X\) は \(|0\rangle\) を \(|1\rangle\) に、 \(|1\rangle\) を \(|0\rangle\) に変換します。
2-1-2. パウリ-Y ゲート (Pauli-Y Gate)
パウリ-Y ゲートは、ビット反転と位相の回転を同時に行います。
- 行列表現:
- \(Y = \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix}\)
- 外積表現:
- \(Y = i|0\rangle\langle 1| – i|1\rangle\langle 0|\)
- 作用:\(Y\) は \(|0\rangle\) を \(i|1\rangle\) に、 \(|1\rangle\) を \(-i|0\rangle\) に変換します。
2-1-3. パウリ-Z ゲート (Pauli-Z Gate)
パウリ-Z ゲートは、位相ゲートとも呼ばれ、量子状態 \(|1\rangle\) にのみ \(-\mathbf{1}\) の位相変化を与えます。
- 行列表現:
- \(Z = \begin{pmatrix} 1 & 0 \\ 0 & -1 \end{pmatrix}\)
- 外積表現:
- \(Z = |0\rangle\langle 0| – |1\rangle\langle 1|\)
- 作用:\(Z\) は \(|0\rangle\) を \(|0\rangle\) のままに保ち、 \(|1\rangle\) を \(-|1\rangle\) に変換します。
こちらで解説されているとおり、量子状態 \(|0\rangle\) は \(\begin{pmatrix} 1 \\ 0 \end{pmatrix}\) に対応し、\(|1\rangle\) は \(\begin{pmatrix} 0 \\ 1 \end{pmatrix}\) に対応します。
よって、\(|1\rangle\) の成分である \(\begin{pmatrix} 0 \\ 1 \end{pmatrix}\) にのみ \(-\mathbf{1}\) の位相変化を与えるため、上記結果になるということです。
2-2. 位相ゲート(S Gate, T Gate)
パウリ-Zゲートは \(180^{\circ}\) の位相回転でしたが、量子計算で頻繁に使われる \(90^{\circ}\) や \(45^{\circ}\) の位相回転を行うゲートがあります。
2-2-1. Sゲート (Phase Gate)
Sゲートは、\(\mathbf{90}^{\circ}\) の位相回転を与えるゲートです。
- 行列表現:
- \(S = \begin{pmatrix} 1 & 0 \\ 0 & i \end{pmatrix}\)
- 外積表現:
- \(S = |0\rangle\langle 0| + i|1\rangle\langle 1|\)
2-2-2. Tゲート (T Gate)
Tゲートは、\(\mathbf{45}^{\circ}\) の位相回転(\(\pi/4\) ラジアン)を与えるゲートで、多くの高度な量子アルゴリズム(量子フーリエ変換など)の構築要素として利用されます。
- 行列表現:
- \(T = \begin{pmatrix} 1 & 0 \\ 0 & e^{i\pi/4} \end{pmatrix}\)
- 外積表現:
- \(T = |0\rangle\langle 0| + e^{i\pi/4}|1\rangle\langle 1|\)
2-3. アダマールゲート (H Gate)
アダマールゲートは、量子計算で最も重要なゲートの一つで、重ね合わせ状態を作り出すために使用されます。
- 行列表現:
- \(H = \frac{1}{\sqrt{2}}\begin{pmatrix} 1 & 1 \\ 1 & -1 \end{pmatrix}\)
- 外積表現:
- \(H = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)\langle 0| + \displaystyle\frac{1}{\sqrt{2}}(|0\rangle – |1\rangle)\langle 1|\)
- 作用:\(H\) は \(|0\rangle\) を 均等な重ね合わせ状態 \(\displaystyle\frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)\) に変換し、 \(|1\rangle\) を \(\displaystyle\frac{1}{\sqrt{2}}(|0\rangle – |1\rangle)\) に変換します。
第3章:複数量子ゲート
前項1-4.で解説した単一量子ビットゲートは、1つの量子ビットのみを操作するものでした。
しかし、量子計算の本質である量子もつれ(エンタングルメント)や複雑な論理を構築するためには、複数の量子ビット間に作用するゲートが必要となります。
これが複数量子ゲートです。
\(n\) 個の量子ビットに作用する複数量子ゲートは、 \(2^n \times 2^n\) の行列として表現されます。
3-1. C-NOTゲート (Controlled-NOT Gate)
C-NOTゲートは、制御量子ビット (Control Qubit) と 標的量子ビット (Target Qubit) の2つの量子ビットから構成されます。
C-NOTゲートの作用は以下の規則に従います。
- 制御ビットが \(|0\rangle\) の場合: 標的ビットは変化しません。
- 制御ビットが \(|1\rangle\) の場合: 標的ビットに NOT操作(パウリ-X)を適用し、ビットを反転させます(\(|0\rangle \leftrightarrow |1\rangle\))。
C-NOTゲートを制御ビットを最上位ビット(左側)、標的ビットを最下位ビット(右側)として表現すると、以下のようになります。
- 行列表現 (\(4 \times 4\) 行列):
- \(\text{CNOT} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{pmatrix}\)
- 外積表現:
- \(\text{CNOT} = |00\rangle\langle 00| + |01\rangle\langle 01| + |11\rangle\langle 10| + |10\rangle\langle 11|\)
3-2. SWAPゲート (Swap Gate)
SWAPゲートは、2つの量子ビットの状態を完全に交換するゲートです。
- 行列表現 (\(4 \times 4\) 行列):
- \(\text{SWAP} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}\)
- 外積表現:
- \(\text{SWAP} = |00\rangle\langle 00| + |10\rangle\langle 01| + |01\rangle\langle 10| + |11\rangle\langle 11|\)
3-3. Toffoliゲート (Controlled-Controlled-NOT Gate, CCNOT)
Toffoliゲートは、2つの制御量子ビットと1つの標的量子ビットを持つ3量子ビットゲートです。
これは、古典計算におけるANDゲートとNOTゲートの機能を持ち、古典的なユニバーサルゲートセットに相当します。
Toffoliゲートの作用は以下の規則に従います。
- 2つの制御ビットが両方とも \(|1\rangle\) の場合のみ、標的ビットを反転させます。
量子ゲートの行列表現のサイズ(次元)は、ゲートが作用する量子ビットの数 \(n\) によって決定されます。
前述の通り、Toffoliゲートは3つの量子ビットに作用するゲートであるため、\(2^3 \times 2^3 = \mathbf{8 \times 8}\) のサイズを持ちます。
行列と外積でそれぞれ表現すると以下のようになります。
- 行列表現 (\(8 \times 8\) 行列):
- \(\text{Toffoli} = \begin{pmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{pmatrix}\)
- 外積表現:
- \(\text{Toffoli} = |000\rangle\langle 000| + |001\rangle\langle 001| + |010\rangle\langle 010| + |011\rangle\langle 011| + |100\rangle\langle 100| + |101\rangle\langle 101| + |111\rangle\langle 110| + |110\rangle\langle 111|\)
第4章:一般化された回転ゲートと表現
第2章では、行列成分が固定された基本的な単一量子ゲートを解説しました。
しかし、実際の量子アルゴリズムでは、連続した角度(パラメータ \(\theta\) や \(\phi\))で状態を操作する一般化されたゲートが不可欠となります。
本章では、以下の2つの「表現」に焦点を当てます。
- テンソル積: 複数量子系に単一ゲートを作用させる際の、行列表現を構築するための数学的手法。
- パラメーター化された単一量子ゲート: 任意の角度で回転や位相シフトを可能にする一般回転ゲート(\(R_x, R_y, R_z\))や一般位相シフト(Pゲート)の表現。
この章の内容は、新たな量子ゲートを紹介するとともに、第2章で扱った論理的な基礎を、より汎用的な数学的表現へと拡張する役割を持ちます。
4-1. テンソル積による複数量子系の表現
複数量子ゲートの作用を数学的に厳密に理解するためには、テンソル積(Kronecker積とも呼ばれる)の概念が不可欠です。
テンソル積は、単一ゲートを行列表現として複数量子系全体に作用させるための、次元拡張の数学的手法です。
「テンソル積」は上記の演算(操作)の呼び名であり、その操作を指示する記号として \(\otimes\) が使用されます。
表記の慣例:\(\otimes\) が省略される場合と省略されない場合
量子情報科学では、テンソル積の記号 \(\otimes\) は、その対象が量子状態(ベクトル)であるか、量子ゲート(行列/演算子)であるかによって、表記方法が慣例的に区別されます。
- 状態(ベクトル)の表記:
- 省略されます。量子状態の物理的な結合を表すため、テンソル積の記号 \(\otimes\) は省略され、単純に隣り合わせに記述されます。
- 例: \(|\psi_1\rangle \otimes |\psi_2\rangle \Rightarrow |\psi_1 \psi_2\rangle\)
- ゲート(行列/演算子)の構築:
- 省略されません。複数の行列(ゲート)を組み合わせる際、行列の積(\(UV\))とテンソル積(\(U \otimes V\))は完全に異なる数学的演算です。記号 \(\otimes\) を省略すると、意図する演算の種類(次元拡張か、連続操作か)が判別不可能になるため、明記が必須です。
- 例: \(U \otimes I \neq UI\) (演算の種類が異なるため、記号は省略できません)
4-1-1. テンソル積による状態の表現
2つの量子ビット \(|\psi_1\rangle\) と \(|\psi_2\rangle\) からなる複合系の状態 \(|\Psi\rangle\) は、それぞれの状態のテンソル積として記述されます。
\(|\Psi\rangle = |\psi_1\rangle \otimes |\psi_2\rangle\)
例えば、2つの基底状態 \(|0\rangle = \begin{pmatrix} 1 \\ 0 \end{pmatrix}\) と \(|1\rangle = \begin{pmatrix} 0 \\ 1 \end{pmatrix}\) の組み合わせ \(|01\rangle\) は、以下の \(4\) 次元ベクトルとして表現されます。
\(|01\rangle = |0\rangle \otimes |1\rangle\)
\(= \begin{pmatrix} 1 \\ 0 \end{pmatrix} \otimes \begin{pmatrix} 0 \\ 1 \end{pmatrix}\)
\(= \begin{pmatrix} 1 \cdot \begin{pmatrix} 0 \\ 1 \end{pmatrix} \\ 0 \cdot \begin{pmatrix} 0 \\ 1 \end{pmatrix} \end{pmatrix} = \begin{pmatrix} 0 \\ 1 \\ 0 \\ 0 \end{pmatrix}\)
4-1-2. テンソル積による複合ゲートの作用
単一の量子ビットにのみ作用するゲート \(U\) を複数量子ビット系全体に作用させる場合、作用しない側の量子ビットには恒等演算子 \(I = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}\) をテンソル積で組み合わせて、複合ゲート \(U_{total}\) の行列表現を構築します。
- 最初の量子ビットに \(U\) を作用させる場合(\(q_1, q_0\) の順):
- \( U_{total} = U \otimes I\)
- 2番目の量子ビットに \(U\) を作用させる場合:
- \( U_{total} = I \otimes U\)
このテンソル積によって構築された複合ゲートは、複合状態ベクトル \(|\Psi\rangle\) に作用することで、状態を正しく変換します。
4-2. 一般的な回転ゲート(\(R_x, R_y, R_z\))
第2章で解説したパウリ-Xゲートなどは、特定の角度(\(180^\circ\))で量子状態を回転させる固定ゲートでした。
このセクションで解説する一般回転ゲートは、量子ビットをブロッホ球上の任意の軸周りに、角度 \(\theta\) というパラメータを用いて回転させる単一量子ゲートです。
次の3種類のゲートを紹介しますが、それぞれ第2章で解説したパウリゲートと関係があります。
- R-Xゲート (\(R_x(\theta)\)):パウリ-Xゲートと関係あり
- R-Yゲート (\(R_y(\theta)\)):パウリ-Yゲートと関係あり
- R-Zゲート (\(R_z(\theta)\)):パウリ-Zゲート、位相ゲート(S, T)と関係あり
4-2-1. R-Xゲート (\(R_x(\theta)\))
\(R_x(\theta)\) ゲートは、ブロッホ球上のX軸の周りに、角度 \(\theta\) だけ量子状態を回転させます。
- 行列表現:
- \(R_x(\theta) = \begin{pmatrix} \cos(\theta/2) & -i\sin(\theta/2) \\ -i\sin(\theta/2) & \cos(\theta/2) \end{pmatrix}\)
- パウリ-Xとの関係:\(\theta = \pi\) (\(180^\circ\))のとき、\(R_x(\pi) = -iX\) となり、グローバル位相を無視すればパウリ-Xゲート(NOT操作)と一致します。
4-2-2. R-Yゲート (\(R_y(\theta)\))
\(R_y(\theta)\) ゲートは、ブロッホ球上のY軸の周りに、角度 \(\theta\) だけ量子状態を回転させます。
- 行列表現:
- \(R_y(\theta) = \begin{pmatrix} \cos(\theta/2) & -\sin(\theta/2) \\ \sin(\theta/2) & \cos(\theta/2) \end{pmatrix}\)
- パウリ-Yとの関係:\(\theta = \pi\) (\(180^\circ\))のとき、グローバル位相 \(i\) を除けばパウリ-Yゲートと一致します。
4-2-3. R-Zゲート (\(R_z(\theta)\))
\(R_z(\theta)\) ゲートは、ブロッホ球上のZ軸の周りに、角度 \(\theta\) だけ量子状態を回転させます。
- 行列表現:
- \(R_z(\theta) = \begin{pmatrix} e^{-i\theta/2} & 0 \\ 0 & e^{i\theta/2} \end{pmatrix}\)
- パウリ-Zとの関係:\(\theta = \pi\) (\(180^\circ\))のとき、グローバル位相 \(-i\) を除けばパウリ-Zゲートと一致します。
- 位相ゲートとの関係:\(R_z(\theta)\) は、2-2.で扱ったSゲートやTゲートといった固定位相シフトゲートの操作を角度 \(\theta\) で一般化したものです。
- Pゲートとの関係:\(R_z(\theta)\) は、Pゲートと、グローバル位相の違いを除いて等価な操作であり、相互に変換可能です。Pゲートについては次セクション4-3.で後述します。
4-3. Pゲート (一般位相シフト)
Pゲート(Phase Shift Gate)は、Z軸周りの一般回転ゲート \(R_z(\theta)\) から導かれる特殊なケースです。
このゲートは、基底 \(|1\rangle\) の位相のみを \(\phi\) だけシフトさせ、基底 \(|0\rangle\) の状態はそのまま維持します。
量子アルゴリズムにおいて、状態に特定の位相情報を書き込む(位相キックバック)ために頻繁に使用されます。
4-3-1. 行列と作用
Pゲートは、パラメータ \(\phi\) を用いて以下の\(2 \times 2\) 行列で表現されます。
- 行列表現:
- \(P(\phi) = \begin{pmatrix} 1 & 0 \\ 0 & e^{i\phi} \end{pmatrix}\)
- 作用:Pゲートは、状態 \(|\psi\rangle = \alpha|0\rangle + \beta|1\rangle\) に作用すると、以下の通り、\(|1\rangle\) の係数 \(\beta\) の位相のみを変化させます。
- \( P(\phi)|\psi\rangle = \alpha|0\rangle + \beta e^{i\phi}|1\rangle\)
4-3-2. R-Zゲートとの関係
Pゲートは、R-Zゲート (\(R_z(\theta) = \begin{pmatrix} e^{-i\theta/2} & 0 \\ 0 & e^{i\theta/2} \end{pmatrix}\)) と密接な関係があります。
\(R_z(\theta)\) のパラメータ \(\theta\) と Pゲートの位相 \(\phi\) の間に \(\phi = \theta\) の関係があるとき、 \(R_z(\theta)\) は Pゲートとグローバル位相(全体位相)の違いを除いて等価です。
\(R_z(\phi) = e^{-i\phi/2} \cdot P(\phi)\)
このため、量子回路の設計においては、多くの場合、操作の目的によって \(R_z\) と \(P\) が使い分けられます。
4-4. 一般ユニタリゲートとオイラー分解
量子計算における全ての操作はユニタリ行列で記述されるため、任意の単一量子ビットゲート \(U\) も \(2 \times 2\) のユニタリ行列です。
このセクションでは、任意の単一量子ゲート \(U\) が、前述の一般回転ゲートの組み合わせで表現できることを示します。
4-4-1. 一般ユニタリゲートの行列表現
任意の \(2 \times 2\) ユニタリ行列 \(U\) は、一般的に以下の4つの実数のパラメータ \(\alpha, \beta, \gamma, \delta\) を用いて表現されます。
\(U =\)
\(e^{i\alpha} \begin{pmatrix} \cos(\beta/2) e^{-i(\gamma+\delta)/2} & -\sin(\beta/2) e^{-i(\gamma-\delta)/2} \\ \sin(\beta/2) e^{i(\gamma-\delta)/2} & \cos(\beta/2) e^{i(\gamma+\delta)/2} \end{pmatrix}\)
ただし、Qiskitなどの実際の量子コンピュータのフレームワークでは、このグローバル位相 \(\alpha\) を無視(あるいは定数として扱う)し、測定結果に影響を与える3つのパラメータのみを使ってゲートを定義します。
そのため、理論的に4つのパラメータを持つ一般ユニタリ行列を、実用上は3つのパラメータを持つ\(\text{U}_3\) ゲートとして扱うのです。
4-4-2. \(\text{U}_3\) ゲートのパラメータと包括性
前述のとおり、一般ユニタリゲートは、3つの実数パラメータ (\(\theta, \phi, \lambda\)) を用いることから「\(\text{U}_3\) ゲート」とも呼ばれます。
このパラメータ化により、ゲートの直感的な理解が深まります。
この\(\text{U}_3\) ゲートは、パラメータの値を特定の定数に設定することで、\(\text{R}_Y\) や \(\text{R}_Z\) など、他のすべての単一量子ビットゲートを表現できます。
単一量子ビット操作においては、\(\text{U}_3\) ゲートさえあれば、他のパウリゲートやアダマールゲートは原理的に不要であること(ユニバーサル性)が示されます。
| ゲート | 役割 | \(\text{U}_3\) ゲートの設定 \((\theta, \phi, \lambda)\) |
|---|---|---|
| \(\text{R}_X(\theta)\) | X軸周りの回転 | \(\text{U}_3(\theta, -\pi/2, \pi/2)\) |
| \(\text{R}_Y(\theta)\) | Y軸周りの回転 | \(\text{U}_3(\theta, 0, 0)\) |
| \(\text{R}_Z(\lambda)\) | Z軸周りの回転 | \(\text{U}_3(0, 0, \lambda)\) |
| \(\text{P}(\lambda)\) | 一般位相シフト | \(\text{U}_3(0, 0, \lambda)\) |
| \(\text{H}\) | 重ね合わせ生成 | \(\text{U}_3(\pi/2, 0, \pi)\) |
| \(\text{X}\) | ビット反転 (NOT) | \(\text{U}_3(\pi, -\pi/2, \pi/2)\) |
| \(\text{Y}\) | 反転と位相シフト | \(\text{U}_3(\pi, \pi/2, \pi/2)\) |
| \(\text{Z}\) | 位相フリップ | \(\text{U}_3(0, 0, \pi)\) |
| \(\text{S}\) | \(\pi/2\) 位相シフト | \(\text{U}_3(0, 0, \pi/2)\) |
| \(\text{T}\) | \(\pi/4\) 位相シフト | \(\text{U}_3(0, 0, \pi/4)\) |
4-4-3. ゲートの分解(オイラー分解)
量子情報科学におけるオイラー分解とは、この任意のユニタリ行列 \(U\) が、特定の回転ゲートの積として常に分解できることを示す定理です。
量子回路を構築する際、一般ユニタリゲート \(U\) は、ブロッホ球の回転軸であるX, Y, Z軸周りの3種類の一般回転ゲートの組み合わせに分解されます。
グローバル位相 \(e^{i\alpha}\) は物理的な観測結果に影響しないため、これを無視すれば、以下の形式で分解されます。
\(U \approx R_z(\gamma) R_y(\beta) R_z(\delta)\)
この分解により、任意の複雑な単一量子ビット操作であっても、わずか3つの基本回転ゲートの組み合わせとして実装可能であることが示されます。
これは、量子回路を設計する上でユニバーサル性(普遍性)を保証する鍵となります。
まとめ
本リファレンスを通じて、量子ゲート操作が行列とベクトルによって厳密に記述されることを確認しました。
量子計算は、このゲート操作の体系的な理解の上に成り立っています。
リファレンス全体の流れを再確認し、量子ゲートを理解する上で重要な以下のポイントをまとめます。
① ゲートの階層と分類
本記事で解説した量子ゲートは、その機能と適用範囲に応じて、明確な階層で分類されます。
- 第2章:単一量子ゲートの表現: 量子計算の最も基本的な要素であり、パウリゲートなど、行列成分が固定された操作を学びました。
- 第3章:複数量子ゲートの表現: 量子のもつれを生成するC-NOTや、古典論理回路に対応するToffoliなど、複数の量子ビット間に作用するゲートを学びました。
- 第4章:一般化された回転ゲートと表現: \(R_x, R_y, R_z\) といった任意の角度 \(\theta\) で操作できるパラメータ化されたゲートを導入し、単一量子ゲートの普遍的な表現を確立しました。
② 行列表現の普遍性とユニバーサル性
量子ゲート操作は、全てユニタリ行列として表現されます。
特に、オイラー分解によって、任意の単一量子ゲート操作はわずか3つの基本回転ゲート(\(R_x, R_y, R_z\))に分解できることが示されました。
この事実は、特定の少数のゲートのセット(ユニバーサルゲートセット)があれば、原理的には全ての量子計算を実行できることを意味します。


コメント