Работа с векторами и матрицами в квантовых вычислениях

Для понимания квантовых вычислений нужно хотя бы в общих чертах разбираться в векторах и матрицах. Статья Линейная алгебра для квантовых вычислений предоставляет краткий обзор, а читателям, желающим углубиться, рекомендуется ознакомиться со стандартным справочником по линейной алгебре , например Strang, G. (1993). Введение в линейную алгебру (том 3). Уэллсли, MA: Wellesley-Cambridge Пресс или онлайн-справочник, такой как линейная алгебра.

Векторы

Вектор-столбец (или просто вектор) $v$ с размерностью (размером) $n$ представляет собой набор из $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 \vdots \\ v_n \end{bmatrix}^\dagger=\begin{bmatrix}v_1^* & \cdots&Amp; v_n^*\end{bmatrix}$$

Обратите внимание на различие между вектором-столбцом $v$ и вектором-строкой $v^\dagger$.

Скалярное произведение

Умножение двух векторов можно выполнить вычислением внутренним произведением, которое также называется произведением с точкой или скалярным произведением. Как понятно из этих названий, результатом внутреннего произведения является скалярная величина. Скалярное произведение обозначает длину проекции одного из векторов на другой, и является незаменимым инструментом в описании выражения одного вектора через сумму других, более простых. Скалярное произведение двух векторов-столбцов $u=(u_1 , u_2 , \ldots , u_n)$ и $v=(v_1 , v_2 , \ldots , v_n)$ обозначается как $\left\langle u, v\right\rangle$ и определяется как

$$\left\langleu, v\right\rangle= u^\dagger v=\begin{bmatrix}u_1^* & \cdots&Amp; u_n^* \end{bmatrix}v_1 \vdots\\ v_n=\end{bmatrix}u_1^{*} v_1 + \cdots + _n^{*} v_n.\\\begin{bmatrix} $$

Такая нотация позволяет выразить норму вектора $v$ как $\sqrt{\langle v, v\rangle}$.

При умножении вектора на число $c$ мы получим новый вектор, все элементы которого умножены на $c$. При сложении двух векторов $u$ и $v$ мы получим новый вектор, все элементы которого являются суммами соответствующих элементов $u$ и $v$. К этим операциям относятся:

$$\mathrm{Если}~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{то}~ au+bv =\begin{bmatrix} au_1+bv_1\\ au_2+bv_2\\ \vdots\\ au_n+bv_n \end{bmatrix}. $$

Матрица размером $m \times n$ представляет собой набор из $mn$ комплексных чисел, организованных в $m$ строк и $n$ столбцов, как показано ниже:

