量子コンピューティングにおける高度なマトリックスの概念

この記事では、"固有値"、"固有ベクトル"、"指数" の概念について説明します。 これらの概念により、量子アルゴリズムの記述と実装に使用される行列ツールの基本セットが形成されます。 量子コンピューティングに適用されるベクトルとマトリックスの基本については、「量子コンピューティングの 線形代数 」と 「ベクトルと行列」を参照してください。

固有値と固有ベクトル

$M$ を正方行列とし、$v$ をベクトルとします。これは、どれもゼロ ベクトル (たとえば、すべてのエントリが $0$ に等しいベクトル) ではありません。

$Mv = cv$ ($c$ には何らかの数値が入ります) である場合に、ベクトル $v$ が $M$ の "固有ベクトル" です。 整数 $c$ は固有ベクトル $v$ に対応する "固有値" です。 一般に、行列 $M$ により、ベクトルを他のベクトルに変換できます。 ただし、固有ベクトルは、数値を乗算する以外では変更されないため特別です。 $v$ が固有値 $c$ を持つ固有ベクトルである場合、$av$ は同じ固有値を持つ固有ベクトル (0 以外の $a$ の場合) になります。

たとえば、ID 行列の場合、すべてのベクトル $v$ は固有値 $1$ を持つ固有ベクトルになります。

もう 1 つの例として、対角線に 0 以外のエントリのみを持つ "対角行列"$D$ を考えてみます。

$$\begin{bmatrix}&d_1 amp; 0 & 0 \\ 0 & d_2 & 0 \\ 0 & 0 & d_3\end{bmatrix}. $$

ベクトル

$$\begin{bmatrix}1 \\ 0 \\ 0 \end{bmatrix}、\begin{bmatrix}0 \\ 1 \\ 0\end{bmatrix}\text{、}\begin{bmatrix}0 \\ 0 \\ 1\end{bmatrix}$$ は、

それぞれ $d_1$、$d_2$、$d_3$ という固有値を持つこの行列の固有ベクトルとなります。 $d_1$、$d_2$、$d_3$ が個別の数値の場合、これらのベクトル (およびその倍数) は行列 $D$ の唯一の固有ベクトルとなります。 通常、対角行列の場合は、固有値と固有ベクトルを簡単に読み取ることができます。 固有値は対角線上に表示されるすべての数値であり、それぞれの固有ベクトルは、1 つのエントリが $1$ に等しく、残りのエントリが $0$ に等しい単位ベクトルになります。

上の例では、$D$ の固有ベクトルが $3$ 次元ベクトルのベースになっていることに注目してください。 ベースはベクトルのセットであり、それらを線形の組み合わせとして書き込むことができます。 より明確にすると、ベクトル $v$ を $v=a_1 v_1 + a_2 v_2 + a_3 v_3$ ($a_1$、$a_2$、$a_3$ には何らかの数値が入ります) として記述することができる場合、$v_1$、$v_2$、$v_3$ がベースを形成します。

量子コンピューティングでは、基本的に 2 つの行列 (エルミートとユニタリ) のみ使用されます。 ヘルミート行列(自己隣接とも呼ばれる)は、それ自体の複素共役転置と等しい複雑な正方形行列であり、ユニタリ行列は、 その逆 がその複素共役転置と等しい複雑な正方形行列であることを思い出してください。

スペクトル定理と呼ばれる一般的な結果があります。これは、ヘルミティア行列またはユニタリ行列 M$ の場合、対角行列 $$D$ に対して M=U^\dagger D U のような$ユニタリ $U$$ が存在します。 さらに、D の$対角線エントリは M$ の$固有値になり、U^\dagger$ の列$は対応する固有ベクトル$になります。 この因数分解は 、スペクトル分解 または 固有分解と呼ばれます。

行列指数

指数関数と完全に同じように "行列指数" を定義することもできます。 行列 $A$ の行列指数は次のように表せます。

$$ e^A=\mathbf{1} + A + \frac{A^2}{2!}+\frac{A^3}{3!}+\cdots$$

量子力学の機械的な時間発展は $e^{iB}$ という形のユニタリ行列 (エルミート行列の場合は $B$) によって記述されるため、これは重要です。 そのため、行列指数関数の実行は、量子コンピューティングの基本的な部分であり、Q# では、これらの演算を記述するための組み込みルーチンが用意されています。 古典的なコンピューターで行列指数を計算する方法はたくさんありますが、通常、指数関数のような近似方式には、リスクが伴います。 関連する課題の詳細については、"Cleve Moler と Charles Van Loan による&「行列の指数関数を計算する 19 の疑わしい方法」&(SIAM review 20.4 (1978): 801-836)" を参照してください。

行列の指数関数を計算する方法を理解する最も簡単な方法は、その行列の固有値と固有ベクトルを使用することです。 具体的には、上述のスペクトル定理では、すべてのエルミートまたはユニタリ行列 $A$ に対して、ユニタリ行列 $U$ と $A=U^\dagger D U$ のような対角行列 $D$ が存在することが示されています。 ユニタリの特性により、$A^2 = U^\dagger D^2 U$ を使用できます ($A^p = U^\dagger D^p U$ で $p$ は任意の指数)。 これを演算子指数の演算子定義に置き換えると、次のようになります。

$$ e^A= U^\dagger\left(\mathbf{1} +D +\frac{D^2}{2!}+\cdots\right)U= ^\dagger\begin{bmatrix}\exp(D_{{11}) & 0 &\cdots&アンプ;0\\ 0 & \exp(D_{22})&\cdots&アンプ;0\\ \vdots &\vdots &\ddots&\vdots\\ 0&0&\cdots&\exp(D_{NN}) \end{bmatrix} U. $$

つまり、行列 $A$ の固有基底に変換する場合、行列指数を計算することは、行列の固有値の通常指数を計算することと同じです。 量子コンピューティングの多くの演算には行列指数の実行が含まれるため、行列の固有基底に変換して演算子指数の実行を簡略化するこの技法はよく使用されています。 これは、このガイドの後半で説明する Trotter-Suzuki スタイルの量子シミュレーション メソッドなど、多くの量子アルゴリズムの基盤となっています。

別の便利なプロパティは 、インボルトリー 行列に対して保持されます。 インボルトリー 行列 $B$ は、ユニタリとヘルミートの両方、つまり $B=B^{-1}=B^ です\dagger$。 次に、インボルトリー 行列は、それ自体の逆 $B^2 と等しい正方形の行列です=\mathbf{1}$。 このプロパティを行列指数の上の拡張に適用し、 と B 項をグループ化$\mathbf{1}$し、コサイン関数とサイン関数に Maclaurin の定理を適用することで、ID$$

$$e^{iBx}=\mathbf{1} \cos(x)+ iB\sin(x)$$

は、実際の値 $x に対して を保持します$。 このトリックは特に便利です。B の次元$が指数関数的に大きい場合でも、B$ がインボルトリーの場合$$に、行列指数が持つアクションを推論できるためです。

次の手順