Usar vetores e matrizes na computação quântica

É essencial ter alguma familiaridade com vetores e matrizes para entender a computação quântica. O artigo Álgebra linear para computação quântica fornece um breve atualizador e os leitores que desejam se aprofundar são recomendados para ler uma referência padrão sobre álgebra linear , como Strang, G. (1993). Introdução à álgebra linear (Vol. 3). Wellesley, MA: Wellesley-Cambridge Press ou uma referência online, como Álgebra Linear.

Vetores

Um vetor de coluna (ou simplesmente vetor) $v$ de dimensão (ou tamanho) $n$ é uma coleção de $n$ números complexos $ (v_1,v_2,\ldots,v_n)$ organizados como uma coluna:

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

A norma de um vetor $v$ é definida como $\sqrt{\sum_i |v_i|^2}$. Um vetor é considerado de norma unitária (ou como alternativa, é chamado de vetor unitário) se a sua norma for $1$. O adjunto de um vetor$v$ é indicado como $v^\dagger$ e é definido para ser o seguinte vetor de linha, em que $*$ denota o conjugado complexo,

$$\begin{bmatrix}v_1 \\ \vdots \\ v_n \end{bmatrix}^\dagger=\begin{bmatrix}v_1^* & \cdots& v_n^* \end{bmatrix}$$

Observe que há distinção entre um vetor de coluna $v$ e um vetor de linha $v^\dagger$.

Produto interno

Podemos multiplicar dois vetores juntos por meio do produto interno, também conhecido como produto de ponto ou produto escalar. Como o nome indica, o resultado do produto interno de dois vetores é um escalar. O produto interno fornece a projeção de um vetor para outro e é indispensável na descrição de como expressar um vetor como uma soma de outros vetores mais simples. O produto interno entre dois vetores de coluna $u=(u_1, u_2, \ldots, u_n)$ e $v=(v_1, v_2, \ldots, v_n)$, denotado como $\left\langle u, v\right\rangle$ é definido como

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

Essa notação também permite que a norma de um vetor $v$ seja escrita como $\sqrt{\langle v, v\rangle}$.

Podemos multiplicar um vetor com um número $c$ para formar um novo vetor cujas entradas são multiplicadas por $c$. Também podemos adicionar dois vetores $u$ e $v$ para formar um novo vetor cujas entradas são a soma das entradas de $u$ e $v$. Essas operações são as seguintes:

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

Uma matriz de tamanho $m \times n$ é uma coleção de números complexos $mn$ organizados em $m$ linhas e $n$ colunas, conforme mostrado abaixo:

$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}$

Observe que um vetor de dimensão $n$ é simplesmente uma matriz de tamanho $n\times 1$. Assim como os vetores, podemos multiplicar uma matriz com um número $c$ para obter uma nova matriz em que cada entrada é multiplicada por $c$. Também podemos adicionar duas matrizes do mesmo tamanho para produzir uma nova matriz cujas entradas são a soma das respectivas entradas das duas matrizes.

Multiplicação de matrizes

Também podemos multiplicar duas matrizes $M$ de dimensão $m\times n$ e $N$ de dimensão $n \times p$ para obter uma nova matriz $P$ de dimensão $m \times p$ da seguinte maneira:

