Notação de Dirac na computação quântica

A notação de Dirac é projetada para atender às necessidades precisas de expressar estados e álgebra linear em mecânica quântica. Seu nome é uma homenagem ao físico Paul Dirac, que desenvolveu a notação na década de 1930. A notação Dirac é uma maneira concisa e poderosa de descrever estados e operações quânticas. É usado na computação quântica para descrever estados quânticos, operações quânticas e medições quânticas.

Este artigo apresenta a notação Dirac e mostra como usá-la para descrever estados e operações quânticas.

Limitações da notação vetorial de coluna

Embora a notação vetorial de coluna seja comum em álgebra linear, ela é frequentemente usada na computação quântica, especialmente quando se lida com múltiplos qubits. Por exemplo, quando você define $\psi$ como um vetor, não fica explicitamente claro se $\psi$ é um vetor de linha ou coluna. Assim, se $\phi$ e $\psi$ são vetores, então é igualmente incerto se\psi$ $\phié mesmo definido, porque as formas de $\phi$ e $\psi$ podem não ser claras no contexto. Além da ambiguidade sobre as formas dos vetores, expressar até mesmo vetores simples usando notação algébrica linear pode ser complicado. Por exemplo, se você deseja descrever um $estado n-qubit$ onde cada qubit tem o valor $0$, então você expressaria formalmente o estado como

$$\begin{bmatrix}\\ 1 0 \end{bmatrix}\otimes\otimes\begin{bmatrix}\cdots1 0 .\\ \end{bmatrix} $$

Avaliar este produto tensor é impraticável porque o vetor se encontra em um espaço exponencialmente grande. Como tal, esta notação é, de facto, a melhor descrição do estado que pode ser dada usando a notação anterior.

Tipos de vetores na notação de Dirac

Existem dois tipos de vetores na notação de Dirac: o vetor sutiã e o vetor ket, assim chamados porque quando juntos formam um freio ou produto interno. Se $\psi$ for um vetor de coluna, então você pode escrevê-lo na notação Dirac como $\ket{\psi}$, onde o $\ket{\cdot}$ denota que é um vetor de coluna de unidade, por exemplo, um vetor ket . Da mesma forma, o vetor $\pside linha ^\dagger$ é expresso como $\bra{\psi}$. Em outras palavras, $\psi^\dagger$ é obtido aplicando conjugação complexa de entrada aos elementos da transposição de $\psi$. A notação bra-ket implica diretamente que $\braket{\psi|\psi}$ é o produto interno do vetor $\psi$ consigo mesmo, que é por definição $1$.

Mais geralmente, se $\psi$ e $\phi$ são vetores de estado quântico, então seu produto interno é $\braket{\phi|\psi}$. Este produto interno implica que a probabilidade de medir o estado $\ket{\psi}$ a ser $\ket{\phi}$ é $|\braket{\phi|\psi}|^2$.

A convenção a seguir é usada para descrever os estados quânticos que codificam os valores de zero e um (os estados de base computacional de qubit único):

