次の方法で共有


量子コンピューティングのベクトルと行列の操作

量子コンピューティングの理解には、ベクトルと行列に関する一定の知識が不可欠です。 量子コンピューティングの線形代数に関する記事では簡単な更新が提供されており、詳細を確認したい読者は、Strang、G. (1993) などの線形代数に関する標準リファレンスを読み取うことをお勧めします。線形代数の概要 (第 3 巻)。Wellesley、MA: Wellesley-Cambridge Press または線形代数などのオンライン参照。

ベクトル

$n$ 次元 (またはサイズ) の列ベクトル (または単にベクトル) $v$ は、列として配置された $n$ 個の複素数 $(v_1,v_2,\ldots,v_n)$ の集合です。

$$v=\begin{bmatrix} v_1\\ v_2\\ \vdots\\ v_n \end{bmatrix}$$

ベクトル $v$ のノルムは $\sqrt{\sum_i |v_i|^2}$ として定義されます。 ベクトルのノルムが $1$ である場合、そのベクトルは単位ノルムであると言います (または、単位ベクトルと呼ばれます)。 "ベクトルの随伴" $v$ は $v^\dagger$ と表され、次の行ベクトルであると定義されます。ここで、$*$ は複素共役を表します。

$$\begin{bmatrix}\\ ^v_1^\dagger=\begin{bmatrix}* & v_n \end{bmatrix}\vdots \\ をv_1します。 \cdots&アンプ;v_n^*\end{bmatrix}$$

列ベクトル $v$ と行ベクトル $v^\dagger$ が区別されていることに注意してください。

内積

"ドット積" または "スカラー積" とも呼ばれる "内積" を通じて 2 つのベクトルを乗算できます。 名前が示すように、2 つのベクトルの内積の結果はスカラーです。 内積は、あるベクトルを別のベクトルに射影するものであり、あるベクトルを、他のより単純なベクトルの合計として表現する方法を説明するうえで非常に重要です。 $\left\langle u, v\right\rangle$ と表される 2 つの列ベクトル $u=(u_1 , u_2 , \ldots , u_n)$ と $v=(v_1 , v_2 , \ldots , v_n)$ の内積は、次のように定義されます。

$$\left\langleu、v\right\rangle= u^\dagger v=\begin{bmatrix}u_1^* & \cdots&アンプ;u_n^* \end{bmatrix}\begin{bmatrix}v_1\\ \vdots\\ v_n u_1=\end{bmatrix}^{*} v_1 + + \cdots _n^{*} v_n。 $$

この表記では、ベクトル $v$ のノルムを $\sqrt{\langle v, v\rangle}$ と記述することもできます。

ベクトルに数値 $c$ を乗算して、新しいベクトルを形成できます。この新しいベクトルの成分に $c$ が乗算されます。 2 つのベクトル $u$ と $v$ を追加して、新しいベクトルを形成することもできます。この新しいベクトルの成分は、$u$ と $v$ の成分の合計です。 これらの操作を次に示します。

$$\mathrm{If}~u =\begin{bmatrix} u_1\\ u_2\\ \vdots\\ u_n \end{bmatrix}~\mathrm{and}~ v =\begin{bmatrix} v_1\\ v_2\\ \vdots\\ v_n \end{bmatrix},~\mathrm{then}~ au+bv =\begin{bmatrix} au_1+bv_1\\ au_2+bv_2\\ \vdots\\ au_n+bv_n \end{bmatrix}. $$

サイズ $m \times n$ の行列は、次に示すように、$m$ 行と $n$ 列に配置された $mn$ 個の複素数の集合です。