$$\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}\begin{bmatrix}N_{11}~~N_{{12}~~\cdots~~N_{1p}\\ N_{{21}~~N_{22}~~\cdots~~N_{2p}\\\ddots\\ N_{n1}~~N_{n2}~~\cdots~~N_{np}\end{bmatrix}=\begin{bmatrix} P_{{11}~~P_{12}~~\cdots~~P_{1p}\\ P_{{21}~~P_{{22}~~\cdots~~P_{2p}\\\ddots\\ P_{m1}~~ P_{m2}~~\cdots~~P_{mp}\end{bmatrix}\end{align}$$

em que as entradas de $P$ são $P_{ik}=\sum_j M_{ij}N_{jk}$. Por exemplo, a entrada $P_{11}$ é o produto interno da primeira linha de $M$ com a primeira coluna de $N$. Observe que, como um vetor é simplesmente um caso especial de uma matriz, essa definição se estende à multiplicação de vetores de matrizes.

Todas as matrizes que consideramos serão matrizes quadradas, em que o número de linhas e colunas são iguais (ou vetores), que correspondem a apenas $1$ coluna. Uma matriz quadrada especial é a matriz de identidade, denotada $\mathbb{\mathbb{I}$, que tem todos os seus elementos diagonais iguais a $1$ e os elementos restantes iguais a $0$:

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

Para uma matriz $quadrada A$, uma matriz $B$ é seu inverso se $AB = BA =\mathbb{\mathbb{I}$. O inverso de uma matriz não precisa existir, mas quando ele existe, é exclusivo e o designamos como $A^{-1}$.

Para qualquer matriz $M$, a transposição adjunta ou conjugada de $M$ é a matriz $N$ tal que $N_{ij}= M_{ji}^*$. O adjunto de $M$ geralmente é designado como $M^\dagger$. Uma matriz $U$ será unitária se $UU^=\dagger U^\dagger U =\mathbb{I}$ ou equivalentemente, $U^={{-1} U^.\dagger$ Uma propriedade importante das matrizes unitárias é que elas preservam a norma de um vetor. Isso ocorre porque

$\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.$

Uma matriz $M$ é considerada Hermitian se $M=M^\dagger$.

Produto tensorial

Outra operação importante é o produto Kronecker, também chamado de produto direto de matrizes ou produto tensorial. Observe que o produto Kronecker é diferente da multiplicação de matrizes, que é uma operação totalmente diferente. Na teoria da computação quântica, o produto tensorial normalmente é usado para denotar o produto Kronecker.

Considere os dois vetores $v=\begin{bmatrix}a \\ b \end{bmatrix}$ e $u =\begin{bmatrix} c \\ d \\ e \end{bmatrix}$. O produto tensorial é indicado como $v \otimes u$ e resulta em uma matriz de blocos.

$$\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}$$

Observe que o produto tensorial é uma operação em duas matrizes ou em vetores de tamanho arbitrário. O produto tensorial de duas matrizes $M$ de tamanho $m\times n$ e $N$ de tamanho $p \times q$ é uma mariz maior $P=M\otimes N$ de tamanho $mp \times nq$, obtida de $M$ e $N$ da seguinte maneira:

$$\begin{align} M \otimes N &=\begin{bmatrix} M_{{11}~~\cdots~~ M_{1n}\\\ddots\\ M_{m1}~~\cdots~~ M_{mn}\end{bmatrix}\otimes\begin{bmatrix} N_{{11}~~\cdots~~ N_{1q}\\\ddots\\ N_{p1}~~\cdots~~ N_{pq}\end{bmatrix}\\&=\begin{bmatrix} M_{{11}\begin{bmatrix} N_{{11}~~\cdots~~ N_{1q}\\\ddots\\ N_{p1}~~\cdots~~ N_{pq}\end{bmatrix}~~\cdots~~ M_{1n}\begin{bmatrix} N_{11}~~\cdots~~ N_{1q}\\\ddots\\ N_{p1}~~\cdots~~ N_{pq}\end{bmatrix}\\\ddots\\ M_{m1}\begin{bmatrix} N_{{11}~~\cdots~~ N_{1q}\\\ddots\\ N_{p1}~~\cdots~~ N_{pq}\end{bmatrix}~~\cdots~~ M_{mn}\begin{bmatrix} N_{{11}~~\cdots~~ N_{1q}\\\ddots\\ N_{p1}~~\cdots~~ N_{pq}\end{bmatrix}\end{bmatrix}. \end{align} $$

Isso é melhor demonstrado com um exemplo: $$\begin{bmatrix} a\ b \\ c\ d \end{bmatrix}\otimes\begin{bmatrix} e\ f\\ g\ h \end{bmatrix}=\begin{bmatrix} a\begin{bmatrix} e\ f\\ g\ h \end{bmatrix} b\begin{bmatrix} e\ f\\ g\ h \end{bmatrix}\\[1em] c\begin{bmatrix} e\ f\\ g\ h \end{bmatrix} d\begin{bmatrix} e\ f\\ g\ h \end{bmatrix}\end{bmatrix}=\begin{bmatrix} ae\ af\ be\ bf \\ ag\ ah\ bg\ bh \\ ce\ cf\ de\ df \\ cg\ ch\ dg\ dh \end{bmatrix}. $$

Uma última convenção de notação útil sobre os produtos tensoriais é que, para qualquer vetor $v$ ou matriz $M$, $v^{\otimes n}$ ou $M^{\otimes n}$ é um atalho para um produto tensorial repetido $n$ vezes. Por exemplo:

\begin{align}&\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}, \\&\begin{bmatrix} 0 & 1 \\ 1& 0 \end{bmatrix}^{\otimes 1}=\begin{bmatrix} 0& 1 \\ 1& 0 \end{bmatrix}, \qquad\begin{bmatrix} 0 & 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}

Próximas etapas