Laboratórios
O Algoritmo de Deutsch
Qui 25 Nov 2004 22:00 |
- Detalhes
- Categoria: Laboratório de Física Quântica
- Atualização: Quarta, 13 Janeiro 2010 23:47
- Autor: Mendonça
- Acessos: 17687
Vamos agora entender como Deutsch (e a física quântica), salvaram nossos salários. Não resta muita dúvida que, dependendo de resolver o problema classicamente, nós estamos demitidos; então, o natural é tentar usar os novos "recursos quânticos", postulados no último artigo.
Mas, já que vamos usar física quântica, cabem algumas modificações de linguagem. Em primeiro lugar, o que chamávamos de bits na física clássica, em física quântica são conhecidos como qubits (um acrônimo de quantum bit). Para diferenciar os bits dos qubits, vamos representar os últimos usando uma notação comum à física quântica: a notação de Dirac. Segundo ela, o qubit 0 é escrito como |0ket). Na verdade, os kets representam o estado do sistema, e portanto, lembrando do primeiro postulado, percebemos uma grande novidade aqui. Enquanto que os bits só podem ser 0 ou 1, os qubits podem ser qualquer superposição de |0
em que α e β são quaisquer números complexos que satisfaçam a normalização acima.
Por estranho que pareça, isso quer dizer que um computador quântico dispõe de uma variedade muito maior de unidades de informação, pois admite uma infinidade de qubits, enquanto que o computador clássico tem que se virar com seus míseros 0’s e 1’s... Isso, como veremos, pode fazer toda a diferença.
Como vamos lidar com qubits, precisamos de uma "caixa preta quântica", ou seja, uma que saiba processar estados superpostos. Um processamento, por sua vez, é uma dinâmica imposta a um estado, o que na física quântica se faz através de matrizes unitárias (segundo postulado). Portanto, nossa "caixa preta quântica" deve assumir a forma de uma matriz unitária que chamaremos Uf (o índice f para lembrar que há uma forte relação entre o que a matriz Uf faz com os qubits e o que a função f faz com os bits).
Como não sabemos qual é a função f, fica difícil escrever uma matriz para Uf, mas pelo simples fato de sabermos que essa matriz deve ser unitária, algumas inferências podem ser feitas sobre a sua forma.
Em primeiro lugar, vimos que
Se em vez de matrizes, estivéssemos trabalhando com números, escreveríamos essa igualdade como uu† = 1, e imediatamente alguém poderia pensar em passar o primeiro u dividindo no segundo membro da equação, resultando em u† = u−1. Com matrizes, esse procedimento segue um raciocínio um pouco diferente, mas a "cara do resultado" é exatamente a mesma:
Não existe uma operação de divisão para matrizes, logo o significado de U−1 não é (isso é um absurdo em se tratando de matrizes). Na verdade, a matriz U−1 é chamada de matriz inversa de U, e é definida de modo a obedecer que o produto de uma matriz pela sua inversa é sempre igual à matriz identidade.
O curioso é que nem todas as matrizes têm uma matriz inversa: se você escolher uma matriz qualquer (não unitária), existe alguma chance de que você nunca encontre uma matriz que multiplicada por ela resulte na matriz identidade! Todavia, se você escolher uma matriz unitária, a equação acima mostra que sempre vai existir uma matriz inversa, e para obtê-la basta tomar a adjunta da matriz escolhida! (pode parecer que perdemos o fio da meada, mas num instante estaremos de volta ao Algoritmo de Deutsch).
Digamos que uma matriz U leva um sistema físico de um estado inicial a um estado final .
O papel da matriz inversa U−1, é exatamente fazer o caminho inverso, ou seja, usando o estado final como estado de partida e aplicando U−1 sobre ele, obteremos o estado inicial como resultado:
Tudo isso vem mostrar que, na física quântica, a dinâmica unitária é reversível, ou seja, assim como você sabe aonde vai chegar se souber de onde partiu, você também pode saber de onde partiu se o que você sabe é aonde chegou.
Voltando ao problema de Deutsch... Não sabemos escrever a matriz Uf, mas não resta dúvida que, seja ela qual for, a dinâmica imposta deve ser reversível. Por outro lado, a função f não precisa ser reversível. Por exemplo, a caixa preta poderia muito bem seguir a prescrição: f(0) = 0 e f(1) = 0. Neste caso, a saída independe da entrada, isto é, não podemos descobrir a entrada olhando somente para a saída; logo, f é irreversível. Aliás, é fácil ver que se f fosse necessariamente reversível, consequentemente seria também balanceado, e todo o problema de Deutsch estaria resolvido sem demandar qualquer esforço.
Enfim, chegamos ao dilema: é possível incorporar, numa matriz reversível, os efeitos de uma função não necessariamente reversível?
A resposta é "sim", mas há um custo. Em vez de considerar somente o qubit |x
Com isso, podemos definir uma matriz Uf unitária (consequentemente reversível), quer f seja reversível ou não. A matriz Uf é definida como
É verdade que o objeto acima não tem cara de matriz (onde estão as linhas e as colunas?). Não escrevemos em forma matricial porque a notação acima é mais sugestiva do processo de evolução (mas é equivalente à forma matricial). Note que a expressão define muito bem a dinâmica que Uf impõe sobre os qubits |xf desconhecido: do lado esquerdo da seta temos os estados iniciais e do lado direito os estados resultantes da aplicação de Uf. Dessa forma, é fácil ver que nada acontece com o estado da primeira "moeda", mas o estado da segunda "moeda" é modificado ou não, dependendo do que faz a função f sobre o estado da primeira "moeda".
Você vai notar o símbolo , que pode causar desconforto. De fato, esse símbolo indica adição módulo 2, ou seja, a adição de números binários. Tudo o que precisamos saber sobre isso, por enquanto, é que
Ou seja, o símbolo é uma forma compacta de escrever:
Mas será que a dinâmica Uf , definida na equação (1), é realmente reversível?
Para checar, vamos escolher alguns possíveis |xUf . Antes, porém, vale destacar o seguinte: embora os qubits de entrada |x
Todavia, isso não esclarece nada sobre a reversibilidade. Para melhorar esse cenário, vamos ainda pensar em tudo o que pode acontecer com f(x) e calcular, para cada caso, o ket que ficou "mal resolvido" nas evoluções anteriores.
No caso de f ser contínua, há duas possibilidades: (i) f(0)=f(1)=0 e (ii) f(0)=f(1)=1. Esses são casos mais interessantes pois mostram que saber apenas o valor de f (0 no caso (i) e 1 no caso (ii)), não determina o valor de x (que pode ser 0 ou 1, indistintamente). Assumindo cada um desses casos, as evoluções anteriores se reduzem a
Para cada tabela, nunca há dois resultados iguais do lado direito da seta, logo, cada saída corresponde a uma, e somente uma, entrada. Disto fica claro que, conhecendo-se a saída, pode-se descobrir inequivocamente a entrada, ou seja, a dinâmica Uf, definida na equação (1), é reversível mesmo quando a função f não é!!
No caso de f ser balanceada, há duas outras possibilidades: (iii) f(0)=0 e f(1)=1; e (iv) f(0)=1 e f(1)=0. Fica para o leitor verificar que as mesmas conclusões tiradas nos casos (i) e (ii) continuam valendo, porém agora o resultado é menos surpreendente porque que as próprias funções f já são reversíveis.
Depois de verificar todos os casos, você vai estar convencido de que o análogo quântico da caixa preta é muito bem descrito por Uf (e vamos assumir que, assim como no caso clássico, o processamento quântico leva 24 hs para terminar, contados a partir da entrada dos estados). Além disso, pode-se mostrar que se nos restringirmos a entrar somente com estados não superpostos, de nada vai ter adiantado toda essa generalização, pois ainda não conseguiremos resolver o problema em menos de 48 horas. Enfim, já que nos esforçamos tanto para construir essa "Caixa Preta Quântica", vamos ver o que ela tem que a primeira não tinha.