Computação Quântica

  • Princípios da Mecânica Quântica

  • A Mecânica Newtoniana nos permite observar um sistema ao longo do tempo e prever suas variações, como o movimento de uma objeto. Porém, com estudos de Louis de Broglie, em 1924, e posteriormente com os trabalhos de Heisenberg, Pauli e outros mais, foi constatado que não era possível aplicar tal mecânica, com regras determinísticas, em sistemas corpusculares, como átomos e moléculas. Passou a ser necessária uma nova mecânica, a mecânica quântica.

    A Mecânica Quântica introduziu novos conceitos, não só à física, mas ao mundo como um todo. Tanto o computador quântica quanto a criptografia quântica foram idealizados de maneira a respeitar esses conceitos, assim como muitos outros.

    A seguir, encontram-se os principais dentre estes conceitos:

    ♦ A luz apresenta tanto uma natureza corpuscular quanto uma natureza ondulatória. Experimentos realizados por Einstein, como o Efeito Fotoelétrico - emissão de elétrons por um material quando exposto a uma radiação eletromagnética de frequência suficientemente alta - e por Planck, como a Radiação Térmica do Corpo Negro, mostram a natureza corpuscular da luz, provando que a esta é formada por fótons (partículas elementares indivisíveis) cuja massa é igual a zero.

    ♦ Todos os Sistemas trabalhados pela teoria quântica estão relacionados a um espaço vetorial complexo denominado de espaço de Hilbert. Este espaço, de maneira simplificada, é uma representação do espaço euclidiano n-dimensional e composto por vetores coluna, conhecidos como kets ( $ |\psi\rangle $), e vetores linhas, conhecidos como bra ( $ |\psi\rangle $).

    ♦ 2o Postulado da mecânica quântica: A evolução temporal de um sistema quântico é dado pela transformação unitária : $|\psi(t)\rangle = U(t) |\psi\rangle(0)$

    ♦ Polarização: Este fenômeno é muito utilizado para explicar e compreender a criptografia quântica. Uma onda luminosa consiste de dois campos perpendiculares e que variam no tempo, o campo elétrico e o campo magnético. O plano de polarização, por sua vez, consiste em um plano que contém o campo elétrico e a direção de propagação da onda luminosa. Com isso, podemos atribuir uma polarização a um fóton, isto é, qualquer medida em graus. A partir de um fóton, é possível mudar sua polarização com a utilização de um polarizador.

  • O que é um computador quântico?

  • Segundo N. David Mermin em seu livro “‘Quantum Computer Science”, o computador quântico é um computador que não só respeita as leis da mecânica quântica como explora de forma bem especifica as transformações tanto no meu espaço dimensional como na evolução temporal. Os nossos computadores, possuem como unidade logica, os bits, representados pela presença ou não de corrente elétrica. Analogamente, um computador quântico tem como unidade lógica os Qbits, cujos estados não possuem apenas dois valores, como nos bits clássicos. O estado de um Qbit é representado por uma função de estado, como veremos mais a adiante.

    O principal ganho desses computadores é na velocidade de processamento, tornando possível a solução de problemas com algoritmos de crescimento exponencial, como a fatoração de números primos. Dessa maneira, surge a preocupação com a segurança, visto que muitas criptografias consideradas seguras usam números primos extensos para gerar a mensagem criptografada.

  • Cbits e Qbits

  • Com certeza o computador é um dos utensílios mais usados mundialmente. Contudo, já paramos para pensar como ele funciona? Quando abrimos um arquivo ou escrevemos um texto, como o computador entende o que queremos fazer e executa isso para nós? Provavelmente, todos já sabem que a máquina não entende o que acontece na mesma linguagem que nós. Ela trabalha com o sistema binário, um sistema composto por apenas dois algarismos, 0 e 1. Mas como o computador consegue fazer tudo que ele faz apenas com 0 e 1? Vamos tentar entender como isso funciona.

    O computador trabalha com sequências, chamadas de strings, de 0 e 1, como por exemplo 110110100110. Cada posição nessa sequência é chamada de bit. O bit é uma estrutura utilizada pelo computador para representar sistemas físicos que podem existir em dois estados distintos. Um exemplo bem simples é o sistema do próprio computador. Este pode existir, basicamente em dois estados: ligado e desligado. Assim, podemos representar esse sistema por meio de um bit 0, quando está desligado, ou um bit 1, quando está ligado. A sequência de bits torna-se necessária quando quer se representar um sistema com mais de 2 estados possíveis. O resultado de uma partida de futebol, por exemplo, é um sistema que existe em 3 estados básicos: derrota, empate ou vitória. Este sistema poderia ser representado por meio de um sequência de dois bits, 00 para a derrota, 01 para o empate e 10 para a vitória. Esse conceito é generalizado para quantos estados forem necessários. Um sistema com até 1024 ( $2^{10}$) estados possíveis pode ser representado por uma sequência de 10 bits, sendo que cada estado seria representado por uma dessas sequências.


    ♦ Cbits

    Com o início da computação quântica, os bits clássico passaram a ser denominados Cbits (classical bits). Para distinguir o modo como representamos os Cbits, foi introduzida uma nova forma de representação para eles, que provêm da mecânica quântica. Os estados dos Cbits são representados entre $| \rangle$, a notação de Dirac. Assim, a representação da sequência 11011 será feita da seguinte maneira:

    $ |1\rangle |1\rangle |0\rangle| 1\rangle |1\rangle $

    Podemos perceber que no caso de uma sequência muito grande como, por exemplo, 110110100110, essa representação torna-se desgastante, visto que teríamos que usar a notação acima para cada um dos bits. Devido a isso, podemos colocar esses símbolos apenas no início e no final de uma sequência de Cbits, como vemos a seguir:

    $ |110110100110\rangle $

    Para finalizarmos a representação quântica dos Cbits, podemos usar subscrito para fazermos anotações. Vamos imaginar a seguinte situação: Alice e Bob possuem um Cbit cada e devem usar a sequência formada pela junção dos seus Cbits. Podemos representar esses valores da seguinte maneira:

    Alice: $ |1\rangle_a $
    Bob: $ |0\rangle_b $
    Junção: $ |10\rangle_{ab} $

    Tanto os Cbits quanto os Qbits podem ser considerados como vetores, principalmente os QBits, onde essa consideração torna-se crucial. Vamos ver como se comportam os Cbits num espaço bidimensional.

    |0\rangle = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, |1\rangle = \begin{bmatrix} 0 \\ 1 \end{bmatrix}

    No caso de vetores com dois Cbits, o espaço vetorial é igual a 4 e a sua base ortogonal é composta pelos seguintes vetores:

    $ |00\rangle, |01\rangle, |10\rangle, |11\rangle $

    Podemos escrever esses vetores como os vetores ortogonais dessa base por meio da multiplicação vetorial de cada um dos Cbits da sequência:

    $|0\rangle \otimes |0\rangle, |0\rangle \otimes |1\rangle, |1\rangle \otimes |0\rangle, |1\rangle \otimes |1\rangle$

    Qualquer vetor de um espaço vetorial pode ser formado pelos vetores que formam a base desse espaço. Se temos por exemplo um espaço vetorial de dimensão 3, teremos os seguintes vetores nesse espaço:

    $ \begin{bmatrix} x_0 \\ x_1 \end{bmatrix} \otimes \begin{bmatrix} y_0 \\ y_1 \end{bmatrix} \otimes \begin{bmatrix} z_0 \\ z_1 \end{bmatrix} = \begin{bmatrix} x_0y_0z_0 \\ x_0y_0z_1 \\ x_0y_1z_0 \\ x_0y_1z_1 \\ x_1y_0z_0 \\ x_1y_0z_1 \\ x_1y_1z_0 \\ x_1y_1z_1 \end{bmatrix}$

    Vejamos o caso do vetor $ |3\rangle_3 $, por exemplo:

    |3\rangle_3 = |011\rangle = |0\rangle |1\rangle |1\rangle = \begin{bmatrix} 1 \\ 0 \end{bmatrix} \otimes \begin{bmatrix} 0 \\ 1 \end{bmatrix} \otimes \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \\ 0 \\ 0 \\ 0 \\ 0 \end{bmatrix}

    Podemos perceber que o 1 no vetor componente da direita está exatamente na posição 3, justamente a especificada pelo vetor dado. Essa é a generalização de um Cbit em forma de vetor componente.

    Também existem operações com os Cbits e estas são divididas em dois grupos, as reversíveis, em que todo estado final vem de um estado inicial único, e as de manipulação.


    ♦ Qbits

    Qbits são vetores bidimensionais compostos pelas superposições dos vetores clássicos $ |0\rangle $ e $ |1\rangle $ com amplitudes $\alpha_0$ e $\alpha_1$. Os estados dos Qbits são representados da seguinte forma:

    |\psi\rangle = \alpha_0 |0\rangle = \alpha_1 |1\rangle = \begin{bmatrix} \alpha_0 \\ \alpha_1 \end{bmatrix}

    Diferentemente dos bits clássicos, em que os estados só podiam ser representados por dois valores únicos 0 e 1, os estados dos Qbits não possuem essa limitação, já que os valores das componentes $ \alpha_0 $ e $ \alpha_1 $ estão contidos no conjunto dos complexos. Assim, o estado $ |\psi\rangle $ deve ser um vetor unitário cuja normalização é feita por meio da seguinte relação:

    $ |\alpha_0|^2 + |\alpha_1|^2 = 1 $

    Aplicando uma parametrização polar, com os valores de $ \alpha_0 = \cos(\theta/2) $ e $ \alpha_1 = e^{i\phi}\sin(\theta/2) $, teremos a seguinte expressão para o estado $ |\psi\rangle $:

    |\psi\rangle = \cos\bigg(\frac{\theta}{2}\bigg) |0\rangle + e^{i\phi} \sin\bigg(\frac{\theta}{2}\bigg) |1\rangle

    Essa forma de expressar a função de estado Qbit permite que o mesmo seja vizualizado como um ponto sobre a superfície de uma esfera. Tal esfera é conhecida como a esfera de Bloch.

    Diferentemente dos Cbits que são representados por valores, os Qbits são representados por estados. Assim, podemos expandri a representação da função de estado para uma sequência de Qbits. No exemplo abaixo, veremos como esta é feita para o caso de um sequência com apenas dois Qbits.

    |\psi\rangle = \alpha_{00} |00\rangle + \alpha_{01} |01\rangle + \alpha_{10} |10\rangle + \alpha_{11} |11\rangle = \begin{bmatrix} \alpha_{00} \\ \alpha_{01} \\ \alpha_{10} \\ \alpha_{11} \end{bmatrix}

    As respectivas amplitudes são confinadas ao espaço segundo a seguinte relação:

    $ |\alpha_{00}|^2 + |\alpha_{01}|^2 + |\alpha_{10}|^2 + |\alpha_{11}|^2 = 1 $

    Desse modo a generalização das expressões de um Qbits e de suas amplitudes são dadas pelas seguintes equações:

    |\psi\rangle = \sum_{i=0}^{2^n} a_i |i\rangle_n \hspace{20} e \hspace{20} \sum_{i=0}^{2^n} |a_i|^2 = 1

    Diferentemente dos Cbits, a junção de dois ou mais Qbits não é feita somente por meio do agrupamento de seus valores. Devemos generalizar o conceito usando o conhecimento de um Qbits ser expressamente representado por um vetor. Se temos, por exemplo, dois Qbits com seus respectivos estados representados por $ |\psi\rangle = \alpha_0 |0\rangle + \alpha_1 |1\rangle $ e $ |\phi\rangle = \beta_0 |0\rangle + \beta_1 |1\rangle $ o estado $ |\Psi\rangle $ do par deve ser calculado por meio do produto tensorial entre os estados $ |\psi\rangle $ e $ |\phi\rangle $,

    |\Psi\rangle = |\psi\rangle \otimes |\phi\rangle = (\alpha_0 |0\rangle + \alpha_1 |1\rangle) \otimes (\beta_0 |0\rangle + \beta_1 |1\rangle) \\ \alpha_0\beta_0 |00\rangle + \alpha_0\beta_1 |01\rangle + \alpha_1\beta_0 |10\rangle + \alpha_1\beta_1 |11\rangle = \begin{bmatrix} \alpha_0\beta_1 \\ \alpha_0\beta_0 \\ \alpha_1\beta_1 \\ \alpha_1\beta_0 \end{bmatrix}

    Devido a essa propriedade da superposição de estados, enquanto com o uso dos Cbits, as possibilidades são somadas, no caso dos Qbits as possibilidades de estados são multiplicadas.

    Figura 2.1. Comparação Qbits x Cbits.

    Além disso, com o uso dos Qbits adquirimos uma nova perspectiva sobre a computação: não estamos mais trabalhando com sistemas que admitem somente um único estado, mas com sistemas que admitem trabalhar com vários estados concomitantemente, através do uso das funções de estado.

  • Born Rule

  • A capacidade de um Qbit de armazenar muito mais informação do que um Cbit faz parecer óbvio que o computador quântico é muito mais avançado do que um computador clássico. Entretanto, isso não é tão simples quanto parece. Apesar da vasta capacidade de guardar informações, a retirada de informações de um Qbit é uma ação complexa.

    Para retirar uma informação de uma sequência de $ n $ Cbits, basta olharmos para os seus valores. Essa operação de leitura de um Cbit não traz consigo nenhuma complicação, visto que a mesma não altera em nada o estado do Cbit lido.

    No entanto, não há nada que nos permita realizar a operação de leitura em uma superposição de $ n $ Qbits da mesma forma que nos Cbits. Só há uma forma de extrair informação de um Qbit e essa ação é chamada de “tomar uma medida” (em inglês, “making a measurement”). Essa operação consiste em efetuar testes com cada Qbit em que o resultado é o valor 0 ou 1. Tais resultados não são determinados pela função de estado $ |\Psi\rangle $ da superposição, visto que a função de estado só nos disponibiliza a probabilidade de recebermos um resultado particular. Generalizando para uma superposição de $ n $ Qbits de função de estado

    |\psi\rangle = \sum_{i=0}^{2^n} a_i |i\rangle_n

    temos que a probabilidade de um resultado obtido ser a expansão binária do inteiro x é dada por:

    p(x) = |\alpha_x|^2

    Tal regra sobre como é feita a extração da informação de uma superposição de Qbits é conhecida como Born Rule. Na prática essa operação e feita através de uma porta de medida (measurement gate) e dado o resultado $ |x\rangle $ não é possivel alcançarmos o estado inicial $ |\Psi\rangle $, ou seja, a operação é irreversível.

    Figura 2.2. Diagrama de um circuita que utiliza uma measurement gate.