You are on page 1of 9

PONTIFCIA UNIVERSIDADE CATLICA DE GOIS - PUC-GOIS DEPARTAMENTO DE COMPUTAO

ALGORITMOS QUNTICOS

LEILA CRISTINA LUCIANO DE MORAIS PEDRO AMORIM RAPHAEL RODRIGO

1. Introduo

O desenvolvimento e a anlise de novos algoritmos que possam usufruir dos benefcios providos pelo paralelismo quntico [Rieffel and Polak, 2000] desperta grande interesse da comunidade cientifica, como intuito de aproveitar todo o poder computacional provido pelo computador quntico. Este trabalho prope o estudo destes algoritmos, teoricamente mais rpidos que os algoritmos desenvolvidos para os computadores convencionais, denominados de algoritmos qunticos. A primeira descrio de um aparato computacional (mquina de Turing) em termos da Mecnica Quntica foi realizada por Paul Benioff em 1980. No entanto, a mquina de Benioff no era exatamente um computador quntico. A possibilidade que efeitos qunticos poderiam oferecer algo verdadeiramente novo foi apontada pela primeira vez por Richard Feynman, em 1982, que mostrou que nenhuma mquina de Turing (clssica) poderia simular certos fenmenos qunticos sem introduzir um fator exponencial em seu desempenho. Ciente de que a programao puramente funcional no possui estruturas de controle, este trabalho utiliza-se do conceito de mnada [Wadler, 1995], viabilizando a possibilidade de discretizar passos de um programa, lidando com transformaes de estados, excees e continuaes. Tendo em vista que todo modelo de computao quntica deve comprometer-se com a interpretao da Mecnica Quntica [Hirvensalo, 2001], a metodologia sugerida por Amr Sabry [Sabry, 2003] para modelagem de algoritmos qunticos engloba efeitos colaterais globais, podendo ou no estarem relacionados com a realidade fsica. Nesta abordagem, para a representao de qubits (bits qunticos) define-se um novo tipo de dado na linguagem, interpretando o vetor quntico como um estado de memoria. Esta interpretao deixa implcita a superposio de estados, ou seja, a possibilidade de um bit quntico assumir mais de um valor (Falso, Verdadeiro ou Falso e Verdadeiro), simultaneamente.

A partir desta representao pode-se ser explorado o paralelismo quntico e torna- se vivel o tratamento das operaes bsicas como a negao de operadores e o operador and, ambos caracterizados como operadores reversveis. Com base nestes resultados, o objetivo deste trabalho foi estender a implementao introduzida em [Sabry,2003] para outros algoritmos bsicos da Computao Quntica. Neste trabalho foram estudados os conceitos fundamentais da linguagem Haskell incluindo a aplicao da tcnica de valores virtuais para implementao de algoritmos qunticos, com analise e especificao de tipos de dados qunticos (clssicos, sobreposio e emaranhados), atribuio de valores, transformaes unrias e modelagem de medidas.

2. Computao quntica

A evoluo dos processadores com chips cada vez menores e mais rpidos, converge para o estudo da nanotecnologia. Isso significa que estamos nos aproximando dos limites fsicos da matria e para continuarem os avanos, ser preciso abandonar o uso de transistores e partir para alguma estrutura mais eficiente, justificando-se o interesse pela Computao Quntica [Rieffel and Polak, 2000]. A Computao Quntica consiste em um modelo de computao baseado nas leis da Mecnica Quntica [Oliveira et al., 2003]. So significativos os casos estudados, onde os procedimentos e os clculos qunticos mostram-se capazes de realizar, em minutos ou horas, tarefas que levariam bilhes de anos em computadores clssicos. Estes resulta- dos despertam um grande entusiasmo na comunidade cientifica e ao mesmo tempo uma grande busca pela compreenso e manipulao da chamada informao quntica.

2.1. O computador quntico

O tempo que leva uma certa computao pode ser diminudo atravs da utilizao de processadores paralelos. Para realizar uma reduo exponencial no tempo requerido um incremento no numero de processadores, e consequentemente, implica em um aumento exponencial na quantia de espao fsico requerido. Contudo, em um sistema quntico, o

aumento na quantia fsica implica apenas em um aumento exponencial do paralelismo no sistema. Assim, para se obter um aumento exponencial relacionado ao paralelismo necessrio apenas um aumento linear na quantia de espao fsico, efeito este chamado paralelismo quntico. Em um computador temos, por exemplo, capacitores que carregados esto representando 1, e quando descarregados, representam 0. A partir disso, pode-se lidar com as informaes. Quando utilizamos tomos, ftons, ou outros sistemas desse tipo, podemos aproveitar as propriedades da Mecnica Quntica para construirmos computadores mais rpidos que os atuais.