$M =\begin{bmatrix} M_{11}~~{ M_{12}~~\cdots~~ M_{1n}\\ M_~~{{21} M_~~{22}{\cdots~~ M_{2n}\\\ddots\\ M_{m1}~~ M_{m2~~\cdots}~~ M_{mn.}\\\end{bmatrix}$

Обратите внимание, что вектор с размерностью $n$ полностью идентичен матрице $n \times 1$. Как и для векторов, при умножении матрицы на число $c$ мы получим новую матрицу, в которой все элементы умножены на $c$, а при сложении двух матриц одинаковых размеров мы получим новую матрицу, все элементы которой являются суммой соответствующих элементов двух исходных матриц.

Умножение матриц

При умножении двух матриц $M$ с размером $m\times n$ и $N$ с размером $n \times p$ мы получим новую матрицу $P$ с размером $m \times p$ по такой формуле:

$$\begin{\begin{align}&Amp;\begin{bmatrix}{{11}~~ M_ M_~~{12}~~\cdots M_{1n}\\ M_~~{{21} M_\cdots~~{22}~~{ M_{2n\ddots\\}\\ M_{m1}~~ M_{m2 M_m2~~~~\cdots} M_{mn}\end{bmatrix}\begin{bmatrix} N_{11}~~ N_{~~~~\cdots{12} N_{1p}\\ N_{21}{~~ N_\cdots{22}~~~~ N_{2p\ddots\\}\\ N_{n1~~} N_{n2}~~~~\cdots N_{np\end{bmatrix}=\begin{bmatrix}} P_ P_{{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$ столбцом. Одной специальной квадратной матрицей является матрица идентификации, обозначенная $\mathbb{\mathbb{I}$, которая имеет все свои диагональные элементы равны $1$ , а остальные элементы равны $0$:

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

Для квадратной матрицы $A$ матрица $B$ является обратной , если $AB = BA =\mathbb{\mathbb{I}$. Обратная матрица существует не всегда, но если она существует, она уникальна и обозначается далее как $A^{-1}$.

Для любой матрицы $M$ существует присоединенная (сопряженная) матрица $N$, для которой справедливо $N_{ij}= M_{ji}^*$. Присоединенная матрица для $M$ обычно обозначается как $M^\dagger$. Матрица $U$ является унитарной, если $UU^\dagger= U^ U =\mathbb{I}$ или\dagger эквивалентно U$^{{-1}= U^.\dagger$ Важным свойством унитарных матриц является то, что они сохраняют норму вектора. Это объясняется тем, что

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

Матрица $M$ называется эрмитовой, если $M=M^\dagger$.

Тензорное произведение

Еще одной важной операцией является кронекерово произведение, также именуемое прямым произведением матриц или тензорным произведением. Обратите внимание, что кронекерово произведение коренным образом отличается от обычного умножения матриц. В теории квантовых вычислений для обозначения кронекерового произведения широко применяется термин тензорное произведение.

Для примера рассмотрим два вектора $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}$$

Обратите внимание, что операцию для получения тензорного произведения можно применить к любым матрицам и (или) векторам произвольных размеров. Тензорным произведением двух матриц $M$ размером $m\times n$ и $N$ размером $p \times q$ является более крупная матрица $P=M\otimes N$ размером $mp \times nq$, которая вычисляется на основе $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_~~~~{11}\cdots{ N_{1q}\\\ddots\\ N_{p1~~}\cdots~~ N_{pq\end{bmatrix}\\&}amp;=\begin{bmatrix}{{11}\begin{bmatrix} M_ N_~~{~~{11}\cdots N_{1q\ddots\\}\\ N_{p1~~\cdots}~~ N_{pq\end{bmatrix}~~\cdots~~} M_{1n\begin{bmatrix}} N_\cdots~~~~{11} N_1q\ddots\\{}\\ N_{p1\cdots}~~~~ N_{pq}\ddots\\\end{bmatrix}\\ M_{m1\begin{bmatrix}} N_~~{11}{~~\cdots N_1q\ddots\\}\\{ N_{p1~~\cdots}~~ N_{pq~~\cdots}\end{bmatrix}~~ M_{mn N_}\begin{bmatrix}{{11}~~\cdots~~{N_1q}\\\ddots\\ N_{p1\cdots}~~~~ N_{pq.}\end{bmatrix}\end{bmatrix} \end{align} $$

Это лучше продемонстрировано на примере: $$a\ b \\ c\ d\otimes\begin{bmatrix}\end{bmatrix}e\ f\\ g\ h\begin{bmatrix}\end{bmatrix}=a\begin{bmatrix} e\ f\\ g\ h \end{bmatrix} b\begin{bmatrix} e\ f\\ g\ h\\\end{bmatrix} [1em] c e\begin{bmatrix}\ f\\ g\ h \end{bmatrix} d\begin{bmatrix} e\ 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}&Amp;\begin{bmatrix} 1 \\ 0 \end{bmatrix}^{\otimes 1=}\begin{bmatrix} 1 \\ 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},&\\ amp; 0 &\begin{bmatrix} 1 \\ 1& 0 \end{bmatrix}^{\otimes 1\begin{bmatrix}}= 0& 1 1& \end{bmatrix}0 \\ , \qquad\begin{bmatrix} 0 & 1 \\ 1 1& 0 \end{bmatrix}^{\otimes 2}=\begin{bmatrix} 0 & 0& 0& 1 \\ 0 &А; 0& 1&амп; 0 \\ 0 &А; 1&амп; 0& 0\\ 1 & 0& 0& 0\end{bmatrix}. \end{align}

Next Steps