$$\begin{bmatrix}\\ 1 0 \end{bmatrix}{0}\ket{=,\qquad\begin{bmatrix} 0 \\ 1 .\end{bmatrix}=\ket{{1} $$

Exemplo: Representar a operação Hadamard com notação Dirac

A notação a seguir é frequentemente usada para descrever os estados que resultam da aplicação do portão de Hadamard a $\ket{0}$ e $\ket{1}$. Estes estados correspondem aos vetores unitários nas $direções +x$ e $-x$ na esfera de Bloch:

$$\frac{1}{\sqrt{{2}}\begin{bmatrix}\\ 1 1 \end{bmatrix}=H\ket{=\ket{0}+},\qquad\frac{1}{\sqrt{{2}}\begin{bmatrix} 1 \\ -1=\end{bmatrix} H .\ket{{1}=\ket{{-} $$

Esses estados também podem ser expandidos usando a notação Dirac como somas de $\ket{0}$ e $\ket{1}$:

$$\ket{+}\frac{{1}{\sqrt{2}}=(\ket{0} + \ket{1}),{-}\frac{={1}{\sqrt{\qquad{2}}\ket{(\ket{{0} - ). \ket{1} $$

Vetores de base computacional

Isso demonstra por que esses estados são frequentemente chamados de base computacional: cada estado quântico sempre pode ser expresso como somas de vetores de base computacional e tais somas são facilmente expressas usando a notação de Dirac. O inverso também é verdadeiro na medida em que os estados $\ket{+}$ e $\ket{-}$ também formam uma base para estados quânticos. Você pode ver isso pelo fato de que

$$\ket{{0}=\frac{1}{\sqrt{2}}(\ket{+} + \ket{-}),\qquad\frac{{1}{\sqrt{=\ket{{1}{2}}(\ket{+} - ). \ket{-} $$

Como exemplo de notação de Dirac, considere o braket 0 1, que é o produto interno entre $0$ e $1$.}$| $\braket{ Pode ser escrito como

$$\braket{| 0 1}=\begin{bmatrix} 1 & 0 \end{bmatrix}\begin{bmatrix}0\\ 1\end{bmatrix}=0. $$

Este exemplo diz que $\ket{{0}$ e $\ket{{1}$ são vetores ortogonais, o que significa que $\braket{0 | 1}=\braket{1 | 0}=0.$ Além disso, por definição $\braket{0 | 0}\braket{=1 1 |}=1$, o que significa que os dois vetores de base computacional também podem ser chamados de ortonormais.

Essas propriedades ortonormais são usadas no exemplo a seguir. Se você tem um estado $\ket{\psi}{\frac{3}{5}}=\ket{{1} + {\frac{\ket{0}${4}{5}}, então porque $\braket{1 | 0=}0 a$ probabilidade de medir $1 é$

$$\big|\braket{|\psi}\big|1 ^2{3}{5}\braket{\left|\frac{=1 | 1} +\frac{{4}{5}\braket{1 | 0}\right|^2=\frac{{9}{{25}. $$

Notação do produto tensor

A notação Dirac também inclui uma estrutura de produto tensor implícita. Esta estrutura é importante porque na computação quântica, o vetor de estado descrito por dois registros quânticos não correlacionados é o produto tensor dos dois vetores de estado. Descrever de forma concisa a estrutura do produto tensor, ou a falta dela, é vital se você quiser explicar uma computação quântica. A estrutura do produto tensor implica que você pode escrever $\psi\otimes\phi$ para quaisquer dois vetores de estado quântico $\phi$ e $\psi$ como .$\ket{\psi}\otimes\ket{\phi}$ No entanto, por convenção escrever $\otimes$ entre os vetores é desnecessário, e você pode escrever\phi}=$$\ket{\psi}\ket{\phi}\ket{\psi . Para obter mais informações sobre vetores e produtos tensores, consulte Vetores e matrizes na computação quântica. Por exemplo, o estado com dois qubits inicializados para o estado zero é:

$$\ket{0}\otimes\ket{0}=\ket{{0}\ket{{0}=\ket{{00}=\begin{bmatrix}\\ 1 0\otimes\end{bmatrix}\begin{bmatrix} 1 \\ 0 \end{bmatrix}=\begin{bmatrix} 1 \\ 0 \\ 0 0 .\end{bmatrix}\\ $$

Da mesma forma, o estado $\ket{p}$ para inteiro $p$ representa um estado quântico que codifica o inteiro $p$ em representação binária. Por exemplo, se você deseja expressar o número $5$ usando uma codificação binária não assinada, você pode expressá-lo igualmente como

$$\ket{1}\ket{0}\ket{1}=\ket{101}=\ket{5}. $$

Dentro dessa notação, não precisa se referir a um estado de qubit único, $\ket{0}$ mas sim a um registro de qubit que armazena uma codificação binária de $0$. As diferenças entre estas duas notações são claras a partir do contexto. Esta convenção é útil para simplificar o primeiro exemplo, que pode ser escrito de qualquer uma das seguintes maneiras:

$$\begin{bmatrix}\\ 1 0 \end{bmatrix}\otimes\otimes\begin{bmatrix}\cdots1 \\ 0{0}\ket{\otimes\cdots\otimes=\ket{0}=\end{bmatrix}| 0 0\cdots=\ket{\rangle{0}^ n{\otimes}$$

onde $\ket{0}^{\otimes n}$ representa o produto tensor de $n$$\ket{0}$ estados quânticos.

Exemplo: descrever a superposição com notação Dirac

Como outro exemplo de como você pode usar a notação de Dirac para descrever um estado quântico, considere as seguintes maneiras equivalentes de escrever um estado quântico que é uma superposição igual sobre cada cadeia de bits possível de comprimento $n$

$$H^{\otimes n\frac{1}{\ket{0}}=2^{n/2\sum}}_{j=0}^{2^n-1\ket{}j}=\ket{+}^{\otimes n.} $$

Aqui você pode se perguntar por que a soma vai de $0$ a $2^{n-1}$ para $n$ bits. Primeiro, observe que existem $2^{n}$ configurações diferentes que $n$ bits podem tomar. Você pode ver isso observando que um bit pode ter $2$ valores, mas dois bits podem levar $4$ valores e assim por diante. Em geral, isso significa que existem $2^n$ diferentes cadeias de bits possíveis, mas o maior valor codificado em qualquer uma delas $1\cdots 1=2^n-1$ e, portanto, é o limite superior para a soma. Como nota lateral, neste exemplo você não usou +^ n+ em analogia a{0}$\ket{ ^{\otimes n{0}$}\ket{=.}$}=\ket{{\otimes}$\ket{ Esta convenção notacional é reservada para o estado de base computacional com cada qubit inicializado a zero. Embora tal convenção seja sensata neste caso, ela não é empregada na literatura de computação quântica.

Expresse linearidade com notação Dirac

Outra característica da notação de Dirac é o fato de ser linear. Por exemplo, para dois números $\alpha$ complexos e $\beta$, você pode escrever

$$\ket{\psi}\otimes( + \beta\ket{\chi})\alpha\ket{\psi}\ket{\phi}= + \beta\ket{\psi}\ket{\chi}. \alpha\ket{\phi}$$

Ou seja, você pode distribuir a notação do produto tensor na notação de Dirac para que tomar produtos tensores entre vetores de estado acabe se parecendo com a multiplicação comum.

Os vetores de sutiã seguem uma convenção semelhante aos vetores ket. Por exemplo, o vetor $\bra{\psi}\bra{\phi}$ é equivalente ao vetor $\pside estado ^\dagger\otimes\phi^\dagger=(\psi\otimes\phi)^\dagger$. Se o vetor $\ket{\psi}$ ket é $\alpha\ket{0} + \beta\ket{1}$, então a versão vetorial do sutiã do vetor é $\bra{\psi}=\ket{\psi}^\dagger= (\bra{{0}\alpha^* +\bra{1}\beta^*)$.

Como exemplo, imagine que você deseja calcular a probabilidade de medir o estado $\ket{\psi}=\ket{\frac{3}{5}{1} + \frac{4}{5}\ket{0}$ usando um programa quântico para medir estados como $\ket{+}$ ou .$\ket{{-}$ Em seguida, a probabilidade de que o dispositivo iria saída que o estado é $\ket{-}$ é

$$|\braket{- |\psi}|^2={2}}{1}{\sqrt{\left|\frac{(\bra{0} - )( \bra{\frac{3}{5}{1}{1}\ket{+\ket{0}{4}{5}\frac{ ) \right|^2-5=\left|\frac{3}{\sqrt{{2}} + \frac{{4}{5\sqrt{2}}\right|^2.=\frac{{1}{{50}$$

O fato de que o sinal negativo aparece no cálculo da probabilidade é uma manifestação de interferência quântica, que é um dos mecanismos pelos quais a computação quântica ganha vantagens sobre a computação clássica.

ketbra ou produto exterior

O último item que vale a pena discutir na notação de Dirac é o ketbra ou produto externo. O produto externo é representado dentro das notações de Dirac como $\ket{\psi}\bra{\phi}$, e às vezes chamado ketbras porque os sutiãs e kets ocorrem na ordem oposta como freios. O produto externo é definido via multiplicação matricial como $\ket{\psi}\phi=\bra{\phi}\psi^\dagger$ para vetores de estado quântico $\psi$ e .$\phi$ O exemplo mais simples, e indiscutivelmente mais comum, desta notação é

$$\ket{0}\bra{{0}=\begin{bmatrix}\\ 1 0 \end{bmatrix}\begin{bmatrix}1& \end{bmatrix}=\begin{bmatrix}0 1 & \\ 0 0 & \end{bmatrix}=\bra{1}\begin{bmatrix}\ket{1}\qquad0 0\\ 1 \end{bmatrix}\begin{bmatrix}0& \end{bmatrix}=\begin{bmatrix}1 0 & \\ 0 0 & 1º\end{bmatrix}. $$

Ketbras são frequentemente chamados de projetores porque projetam um estado quântico em um valor fixo. Como essas operações não são unitárias (e nem mesmo preservam a norma de um vetor), um computador quântico não pode aplicar deterministicamente um projetor. No entanto, os projetores fazem um belo trabalho ao descrever a ação que a medição tem em um estado quântico. Por exemplo, se você medir um estado $\ket{\psi}$ como $0$, a transformação resultante que o estado experimenta como resultado da medição é

$$\ket{\psi}\rightseta \frac{(\ket{{0}{0}\bra{)\ket{\psi}}{|\braket{0 ,|\psi}|}=\ket{{0}$$

como seria de esperar se medisse o estado e descobrisse que era $\ket{0}$. Para reiterar, tais projetores não podem ser aplicados em um estado em um computador quântico deterministicamente. Em vez disso, eles podem, na melhor das hipóteses, ser aplicados aleatoriamente, com o resultado $\ket{0}$ aparecendo com alguma probabilidade fixa. A probabilidade de tal medição ter sucesso pode ser escrita como o valor de expectativa do projetor quântico no estado

$$\bra{\psi}(\ket{0}\bra{0})\ket{\psi}|=|\braket{\psi 0}|^2,$$

o que ilustra que os projetores dão uma nova maneira de expressar o processo de medição.

Se, em vez disso, você considerar medir o primeiro qubit de um estado de vários qubits como $1$, então você também pode descrever esse processo convenientemente usando projetores e notação Dirac:

$$P(\text{primeiro qubit = 1})=\bra{\psi}\left(\ket{{1}\otimes{1}\bra{ \mathbf{\mathbf{1}^{\otimes n-1}\right) . \ket{\psi} $$

Aqui a matriz de identidade pode ser convenientemente escrita em notação Dirac como

$$\mathbb{I}{0}=\ket{\bra{0}+\ket{\bra{1}={1}\begin{bmatrix}1& \\ 0 0& \end{bmatrix}1 . $$

Para o caso em que há dois qubits, o projetor pode ser expandido como

$$\ket{1}\bra{1}\otimes\mathbb{I}\ket{\otimes={1}\bra{1} (\ket{0}\bra{0}+\ket{1}{1}\bra{)={10}\ket{10}\bra{ + . \ket{{11}\bra{{11} $$

Você pode então ver que isso é consistente com a discussão sobre probabilidades de medição para estados multiqubit usando notação coluna-vetor:

$$P(\text{primeiro qubit = 1})=\psi^\dagger (e_{10}e_{10}^\dagger + e_{11}{e_{11}{^\dagger)=\psi|e_{10}{^\psi|\dagger^2 + |e_{11}^\dagger\psi|^2,$$

que corresponde à discussão de medição de vários qubits. A generalização deste resultado para o caso multi-qubit, no entanto, é um pouco mais simples de expressar usando a notação de Dirac do que a notação coluna-vetor, e é inteiramente equivalente ao tratamento anterior.

Operadores de densidade

Outro operador útil para expressar usando a notação Dirac é o operador de densidade, às vezes também conhecido como operador de estado. Como o vetor de estado quântico, o operador de densidade descreve o estado quântico de um sistema. Enquanto os vetores de estado quântico só podem representar estados puros, os operadores de densidade também podem representar estados mistos.

De um modo mais geral, uma dada matriz $\rho$ é um operador de densidade válido se estiverem preenchidas as seguintes condições:

  • $\rho$ é uma matriz de números complexos
  • $\rho = \rho^{\dagger}$ (isto é, $\rho$ é Hermitian)
  • Cada autovalor $p$ de $\rho$ é não-negativo
  • Todos os autovalores de $\rho$ somam 1

Juntas, essas condições garantem que $\rho$ possa ser pensado como um conjunto. Um operador de densidade para um vetor $\ket{\psi}$ de estado quântico assume a forma $\rho =\sum_i p_i \ket{\psi_i}\bra{\psi_i}$ é uma decomposição de autovalor de $\rho$, então $\rho$ descreve o conjunto $\rho\ket{\psi{= _i}\text{com probabilidade} p_i .}$

Estados quânticos puros são aqueles que são caracterizados por um único vetor ket ou função de onda, e não podem ser escritos como uma mistura estatística (ou combinação convexa) de outros estados quânticos. Um estado quântico misto é um conjunto estatístico de estados puros.

Em uma esfera de Bloch, os estados puros são representados por um ponto na superfície da esfera, enquanto os estados mistos são representados por um ponto interior. O estado misto de um único qubit é representado pelo centro da esfera, por simetria. A pureza de um estado pode ser visualizada como o grau em que ele está perto da superfície da esfera.

Este conceito de representar o estado como uma matriz, em vez de um vetor, é muitas vezes conveniente porque dá uma maneira conveniente de representar cálculos de probabilidade, e também permite descrever a incerteza estatística e a incerteza quântica dentro do mesmo formalismo.

Um operador $de densidade \rho representa um estado puro$ se e somente se:

  • $\rho$ pode ser escrito como um produto externo de um vetor de estado, $\rho=\ket{\psi}\bra{\psi}$
  • $\rho =\rho^2$
  • $tr(\rho^2)=1$

Para dizer o quão próximo um determinado operador $de densidade \rho$ está de ser puro, você pode olhar para o traço (isto é, a soma dos elementos diagonais) de $\rho^2$. Um operador de densidade representa um estado puro se e somente se $tr(\rho ^{2})=1$.

Q# sequências de porta equivalentes a estados quânticos

Um último ponto que vale a pena levantar sobre a notação quântica e a linguagem de programação: o Q# início deste documento mencionou que o estado quântico é o objeto fundamental da informação na computação quântica. Pode então ser uma surpresa que não Q# haja noção de um estado quântico. Em vez disso, todos os estados são descritos apenas pelas operações usadas para prepará-los. O exemplo anterior é uma excelente ilustração disso. Em vez de expressar uma superposição uniforme sobre cada cadeia de bits quânticos em um registro, você pode representar o resultado como $H^{\otimes n}\ket{0}$. Esta descrição exponencialmente mais curta do estado não só tem a vantagem de que você pode raciocinar classicamente sobre ele, mas também define de forma concisa as operações necessárias para serem propagadas através da pilha de software para implementar o algoritmo. Por esta razão, Q# é projetado para emitir sequências de porta em vez de estados quânticos, no entanto, em um nível teórico as duas perspetivas são equivalentes.

Próximos passos