2.2. O Funcionamento do Computador Quntico Funciona

Uma partcula quntica similar a um eltron ou ncleo atmico, onde o mesmo aceita dois estados ao mesmo tempo, ou seja, com seu giro(spin) positivo e negativo. Assim, a construo do bit quntico, ou qubit, obtida. Quando o spin est positivo, o tomo pode ser lido como 1, e quando o spin for negativo, o tomo pode ser lido como 0. Isto corresponde ao sistema digital de 1s e 0s que os computadores tradicionais utilizam. O giro de um tomo para positivo ou negativo o mesmo que mudar o estado de um transistor de ligado para desligado, onde ambos representam dados em termos de 1s e 0s. Os qubits diferem dos bits dos computadores digitais tradicionais, porque um tomo ou ncleo pode estar em um estado de superposio, representando simultaneamente ambos 0 e 1 e tudo entre os mesmos. A combinao de superposies [de Lima et al., 2003] e correlaes permitem um computador quntico ter um enorme poder computacional, permitindo e execuo clculos em paralelo, de maneira no linear e, exponencialmente, mais rpido que os computadores convencionais.

2.3. Notao

O qubit representado por um sistema quntico[Schuler and Alvares, 2001] de dois estados que constitudo por apenas uma partcula. Um sistema quntico de dois estados descrito por um vetor unitrio complexo no espao de Hilbert C2. O espao de Hilbert um espao vetorial complexo. Os dois estados do sistema quntico so representados por: |0> e |1>. O estado |0> representado pelo vetor complexo (1,0) em C2 enquanto que o estado |1> representado pelo vetor (0,1). Os vetores (1,0) e (0,1) ou |0> e |1> constituem a base ortogonal no espao de Hilbert. Para ilustrar, abordaremos um registrador quntico de 3 qubits. Esse registrador representado pela superposio linear de seus oito autoestados como segue: c1|000> + c2|001> + c3|010> + c4|011> + c5|100> +c6|101> + c7|110> + c8|111>. Para reduzir a notao, considera-se x1 = |000>, x2 |001>, x3 = |010> ... x8 = |111>. Sejam c1..c8 so amplitudes de probabilidade, ento 8j=1 (|Cj|)2=1. O estado de um registrador quntico de n qubits a superposio linear de 2n autoestados. Uma superposio uniforme de autoestados uma superposio linear de estados onde todos os autoestados apresentam a mesma amplitude de probabilidade.

Comprimento do Numero a ser Fatorado (em Bits) 512 1024 2048 4096

Tempo de Fatorao por Algoritmo Clssico 4 dias 100 mil anos 100 mil bilhes de anos 100 bilhes de quadrilhes de anos

Tempo de Fatorao com o Algoritmo de Shor 34 segundos 4,5 minutos 36 minutos 4,8 horas

Tabela 1: Comparaes entre os tempos estimados para fatorao de nmeros de comprimentos diferentes com um algoritmo clssico e com o de Shor

3. Algoritmos Qunticos

Algoritmos Qunticos so desenvolvidos de forma que se possa minimizar a complexidade do cdigo e aumentar a eficincia computacional, quando comparados com algoritmos rodados em computadores convencionais [Emberson, 2002]. Dentre os algoritmos qunticos j definidos, sero comentados nesta seo, dois dos algoritmos mais conhecidos: o algoritmo de Shor e o algoritmo de Grover [Hirvensalo, 2001].

3.1. Algoritmo de Shor

Em 1994, Peter Shor [Shor, 1994] desenvolveu um algoritmo para fatorar em tempo polinomial (ou probabilstico) n-dgitos em um computador quntico. Um dos algoritmos clssicos mais eficiente atualmente, tem seu tamanho de entrada exponencial. A relevncia do algoritmo de Shor [Hayward, 1999b] esta em apresentar a possibilidade de aplicao da Computao Quntica em relevantes reas da Cincia da Computao, como a Criptografia e a Codificao de Dados. O algoritmo de Shor prope a fatorao de nmeros grandes utilizados na maioria dos mundos sistemas de criptografia. Se um mtodo eficiente de fatorar nmeros grandes implementado, a maioria das cenas de encriptao atuais seriam quase que inteis na proteo de dados. A tabela 1 mostra algumas comparaes entre esses tempos estimados para fatorao de nmeros de comprimentos distintos. No caso do algoritmo clssico (coluna do meio), o tempo estimado com base na velocidade dos processadores atuais. Acreditava-se que nenhum algoritmo seria eficiente o bastante a ponto de poder quebrar a segurana de sistemas criptogrficos. Dentro desta perspectiva, tem-se como exemplo, o algoritmo de RSA, extensamente usado na codificao de protocolos, e cuja segurana se baseia na dificuldade da soluo para este problema.

