O que vai acontecer com os circuitos electrónicos quando suas peças, de tanto diminuir de tamanho, virarem uma autêntica poeira de átomos? A ideia é produzir uma máquina superior, estupidamente mais rápida que as actuais.
No início dos anos 80, os cientistas começaram a alertar que a evolução dos computadores, da maneira como são construídos hoje, estava com os dias contados. O motivo era, e ainda é, a incrível transformação dos circuitos electrónicos, que nos últimos trinta anos ficaram 3 milhões de vezes mais rápidos, enquanto os seus componentes básicos, que são os transístores, encolhiam na mesma proporção. Os primeiros transístores da década de 60 não eram menores que um grão de feijão, e os actuais já estão cem vezes menores que o diâmetro de um fio de cabelo.Só que eles não podem diminuir muito mais. A miniaturização deve dar mais um salto de cem vezes, nos próximos dez ou quinze anos, mas aí os transístores já não funcionarão muito bem. E se em seguida forem divididos novamente por dez, deixam de existir: vão se desmanchar em uma nuvenzinha de átomos, 1 milhão de vezes menor que 1 centímetro. Ou seja, os computadores vão ter de virar máquinas atómicas, já que suas peças essenciais serão átomos soltos, em lugar dos transístores convencionais.
Por isso, o novo modelo de processar informações está sendo chamado de computador quântico, em referência à Mecânica Quântica, o ramo da Física que governa o comportamento dos átomos. Por enquanto, é quase tudo teoria. Ninguém sabe direito que estrutura a nova máquina vai ter. Mas os especialistas garantem que, se ela um dia chegar a operar, pode dar um show. É que em vez de executar um cálculo por vez, como os computadores actuais, ela vai raciocinar em bloco, compondo verdadeiras sinfonias inteligentes.
Exemplo de um processador quântico
Num processador quântico, temos átomos ao invés de transístores. Ao invés de bits temos bits quânticos, ou qubits. A ideia fundamental é que num átomo, a rotação de cada electrão corresponde a um pequeno movimento magnético, que pode ser controlado caso o átomo seja colocado sobre uma superfície suficientemente sensível
Uma peculiaridade interessante é que enquanto um transístor permite apenas dois estados, ou seja, ligado ou desligado, cada qubit possui três estados diferentes. Dois estados são determinados pela rotação dos electrões (horário ou anti-horário), enquanto o terceiro é uma característica bastante peculiar dentro do mundo quântico, onde os electrões podem girar simultaneamente nos dois sentidos. Sim, parece estranho, e é por isso que existem tantos cientistas pesquisando isso, mas de qualquer forma, combinado com os dois estados anteriores temos um total de 4 estados possíveis, o que permite que cada qubit processe ou armazene dois bits simultaneamente.
Isto permite ampliar exponencialmente a capacidade dos processadores quânticos, já que dois qubits correspondem a 4 bits, 3 qubits correspondem a 8 bits e 5 qubits correspondem a 32 bits. 10 qubits seriam suficientes para 1024 bits, enquanto 20 correspondem a mais de um milhão. Esta pode ser a grande chave para aumentar de forma inimaginável tanto a potência dos processadores quanto a capacidade dos dispositivos de armazenamento de memória. Não estou falando de processadores operando a 100 ou 500 GHz, mas de computadores capazes de resolver em poucos segundos cálculos que um processador actual demoraria milhões de anos para resolver.
Os primeiros computadores quânticos já estão entre nós apesar de estarem muito longe de realizarem as maravilhas que descrevi acima. De fato, a maior conquista até agora foi a de um grupo de cientistas da IBM e estudantes da universidade de Stanford afirmaram ter conseguido resolver uma versão simples do algoritmo de Shor, uma fórmula para gerar chaves criptográficas extremamente difíceis de quebrar, utilizando factorização de números, onde é preciso um grande poder de computação para encontrar os factores, mas uma simples multiplicação para obter o número original.
O algoritmo simples que conseguiram resolver não é nada mais do que encontrar os factores do número 15 (5 e 3). A conquista não tem nenhuma aplicação prática, naturalmente, mas mostra que os estudos continuam avançando e abre as portas para que algoritmos mais complexos sejam resolvidos conforme consigam produzir computadores quânticos mais poderosos.
Para solucionar o problema o grupo desenvolveu uma molécula com 7 qubits. Na verdade não foi usada uma única molécula, mas um tubo cheio (um bilhão de bilhão como divulgado), manipulada através de um aparelho de ressonância magnética, controlado por um computador convencional, a mesma técnica que vem sendo utilizada desde os primeiras experiências.
Pode demorar 20 anos ou 100 anos, mas com os investimentos que vêm sendo feitos parece só questão de tempo para os computadores quânticos evoluírem a ponto de substituir o silício.
Átomos de hidrogénio podem armazenar bits de informações em um computador quântico. Um átomo em seu estado fundamental representa um zero e o mesmo átomo em seu estado excitado com seu electrão em um nível de energia superior representa um. O bit do átomo pode ser flipar para o valor oposto usando um pulso de laser, se o fóton emitido pelo pulso possui uma quantidade de energia igual a diferença entre a energia do átomo nos estados fundamental e excitado então o electrão saltará de um estado para outro.
Porta Não ou Not
A Operação Not nada mais é do que flipar um bit, ou seja se a=0 faz com que a seja igual a 1 e vice-versa. Com átomos esta operação pode ser realizada aplicando um pulso de laser que possui uma energia que exactamente igual a diferença de energia entre os estados fundamental e excitado.Uma operação Not não convencional é a uma operação que deixa o bit meio flipado.
Representação de um NOT quântico que envolve nada mais que a flipagem de bit.
Função Copy
A função Copy no mundo Quântico depende da interacção entre dois átomos diferentes. Imagine um átomo A armazenado um zero ou um, próximo de um outro átomo B em seu estado fundamental. A diferença de energia entre os estados de B será um valor se A é zero, e outro valor se A é um. Aplicando-se um pulso de laser em que o fóton tem uma energia igual a última quantidade, se o pulso tem uma intensidade e intervalo correctos e se A = 1 B absorverá um fóton e flipará, mas se A = 0 B não absorverá o fóton e nada acontece.
![]()
Porta And ou E
Esta porta também depende de uma interacção atómica entre três átomos A B e A próximos uns aos outros, Onde a diferença de energia entre os estados de B é uma função de Estado dos dois átomos A. Suponha B em seu estado fundamental, aplica-se um pulso de laser com uma quantidade de energia igual a diferença entre os estados de B somente quando átomos vizinhos A são um neste caso B flipará caso contrário B não flipará.
NOVA YORK - Pesquisadores da IBM anunciaram que demonstraram um cálculo capaz de decifrar códigos complexos, num avanço que representa mais um passo em direcção à computação quântica.
Os cientistas vão publicar na revista Nature os detalhes de seu estudo, uma demonstração do "algoritmo de Shor", um método para factorizar números criado em 1994 pelo cientista Peter Shor, da AT&T.
Foi este algoritmo, e sua habilidade de quebrar complexos códigos de encriptação, que despertou o interesse pela computação quântica nos anos 90.
A computação quântica é um dos vários caminhos diferentes adoptados pelos pesquisadores na busca por micro chips cada vez menores. De acordo com a Lei de Moore, criada pelo co-fundador da Intel, Gordon Moore, o número de transístores - ou a densidade de dados - nos chips duplica a cada 18 meses.
A IBM disse que conseguiu construir um computador quântico de sete átomos que, devido às suas propriedades físicas, funcionam como se fossem o processador e a memória de um computador. Até então, o maior computador quântico construído pela IBM tinha cinco átomos.
Segundo os cientistas da IBM, foi possível usar o computador para demonstrar que o Algoritmo de Shor funciona, identificando 3 e 5 como factores de 15. "Embora a resposta possa parecer trivial, o nível inédito de controle exigido durante este cálculo fez com que esta fosse a mais complexa operação feita por um computador quântico até agora", disse Nabil Amer, gerente do grupo de Física da Informação da IBM Research. Os computadores quânticos se baseiam na rotação dos electrões e do núcleo dos átomos.
Além da encriptação, outra aplicação para computação quântica é buscar certas porções de informação em grandes bases de dados. Amer disse que ainda não se pode saber quando os computadores quânticos estarão disponíveis comercialmente.
John Preskill, professor de física teórica e director do Instituto de Informação Quântica do CalTech, em Pasadena, Califórnia, disse que o experimento pôs a computação quântica um pequeno passo à frente, revelando alguns erros. "Parte da dificuldade em construir grandes computadores quânticos é que eles são susceptíveis a erros, e precisamos compreender o tipo de erros que eles cometem, para que saibamos a melhor maneira de construir esses computadores", disse Preskill.
Para pôr o tamanho desses computadores em perspectiva, Preskill explicou que os computadores mais rápidos da actualidade, ou super computadores, poderiam fazer a factorização - ou encontrar os mínimos factores indivisíveis - de um número com 130 dígitos em cerca de um mês. No entanto, estes computadores não são capazes de factorizar um número de 200 dígitos.
Um computador quântico seria capaz de realizar esta tarefa, ele disse, mas seria preciso que ele tivesse milhares de bits quânticos, ou átomos. O computador de sete átomos da IBM foi usado para factorizar um número de dois dígitos.
![]()
Qubits ou Bits Quânticos
Por que estudar física quântica se queremos apenas construir e programar computadores? Os computadores existem fisicamente no espaço e no tempo. Os computadores fazem o que a física permite. O estado de cada bit de nossos computadores corresponde a um estado físico de nossa máquina. Tendo entendido o comportamento dos estados quânticos poderemos construir computadores que processam bits quânticos.
Um bit clássico pode estar somente em um de dois estados básicos mutuamente exclusivos. Ao contrário, um bit quântico pode estar em uma sobreposição de estados básicos. Voltando ao sistema em que o electrão pode estar dentro e fora da caixa ao mesmo tempo, supondo que o electrão tem uma amplitude de probabilidade Z de estar dentro da caixa (estado zero ou |0> ) e uma amplitude de probabilidade W de estar fora da caixa ( estado um ou |1> ), descreveremos o estado do electrão na forma como segue: Z|0> + W|1> que deve ser entendido como sobreposição linear dos auto estados zero e um com amplitudes de probabilidade Z e W respectivamente. Vale observar que |Z|² + |W|² = 1. O estado de um bit quântico é a sobreposição linear de seus auto estados.
O estado de um conjunto de dois bits quânticos pode ser descrito pela seguinte a sobreposição linear de auto estados: x|00> + y|01> + z|10> + w|11> em que |x|² + |y|² + |z|² + |w|² =1. Apenas por lembrete, x, y,z e w são amplitudes de probabilidade complexas. Bits quânticos são chamados de qubits. Um conjunto de N qubits pode apresentar um estado que é a sobreposição linear de 2N auto estados. De certa forma, um conjunto de N qubits pode estar em 2N estados diferentes ao mesmo tempo.
O estado dos bits de uma máquina clássica ou quântica deve ter uma correspondência física. Nenhuma das diversas fontes de consultas propôs a construção de máquinas quânticas baseadas em electrões dentro ou fora de caixas. Por outro lado, podemos encontrar na bibliografia propostas para construção de máquinas quânticas em que o estado dos qubits corresponde ao spin de electrões. O spin de um electrão pode ser -1/2 ou +1/2. Sendo assim, o spin de um electrão pode ser descrito pela a sobreposição de auto estados: c1| -1/2> + c2| +1/2 >. Substituindo-se -1/2 e +1/2 por 0 e 1 respectivamente, encontra-se: c1|0> + c2|1> sendo que c1 e c2 são amplitudes de probabilidade.
Notação
O bit quântico ou qubit é representado por um sistema quântico de dois estados que é constituído por apenas uma partícula. Um sistema quântico de dois estados é descrito por um vector unitário complexo no espaço de Hilbert C2. O espaço de Hilbert é um espaço vectorial complexo. Os dois estados do sistema quântico são representados por: |0> e |1>. O estado |0> é representado pelo vector complexo (1,0) em C2 enquanto que o estado |1> é representado pelo vector (0,1). Os vectores (1,0) e (0,1) ou |0> e |1> constituem a base ortogonal no espaço de Hilbert [AHA 98].
Apenas para efeito de exemplo, abordaremos um registrador quântico de 3 qubits. Esse registrador é representado pela a sobreposição linear de seus oito auto estados como segue:
C1|000> + c2|001> + c3|010> + c4|011> + c5|100> +c6|101> + c7|110> + c8|111>.
Para efeito de notação, consideremos: x1 = |000>, x2 = |001>, x3 = |010> ... x8 = |111>. Lembrando que c1..c8 são amplitudes de probabilidade, =1. O estado de um registrador quântico de n qubits é a sobreposição linear de 2n auto estados. Uma a sobreposição uniforme de auto estados é uma a sobreposição linear de estados onde todos os auto estados apresentam a mesma amplitude de probabilidade. A sobreposição uniforme de auto estados pode ser descrita como:
Uma operação f feita sobre um registrador quântico que apresenta a sobreposição uniforme de auto estados pode ser descrita como:
Apenas para efeito de exemplo, apresentaremos a operação de incremento f:
f (c1 |000> + c2|001> + c3|101>) => c1 |001> + c2 |010> + c3 |110> .No exemplo anterior, de certa forma, foram feitos três incrementos em paralelo usando apenas um único registrador quântico de três qubits.
Por fim, abordaremos um exemplo com o operador de negação NOT [AHA 98]:
NOT |0> = |1>
NOT |1> = |0>
NOT ( c1|0> + c2|1> ) = c1|1> + c2|0>
NOT ( c1|001> + c2|111> ) = c1|110> + c2|000>Correlação
A correlação (do inglês, entanglement ) de estados surge naturalmente entre a interacção entre partículas. No presente parágrafo, vamos supor que o estado inicial de duas partículas correlacionadas é o que segue: c1|00> + c2|11>. Vamos supor ainda que resulta da medição da primeira partícula o estado |0>. Por estarem correlacionadas as duas partículas, com a medição da primeira partícula, o vector de estados do sistema composto pelas duas partículas entra em colapso caindo no estado |00>. Sendo assim, a medição sobre uma partícula de um sistema de partículas correlacionadas provoca o colapso de estado de todo o sistema de partículas imediatamente mesmo que as partículas estejam separadas por vários anos luz.
Considerando o exemplo do parágrafo anterior, se, por acaso, a medição da primeira partícula resultasse em |1>, então o estado da segunda cairia obrigatoriamente no estado |1>. A segunda partícula simplesmente não poderia ser fisicamente medida no estado |0> tendo em vista que não existe um estado c3|10> inicial.
A informação quântica é extremamente frágil. É impossível impedir iterações entre um sistema quântico e o ambiente em que está inserido. Essa iteração provoca perda na natureza quântica em um processo chamado de decoerência [AHA 98]. Para manter a computação coerente, é necessário isolar os registradores quânticos impedindo que eles se correlacionem com o ambiente [OME 88]. A decoerência é uma questão de tempo. Quanto maior for o espaço de tempo envolvido, maiores serão as chances de verificarmos decoerência.Para manter a computação coerente, os registradores quânticos não podem dissipar calor. A dissipação de calor provocaria a correlação entre o registrador quântico e o ambiente causando decoerência. Sendo assim, a entropia do sistema de computação quântica não pode crescer. Lembrando que a entropia é incrementada nos processos irreversíveis, a computação quântica é reversível e adiabática [OME 88].
Interacções Locais e Não Locais
As interacções locais são as interacções a que estamos acostumados na física clássica e na física relativista. Uma interacção local é uma interacção que envolve contacto directo ou uma interacção com um meio intermediário que provoca interacção por contacto directo com um meio físico final. As interacções de contacto directo são as interacções a que estamos acostumados nas nossas vidas. A gravidade, a percepção de ondas electromagnéticas pelos nossos aparelhos de televisão e troca de calor entre corpos são exemplos de interacções locais. As ondas electromagnéticas se propagam no vácuo a velocidade da luz perdendo energia a medida que se afastam da fonte.
Interacções locais não são interacções que ocorrem entre corpos próximos. O emissor e receptor de uma mesma onda electromagnética podem estar separados por vários anos luz sendo que o tempo de propagação do sinal entre o emissor e o receptor é necessariamente igual ou superior ao tempo de propagação da velocidade da luz no vácuo. As interacções locais podem ser verificadas entre corpos separados por distâncias arbitrariamente grandes.
A força gravitacional é uma interacção local porque é mediada por partículas chamadas grávitons que viajam entre elementos que gravitam. Assim como os fótons, os grávitons não podem viajar acima da velocidade da luz.
Considerando exclusivamente as interacções locais, se dois eventos ocorrem a uma distância de espaço e tempo de forma que mesmo viajando a velocidade da luz o efeito de um evento não pode alcançar o outro, podemos afirmar que os eventos estão espacialmente separados ( do inglês, spacelike separated ).
De forma geral, podemos caracterizar as interacções locais da forma como segue: (1) podem ser intermediadas por outras entidades como partículas ou campos; (2) não se propagam mais rápido que a velocidade da luz; (3) a sua influência diminui com a distância.
As forças electromagnéticas, gravitacionais, nucleares fortes e fracas são responsáveis por interacções locais. Sendo assim, todas as quatro forças conhecidas do universo produzem somente interacções locais. De onde vêm as interacções não locais?
Nos parágrafos anteriores não discutimos o colapso do vector de auto estados. Durante a medição, o vector de auto estados de um sistema de partículas correlacionadas sofre o colapso de auto estados. O colapso do vector de estados não envolve força de nenhum tipo. Lembrando que o colapso do vector de auto estados pode interferir em partículas correlacionadas divididas por diversos anos luz de forma imediata, podemos observar uma grande diferença entre interacção que ocorre durante o colapso do vector de auto estados e as interacções provocadas pelas quatro forças físicas conhecidas. As interacções provocadas pelas quatro forças do universo conhecidas dependem da velocidade de propagação luz enquanto que a interacção provocada pelo colapso do vector de auto estados não depende de propagação de sinais a velocidade da luz e nem de um meio conhecido para propagar seus sinais.
Não é fácil definir o que as interacções não locais são. É mais fácil definir o que elas não são: (1) não são intermediadas por outras entidades; (2) não dependem da velocidade da luz; (3) a sua influência não diminui com a distância. O colapso do vector de auto estados é um tipo de interacção não local.
Por que simular computadores quânticos em máquinas convencionais? Simulando computadores quânticos poderemos ter uma ideia das dificuldades a serem enfrentadas no desenvolvimento de novos algoritmos destinados a computadores quânticos. É interessante observar que antes do primeiro computador quântico ser construído, teremos diversos algoritmos específicos para computadores quânticos rodando em simulação. Além disso, através de simulações, teremos uma ideia muito aproximada do que poderemos esperar ao construir computadores quânticos.
Em geral, vale a pena simular um sistema quando a simulação é imensamente menos custosa e ainda assim permite estudarmos os aspectos de interesse do sistema real. Esse é exactamente o motivo pelo qual trabalharemos com simuladores de máquinas quânticas.
Existem diversos pacotes para simulação de computadores quânticos. No entendimento do autor do presente texto, os mais interessantes são Open Qubit [OPE 2000] e QCL ( Quantum Computer Language)[OME 88][OME 2000]. A maior desvantagem do Open Qubit frente ao QCL é a sua dificuldade de operação tendo em vista que o Open Qubit é uma biblioteca C. Sendo assim, Open Qubit exige muito de seu usuário para implementar seus primeiros programas simples. Por ser interpretada, a linguagem QCL permite que seu usuário entre com comandos e funções de forma iterativa e ainda verifique o estado de cada registrador da máquina virtual. O QCL é ideal para o ensino de linguagem de programação de computador quântico.
Introdução à linguagem QCL
O QCL prevê uma máquina híbrida composta por uma máquina clássica semelhante aos bem conhecidos PCs e uma máquina de estados quânticos. O usuário se comunica somente com a máquina clássica. A máquina clássica requisita operações e medições à máquina de estados quânticos. Traçando uma analogia, os PCs modernos possuem unidades de ponto flutuante (UPF) integradas à CPU. Os comandos de salto e controle não pertencem a UPF. A UPF apenas realiza as instruções relativas as operações de ponto flutuante. Da mesma forma, o QCL prevê uma máquina clássica que realiza os testes, desvios, E/S e possui registradores convencionais em contanto com uma máquina de estados quânticos que realiza as operações quânticas.
Para efeito de exemplo, consideraremos o programa QCL que segue:
int Teste() {
int i; // aloca uma variável inteira na máquina clássica
int d; // aloca uma variável inteira na máquina clássicaqureg x[2]; // aloca um registrador quântico de dois bits na // máquina quântica
Mix(x); // força a sobreposição linear uniforme de // auto estados no registrador quântico x.
for i=1 to 5 { // o controle do laço é feito na máquina clássica
Not(x); // nega o conteúdo do registrador quântico x na // máquina quântica
}
measure x,d; // mede o valor na máquina quântica do registrador // x e envia o resultado a máquina clássica
// na máquina clássica, armazena o valor recebido em d.
return d; // retorna o valor da variável d da máquina clássica
No exemplo acima, observe que os comandos destinados a máquina clássica e a máquina quântica aparecem intercalados. A função Teste nega cinco vezes o conteúdo do registrador quântico x. Isso foi feito apenas para mostrar que o controle de laço é executado na máquina clássica enquanto que as operações quânticas são executadas na máquina quântica.
Quando o autor do presente texto começou a estudar QCL, não existia nem mesmo a operação lógica quântica AND. Como veremos mais adiante, a operação AND não é reversível e incrementa a entropia do sistema. Sendo assim, a operação quântica AND implementada pelo autor do presente texto difere ligeiramente da operação lógica AND de uma máquina clássica para permitir a reversibilidade e impedir o incremento da entropia. Diversos algoritmos que serão apresentados aqui foram implementados pelo autor do presente trabalho.
Primeiros Passos em QCL
No presente tópico, serão estudados os aspectos mais básicos da linguagem QCL de interesse para a computação quântica. QCL possui diversos comandos existentes nas linguagens mais conhecidas; porém, deseja-se aprofundar a análise somente nos comandos úteis para a computação quântica. No presente tópico, serão estudados os comandos Mix, Not, CNot, qureg e measure. Será feito uso extensivo de exemplos para esclarecer a funcionalidade dos comandos aqui apresentados.
Para carregar o programa digitaremos a linha de comando como segue:wind:~/qcl-0.4.0-bin$ qcl-static –bits=4
[0/4] 1 |0000>
qcl>
A opção -bits=4 especifica que queremos trabalhar com uma máquina que possui quatro qubits no total. A mensagem [0/4] significa que zero dos quatro qubits foram alocados. Ao lado, 1|0000> significa que o auto estado da máquina |0000> apresenta amplitude de probabilidade um. O prompt qcl> indica que já podemos entrar com novos comandos. No próximo passo, alocamos um registrador quântico de dois qubits.
qcl> qureg x[2]
qcl> dump
: STATE: 2 / 4 qubits allocated, 2 / 4 qubits free
1 |0000>
O comando qureg x[2] cria o registrador x com dois qubits. O comando dump devolve o estado da máquina. Como pode ser observado na saída do comando dump, 2 / 4 ou dois dos quatro qubits estão alocados e os outros 2 / 4 ou dois dos quatro qubits estão livres. Por fim, vemos que a máquina continua no estado 1|0000>. No próximo passo, começaremos a trabalhar com registradores quânticos
qcl> Mix(x)
[2/4] 0.5 |0000> + 0.5 |0010> + 0.5 |0001> + 0.5 |0011>
Os dois qubits mais a direita de cada auto estado correspondem aos dois qubits do registrador x. O comando Mix força a sobreposição linear uniforme de auto estados no registrador que é passado como argumento quando este está no estado em que todos os qubits estão em zero. Observe que todos os auto estados apresentam 0.5 como amplitude de probabilidade. Lembrando que a probabilidade de medição de um auto estado é o módulo quadrado de sua amplitude de probabilidade, a probabilidade de cada um dos quatro auto estados é |0.5|2 = 0.25. No próximo passo, ocuparemos mais um registrador.
qcl> qureg y[1]
qcl> dump
: STATE: 3 / 4 qubits allocated, 1 / 4 qubits free
0.5 |0000> + 0.5 |0010> + 0.5 |0001> + 0.5 |0011>O comando qureg y[1] ocupa o registrador quântico y com 1 qubit. O comando dump nos revela que três dos quatro bits quânticos estão ocupados. Os dois qubits mais a direita de cada auto estado correspondem aos dois qubits do registrador x e o terceiro bit da direita para esquerda é o registrador y. No próximo passo, executaremos nossa primeira função lógica.
qcl> CNot(y,x)
[3/4] 0.5 |0000> + 0.5 |0010> + 0.5 |0001> + 0.5 |0111>
O comando CNot(y,x) nega os auto estados y correspondentes aos auto estados em que x possui seus bits todos em 1. O comando CNot é um comando de negação controlada. A semântica do comando CNot é baseada na semântica da porta lógica quântica proposta por Toffoli [BAR 95] chamada de Controlled Not ou simplesmente CNot. Observe que se podemos garantir que o registrador y começa em zero, CNot apresenta a mesma semântica da porta lógica AND em que y é a saída e x é a entrada. No exemplo anterior, observe que foram feitas quatro operações em paralelo. Para facilitar o entendimento, os bits referentes ao registrador y foram grafados em negrito. Se negarmos o resultado encontrado em y, teremos o resultado da operação x[0] NAND x[1] em y:
qcl> Not(y)
[3/4] 0.5 |0100> + 0.5 |0110> + 0.5 |0101> + 0.5 |0011>
Novamente, os bits referentes ao registrador y foram grafados em negrito. A importância do exemplo anterior deve-se ao fato de que qualquer função lógica pode ser descrita como uma composição de NANDs. No passo seguinte, declararemos uma variável inteira d e mediremos o estado de x. Vale lembrar que somente um auto estado sobrevive após a medição.
qcl> int d
qcl> measure x,d
[3/4] 1 |0011>
qcl> print d
: 3
O comando measure x,d mede x e carrega a variável d com o valor medido. O valor do auto estado de x que será medido depende da probabilidade de cada auto estado. Se x estiver em sobreposição linear uniforme de auto estados, cada auto estado tem a mesma probabilidade de ser encontrado. Sendo assim, poderemos encontrar 0,1,2 ou 3 com a mesma probabilidade. No exemplo anterior, o auto estado medido foi |11>; porém, qualquer outro auto estado de x poderia ter sido medido com a mesma probabilidade.
Molécula com cinco átomos de flúor e dois de carbono consegue fatorar o número 15
À esq., Isaac Chuang segura frasco com solução com as moléculas que funcionaram como um computador quântico; à dir., estrutura da molécula. As operações que permitiram fatorar o número 15 foram realizadas pelos átomos numerados de 1 a 7
Um computador quântico que realizou a prosaica tarefa de fatorar o número 15 é uma das maiores revoluções da informática nos últimos anos. Formado por apenas sete átomos -- cinco de flúor e dois de carbono -- inseridos em uma molécula mais complexa, o computador pode ser o primeiro passo para o desenvolvimento de aparelhos infinitamente mais rápidos que os computadores atuais. A descoberta foi realizada no Centro de Pesquisa Almaden da IBM, na Califórnia, e relatada na edição de 19 de dezembro da revista Nature.
Em 1994, o cientista Peter Shor desenvolveu um método teórico para que computadores quânticos conseguissem fatorar um número, ou seja, encontrar os números primos que, multiplicados, resultem no número inicial. O método, que ficou conhecido como algoritmo de Shor, previa a utilização das propriedades quânticas dos átomos para agilizar operações semelhantes às realizadas em computadores comuns, em que os dados são processados por chips de silício.
Induzido por ondas de rádio ou campos magnéticos, cada átomo poderia 'apontar' para direções opostas. Com isso, reproduziria o sistema binário da informática, que representa todos os números a partir dos algarismos um e zero. A grande diferença é que, devido às flutuações quânticas, cada átomo pode registrar ao mesmo tempo as duas posições (equivalentes a 0 e 1) e suas diferentes combinações (00, 01, 11 e 10 -- correspondentes a 0, 1, 2 e 3 na aritmética binária), o que tornaria os cálculos exponencialmente mais rápidos.
Com a aplicação do algoritmo de Shor, os cientistas liderados por Isaac Chuang, do Massachussets Institute of Technology (MIT), conseguiram fazer com que cinco átomos de flúor e dois de carbono inseridos em uma molécula maior fatorassem o número quinze -- a mais complexa operação já realizada por um computador quântico. Para isso, utilizaram um frasco com 1018 dessas moléculas, que tiveram o movimento controlado por ondas de rádio. O computador quântico chegou aos números 3 e 5.
Fatorar números pequenos parece banal. Mas quando o número a ser fatorado é grande (com mais de cem dígitos, por exemplo), a tarefa se torna inglória, mesmo para supercomputadores -- como o ASCI White, da IBM, capaz de efetuar 12 trilhões de operações por segundo. Por isso, esses números são adotados para codificar documentos: dois números primos grandes são multiplicados, e o resultado é utilizado como chave para criptografar um texto. Para decifrar o código, é preciso descobrir os fatores primos desses números, o que é praticamente impossível.
"Nosso desafio agora é fazer da computação quântica uma realidade", diz Chuang. "Se pudermos fazer os cálculos em maior escala, mudanças fundamentais seriam necessárias em sistemas de criptografia."
Por volta de 2025 é possível que já tenhamos o transístor e o computador definitivos: quânticos.
O progresso na electrónica quântica está acontecendo tão rapidamente que já estão sendo produzidos dispositivos que até pouco tempo eram considerados impossíveis. Por exemplo, os que manipulam electrões únicos podem tornar possíveis os transístores quânticos. Os cientistas conseguiram fazer um “poço quântico” (que consiste de um único electrão no meio de duas camadas planas), uma “linha quântica” (com um único electrão confinado numa linha), e um “ponto quântico” (consistindo em um único electrão confinado num ponto no espaço do tamanho de cinco a dez átomos).
Dentro desses dispositivos quânticos, o electrão único pode vibrar em diferentes frequências, exibindo a propriedade ondulatória da ressonância. (Debaixo do chuveiro, mesmo uma pessoa com uma voz mínima pode cantar com uma voz muito mais potente, porque certas frequências são ampliadas e ressoam entre as paredes do boxe.)Assim também um único electrão, preso dentro de um ponto quântico, ressoará e, com mudanças de voltagem, pode-se criar mensagens binárias.
Em outras palavras, o menor transístor do mundo é um único electrão, preso dentro de um ponto pouco maior que um átomo, capaz de imitar a acção não de um mas de muitos transístores.
Esses transístores quânticos não são mais sonhos de físicos quânticos e já foram construídos. Mas , por serem muito sensíveis e de operação muito difícil, existem apenas em estágio laboratorial e ainda demoram a chegar ao mercado.
Uma das primeiras pessoas a imaginar um computador quântico foi Richard Feynman, Nobel de Física. Em 1981 ele já perguntava, em um artigo, qual seria o menor tamanho possível para um computador. E respondeu que quando os computadores atingissem o tamanho de átomos, passariam a obedecer a um novo conjunto de leis: as da física quântica.
Feynman sentia-se frustrado porque muitos dos problemas fundamentais da teoria quântica não podiam ser resolvidos por computadores (máquinas de Touring) comuns. Sua solução era simples: usar um computador quântico para resolver problemas quânticos.
Computadores quânticos são inteiramente diferentes das máquinas de Touring: cálculos que exigem um tempo enorme num computador padrão, podem ser processados rapidamente num computador quântico.
Em 1994, Peter Shor (da AT&T Labs) mostrou que era possível construir um computador quântico e que esse computador poderia factorizar qualquer número, até com cem dígitos, imediatamente, o que um computador comum levaria décadas a fazer.Por exemplo: foram necessários 1.600 computadores conectados via Internet, para factorizar um número de 129 dígitos. Essa tropa levaria séculos para factorizar um número de 250 dígitos, um raciocínio que, no papel, exigiria 10 linhas elevadas a 500. (No universo visível há somente 10 elevado a 80 átomos...) No entanto, o computador quântico seria capaz de realizar esses cálculos, mesmo sabendo que não há átomos suficientes no universo visível que nos permita escrever os passos necessários para factorizar um número de 250 dígitos.
Em certo sentido, o computador quântico é a última fronteira, o computador definitivo.
A não ser que caminhemos em outra direcção, para explorar um instrumento que já se aproxima de velocidades petaFLOP: nosso próprio cérebro.
![]()
http://www-usr.inf.ufsm.br/~cacau/elc202/node15.html
http://www2.uol.com.br/cienciahoje/chdia/n513.htm
http://www.mat.ua.pt/antoniop/CQ/index_files/frame.htm
http://geocities.yahoo.com.br/alicercesdaciencia/compqua.htm
Trabalho desempenhado por:
Ricardo Luís Costa Cruz Salgado nº 501011323
Pedro Gonçalo Roque Correia nº 501021262
no âmbito da disciplina de AC2