$M =\begin{bmatrix} M_~~{11}{ M_\cdots{12}~~~~ M_{1n}\\ M_{{21}~~ M_ M_~~~~{{22}{\cdots2n}\\\ddots\\ M_{m1}~~ M_{m2~~\cdots}~~ M_{mn}\\\end{bmatrix} です。$

$n$ 次元のベクトルは、単にサイズ $n \times 1$ の行列であることに注意してください。 ベクトルと同様に、行列に数値 $c$ を乗算して新しい行列を得ることができます。この新しい行列のすべての成分に $c$ が乗算されます。また、同じサイズの 2 つの行列を追加して新しい行列を生成できます。この新しい行列の成分は、元の 2 つの行列それぞれの成分の合計です。

行列乗算

次のように、$m\times n$ 次元の行列 $M$ と、$n \times p$ 次元の行列 $N$ の 2 つを乗算して、$m \times p$ 次元の新しい行列 $P$ を得ることもできます。

$$\begin{\begin{align}&アンプ;\begin{bmatrix}M_ M_ M_~~~~\cdots{12}1n}\\ M_{ M_~~{21}{ M_{22}~~\cdots~~{2n\ddots\\}\\ M_m1}~~ M_{{m2~~}~~\cdots M_{mn N_ N_ N_1p}\\ N_~~~~{~~\cdots{12}\begin{bmatrix}{\cdots}\end{bmatrix}{{11}~~~~{{22}~~{21} N_ N_{2p}\\\ddots\\ N_{n1}~~ N_n2~~}~~\cdots N_{{ P_{{11}~~np P_}\end{bmatrix}=\begin{bmatrix}{{11}~~{12}~~\cdots~~{P_1p}\\ P_~~{{21} P_\cdots{22}~~{~~ P_{2p}\\\ddots\\ P_{m1}~~ P_{m2~~\cdots}~~ P_mp{}\end{bmatrix}\end{align}$$

ここで、$P$ の成分は $P_{ik}=\sum_j M_{ij}N_{jk}$ です。 たとえば、成分 $P_{11}$ は、$M$ の最初の行と $N$ の最初の列の内積です。 ベクトルは単に行列の特殊なケースであるため、この定義は行列ベクトル乗算に拡張されることに注意してください。

ここで検討するすべての行列は、行と列の数が等しい正方行列か、$1$ 列のみに対応するベクトルのいずれかになります。 1 つの特殊な正方形行列は、ID 行列で示されます$\mathbb{\mathbb{I}$。この行列には、すべての対角線要素が 1$ に$等しく、残りの要素が 0$ になります$。

$\mathbb{\mathbb{I}=\begin{bmatrix}1 ~~ 0\cdots~~~~0 0\\ 1\cdots~~~~~~ 0 0\ddots\\~~\\~~0\cdots~~~~ 1 .\end{bmatrix}$

平方行列 $A$ の場合、AB = BA\mathbb{I}$\mathbb{= の場合$、行列 $B$ はそのになります。 逆行列は存在するとは限りませんが、存在する場合は一意であり、これを $A^{-1}$ と表します。

任意の行列 $M$ に関して、$M$ の随伴または共役転置は行列 $N$ であり、$N_{ij}= M_{ji}^*$ のようになります。 $M$ の随伴は通常、 $M^\dagger$ と表されます。 行列 $U$ は、UU^ U^\dagger U\mathbb{I}$=または同等の U^\dagger{-1}={= U^\dagger$ の場合$は$ユニタリです。 ユニタリ行列の重要な特性は、それらがベクトルのノルムを保持することです。 これは次の理由で発生します。

$\langle v,v \rangle=v^\dagger v v = ^\dagger U^{-1} U v v = ^\dagger U^\dagger U v =\langle U v, U v\rangle.$

$M=M^\dagger$ の場合、行列 $M$ はエルミートであると言います。

テンソル積

もう 1 つの重要な演算は、"行列直積" または "テンソル積" とも呼ばれる "クロネッカー積" です。 クロネッカー積は、まったく異なった演算である行列乗算とは区別されることに注意してください。 量子コンピューティング理論では、テンソル積は一般に、クロネッカー積を表すために使用されます。

2 つのベクトル $v=\begin{bmatrix}a \\ b \end{bmatrix}$ と $u =\begin{bmatrix} c \\ d \\ e \end{bmatrix}$ について考えます。 それらのテンソル積は $v \otimes u$ と表され、結果はブロック行列になります。

$$\begin{bmatrix} a \\ b \end{bmatrix}\otimes\begin{bmatrix} c \\ d \\ e \end{bmatrix}=\begin{bmatrix} a \begin{bmatrix} c \\ d \\ e \end{bmatrix}\\[1.5em] b \begin{bmatrix} c \\ d \\ e\end{bmatrix}\end{bmatrix}=\begin{bmatrix} a c \\ a d \\ a e \\ b c \\ b d \\ be\end{bmatrix}$$

テンソル積は、任意のサイズの 2 つの行列またはベクトルに対する演算であることに注意してください。 サイズ $m\times n$ の行列 $M$ と、サイズ $p \times q$ の行列 $N$ の 2 つのテンソル積は、サイズ $mp \times nq$ のより大きな行列 $P=M\otimes N$ であり、次のように $M$ と $N$ から得られます。

$$\begin{align}M \otimes N &=\begin{bmatrix}{~~~~\cdots{11}M_ M_{1n\ddots\\}\\ M_{m1\cdots~~~~} M_mn\begin{bmatrix}}\otimes\end{bmatrix} N_{ N_{11}{{~~\cdots~~1q}\\\ddots\\ N_{p1~~}\cdots~~ N_{pq\end{bmatrix}\\&}amp;=\begin{bmatrix}M_ N_ N_\cdots{~~~~{11}{1q\ddots\\}\\ N_p1~~}~~\cdots N_{pq M_1 N_{11}~~~~\cdotsn}\begin{bmatrix} N_{1q~~}\end{bmatrix}~~\cdots N_{p1 N_{q}\\\ddots\\ M_{{m1}\cdots}~~\begin{bmatrix}~~ N_\end{bmatrix}\\\ddots\\{} N_{11}~~~~{\cdots{1q}\\\ddots\\ N_{p1}\cdots~~~~ N_pq~~}\end{bmatrix}~~\cdots M_{mn N_{}\begin{bmatrix}{{11}\begin{bmatrix}{{11}~~\cdots~~{N_1q}\\\ddots\\ N_{p1\cdots}~~~~ N_{pq。}\end{bmatrix}\end{bmatrix} \end{align} $$

これは、a$$\ b \\ c\ d\begin{bmatrix}\otimes\end{bmatrix} e\ f\\ g\ h\begin{bmatrix}=\end{bmatrix} a\begin{bmatrix} e\ f g\ h b\begin{bmatrix} e\ f\\\\ g\ h \end{bmatrix}\end{bmatrix}\\[1em] c\begin{bmatrix} e\ f g\ h\\ g\ \end{bmatrix}\begin{bmatrix} f g\ f g\ h\\\end{bmatrix}\begin{bmatrix}\end{bmatrix}=ae\ af\ be\ bf \\ ag\ ah\ bg\ bh \\ ce\ cf\ de\ df \\ cg\ ch\ dg\ dh \end{bmatrix}などです。\begin{bmatrix} $$

テンソル積に関連した最後の有用な表記規則は、任意のベクトル $v$ または行列 $M$ に対する $v^{\otimes n}$ または $M^{\otimes n}$ であり、これらは、$n$ 回繰り返されるテンソル積の省略表現です。 次に例を示します。

\begin{align}&アンプ;\begin{bmatrix}1 0 ^ 1 1=\begin{bmatrix}}\\ 0 \end{bmatrix}, \qquad\begin{bmatrix} 1 \\ 0 \end{bmatrix}^{\otimes 2}\begin{bmatrix}= 1 \\ 0 0 \\0 \\\end{bmatrix}, \qquad\begin{bmatrix} 1 \\ -1 \end{bmatrix}^{\otimes 2\begin{bmatrix}=} 1 -1 \\\\-1 \\1 \end{bmatrix}, \\& 0 &\begin{bmatrix} 1 \\ 1& 0 \end{bmatrix}^{\otimes 1\begin{bmatrix}}= 0& 1 \\ 1& 0 , \qquad\begin{bmatrix} 0 &\end{bmatrix}amp; 1 \\ 1 amp; 0 1 1& 0 \end{bmatrix}^{\otimes 2\begin{bmatrix}}= 0 &{\otimes\end{bmatrix}\\0&0&1 \\ 0 &0&1&0 \\ 0 &1&0&0\\ 1 &0&0&0\end{bmatrix}。 \end{align}

次の手順