Preview only show first 10 pages with watermark. For full document please download

Comp Quant

conputação quantica

   EMBED


Share

Transcript

Computa¸c˜ ao Quˆ antica Jean Faber e Renato Portugal Laborat´ orio Nacional de Computa¸ca ˜o Cient´ıfica - LNCC Av. Get´ ulio Vargas 333, Petr´ opolis, RJ, 25651-075, Brazil e-mail: {faber,portugal}@lncc.br Resumo Descrevemos a Computa¸ca˜o Quˆantica de forma acess´ıvel usando conceitos ´ b´asicos de Algebra Linear. Adotamos um tom informal minimizando o uso ´ de f´ormulas matem´aticas. Revisamos alguns conceitos de Algebra Linear e Mecˆanica Quˆantica como superposi¸ca˜o e emaranhamento. Descrevemos os pontos mais importantes dos algoritmos de Grover e Shor ressaltando o uso do paralelismo quˆantico. Apresentamos de forma breve conceitos da teoria da informa¸ca˜o, da criptografia quˆantica e da implementa¸ca˜o pr´atica de computadores quˆanticos. 1 Introdu¸ c˜ ao A Computa¸ca˜o Quˆantica estabeleceu um novo paradigma nascido da fus˜ao de duas importantes a´reas: Ciˆencia da Computa¸ca˜o e F´ısica Quˆantica. Todo novo paradigma nos leva a uma releitura do paradigma anterior. A Computa¸ca˜o Cl´assica, anteriormente conhecida apenas por Computa¸ca˜o, surgiu em um contexto matem´atico. No come¸co do s´eculo XX, os matem´aticos, como de costume, estavam trabalhando na demonstra¸ca˜o de teoremas espec´ıficos. Algumas conjecturas no entanto n˜ao se renderam a demonstra¸co˜es, como por exemplo, a conjectura de Goldbach que afirma que qualquer n´ umero par pode ser escrito como soma de dois n´ umeros primos. Por exemplo 16 = 5 + 11. Nunca foi encontrado um contra-exemplo para essa afirma¸ca˜o, nem no in´ıcio do s´eculo XX, nem usando computadores de grande porte atuais. David Hilbert resolveu perguntar n˜ao mais sobre provas de teoremas espec´ıficos. Ele formulou duas perguntas importantes (1) Qualquer afirma¸ca˜o matem´atica, dentro do seu contexto, pode ser provada verdadeira ou falsa? (2) Existe um algoritmo universal que leve a` constru¸ca˜o de uma prova da veracidade ou falsidade de qualquer afirma¸ca˜o? A primeira pergunta foi respondida por Kurt G¨odel, que mostrou que seja qual for o contexto matem´atico (desde que suficientemente complexo) sempre existem afirma¸co˜es indecid´ıveis, i.e., n˜ao podem ser provadas verdadeiras nem falsas. A segunda pergunta foi respondida por Alan Turing numa ´epoca em que ainda n˜ao havia computadores (nem cl´assicos e muito menos quˆanticos). Para tal, ele definiu formalmente as no¸co˜es de “algoritmo” e “computa¸ca˜o” criando um modelo te´orico chamado m´aquina de Turing, que como vocˆes sabem, tem um cabe¸cote que imprime 0 ou 1 numa fita infinita de acordo com um programa finito que controla os poss´ıveis estados da m´aquina. A m´aquina de Turing ´e a descri¸ca˜o mais sucinta que podemos fazer do que chamamos hoje de computadores cl´assicos. N˜ao precisamos dizer se o monitor tem 15 ou 17 polegadas ou se o processador ´e Intel ou Athlon. Com sua m´aquina, Turing mostrou o primeiro exemplo de afirma¸ca˜o que n˜ao ´e poss´ıvel computar. Turing demostrou que n˜ao existe um algoritmo que diga de maneira geral se algoritmos chegam a um resultado ou se rodam para sempre. A generaliza¸ca˜o quˆantica da m´aquina de Turing foi feita em 1985 por David Deutsch [1]. Para desˆanimo dos mais afoitos, Deutsch mostrou que a m´aquina de Turing quˆantica e a m´aquina de Turing cl´assica calculam exatamente as mesmas fun¸co˜es. O que n˜ao ´e comput´avel classicamente continua n˜ao comput´avel quanticamente. Por´em, no in´ıcio da 1 d´ecada de 90, surgiram os primeiros exemplos de algoritmos quˆanticos exponencialmente mais r´apidos do que seus equivalentes cl´assicos. Esses algoritmos fazem uso do que ´e chamado de paralelismo quˆantico. O computador quˆantico com um u ´ nico processador funciona como se tivesse um n´ umero exponencial de processadores paralelos. Outro resultado marcante foi a prova de que o computador quˆantico s´o tem ganho exponencial em compara¸ca˜o ao computador cl´assico se ele fizer uso do emaranhamento quˆantico. O emaranhamento ´e a caracter´ıstica que mais difere a F´ısica Quˆantica da Cl´assica. 2 Mecˆ anica Quˆ antica J´a houve uma ´epoca em que se imaginava que a descri¸ca˜o f´ısica dos fenˆomenos que ocorrem na Terra fosse diferente da descri¸ca˜o dos fenˆomenos celestes. Isaac Newton mostrou que as leis gravitacionais s˜ao as mesmas seja para uma ma¸ca˜ madura que cai ao ch˜ao ou para o movimento dos planetas ao redor do sol. Indo na dire¸ca˜o oposta, a Mecˆanica Quˆantica pegou muita gente de surpresa, pois se imaginava no come¸co do s´eculo XX que o movimento dos el´etrons em torno do n´ ucleo atˆomico fosse similar ao movimento dos planetas ao redor do sol. Engano! A natureza das leis f´ısicas do n´ıvel microsc´opico ´e radicalmente diferente das leis do mundo macrosc´opico. L´a reina a Mecˆanica Quˆantica, onde tudo est´a em superposi¸ca˜o e emaranhado. Aqui reina a F´ısica Cl´assica, cujos princ´ıpios l´ogicos foram usados nos computadores e microcomputadores que nos s˜ao familiares. Os vetores descrevem muitas grandezas da F´ısica Cl´assica. Imagine uma bola de bilhar girando em torno de um eixo que passa pelo seu centro (veja Fig. 1). Podemos ~ cuja dire¸ca˜o ´e a mesma do eixo, cujo quantificar esse estado de rota¸ca˜o por um vetor J, sentido indica se a rota¸ca˜o ´e hor´aria ou anti-hor´aria e cujo m´odulo (norma) mede o qu˜ao r´apido ´e o giro. Ningu´em duvida que a dire¸ca˜o de J~ pode variar continuamente, pois de alguma forma podemos ir inclinando suavemente o eixo de rota¸ca˜o. Isso n˜ao ´e poss´ıvel quando observamos o mundo microsc´opico. L´a todas as grandezas f´ısicas s˜ao quantizadas e o quantum m´ınimo ´e dado pela constante universal de Planck h ≈ 6.62 × 10 −27 erg sec. Note que usando as medidas macrosc´opicas de energia (erg) e de tempo (sec), h ´e uma grandeza bem pequena. O el´etron ´e considerado uma part´ıcula elementar. N˜ao podemos imagin´a-lo girando como uma bola de bilhar. No entanto ele tem uma grandeza vetorial associada chamada J~ PSfrag replacements Eixo de rota¸ca ˜o Figura 1: Bola de bilhar girando. 2 PSfrag replacements ou Figura 2: Quando se faz uma experiˆencia f´ısica para medir o momento angular do el´etron usando um campo magn´etico na dire¸ca ˜o vertical, s´ o se observa dois valores: para cima ou para baixo. spin, que de t˜ao quantizada s´o pode assumir 2 dire¸co˜es, para cima ou para baixo como mostrado na Fig. 2. Para descrever corretamente os resultados dos experimentos, a Mecˆanica Quˆantica associa estas duas dire¸co˜es de spin a dois vetores     1 0 |0i = , |1i = . 0 1 N˜ao pode haver nota¸ca˜o mais estranha a primeira vista para vetores do que |0i e |1i. Todo mundo est´a familiarizado com ~v 0 e ~v1 ou v0 e v1 . Mas desde que Paul Dirac introduziu essa nota¸ca˜o bizarra, ela passou a ser padr˜ao na Mecˆanica Quˆantica e agora na Computa¸ca˜o Quˆantica. Se vocˆe est´a interessado na a´rea, ´e melhor se familiarizar. Voltando ao spin, afirmamos que quando observamos o el´etron, ele s´o pode ter spin para cima ou para baixo. No entanto, tudo muda se n˜ao estivermos observando-o. Nesse caso ele se comporta de outra maneira. No mundo cl´assico s´o temos esse fenˆomeno com seres humanos. Tem gente que s´o canta no chuveiro se tiver certeza de que ningu´em est´a ouvindo. Na Mecˆanica Quˆantica essa ´e a regra. Se ningu´em estiver observando o el´etron, os dois valores de spin entram em superposi¸ca˜o, e o spin resultante pode apontar para qualquer dire¸ca˜o. O spin gen´erico ´e escrito como uma combina¸ca˜o linear dos dois vetores da base da seguinte forma |ψi = α|0i + β|1i. (1) Os n´ umeros α e β podem ser complexos, por´em devem satisfazer a rela¸ca˜o |α|2 + |β|2 = 1, (2) pois quando observamos o spin do el´etron, sabemos que vamos encontr´a-lo em uma das duas dire¸co˜es para cima ou para baixo que est˜ao associada aos vetores |0i ou |1i respectivamente. A probabilidade de encontr´a-lo em |0i ´e |α| 2 e a de encontr´a-lo em |1i ´e |β|2 . Note que |ψi pode apontar para qualquer dire¸ca˜o em um espa¸co vetorial complexo de dimens˜ao 2, chamado espa¸co de Hilbert. Temos aqui um gancho para falar do qubit cuja pron´ uncia ´e qu´ıubit. Se quisermos guardar dados usando grandezas da Mecˆanica Quˆantica, nada mais natural do que escolher uma grandeza que tem apenas 2 valores. Podemos codificar os bits 0 e 1 nos spins |0i e |1i. At´e aqui n˜ao h´a ganho. Em vez de usar diferen¸ca de potencial el´etrico alto para codificar o bit 1 e diferen¸ca de potencial baixa para codificar o bit 0, estamos usando os spin |0i para o bit 0 e o spin |1i para o bit 1. Parece trocar 6 por meia-d´ uzia, certo? N˜ao, pois se n˜ao estivermos observando o qubit, os dados |0i e |1i v˜ao entrar em superposi¸ca˜o (no caso de haver alguma intera¸ca˜o f´ısica apropriada), coisa que n˜ao pode ocorrer com os dados do computador cl´assico. 3 PSfrag replacements NOT(i) i ou Figura 3: A porta l´ ogica cl´ assica NOT. A observa¸ca˜o (medi¸ca˜o f´ısica) do estado de um sistema tem um papel bem diferente na teoria quˆantica quando comparada com a cl´assica. Na F´ısica Quˆantica, uma medida f´ısica perturba o estado e destr´oi a superposi¸ca˜o num processo estoc´astico. O estado antes da medi¸ca˜o n˜ao pode ser conhecido nem experimentalmente nem teoricamente. Na F´ısica Cl´assica uma medida tamb´em perturba, por´em o efeito pode ser minimizado e o estado original antes da medida pode ser deduzido teoricamente, pois ele existe objetivamente. Imagine uma m˜ae (desesperada) medindo a temperatura do filho com febre. O resultado que ela lˆe no termˆometro n˜ao ´e a temperatura original do filho, pois o termˆometro esfria um pouco o menino. Todo mundo vai falar que o erro ´e desprez´ıvel. S´o que na F´ısica Quˆantica, a perturba¸ca˜o n˜ao ´e desprez´ıvel, e pior, o estado original n˜ao pode ser determinado. Essa constata¸ca˜o fez com que toda a estrutura da F´ısica Cl´assica tivesse que ser reformulada para descrever essa nova situa¸ca˜o. 3 Computa¸ c˜ ao Quˆ antica Podemos fazer pouca coisa em um computador cl´assico de apenas 1 bit. Usando o modelo de circuitos de Shannon, podemos claramente ver que s´o h´a duas possibilidades. A primeira ´e descrita pela porta l´ogica NOT. A Fig. 3 mostra que se a entrada do computador for o bit i, a sa´ıda ser´a NOT(i). Se i = 0 ent˜ao a sa´ıda ´e 1, se i = 1 ent˜ao a sa´ıda ´e 0. A segunda possibilidade ´e ter como sa´ıda a pr´opria entrada. A representa¸ca˜o ´e simplesmente um fio que liga a entrada i na sa´ıda i. Num computador quˆantico de apenas 1 qubit, ´e poss´ıvel fazer mais coisa, apesar de n˜ao ser muito pr´atico. A Fig. 4 mostra um circuito quˆantico. A entrada ´e o estado de um qubit. O que o computador pode ou n˜ao pode fazer ´e determinado pelas leis da Mecˆanica Quˆantica. Ela diz que se o computador estiver isolado, a dire¸ca˜o de |ψi pode mudar mas ´ n˜ao a sua norma. Na Algebra Linear isso ´e expresso pela a¸ca˜o de um operador unit´ario U , que ´e uma matriz 2 × 2 com elementos complexos satisfazendo U U † = I, (3) onde U † ´e encontrada tomando o complexo conjugado da matriz transposta de U . U ´e uma matriz 2 × 2 enquanto que |ψi ´e um vetor coluna de 2 elementos, de forma que a sa´ıda mostrada na Fig. 4 est´a com a dimens˜ao compat´ıvel. Usualmente a entrada ´e |ψi = |0i ou |ψi = |1i, pois alimentamos o computador quˆantico com dados cl´assicos. A sa´ıda U |ψi pode estar em superposi¸ca˜o, por´em precisamos observ´a-la para poder extrair informa¸co˜es u ´ teis. Essa medida faz U |ψi ser projetado em |0i ou |1i de acordo com suas respectivas probabilidades. Isso d´a a impress˜ao que o PSfrag replacements computador quˆantico n˜ao faz nada mais que o computador cl´assico com um acr´escimo de |ψi U |ψi U Figura 4: Um circuito quˆ antico de 1 qubit. 4 algum processo randˆomico. Note por´em que o circuito da Fig. 4 pode estar imerso em um circuito maior, nesse caso tanto a entrada como a sa´ıda podem estar em superposi¸ca˜o e emaranhadas com o estado de outros qubits. As novidades s´o come¸cam realmente a aparecer quando consideramos computadores com mais de 1 qubit. Vamos pensar num computador quˆantico com 2 qubits. Fisicamente temos um sistema composto de 2 sub-sistemas. Cada sub-sistema tem um qubit. Isoladamente sabemos como trat´a-los. Para trabalhar com sistemas compostos, temos que introduzir a no¸ca˜o de produto de vetores, que n˜ao ´e igual aos familiares produtos interno e externo. Suponha que o qubit 1 esteja no estado a |0i + b |1i e o qubit 2 esteja no estado c |0i + d |1i. A Mecˆanica Quˆantica diz que o estado do sistema composto ´e |ψi = (a |0i + b |1i)(c |0i + d |1i) = ac |0i |0i + ad |0i |1i + bc |1i |0i + bd |1i |1i . (4) O produto |0i |1i tamb´em ´e representado por |01i. Note que a ordem dos fatores deve ser preservada, pois esse produto ´e n˜ao comutativo. Em termos de vetores temos que         1 0 0 0  0   1   0   0         |00i =  (5)  0  , |01i =  0  , |10i =  1  , |11i =  0  . 0 0 0 1 Portanto |ψi da Eq. (4) pertence a um espa¸co de Hilbert de dimens˜ao 4. As poss´ıveis modifica¸co˜es de |ψi devido a intera¸co˜es f´ısicas s˜ao descritas por uma matriz unit´aria 4×4. Uma vez introduzido esse produto, podemos descrever o que ´e emaranhamento, pelo menos de forma matem´atica. Vamos tamb´em tentar descrever fisicamente, mas n˜ao vamos prometer nada. O estado |ψi da Eq. (4) ´e produto de dois estados de 1 qubit. Sabemos qual ´e o estado de cada qubit isoladamente. Essa n˜ao ´e a situa¸ca˜o mais geral. Qualquer vetor de norma unit´aria no espa¸co de Hilbert de dimens˜ao 4 pode representar o estado de 2 qubits. Por exemplo, o estado |ψi = |00i + |11i √ 2 (6) ´e perfeitamente v´alido. Note que n˜ao podemos fatorar |ψi. N˜ao h´a como escrevˆe-lo como produto de estados de 1 qubit. Sempre que isso ocorrer, o estado ´e dito emaranhado. O estado do conjunto est´a perfeitamente determinado, por´em as partes n˜ao tˆem estados definidos. A Mecˆanica Quˆantica concorda que o todo n˜ao ´e a soma das partes (melhor dizendo: produto das partes). Os esot´ericos adoram esse ponto. Esoterismo de lado, podemos dizer que os estados emaranhados s˜ao os n´ umeros primos desse novo produto que introduzimos que ´e conhecido como produto tensorial. Para dar um exemplo mais concreto, considere o circuito de 2 qubits da Fig. 5, onde H ´e o operador de Hadamard dado por   1 1 1 H=√ . (7) 2 1 −1 PSfrag replacements |0i H |0i+|1i √ 2 |0i H |0i+|1i √ 2 Figura 5: Um exemplo de um circuito quˆ antico de 2 qubits n˜ ao emaranhados. 5 A sa´ıda do circuito ´e um estado |ψi dado por    |0i + |1i |0i + |1i √ √ |ψi = 2 2 1 = (|00i + |01i + |10i + |11i) 2 1 = (|0i + |1i + |2i + |3i). 2 (8) ´ Na u ´ ltima linha, usamos a base decimal para escrever os n´ umeros dentro do ket |· · · i. E claro que isso ´e um abuso de nota¸ca˜o, por´em bastante u ´ til. Ela ser´a usada daqui para frente. Vamos definir o produto interno usando a nota¸ca˜o de Dirac, pois vamos precisar dele † adiante. Se |αi = a |0i + b |1i e |βi = c |0i + d |1i, ent˜ao vamos definir  hα|  ≡ (|αi) , a onde (|αi)† ´e o complexo conjugado da transposta de |αi. Como |αi = segue que b   hα| = a* b* . O produto interno de |αi e |βi ´e    ∗ ∗  c hα|βi = a b = a∗ c + b∗ d. d p p A norma do vetor |αi ´e || |αi || = hα|αi = |a|2 + |b|2 . hα| ´e chamado por bra que junto com o ket |αi forma, por incr´ıvel que pare¸ca, o braket hα|αi. Braket lembra a forma correta bracket. Uma caracter´ıstica que marca a diferen¸ca entre a computa¸ca˜o cl´assica e quˆantica ´e a reversibilidade. As portas AND e OR da computa¸ca˜o cl´assica s˜ao irrevers´ıveis. A partir da sa´ıda n˜ao se pode prever a entrada ou seja n˜ao ´e poss´ıvel reverter o processo. Isso quer dizer que os chips liberam calor o que faz com que computadores cl´assicos tenham que ter ventoinhas ou tenham que funcionar em ar condicionado desagradavelmente forte. Os processos dentro do computador quˆantico, por sua vez, s˜ao unit´arios. Pela Eq. (3) vemos que uma matriz unit´aria tem sempre inversa. Isso quer dizer que os processos quˆanticos s˜ao revers´ıveis e n˜ao geram calor. Ainda bem pois seria problem´atico ventilar os qubits. Um problema contorn´avel ´e introduzido na limpeza do lixo (um jarg˜ao da computa¸ca˜o cl´assica). Apagar informa¸ca˜o gera calor pois ´e um processo irrevers´ıvel. Na computa¸ca˜o quˆantica, ap´os um c´alculo ter sido feito e o resultado ter sido medido, ´e necess´ario desfazer o c´alculo para limpar a mem´oria do computador, para ficar pronto para um uso subsequente. 4 O Algoritmo de Grover Suponha que temos um banco de dados com N elementos, e que os dados foram armazenados de forma aleat´oria. Queremos saber se um elemento espec´ıfico i 0 pertence ou n˜ao ao banco de dados. Classicamente teremos que consultar todo o banco de dados no pior caso, assim a complexidade do algoritmo ´e O(N ). N˜ao h´a como melhorar a complexidade se o banco de dados n˜ao √ for ordenado de alguma forma. Quanticamente ´e poss´ıvel resolver esse problema com O( N ) consultas. Foi isso que mostrou Lov Grover [2, 3] no simp´osio STOC em 1996. Para descrever esse novo algoritmo vamos seguir a forma dada por Dorit Aharonov [4]. Um algoritmo quˆantico ´e uma sucess˜ao de aplica¸co˜es de operadores unit´arios sobre vetores do espa¸co de Hilbert. Como o espa¸co de Hilbert ´e complexo n˜ao podemos visualizar as mudan¸cas na dire¸ca˜o dos vetores a medida que os operadores s˜ao aplicados. No 6 caso do algoritmo de Grover, tudo se passa em um sub-espa¸co real do espa¸co de Hilbert, portanto nesse caso podemos visualizar o algoritmo geometricamente. Vamos supor que N = 2n e que os elementos do banco de dados s˜ao n´ umeros n˜ao negativos menores que N , podendo ter repeti¸co˜es. O n´ umero procurado i 0 pode pertencer ou n˜ao. Estamos supondo que 0 ≤ i0 ≤ N − 1. Todos os elementos do banco de dados podem ser codificados como vetores |ii de um espa¸co Euclideano de dimens˜ao N , pois |ii usa n qubits (converta i para a base bin´aria). O primeiro passo do algoritmo ´e colocar o computador quˆantico no estado |ψi = N −1 1 X √ |ii , N i=0 (9) que ´e feito aplicando H dado pela Eq. (7) a cada qubit inicialmente no estado |0i e expandindo da mesma forma como foi feito na Eq. (8). O estado procurado ´e |i 0 i, que ´e um dos termos de |ψi. A Fig. 6 mostra |i0 i e |ψi. Todo o algoritmo se passa no plano bidimensional gerado por esses vetores. A linha pontilhada ´e ortogonal a |i 0 i. O aˆngulo entre |i0 i e |ψi ´e dado por (lembre que |i0 i e |ψi tem norma 1 e que o conjunto {|ii , i = 0, · · · , N − 1} forma uma base ortonormal)     N −1 π θ θ 1 X 1 = cos − = hi0 |ψi = √ sin hi0 |ii = √ . 2 2 2 N i=0 N (10) Se o tamanho do banco de dados for grande, |i 0 i e |ψi s˜ao quase ortogonais e portanto o aˆngulo θ ´e pequeno. Podemos usar a aproxima¸ca˜o sin θ2 ≈ θ2 e obter 2 θ≈ √ . N (11) O pr´oximo passo do algoritmo ´e aplicar um operador que reflete |ψi em rela¸ca˜o a` linha pontilhada. N˜ao sabemos se i 0 pertence ou n˜ao ao banco de dados. Essa reflex˜ao s´o ocorrer´a se i0 pertencer. Seja f definida da seguinte forma  1 se i = i0 f (i) = (12) 0 caso contr´ario. Essa fun¸ca˜o ´e usada no algoritmo cl´assico para comparar i 0 com cada elemento do banco de dados sequencialmente. A partir de f , podemos definir um operador unit´ario U f , que ap´os uma consulta ao banco de dados quˆantico produz o seguinte resultado Uf |ii = (−1)f (i) |ii . |i0 i PSfrag replacements |ψi θ 2 Figura 6: Representa¸ca ˜o geom´etrica dos vetores |i0 i e |ψi. 7 (13) Estamos omitindo alguns detalhes que podem ser encontrados em [5]. O operador U f troca o sinal apenas do vetor |i0 i, caso i0 perten¸ca ao banco de dados, e deixa inalterado todos os outros |ii. Isso vai provocar exatamente a reflex˜ao de |ψi em torno da linha pontilhada. Vamos chamar de |ψ1 i o novo estado, assim |ψ1 i = Uf |ψi = N −1 1 X √ Uf |ii N i=0 = N −1 1 X √ (−1)f (i) |ii . N i=0 (14) |ψ1 i tem os mesmos termos que |ψi por´em o sinal de |i 0 i est´a trocado. Isso quer dizer que a proje¸ca˜o de |ψ1 i na dire¸ca˜o de |i0 i ´e o negativo da proje¸ca˜o de |ψi. Assim podemos posicionar |ψ1 i na Fig. 7 como o reflexo de |ψi. A atua¸ca˜o de Uf em |ψi faz uso de um importante recurso da Computa¸ca˜o Quˆantica chamado paralelismo quˆantico. Note que na Eq. (14), a fun¸ca˜o f foi aplicada simultaneamente a N elementos. Isso decorre da linearidade de U f . No algoritmo cl´assico, f tem que ser aplicada sequencialmente. O paralelismo quˆantico ´e favor´avel, pois se o computador quˆantico tiver n qubits, ser´a poss´ıvel usar 2 n canais paralelos, j´a que |ψi dado pela Eq. (9) tem 2n termos. No n´ıvel quˆantico, pode-se “ver” atrav´es do paralelismo quˆantico todo o banco de dados com uma u ´ nica consulta. Isso permite “marcar” (com sinal menos) o termo |i0 i com uma u ´ nica consulta. Por´em para trazer uma informa¸ca˜o quˆantica para o n´ıvel cl´assico, temos que fazer uma medida f´ısica. No caso de |ψ 1 i dado pela Eq. (14), a medida n˜ao ir´a revelar i 0 , j´a que a probabilidade de |ψ1 i ser projetado em |i0 i ´e exponencialmente menor do que ser projetado no espa¸co ortogonal a |i 0 i. Veremos que o algoritmo de Grover usa o paralelismo quˆantico repetidamente para aumentar o m´odulo do coeficiente de |i0 i para pr´oximo de 1 e automaticamente reduzir o m´odulo dos outros coeficientes. Nesse caso a medida vai dar |i 0 i com grande probabilidade. O pr´oximo passo do algoritmo ´e usar um operador unit´ario R que reflete |ψ 1 i em torno de |ψi. Esse operador ´e dado por R = 2 |ψi hψ| − I, (15) onde hψ| = (|ψi)† . Lembre que † ´e o transposto conjugado, ent˜ao hψ| ´e um vetor linha obtido transpondo |ψi. Assim |ψi hψ| ´e o produto de uma matriz coluna N × 1 por uma |i0 i PSfrag replacements |ψi θ |ψ1 i = Uf |ψi Figura 7: Representa¸ca ˜o geom´etrica do vetor |ψ1 i ap´ os uma consulta ao banco de dados. 8 |i0 i |ψ2 i = R |ψ1 i PSfrag replacements |ψi θ θ |ψ1 i = Uf |ψi Figura 8: Representa¸ca ˜o geom´etrica do vetor |ψ2 i ap´ os reflex˜ ao de |ψ1 i em torno de |ψi. matriz linha 1 × N que gera uma matriz N × N . I ´e a matriz identidade N × N . Logo R ´e uma matriz N × N e consequentemente um operador com a dimens˜ao correta. A prova de que R ´e unit´ario ´e bastante simples mas n˜ao vem ao caso agora. O que nos interessa ´e mostrar que R produz uma reflex˜ao em torno de |ψi, o que pode ser feito da seguinte forma. Primeiro vamos verificar que qualquer vetor m´ ultiplo de |ψi fica inalterado: R |ψi = (2 |ψi hψ| − I) |ψi = 2 |ψi hψ|ψi − |ψi = |ψi . (16) Usamos o fato de que hψ|ψi = 1. Agora vamos verificar que qualquer vetor perpendicular a |ψi troca de sinal: R |ψi⊥ = (2 |ψi hψ| − I) |ψi⊥ = 2 |ψi hψ|ψi⊥ − |ψi⊥ = − |ψi⊥ . (17) Usamos o fato de que hψ|ψi ⊥ = 0, pois |ψi⊥ ´e um vetor perpendicular a |ψi. Como qualquer vetor no plano da Fig. 7 pode ser escrito como uma combina¸ca˜o linear de |ψi e |ψi⊥ , e como a atua¸ca˜o de R inverte o sinal apenas da componente |ψi ⊥ , segue o que afirmamos. A Fig. 8 mostra a posi¸ca˜o de |ψ 2 i = R |ψ1 i. Aplicar Uf seguido de R sobre |ψi gira esse vetor de θ graus em dire¸ca˜o a |i 0 i no caso de i0 pertencer ao banco de dados. O resultado ´e |ψ 2 i conforme mostrado na Fig. 8. Se repetirmos a atua¸ca˜o de Uf seguida de R sobre |ψ2 i, novamente teremos um giro de θ graus em dire¸ca˜o a |i0 i. Vimos que θ ´e muito pequeno. Quantas vezes temos que operar Uf e R para que o estado do computador quˆantico esteja bem pr´oximo de |i 0 i? √ π N Usando a Eq. (11), vemos que temos que multiplicar θ por 4 para girar |ψi de 90 √ graus. Portanto o n´ umero de vezes que temos que consultar o banco de dados ´e O( N). 5 O Algoritmo de Shor Queremos achar um fator de um n´ umero composto N . Classicamente s´o s˜ao conhecidos algoritmos ineficientes. Quanticamente, Peter Shor desenvolveu um algoritmo eficiente com caracter´ısticas bastante interessantes [6]. Parte do algoritmo deve ser executada em 9 um computador cl´assico, a saber, a redu¸ca˜o do problema de fatora¸ca˜o ao problema de achar a ordem de um n´ umero inteiro x m´odulo N . A ordem ´e o menor inteiro r tal que xr ≡ 1 mod N. (18) Essa nota¸ca˜o quer dizer: xr dividido por N tem resto 1. Por exemplo, para N = 21 e x = 2 temos que (19) 26 ≡ 1 mod 21. Assim a ordem de 2 m´odulo 21 ´e r = 6. H´a um teorema que diz que se r for par, ent˜ao (xr/2 ± 1) cont´em fatores comuns com N . Fatores comuns s˜ao calculados eficientemente usando o algoritmo de Euclides de m´aximo divisor comum (MDC). Asim 2 3 ± 1 devem ter fatores comum com N = 21. De fato, 2 3 + 1 = 9 tem o fator 3 e 23 − 1 = 7 tem o fator 7. O algoritmo de Shor primeiramente escolhe randomicamente um n´ umero inteiro positivo x menor que N . O objetivo ´e achar a ordem de x m´odulo N . Se a ordem n˜ao for par, o processo recome¸ca com a escolha randˆomica de um outro x. O fato ´e que a quantidade de n´ umeros menores que N que tem ordem par ´e suficientemente grande. Como se calcula classicamente a ordem de x? Temos que calcular em sequˆencia x 1 , x2 , x3 , · · · e ir verificando se a divis˜ao por N tem resto 1. No primeiro r tal que x r ≡ 1 mod N , a sequˆencia deve parar. Esse algoritmo tem complexidade O(N ). No computador quˆantico, podemos usar o paralelismo quˆantico e calcular x r para r de 0 a N − 1 simultaneamente. Isso ´e feito da seguinte maneira. Prepare o computador quˆantico no estado n |ψi = 2 −1 1 X √ |ji , 2n j=0 (20) onde n ´e o menor inteiro tal que N ≤ 2n . Considere o seguinte operador unit´ario com a soma calculada m´odulo N Vx (|ji |ki) = |ji k + xj . (21) Vx vai precisar de 2 registradores (conjuntos de qubits) com n qubits cada. Estamos omitindo detalhes que podem ser obtidos em [7]. Assim temos que n Vx (|ψi |0i) = 2 −1 1 X √ Vx (|ji |0i) 2n j=0 n = = 2 −1 1 X √ |ji xj 2n j=0  1 √ |0i x0 + |1i x1 + |2i x2 + · · · . n 2 (22) No resultado acima temos todas as potˆencias de x. Sabemos que quando o estado do primeiro registrador for |ri, o segundo ser´a |1i. Por´em, esse n˜ao ´e o u ´ nico caso em que a potˆencia de x d´a resto 1, de fato podemos selecionar os seguintes termos da Eq. (22) com esta caracter´ıstica |0i |1i , |ri |1i , |2ri |1i , · · · , (23) pois, por exemplo x2r = (xr )2 , assim x2r ≡ 1 mod N . O mesmo vale para os outros termos. 10 O fato do computador quˆantico ter calculado todas as potˆencias de x ao mesmo tempo n˜ao ´e suficiente para sabermos qual ´e a ordem de r, pois a informa¸ca˜o de que os estados |0i , |ri , |2ri , · · · retornam resto 1 est´a no n´ıvel quˆantico. Para trazer essa informa¸ca˜o para o n´ıvel cl´assico, e ter r nas nossas m˜aos, precisamos fazer uma medida f´ısica. Uma medida direta do estado (22) n˜ao resultar´a na informa¸ca˜o desejada, pois todos os termos tˆem coeficientes iguais e a probabilidade de se obter um valor diferente de 1 no segundo registrador ´e muito maior do que obter 1. O que permite obter o valor de r ´e o fato de que os termos que tˆem valores iguais no segundo registrador s˜ao peri´odicos de per´ıodo r. Por exemplo, note que os valores do primeiro registrador da sequˆencia (23) tem per´ıodo r. Sem entrar em detalhes (veja [7]) a chave para resolver o problema ´e a transformada de Fourier. Sabemos que a transformada de Fourier de uma fun¸ca˜o de per´ıodo r ´e uma nova fun¸ca˜o de per´ıodo 1/r. Isso faz toda a diferen¸ca nesse contexto, pois a transformada de Fourier do estado da Eq. (22) gera a seguinte sequˆencia correspondentes aos termos de (23)     0 N |1i , 1 N |1i , 2 N |1i , · · · , r − 1 N |1i . (24) r r r r O mesmo ocorre com os termos que n˜ao tˆem 1 no segundo registrador. Agora o objetivo n˜ao ´e mais medir o segundo registrador e procurar pelo resultado 1, mas sim medir o primeiro registrador e ignorar o segundo. Pegamos o resultado e dividimos por N para obter j/r onde j pode ser qualquer n´ umero tal que 0 ≤ j ≤ r − 1. Se j e r n˜ao tiverem fatores comuns e j 6= 0, teremos r na primeira tentativa, pois basta tomar o denominador. Caso contr´ario, temos que rodar a parte quˆantica do algoritmo novamente. Com poucas repeti¸co˜es se chega ao resultado. A transformada de Fourier ´e calculada ineficientemente em um computador cl´assico, pois se a fun¸ca˜o atua em N pontos, ´e necess´ario calcular a transformada em cada ponto sequencialmente o que d´a no m´ınimo complexidade O(N ). No caso quˆantico, usa-se o paralelismo quˆantico para calcular a transformada nos N pontos simultaneamente. Shor mostrou que o c´alculo quˆantico da transformada de Fourier tem complexidade O(n 2 ) e posteriormente se mostrou que o c´alculo da transformada aproximada tem complexidade O(n log n), isto ´e, exponencialmente mais r´apido do que o cl´assico (lembre que n ' log2 N ). O computador quˆantico calcula a transformada de Fourier praticamente na mesma velocidade que o computador cl´assico soma n´ umeros. Infelizmente, o computador quˆantico n˜ao pode executar apenas a transformada de Fourier e deixar o resto da tarefa para o cl´assico. A entrada do circuito da transformada de Fourier deve ser um estado em superposi¸ca˜o. Esse estado n˜ao pode ser fornecido por um circuito cl´assico. 6 Teoria da Informa¸ c˜ ao Cl´ assica Os engenheiros el´etricos sabem que a Teoria da Informa¸ca˜o ´e importante na Ciˆencia da Computa¸ca˜o. Shannon era engenheiro el´etrico e criou as bases dessa teoria na d´ecada de 40. O primeiro passo ´e quantificar a informa¸ca˜o. Para isso, vamos supor que a informa¸ca˜o est´a sendo enviada de Alice para Beto atrav´es de um canal (internet, por exemplo). Vamos nos concentrar na primeira letra da frase que Alice vai enviar. Se ela est´a usando portuguˆes, ela vai enviar uma letra entre 23 possibilidades de “a” at´e “z”. A primeira letra que Beto recebe j´a cont´em um pouco de informa¸ca˜o. Por´em, se ele receber a letra “a” ou “s”, estar´a recebendo menos informa¸ca˜o do que se ele recebesse as letras “u” ou “z”, pois nos textos em portuguˆes existe muito mais “a” e “s” do que “u” e “z”. Pense no jogo da forca. Se vocˆe acertar um “u” ou um “z”, vocˆe estar´a mais perto de 11 ganhar o jogo do que se acertar um “a” ou um “s”. Conclu´ımos disto que a quantidade de informa¸ca˜o enviada por Alice depende da probabilidade de ocorrˆencia daquela letra nos textos em portuguˆes e n˜ao da letra em si. Usando computadores, enviamos zeros e uns em vez de letras do alfabeto. No entanto, a teoria ´e a mesma. Se as probabilidades de enviar 0 ou 1 s˜ao iguais (com probabilidade 1/2) ent˜ao a quantidade de informa¸ca˜o recebida por Beto ´e a mesma caso ele receba 0 ou 1. Queremos quantificar 1 bit de informa¸ca˜o com o n´ umero 1. Se a quantidade de informa¸ca˜o S s´o depende dessa probabilidade p = 1/2, para obter o valor 1 no caso de 1 bit temos que definir S da seguinte forma S = − log p, (25) onde o logaritmo ´e calculado na base 2. Essa f´ormula fica determinada univocamente se exigirmos que a quantidade de informa¸ca˜o recebida quando se envia duas letras, com probabilidade p e q respectivamente, seja igual a soma das informa¸co˜es de cada letra: S(p q) = S(p) + S(q). Suponha agora que por alguma raz˜ao o n´ umero de ocorrˆencias de 0 ´e maior que o de 1. Por exemplo, na codifica¸ca˜o do alfabeto no sistema bin´ario foram usados mais 0 do que 1. Para facilitar as contas suponha que p(0) = 3/4 e p(1) = 1/4. Nesse caso, se Beto receber o bit 0 temos que S = − log(3/4) ' 0.41 e se receber 1, S = − log(1/4) = 2. Isso est´a de acordo com nossa intui¸ca˜o. O bit 0 ocorre mais vezes, portanto Beto recebe mais informa¸ca˜o quando for o bit 1. Se podemos quantificar a informa¸ca˜o, demos o primeiro passo. Daqui para frente ´e quest˜ao de desdobramentos. Vimos que podemos usar um alfabeto bin´ario seja com p(0) = p(1) ou com p(0) 6= p(1). Qual dos dois ´e mais eficiente? Para responder essa quest˜ao vamos calcular a informa¸ca˜o m´edia enviada para Beto em cada caso. A f´ormula da informa¸ca˜o m´edia hSi ´e hSi = p(0) S(0) + p(1) S(1) = −p(0) log p(0) − p(1) log p(1) 1 X = − p(i) log p(i). (26) i=0 Se p(0) = p(1) = 1/2 ent˜ao hSi = 1 . Se p(0) = 3/4 e p(1) = 1/4 ent˜ao hSi ' (3/4) 0.41 + (1/4) 2 ' 0.81. Podemos ver que o segundo caso ´e menos eficiente. Isso pode ser generalizado. A distribui¸ca˜o uniforme ´e sempre a mais eficiente. Se na l´ıngua portuguesa todas as 23 letras aparecessem com a mesma probabilidade, o envio de uma letra corresponderia a seguinte quantidade de informa¸ca˜o: hSi = − 23 X 1 1 log = log 23 ' 4.52. 23 23 i=1 Como a distribui¸ca˜o de letras n˜ao ´e uniforme, a quantidade de informa¸ca˜o ao receber um “a” ou um “s” ´e menor que 4.52, e ao receber um “u” ou um “z” ´e maior que 4.52. O valor exato depende da determina¸ca˜o das 23 probabilidades de ocorrˆencia de cada letra, e que n˜ao ´e uma tarefa f´acil. A quantidade de informa¸ca˜o m´edia, que ´e calculada pela f´ormula (26), ´e chamada de entropia de Shannon. Uma s´erie de defini¸co˜es segue quando combinamos mais de uma vari´avel aleat´oria, como por exemplo a entropia condicional e a informa¸ca˜o m´ utua. Para os nossos prop´ositos a f´ormula de Shannon ´e suficiente. 12 7 Compress˜ ao de Dados Se a distribui¸ca˜o da probabilidade de ocorrˆencia das letras de um alfabeto n˜ao for uniforme ent˜ao ´e poss´ıvel comprimir os dados, quer dizer, ´e poss´ıvel fazer uma nova codifica¸ca˜o que use menos espa¸co de mem´oria. Por exemplo, vamos supor que nosso alfabeto consista de quatro letras α, β, γ e δ tal que p(α) = 1/2, p(β) = 1/4 e p(γ) = p(δ) = 1/8, isto ´e, α ´e usado o dobro de vezes que β, que ´e usado o dobro de γ ou δ. Ingenuamente Alice pode decidir codificar essas letras em um alfabeto bin´ario da seguinte forma α = 00, β = 01, γ = 10 e δ = 11. Nessa codifica¸ca˜o ela deve usar 2 bits para enviar uma letra. Se o texto tiver 100 letras, Alice deve enviar 200 bits. Por outro lado, a f´ormula da entropia de Shannon diz que 1 1 1 1 1 1 1 1 7 hSi = − log − log − log − log = . 2 2 4 4 8 8 8 8 4 Isto ´e, para cada letra, precisamos em m´edia 7/4 bits de informa¸ca˜o e n˜ao de 2 bits. Isso quer dizer que podemos enviar o texto de 100 letras usando 175 bits? Sim. Sem querer dar a receita geral, podemos usar a seguinte nova codifica¸ca˜o: α = 1, β = 10, γ = 110 e δ = 111. Note que agora a letra α, que aparece mais, usa apenas 1 bit. γ e δ usam 3 bits, por´em eles aparecem t˜ao pouco que isso n˜ao ´e problema. O n´ umero de bits m´edio hN i usado por letra nesse caso ´e hN i = p(α) N (α) + p(β) N (β) + p(γ) N (γ) + p(δ) N (δ) 1 1 1 1 1+ 2+ 3+ 3 = 2 4 8 8 7 . = 4 Bingo! 8 Teoria da Informa¸ c˜ ao Quˆ antica Infelizmente os conceitos e a matem´atica da teoria da informa¸ca˜o quˆantica requerem um espa¸co maior do que nos est´a dispon´ıvel no momento. Veja [8] para mais detalhes. Vamos ent˜ao delinear apenas alguns pontos importantes. Diferentemente da informa¸ca˜o cl´assica, a informa¸ca˜o codificada em estados quˆanticos n˜ao pode ser clonada (copiada) a menos que ela j´a seja conhecida de antem˜ao. Uma c´opia de estados quˆanticos gen´ericos s´o pode ser feita por processos n˜ao unit´arios, que n˜ao s˜ao permitidos na Mecˆanica Quˆantica em sistemas isolados. Se o sistema n˜ao estiver isolado, ele passa a se comportar classicamente, perdendo as vantagens que estamos discutindo. Existe a possibilidade de isolamento parcial, que ´e o que mais ocorre na pr´atica. Nesse caso, parte da informa¸ca˜o quˆantica vaza para o n´ıvel cl´assico sem perder totalmente a superposi¸ca˜o e o emaranhamento no sistema original. Nesse trabalho estamos supondo uma situa¸ca˜o idealizada de sistemas isolados at´e o momento em que uma observa¸ca˜o ´e feita. Estados emaranhados permitem dois importantes fenˆomenos ligados a` manipula¸ca˜o da informa¸ca˜o quˆantica: (1) codifica¸ca˜o densa e (2) teletransporte. Codifica¸ca˜o densa significa enviar muita informa¸ca˜o cl´assica enviando pouca informa¸ca˜o quˆantica. Teletransporte significa transmitir um estado quˆantico fazendo ele desaparecer em um ponto de modo a aparecer em outro ponto arbitrariamente distante. O emaranhamento ´e a pe¸ca chave pela seginte raz˜ao. Suponha que o estado quˆantico de dois f´otons estejam 13 emaranhados como na Eq. (6): |ψi = |0i |0i + |1i |1i √ . 2 (27) O primeiro ket de cada termo se refere ao f´oton 1 e o segundo ao f´oton 2. Eles foram gerados em um laborat´orio aqui no Brasil. O f´oton 1 foi enviado para Alice no Canad´a ´ e o f´oton 2 para Beto na Africa. Eles recebem esses f´otons no mesmo instante. N˜ao estamos dizendo que isso ´e uma tarefa f´acil, mas podemos especular um pouco. Apesar da distˆancia, o emaranhamento continua a existir. Se Alice medir o estado do f´oton que ela recebeu, e se ela verificar que o resultado indica que o f´oton est´a no estado |0i, ent˜ao ela sabe pela Eq. (27) que o f´oton de Beto tamb´em est´a no estado |0i, pois |ψi foi necessariamente projetado no estado |0i |0i. O primeiro a verificar essa caracter´ıstica da Mecˆanica Quˆantica foi Einstein, por´em isso o incomodava profundamente pois tudo indicava a possibilidade de transmiss˜ao de informa¸ca˜o cl´assica acima da velocidade da luz (instantˆanea, de fato) violando a preciosa causalidade (efeito vem depois da causa). O que se verificou foi que o princ´ıpio da causalidade n˜ao era violado, mas que condifica¸ca˜o densa e teletransporte s˜ao poss´ıveis. Infelizmente n˜ao foi poss´ıvel a Einstein conhecer esses resultados uma vez que eles foram obtidos na d´ecada de 90. Vimos na se¸ca˜o anterior que ´e poss´ıvel compactar a informa¸ca˜o cl´assica. O mesmo ocorre com a informa¸ca˜o quˆantica. Para continuar a discuss˜ao ter´ıamos que quantific´a-la, o que estamos evitando em fun¸ca˜o da falta de espa¸co. A f´ormula quˆantica equivalente a f´ormula de Shannon (26) ´e chamada de entropia de Von Neumann. Se a informa¸ca˜o for enviada em canais quˆanticos isolados, a teoria est´a bem estabelecida, no entanto se o canal tiver ru´ıdos, a teoria ainda est´a sendo elaborada. 9 Criptografia Quˆ antica Criptografia ´e o estudo de m´etodos para enviar mensagens codificadas de modo que um bisbilhoteiro que tenha acesso (provavelmente il´ıcito) a`s mensagens n˜ao consiga entender o conte´ udo delas. Se Alice quer enviar uma mensagem de forma realmente segura para Beto, eles devem de antem˜ao gerar um n´ umero aleat´orio (chave) do mesmo tamanho da mensagem. Alice deve converter a mensagem de letras para n´ umeros da maneira mais simples que puder, por exemplo, a=1, b=2, etc. Ela deve ent˜ao somar a mensagem ao n´ umero aleat´orio e enviar para Beto. Shannon mostrou que esse criptograma ´e inviol´avel sem o acesso a` chave. Beto por sua vez resgata a mensagem subtraindo o n´ umero aleat´orio do criptograma. Esse m´etodo tem pelo menos dois problemas s´erios: (1) a chave s´o pode ser usada uma vez, pois o bisbilhoteiro pode deduzir a chave se tiver acesso a v´arios criptogramas criptografados com a mesma chave (2) Alice e Beto tˆem que estar juntos para gerar o n´ umero aleat´orio, e guard´a-lo de forma segura. Se a chave fosse enviada, o bisbilhoteiro estaria a espreita. A criptografia quˆantica resolve os problemas mencionados acima. A id´eia ´e enviar dados em superposi¸ca˜o, como ´e permitido pelos princ´ıpios da Mecˆanica Quˆantica. O contexto f´ısico mais adequado ´e usar os estados de polariza¸ca˜o de f´otons como qubits, e envi´a-los em fibras o´ticas. Se os dados s˜ao enviados em superposi¸ca˜o, o bisbilhoteiro precisa executar uma medida f´ısica para saber qual ´e o conte´ udo da mensagem. Portanto ele destr´oi a superposi¸ca˜o irrecuperavelmente. N˜ao h´a como gerar novamente o estado original e re-envi´a-lo para Beto. Isso significa que o bisbilhoteiro ser´a inevitavelmente detectado. N˜ao convˆem enviar a mensagem original mesmo que em estado de superposi¸ca˜o. Em vez disso, Alice deve enviar a chave. Se o bisbilhoteiro interceptar, ele n˜ao ter´a acesso 14 a nenhuma informa¸ca˜o u ´ til pois a chave n˜ao ´e a mensagem. Uma vez que Beto percebe a presen¸ca do bisbilhoteiro, Beto avisa Alice para tentar novamente com uma outra chave. Quando a chave for enviada de maneira segura, Alice pode usar o m´etodo descrito no par´agrafo anterior, e enviar o criptograma usando um canal cl´assico de comunica¸ca˜o de forma segura. Uma descri¸ca˜o mais detalhada dessas id´eias pode ser obtida em [11]. Esse m´etodo de criptografia descrito acima ´e chamado de chave privada, pois as chaves para codifica¸ca˜o e descodifi¸ca˜o s˜ao as mesmas. Os m´etodos de chave p´ ublica usam duas chaves diferentes. A chave para codifica¸ca˜o ´e p´ ublica, o que quer dizer que qualquer pessoa pode enviar uma mensagem criptografada, mas somente uma pessoa consegue ler a mensagem. Nenhum m´etodo conhecido de chave p´ ublica foi provado inviol´avel. O m´etodo RSA por exemplo usa uma chave que pode ser obtida por um algoritmo de fatora¸ca˜o eficiente. Como n˜ao existe tal algoritmo para computadores cl´assicos, esse m´etodo tem sido usado de forma segura. Se um computador quˆantico de tamanho razo´avel for constru´ıdo, o m´etodo RSA se tornar´a in´ util. 10 A Implementa¸ c˜ ao do Computador Quˆ antico At´e o momento, a melhor implementa¸ca˜o da computa¸ca˜o quˆantica foi a experiˆencia com 7 qubits feita no laborat´orio da IBM em San Jose, Calif´ornia em 2001 [9]. Numa colabora¸ca˜o envolvendo a Universidade de Stanford, foi poss´ıvel fatorar o n´ umero 15 pelo algoritmo de Shor usando ressonˆancia magn´etica nuclear (RMN). Apesar de ser uma das t´ecnicas mais poderosa da nanotecnologia, com capacidade de controlar o estado individual de cada qubit, a RMN tem problemas quanto a escalabilidade no n´ umero de qubits. Computadores com mais de 15 qubits sofrem do que ´e chamado descoerˆencia, que ´e uma tendˆencia inexor´avel de se comportar classicamente. Diversas outras t´ecnicas tˆem sido tentadas, como armadilha de ´ıons, pontos quˆanticos, cavidades o´ticas, uso dos estados do f´otons como qubits entre outras [10]. Essas t´ecnicas tˆem o problema inverso em rela¸ca˜o a RMN. Apesar de serem escal´aveis, a tecnologia ainda n˜ao permite o controle preciso de qubits individuais, que ´e um requisito fundamental da computa¸ca˜o quˆantica. Aplicar uma porta quˆantica significa modificar com precis˜ao o estado de cada qubit. Os resultados at´e agora envolvem em geral 2 qubits. Ou seja, a pesquisa ainda n˜ao est´a avan¸cada o suficiente para determinar qual ´e a melhor t´ecnica para implementa¸ca˜o do computador quˆantico. Portanto, os algoritmos quˆanticos ainda n˜ao foram testados de maneira conveniente exceto por simula¸co˜es em computadores cl´assicos. As simula¸co˜es realizadas at´e hoje tˆem uma perda exponencial e se argumenta que essa perda sempre vai ocorrer qualquer que seja a t´ecnica utilizada. 11 Conclus˜ ao A computa¸ca˜o quˆantica ´e um tema que desperta grande interesse mas que na mesma propor¸ca˜o traz enormes desafios tanto na constru¸ca˜o f´ısica do computador quanto no desenvolvimento do software quˆantico. Para construir o hardware, as t´ecnicas mais avan¸cadas da nanotecnologia dispon´ıveis atualmente n˜ao tem sido suficientes. O maior computador quˆantico construido at´e hoje tem 7 qubits, o que mostra o n´ıvel de dificuldade encontrado nessa a´rea. O desenvolvimento do software tamb´em enfrenta enormes desafios principalmente porque existe um patamar m´ınimo de exigˆencia que ´e a supera¸ca˜o do computador cl´assico. Por que construir um computador que ´e ordens de grandeza mais caro do que o cl´assico se n˜ao houver um aumento significativo de performance? At´e o 15 momento s´o existem pouqu´ıssimos exemplos de algoritmos quˆanticos mais eficientes do que os equivalentes cl´assicos a maioria dos quais discutimos nesse trabalho. Paralelamente ao desenvolvimento da computa¸ca˜o quˆantica, a criptografia quˆantica vem apresentando excelentes resultados. J´a existem firmas vendendo equipamento para transmiss˜ao segura de chaves usando princ´ıpios quˆanticos em fibras o´ticas. A crescente demanda por manipula¸ca˜o e transmiss˜ao de informa¸ca˜o somada a famosa lei de Moore, que prevˆe a eminente satura¸ca˜o do n´ umero de trans´ıstores dentro dos chips dos computadores cl´assicos, apontam para a tecnologia quˆantica. O que poder´a ser feito de fato e o que vai ficar a desejar ainda n˜ao est´a claro. Como revis˜ao geral da a´rea, sugerimos as referˆencias [8] (para quem tem conhecimento na a´rea de F´ısica) e [12]. Referˆ encias [1] D. Deutsch, Quantum theory, the Church-Turing principle and the universal quantum computer, Proc. R. Soc. London A400 (1985) 97-117. [2] L.K. Grover, A fast quantum mechanical algorithm for database search, Proc. 28th Annual ACM Symposium on the Theory of Computing (STOC), May (1996) 212-219. [3] L.K. Grover, Quantum Mechanics helps in searching for a needle in a haystack, Phys. Rev. Lett. 79 (1997) 325. [4] D. Aharonov, Quantum Computation, Annual Reviews of Computational Physics, ed. Dietrich Stauffer, World Scientific, vol. VI (1998). [5] C. Lavor, L.R.U. Manssur, and R. Portugal, Grover’s Algorithm: Searching in Quantum Databases, quant-ph/0301079, 2003 (veja http://arxiv.org). [6] P. Shor, Algorithms for Quantum Computation: Discrete Logarithm and Factoring, Proc. 35th Annual Symposium on Foundations of Computer Science (1994) 124-134 and SIAM J. Comput. 26 (1997) 1484-1509. [7] C. Lavor, L.R.U. Manssur, R. Portugal, Shor’s Algorithm for Factoring Large Integers, quant-ph/0303175, 2003 (veja http://arxiv.org). [8] A. Steane, Quantum Computing, Rep. Prog. Phys. 61 (1998) 117-173. [9] L.M.K. Vandersypen, M. Steffen, G. Breyta, C.S. Yannoni, M.H. Sherwood, and I.L. Chuang, Experimental realization of Shor’s quantum factoring algorithm using nuclear magnetic resonance, Nature, 414 (2001) 883-887. [10] M.A. Nielsen and I.L. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, Cambridge (2000). [11] N. Gisin, G. Ribordy, W. Tittel, and H. Zbinden, Quantum Cryptography, Reviews of Modern Physics 74 (2002) 145-195. [12] E.G. Rieffel and W. Polak, An Introduction to Quantum Computing for NonPhysicists, ACM Computing Surveys, 32 (2000) 300-335. 16