3.2. Algoritmo de Procura de Grover

Grover [Hirvensalo, 2001] desenvolveu um algoritmo para ser utilizado na procura de dados no ordenados em base de dados. Embora esse algoritmo no possua uma eficincia to grande quanto o algoritmo de Shor, ele permite a soluo de problemas que seriam no computveis em computadores clssicos. Suponha que voc tem um sistema com N = 2n estados, etiquetado S1, S2, . . . SN. Estes estados de tamanho 2n so representados por strings de n bits. Suponha que ha um elemento marcado Sm que satisfaa a condio C(Sm) = 1, e que, para todos esta- dos restantes C(S) = 0. Alm disso, suponha que C pode ser avaliado em um tempo unitrio [Hayward, 1999a]. A ideia do algoritmo de Grover colocar o registo em uma superposition igual de todos os estados, e ento, inverter seletivamente a fase do estado marcado. Neste momento, o algoritmo e executa uma inverso sobre uma operao media um numero de vezes. A inverso seletiva do estado marcado segue pela inverso sobre as etapas medias e tem o efeito de aumentar a amplitude do estado marcado por O(1/N). Consequentemente, aps O(N) operaes de probabilidade a medio de todos os estados marcados aproxima-se a 1. O algoritmo de Grover tem outra aplicao muito til, no campo de 'quebrar' dados codificados. Ns estamos interessados na situao onde um banco de dados virtual to grande que no caberia nas memrias de todos os computadores do mundo. Isto permite que um computador qunticos quebre outro sistema extensamente usado para proteger dados. Este o Padro para Codificao de Dados. DES se baseia em um nmero de 56 bits onde ambos os participantes tm que saber de antecipadamente. Se um espio intercepta texto claro ento a meta dele achar a chave de forma que qualquer texto futuro possa ser decodificado. Uma procura exaustiva atravs de meios convencionais faria necessrio procurar 2 elevado a 55 chaves antes de atingir o correto. Isto levaria mais que um ano at mesmo se um bilho de chaves fossem experimentadas por segundo. Atravs de comparao, o algoritmo de Grover DES poderia achar a chave depois de s 185 pesquisas. Para DES convencional, um mtodo para parar computadores modernos de quebrar o cdigo (i.e. se eles se tornassem mais rpidos) simplesmente seria acrescentar dgitos extras ao cdigo que aumentaria

exponencialmente o nmero de pesquisas necessrias. Isto no acontece desta forma em uma quebra em um computador quntico. Grover tambm declarou que computadores qunticos seriam estatsticos, enquanto achando simples nmeros que dependam coletivamente de muitos dados por exemplo idade mediana de uma populao.

4. Concluso

O tema abordado est inserido dentro de uma abordagem atual e muito interessante, exigindo uma extensa base terica, tanto nos aspectos fundamentais da Computao Quntica quanto no paradigma da programao funcional. As idias fundamentais da Computao Quntica foram brevemente discutidas, tornando explicitas as principais vantagens de sua utilizao, seu funcionamento e aspectos essenciais para sua aplicao.

Referncias

hora de descobrir os segredos da computao quntica, http://www.tecmundo.com.br/2666e-hora-de-descobrir-os-segredos-da-computacao-quantica.htm Computador Quntico, http://pt.wikipedia.org/wiki/Computador_qu%C3%A2ntico Vilar, V. S. (2003). Superposio Coerente. Emberson, P. (2002). Quantum Algorithm Designer. Hayward, M. (1999a). Quantum computing and grovers algorithm. Hayward, M. (1999b). Quantum computing and shors algorithm. Hirvensalo, M. (2001). Quantum Computing. Springer Verlag. Oliveira, I. S., Sarthour, R. S., Bulnes, J. D., Belmonte, S. B., Guimaraes, A. P., de Azevedo, E. R., Vidoto, E. L. G., Bonagamba, T. J., and Freitas, J. C. C. (2003). Computao quntica manipulando a informao oculta do mundo quntico. Cincia Hoje, 33(139):22 29. Rieffel, E. G. and Polak, W. (2000). An Introduction to Quantum Computing for NonPhysicists.

Sabry, A. (2003). Modeling quantum computing in haskell. In ACM SIGPLAN 2003 Haskell Workshop. Schuler, J. P. S. and Alvares, L. O. C. (2001). Operaes logicas qunticas e colorabilidade de grafos. In Jornadas Chilenas de Computao, Puntarenas. Shor, P. W. (1994). Algorithms for quantum computation: Discrete logarithms and factoring. In IEEE Symposium on Foundations of Computer Science, pages 124134. Wadler, P. (1995). Monads for functional programming. Lecture Notes in Computer Science, 925:24??

You might also like