Você está na página 1de 71

Notas em Matemática Aplicada

8

Editado por
Eliana X.L. de Andrade
Universidade Estadual Paulista - UNESP
São José do Rio Preto, SP, Brasil

Rubens Sampaio
Pontifícia Universidade Católica do Rio de Janeiro
Rio de janeiro, RJ, Brasil

Geraldo N. Silva
Universidade Estadual Paulista - UNESP
São José do Rio Preto, SP, Brasil

Sociedade Brasileira de Matemática Aplicada e Computacional

Notas em Matemática Aplicada

1. Restauração de Imagens com Aplicações em Biologia e Engenharia
Geraldo Cidade, Antônio Silva Neto e Nilson Costa Roberty
2. Fundamentos, Potencialidades e Aplicações de Algoritmos Evolutivos
Leandro dos Santos Coelho
3. Modelos Matemáticos e Métodos Numéricos em Águas Subterrâneas
Edson Wendlander
4. Métodos Numéricos para Equações Diferenciais Parciais
Maria Cristina de Castro Cunha e Maria Amélia Novais Schleicher
5. Modelagem em Biomatematica
Joyce da Silva Bevilacqua, Marat Rafikov e Cláudia de Lello Courtouke
Guedes
6. Métodos de Otimização Randômica: algoritmos genéticos e “simulated
annealing"
Sezimária F. Pereira Saramago
7. “Matemática Aplicada à Fisiologia e Epidemiologia”
H.M. Yang, R. Sampaio e A. Sri Ranga

iii

8. Uma Introdução à Computação Quântica
Renato Portugal, Carlile Campos Lavor, Luiz Mariano
Carvalho e Nelson Maculan
9. Modelos Matemáticos baseados em automatas celulares para
Geoprocessamento
Marilton Aguiar, Fábia Amorim da Costa, Graçaliz Pereira Dimuro e
Antônio Carlos da Rocha Costa
10. Computabilidade: os limites da Computação
Regivan Santiago e Benjamín René Callejas
11. Modelagem Multiescala em Materiais e Estruturas
Fernando Rochinha
12. Modelagem em Biomatemática
1 - “Modelagem de distribuição de espécies"
2 - “Redes complexas e aplicações nas Ciências"
3 - “Possíveis níveis de complexidade na modelagem de sistemas biológicos"
Coraci Malta, 1 - Rafael Luis Fonseca, 2 - Jose Carlos Mombach e 3 Henrique Lenzi
13. A lógica na construção dos argumentos
Angela Cruz

unicamp.UERJ luizmc@ime.LNCC portugal@lncc.UNICAMP clavor@ime.br Nelson Maculan . Brasil 2005 .uerj.UFRJ maculan@cos.ES.ufrj.UMA INTRODUÇÃO À COMPUTAÇÃO QUÂNTICA 2a edição Renato Portugal .br Sociedade Brasileira de Matemática Aplicada e Computacional Vitória .br Luiz Mariano Carvalho .br Carlile Campos Lavor .

IV.ES : SBMAC. 2005 pela SBMAC. em qualquer meio. Luiz Mariano Carvalho and Nelson Maculan Direitos reservados. 3. Carlile Campos. . Nelson. desde que faça citação à edição original. 2. Título. Portugal. Maculan. Renato Uma Introdução à Computação Quântica . Lavor. 00 p. Catalogação elaborada pela Biblioteca do IBILCE/UNESP. V. II. Portugal. Carvalho.Vitória . A publicação nesta série não impede o autor de publicar parte ou a totalidade da obra por outra editora. Luiz Mariano. I.v Coordenação Editorial: Geraldo Nunes Silva Coordenação Editorial da Série: Geraldo Nunes Silva Editora: SBMAC Impresso na Gráfica: Capa: Matheus Botossi Trindade Patrocínio: SBMAC c Copyright 2005 by Renato Portugal. Carlile Campos Lavor. 2005 (?). Circuitos Quânticos. Série AMS 94A08/68U10 . Computação Quântica. Algoritmos Quânticos. III. VI. 8) ISBN 1. Renato.(Notas em Matemática Aplicada.

Nos Capítulos 3 e 4. está a nossa principal contribuição: produzir um texto em português que estimule o estudante de graduação. já um clássico. vi . do Programa Institutos do Milênio (Informação Quântica). Comparamos. Rubens Sampaio. Os Autores Rio de Janeiro. do CNPq e. por isso. em particular. ao Prof. exigirá uma leitura mais atenta. a estudar o assunto. Vamos nos concentrar em aspectos matemáticos da computação quântica. O quarto capítulo é denso e. Apesar de desejável. No entanto. em qualquer área de ciências exatas. agradecemos o apoio da Sociedade Brasileira de Matemática Aplicada e Computacional (SBMAC). Finalmente. física e computação. Existem ótimos livros sobre o assunto em língua inglesa (veja a bibliografia). cremos. é o livro de Michael A.Prefácio Esta é uma nova edição em que acrescentamos novos exercícios e fizemos algumas correções. nenhum conhecimento prévio sobre física ou computação é necessário. descrevemos os dois algoritmos mais divulgados em computação quântica: o algoritmo de Grover (Capítulo 3) e o algoritmo de Shor (Capítulo 4). 11 de agosto de 2005. Nesses capítulos. rapidamente.2).1) e apresentamos os conceitos básicos usados no texto (Seção 1. Nielsen e Isaac L. a principal exigência é um curso básico de álgebra linear. da FAPERJ. O texto está dividido em quatro capítulos. Chuang [16]. A Seção 1. descrevemos alguns dos circuitos quânticos que serão utilizados nos capítulos seguintes. Apresentamos um estudo introdutório à computação quântica. uma combinação de três áreas bem conhecidas: matemática. gostaríamos de receber críticas e sugestões por parte dos leitores. fazemos uma breve exposição sobre computadores clássicos (Seção 1.2 é fundamental para todo o livro e deverá ser consultada constantemente.1 (essa discussão será mais útil para aqueles com algum conhecimento de computação). pelo incentivo. Quanto à matemática. o texto tem todas as definições e referências necessárias para a compreensão desse algoritmo fundamental. Para futuras edições melhoradas de nosso trabalho. Esse é um domínio recente. O mais famoso. No Capítulo 2. computadores clássicos e quânticos na Seção 1. No Capítulo 1.

vii .

. . . . 2 2 5 5 9 12 2 Circuitos Quânticos 2. . 2. . . . . . . . . . . . . . . . .2. . . . . . . . 43 43 45 48 51 55 . . .6 Porta CNOT Quântica . . . . . . . . . . 15 15 16 17 18 18 19 20 3 Algoritmo de Grover 3. . . . . . . . . . . . .4 Exemplo: N=8 . . . . 2. . . . . . . . . . . . . . . . . 3. . .4 Porta de Fase ou Porta S 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Universais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Produtos interno e externo . . . . . . . . . . . . . . 2. . . .5 Transformada de Fourier em termos de Portas Bibliografia 61 .2 Algoritmo Quântico para o Cálculo de Ordem 4. . . . .1 Circuito quântico para o operador Uf . 3. . .2 Operadores do Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . 1. .2 Produto tensorial . . . . . . . . . . . . . .5 Porta π/8 ou Porta T . . .3 A Transformada de Fourier Quântica Discreta 4. . . . . . 3.4 Generalização por meio de um Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.Conteúdo 1 Conceitos Básicos 1. .5. . . . . 3. . . . . . .1 Introdução . . . . . . . . . . . . . . . 2. . . . . . . . . . . .2 Porta NOT Quântica . . . . . . . . . . . . 4.1 O Computador Clássico . . .3 Custo Computacional do Algoritmo . . 3. . . . . . . .7 Porta Toffoli Quântica . . . . .5 Circuitos Quânticos para o Operador G . . . . . . . 1.1 Notação e Convenções . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . .3 Porta Hadamard . . . . . . 4 Algoritmo de Shor 4. . . . . . 1. . . . . . . . . . . . . . . . . . . . . . . .1 Redução da Fatoração ao Cálculo da Ordem .2 O Computador Quântico . . . . . . . . . . . . 3. . . . . . . . . . . . 1.1 O bit quântico (q-bit) . . 4. . . . . . . . . . . . . .2 Circuito quântico para o operador 2|ψihψ| − I . . . . . . . . . . . . . . 23 23 24 33 38 40 41 41 . . . . . . . . . . . . . . . . . . .

O bit. representam que medidas de corrente são realizadas. Representamos o processo de cálculo na Figura 1. OR e NOT. Os blocos são as portas lógicas AND. Zeros e uns são estados que podem ser representados fisicamente. A cada conjunto de n bits de entrada. Sem perda de generalidade. . 10 ou 11. Por sua vez. N − 1} → {0. As entradas possíveis são 00. um exemplo de circuito que realiza a soma em aritmética módulo 2 de dois números. basta apenas a porta NOT e uma das duas outras portas. ativando as portas lógicas. . corresponde um único conjunto de n bits de saída. Por exemplo. O fio para o bit da posição superior é desnecessário. executa cálculos e gera uma saída também codificada em zeros e uns. consideremos que o domínio e a imagem de f são do mesmo tamanho.1. As entradas são produzidas através de diferenças de potencial elétrico que geram corrente elétrica. 01. à direita. num computador como um dispositivo que calcula uma função f : {0. da esquerda para a direita. então. . . a corrente se propaga através dos fios. conhecidas como portas universais (na verdade. Pensemos. No caso dos computadores clássicos. através do potencial elétrico: 0 é um estado de baixo potencial elétrico e 1 é um estado de alto potencial elétrico. . dá o resultado da operação. Zeros e uns formam um número binário que pode ser convertido para a base decimal. cada um com um bit. Os símbolos de medida. .Capítulo 1 Conceitos Básicos 1. . codificado em zeros e uns.1 O Computador Clássico Um computador clássico pode ser descrito de forma bastante genérica como uma máquina que lê um certo conjunto de dados. . . OR ou AND). o que caracteriza f como uma função. temos os bits de entrada e à direita. na posição inferior. é apresentado na Figura 1. indicando o valor de cada bit: 0 ou 1. Em geral. onde à esquerda. f é descrita por blocos elementares que podem ser implementados fisicamente por transistores e outros componentes eletrônicos. sendo utilizado apenas para exibir a mesma quantidade de bits de entrada e saída.2. N − 1}. os de saída (o processo de cálculo ocorre da esquerda para a direita). onde N = 2n (n é o número de bits usados na memória do computador).

caso a saída seja 1.3 1.2: Circuito para realizar a soma de dois números. AND OR NOT OR NOT Figura 1. não se sabe quais os valores dos dois bits de entrada.. As portas AND e OR. Para a porta OR. Se a = 0. bitn−1 bitn−1 Figura 1. ocorre o mesmo. f . A porta CNOT é uma porta NOT. no caso da porta AND. Podemos verificar que o valor do bit inferior de saída é dado por a + b (mod 2). O circuito da Figura 1. O COMPUTADOR CLÁSSICO bit0 bit0 bit1 bit1 . vamos utilizar a porta CNOT. controlada pelo valor do bit superior. .1. cada um com um bit. pois as portas AND e OR são irreversíveis. pois como veremos. . descritas dessa forma. O valor do bit superior (chamado bit de controle) nunca muda nessa porta.2 pode ser transformado em um equivalente reversível. representada na Figura 1. Isso significa. Para tanto. são reversíveis. o comportamento é bem diferente).. . que se a saída for 0.3. enquanto que o bit inferior (chamado bit alvo) é alterado apenas se a = 1.1: Esquema genérico para um computador clássico. o circuito apresentado na Figura 1. em aritmética módulo 2.2 é irreversível.. não podem ser representadas por portas quânticas. que será visto adiante. No entanto. nada acontece a ambos os bits (no caso quântico.

Se o computador tem n bits de entrada. o valor do bit superior será duplicado.4: Porta Toffoli. A saída do bit inferior será. Para obter o equivalente reversível para a porta OR. observe que há uma bifurcação de fios e não há problema algum em fazê-lo classicamente.2. Entretanto. colocando b = 0. Generalizando a porta CNOT. então.4 1. Consideremos. a AND b. A seguir. descrevemos todas as possíveis entradas e as saídas correspondentes: 000 001 010 011 100 101 110 111 → → → → → → → → 000 001 010 011 100 101 111 110 A porta AND pode ser representada por uma porta Toffoli colocando c = 0.3: Porta CNOT. O COMPUTADOR CLÁSSICO a a b a + b (mod 2) Figura 1. usando dois bits de controle no lugar de apenas um. Com isso.1. consulte [16]. nada é alterado. há também 2n saídas possíveis. isso não é possível em circuitos quânticos. que pode ser usada para obter a contrapartida reversível da porta AND. a a b b c c + ab (mod 2) Figura 1.4). O valor do bit inferior (o bit alvo) é invertido apenas se a e b valem 1. temos a porta Toffoli (Figura 1. Verifique que esse efeito pode ser obtido através de uma porta CNOT. há 2n entradas possíveis. 162). devido ao teorema de “não clonagem” (veja [19]. e. p. Caso contrário. novamente. para cada uma delas. a Figura 1. .1. Ainda na Figura 1.

Todos os cálculos realizados em um computador clássico também podem ser efetuados em computadores quânticos. se o número de portas cresce exponencialmente com n. mas útil para a análise teórica quando n é grande. Entretanto. Usaremos os dois termos com o mesmo significado. dizemos que o circuito é ineficiente. Isso faz com que a quantidade de informação que pode ser armazenada no estado |ψi seja infinita. 1. O bit é. com probabilidade |β|2 (isso significa que os valores α e β não podem ser conhecidos através .2. os algoritmos quânticos devem usar propriedades quânticas. Em mecânica quântica. A mecânica quântica diz que o processo de medida altera o estado de um q-bit. Por outro lado. Essa base é chamada de base computacional e o vetor |ψi é chamado de superposição dos vetores |0i e |1i. Se o número de portas cresce polinomialmente com n. A diferença entre um bit e um q-bit é que um q-bit genérico |ψi pode também ser uma combinação linear dos vetores |0i e |1i. e os valores 0 e 1 de um bit são substituídos pelos vetores |0i e |1i. representados por     1 0 |0i = e |1i = . como o paralelismo quântico e o emaranhamento.1 O Computador Quântico O bit quântico (q-bit) Em computação quântica. 2n2 .1) onde α e β são números complexos. com probabilidade |α|2 . em (1. Isso dependerá do número de portas usadas no circuito que calcula f . ou o estado |1i. o q-bit. utilizada em mecânica quântica. substituído pelo bit quântico. (1. é que ele está simultaneamente nos estados |0i e |1i.2 1. |ψi = α|0i + β|1i. o atrativo da computação quântica é a possibilidade de se ter algoritmos quânticos mais rápidos que os clássicos. então. A interpretação física do q-bit.2.1). Uma questão fundamental é a “velocidade” com que um computador calcula essas funções. Todas essas funções podem ser reduzidas a circuitos usando as portas universais [16. Para torná-la acessível. 18]. precisamos fazer uma medida. utilizam-se estados quânticos em vez de estados clássicos. ou seja. vetor é também chamado de estado. Para tanto. 0 1 Essa notação. Esse é um método grosseiro de medida de eficiência. ou seja. no nível clássico. O COMPUTADOR QUÂNTICO n n Com isso. fazendo-o assumir o estado |0i. Basta substituirmos as portas irreversíveis clássicas pelas homólogas reversíveis quânticas. para uma mesma classe de problemas. com amplitudes α e β. não disponíveis nos computadores clássicos.5 1. é conhecida por notação de Dirac. dizemos que o circuito é eficiente. essa informação está no nível quântico. Note que os vetores |0i e |1i formam uma base ortonormal do espaço vetorial C2 . o número de funções que pode ser obtido é (2n )2 . Entretanto.

(0. p p θ = 2 arccos( a2 + b2 ) = 2 arcsen( c2 + d2 ). existe uma representação geométrica de um q-bit em R3 : a esfera de Bloch (Figura 1.2). (1. considere √ √ α = a + i b (a. α = a + i b e β = c + i d (a.2) Isso significa que a norma do vetor |ψi vale 1 (vetor unitário). então. podemos. usaremos 1 para representar (1. (1. 0) (1. . temos. Como |α|2 = ( a2 + b2 )2 e |β|2 = ( c2 + d2 )2 .6). c. b ∈ R) e β = c + i d (c.3) Nesse caso. d ∈ R). 0) |0i = e |1i = . passemos o q-bit |ψi = α|0i + β|1i. b. (1.2. podemos escrever a2 + b2 + c2 + d2 = 1. podemos interpretar um q-bit como sendo um vetor unitário de R4 . |0i ou |1i. d ∈ R)). finalmente. Na equação (1. (1.1 Usando as definições dadas em (1. ϕ = arg(β) − arg(α).0) e 0 para representar (0. α = |α| exp(iγ) e β = |β| exp(i(γ + ϕ)). Na verdade. escrever |ψi = exp(iγ)[cos(θ/2) |0i + exp(iϕ) sen(θ/2) |1i]. 0) pois todas as coordenadas são números complexos.5) γ = arg(α). Usando as representações polares de α e β. (1. Entretanto.6) Exercício 1. O COMPUTADOR QUÂNTICO de uma medida).0). a definição da base computacional deveria ser     (1. Para tanto.4) de coordenadas cartesianas para coordenadas polares (como anteriormente. Para simplificar a notação.4) pode ser escrita na forma (1. e definindo ou ainda cos(θ/2) = |α| e sen(θ/2) = |β|. Resumindo: matematicamente. demonstre que a expressão (1.6 1. Com apenas duas possibilidades. um q-bit é um vetor de norma 1 de C2 . |α|2 + |β|2 = 1.5). 0) (0.5).

vamos desconsiderar o termo externo aos colchetes. quando excluímos esse fator. consulte [16]. o mesmo ocorrendo com |β|2 (para um tratamento detalhado desse fato. z cos θ onde 0 ≤ θ ≤ π e 0 ≤ ϕ < 2π. também chamado fator de fase global . . na esfera de Bloch (Figura 1. |0i = −1 1 Ou seja. então.2. |0i z |ψi θ y ϕ x |1i Figura 1. com uma representação de três parâmetros: dois explícitos. o comprimento do vetor. |0i será o pólo norte da esfera e |1i será seu pólo sul. a representação da base computacional. Ficamos. exp(iγ). Esses parâmetros podem ser utilizados para obtermos uma representação polar no R3 . que é sempre igual a um. da forma     x cos ϕ sen θ y  = sen ϕ sen θ .7 1. θ e ϕ. Uma razão que permite essa simplificação é que o valor do quadrado do módulo das amplitudes de um q-bit não se altera. será:     0 0    0 e |1i = 0  . O COMPUTADOR QUÂNTICO Para fins de representação. p. 93). e um implícito.5). Usando essas convenções. Por exemplo: |α|2 = | exp(iγ) cos(θ/2)|2 = | exp(iγ)|2 | cos(θ/2)|2 = | cos(θ/2)|2 .5: Esfera de Bloch.

pois trata-se de probabilidades. A primeira. Ou seja. fazendo a ligação entre o mundo quântico e o clássico. U † é denominada transformação adjunta de U . Essa seria uma situação paradoxal. Exercício 1. que serão utilizados mais à frente. A mecânica quântica também nos diz que a evolução no tempo de um sistema quântico isolado é descrita matematicamente por uma transformação linear [16].2. não ultrapassaríamos os marcos da computação clássica. duas interações básicas de um computador quântico com os dados de entrada: transformação unitária e medida. estaremos falando tanto da aplicação de U . em termos de amplitudes e probabilidades. além daquele ocasionado por sua medida. atuando no nível quântico. provavelmente haveria pouco interesse em computadores quânticos. . Após serem feitas repetidas medidas dos estados com valores iguais a |ψi. Ora. e a segunda. com ∗ indicando a conjugação complexa. com uma precisão razoável. apesar da quantidade infinita de informação que um q-bit guardaria em potencial. para os estados representados na interseção entre o plano (x. o termo operador com esse mesmo significado. 0. em (1. precisássemos de um número enorme de medidas repetidas de q-bits com mesmo valor. então. Transformações lineares unitárias U podem ser definidas (há outras definições equivalentes) como aquelas que atendam à seguinte propriedade: U † U = U U † = I. Com isso. No entanto. Resumindo: temos. Através da quantidade de |0i´s e |1i´s encontrados. há outro tipo de fenômeno que ocorre com um estado quântico. Usaremos. respectivamente. onde U † =(U ∗ )T . teremos um valor aproximado para os valores |α|2 e |β|2 . Não podemos garantir sua exatidão. Vejamos por quê.8 1. se para sabermos o valor dos “coeficientes” de um simples q-bit. apenas dois valores seriam acessados por nós. mesmo que haja uma grande quantidade de estados |ψi de mesmo valor. Por exemplo. e T indicando a transposição matricial. quando escrevermos U |ψi. 0) e a esfera de Bloch. Insistimos que não se pode calcular exatamente os valores de |α| ou |β|. as funções que transformam vetores unitários em vetores unitários do mesmo espaço vetorial são as transformações unitárias. 0). pois apenas medindo estados que forneçam os resultados |0i ou |1i.4). e. também. quanto da multiplicação da matriz U pelo estado |ψi. são representados por (1. sistemas quânticos isolados são descritos por vetores unitários. y. os estados √12 (|0i + |1i) e √12 (|0i − |1i). O COMPUTADOR QUÂNTICO Dessa forma. teremos apenas os resultados |0i ou |1i. faremos referência indistintamente à transformação U e à matriz que a representa usando a mesma notação. como sabemos da álgebra linear. Desse ponto em diante. 0. E mais. todos os estados de um q-bit podem ser representados (a menos de um fator multiplicativo) na esfera de Bloch. salvo indicação explícita. 0) e (-1.2 Dê uma interpretação.

 .2 Produto tensorial Para considerarmos estados com mais de um q-bit.. São elas: |ψi|ϕi. . 0 1 0 .. . outras notações mais simplificadas para o produto tensorial |ψi ⊗ |ϕi.9 1.  . O COMPUTADOR QUÂNTICO 1.  . Há vários graus de generalidade para a introdução dessa definição. O produto tensorial de dois estados     ϕ1 ψ1  ϕ2   ψ2      |ψi =  .  ..2. precisamos introduzir o conceito de produto tensorial. . |ψ. aqui.   .  e |ϕi =  . a mais simples e que será plenamente suficiente para os nossos propósitos. Por exemplo:   0     1 0 1  = ⊗ |01i = |0i ⊗ |1i = 0 1 0 0 e   0     0 1 0  = ⊗ |10i = |1i ⊗ |0i = 1 .       ψ 1 ϕp   ψ 2 ϕ1   ψ 2 ϕ2    .  ψ 2 ϕp    . ϕi e |ψϕi. Usaremos.  ϕp ψm denotado por |ψi ⊗ |ϕi. ψ m ϕp (1.7) onde ψi ϕj é o produto usual dos complexos. Usaremos..  ψ m ϕ1   ψ m ϕ2    ... também.2. dado por              |χi =              ψ 1 ϕ1 ψ 1 ϕ2 . tem como resultado o estado |χi com mp-linhas.

. porém mais criptográfica. se    1 0 0 1 A= e B= 0 1 1 0 0 0 então A⊗B =  0 1 1 0   1 0 ⊗ 0 1 0 0     0  0 =   1  0 0 0 1 0 0 variando da seguinte forma: 0 0 0 0 1 0  0 0 . . podemos definir um novo operador linear.    A seguir. w1 . 1 ≤ l ≤ q. 3. Am1 B Am2 B ··· Amn B onde Aij é o elemento da linha i e da coluna j de A.9) (A ⊗ B)rs = Aij Bkl . por ela própria n vezes. cada elemento da matriz A ⊗ B é definido por (1.8) . O produto tensorial pode ser estendido para matrizes quaisquer.. . .10) desde que garantidas as dimensões corretas para possibilitar as multiplicações das matrizes pelos vetores. . por ele próprio n vezes. 1 ≤ k ≤ p. |vi ⊗ (|w1 i + |w2 i) = (|vi ⊗ |w1 i) + (|vi ⊗ |w2 i). introduzindo mais algumas notações. onde r = (i − 1)p + k e s = (j − 1)q + l. 2. 1 ≤ j ≤ n. De forma mais precisa. diremos que |ψi⊗n e A⊗n são os produtos tensoriais de |ψi. a matriz A ⊗ B ∈ Cmp×nq é definida por   A11 B A12 B · · · A1n B  A21 B A22 B · · · A2n B    A⊗B = (1.2. Dadas as matrizes A ∈ Cm×n e B ∈ Cp×q . A ⊗ B. (|v1 i + |v2 i) ⊗ |wi = (|v1 i ⊗ |wi) + (|v2 i ⊗ |wi).. Ainda. e de A. . damos algumas propriedades do produto tensorial que serão utilizadas ao longo do texto (considere z ∈ C. por (A ⊗ B)(|ui ⊗ |wi) = A|ui ⊗ B|wi. v2 ∈ Cn e w. v.10 1. z(|vi ⊗ |wi) = (z|vi) ⊗ |wi = |vi ⊗ (z|wi).   . com os índices 1 ≤ i ≤ m. O COMPUTADOR QUÂNTICO Note que o produto tensorial não é comutativo. Exercício 1. w2 ∈ Cm ): 1. 2 e 3 do produto tensorial. respectivamente.3 Demonstre as propriedade 1.. Dadas duas transformações lineares A e B. v1 . . Por exemplo. 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0     .. . (1.

. |10i e |11i (estamos usando a notação simplificada para o produto tensorial entre dois estados de 1 q-bit). usando a notação decimal. Vejamos. (1.11 1. a não ser que ele pertença à base computacional. . O estado |ψi. |11i podem ser abreviados por |0i. . produzindo zeros e uns que são lidos em conjunto. agora. |3i. |1i. |2n − 1i}. |01i. . |2i. outro conceito fundamental em computação quântica: o emaranhamento. com as amplitudes αi atendendo a n 2X −1 i=0 |αi |2 = 1. |10i. um estado |ψi de n q-bits é uma superposição de 2n estados da base computacional {|0i. O COMPUTADOR QUÂNTICO Vejamos. o contexto esclarecerá a que situação estamos nos referindo. agora.2. Esse será uma superposição dos estados |00i. gerando a saída |i0 i. com 0 ≤ i0 ≤ 2n − 1. uma propriedade central do processo de medida. antes da medição. é inacessível. |01i. dada por |ψi = n 2X −1 i=0 αi |ii.11) onde |α|2 + |β|2 + |γ|2 + |δ|2 = 1. Um estado de 2 q-bits pode ou não ser o resultado do produto tensorial de estados de 1 q-bit. ou seja. Considere os estados de 1 q-bit |ϕi = a|0i + b|1i e |ψi = c|0i + d|1i. podemos considerar os zeros e uns que aparecem na equação (1. . aqui. é não-determinístico. forçando-o a um colapso para algum dos vetores da base computacional. como vimos. Este colapso. |1i. a medida é realizada q-bit a q-bit. |ψi = α|00i + β|01i + γ|10i + δ|11i. a descrição de um estado genérico |ψi de 2 q-bits. Usualmente. Consideremos. Visando a reduzir a notação. a medição do estado genérico |ψi produz um resultado |i0 i com probabilidade |αi0 |2 . Em cada caso. pois têm dimensões diferentes. Como havíamos comentado anteriormente. O procedimento de medida altera inevitavelmente |ψi. |00i. Em geral. É claro que o |0i acima não é o mesmo que aparece na definição de um q-bit. com probabilidades dadas pelos quadrados dos módulos das amplitudes de |ψi.11) como números binários. Repetiremos. e assim.

3 Produtos interno e externo Podemos definir o produto interno entre os estados |ϕi. obviamente. O COMPUTADOR QUÂNTICO onde a. ser descrito como produto tensorial dos estados |0i e |1i. hϕ|ψi = (|ϕi)† |ψi = n X ϕ∗i ψi .2.   0     1 0 1   . b. Logo. α = ac. pois não pode ser descrito como produto tensorial de estados de 1 q-bit. o estado   0 1   1 0 é um estado emaranhado. Quando isso acontece. O estado definido pelo produto tensorial de |ϕi e |ψi é |ϕi ⊗ |ψi = (a|0i + b|1i) ⊗ (c|0i + d|1i) = ac|00i + ad|01i + bc|10i + bd|11i. = bc. δ d Ou seja. Por exemplo. denotado por hϕ|ψi. ou seja. não é o produto tensorial de estados de 1 q-bit. um estado de 2 q-bits. e somente se.12) Observe que um estado de 2 q-bits genérico (1. temos que c α = β d e γ c = . β γ δ = ad. Dessas igualdades.13) i=1 O estado |ϕi† é chamado dual de |ϕi e denotado por hϕ| (|ϕi e hϕ| são denominados ket e bra. c. respectivamente). |ψi ∈ Cn .12) se. = bd. dizemos que o estado está emaranhado. αδ = βγ. em geral.11) é da forma (1. O produto interno satisfaz às seguintes propriedades: . d ∈ C.2. isto é. 1. (1. o estado |01i pode. como sendo o produto matricial entre |ϕi† e |ψi. (1. ⊗ |01i =   = 1 0 0 0 No entanto.12 1.

b ∈ C e |ϕi. O COMPUTADOR QUÂNTICO 1. ser definida por p || |ϕi || = hϕ|ϕi. (1. usando essa definição. 2. |ψi ∈ Cn . apresentado na Figura 1. hψ|ϕi = hϕ|ψi∗ . dados dois vetores |ϕi.15) Observe que. A norma de um estado |ϕi pode. Temos. θ ∈ [0. com a. e |ϕihψ| para o produto externo. como sendo o produto matricial de |ϕi por hψ|. considere os estados de 1 q-bit |ϕi = α|0i + β|1i e |ψi = γ|0i + δ|1i. =  αγ ∗ βγ ∗ αδ ∗ βδ ∗  . 2 e 3 do produto interno. (1. podemos dar uma representação para um computador quântico (Figura 1. Exercício 1. . n |ϕihψ| = |ϕi(|ψi)† .5 Demonstre que. Podemos. denotado por |ϕihψ|. é o resultado da composição de vários outros operadores unitários. hϕ|(a|ui + b|vi)i = ahϕ|ui + bhϕ|vi. também.2. hϕ|ψi  = para o produto interno. em geral. O resultado da computação é dado pela medida de cada q-bit de saída. hϕ|ϕi > 0 (se |ϕi = 6 0). ou seja. 3.13 1. Note que |ϕihψ| é uma matriz de ordem m × n. =  α β α ∗  β  γ ∗ ∗   δ ∗ γ δ   = α∗ γ + β ∗ δ. |ψi. |vi ∈ Cn . Com os conceitos apresentados até aqui. generalizando o computador clássico. então. então. Os bits de entrada são substituídos por estados de 1 q-bit e a função f é substituída por um operador unitário U que. |ui. Como exemplos das definições acima. Exercício 1. podemos definir o ângulo θ entre dois vetores unitários |ϕi. |ψi ∈ Rn por θ = arccos(hϕ|ψi).6). definir o produto externo entre os estados |ϕi ∈ Cm e |ψi ∈ C .1.14) Usando o produto interno. temos (|ψihψ|)|ϕi = hψ|ϕi|ψi. π].4 Demonstre as propriedades 1.

há que se levar os erros em conta.. O COMPUTADOR QUÂNTICO |ψ1 i 0 ou 1 |ψ2 i 0 ou 1 U . |ψn i .14 1. 0 ou 1 Figura 1. os graus de liberdade são maiores que no computador clássico. o que diminui o número de circuitos implementáveis. A priori. existe a possibilidade de um número infinito de operadores unitários U .6: Esquema genérico para um computador quântico.2.. usando n q-bits. . representados por matrizes com 2n × 2n entradas. Mesmo assim. Cada operador U é implementado com portas formando circuitos quânticos. Na prática. assunto do próximo capítulo.

1: Porta quântica U-controlada.1). linhas correspondem a fios e bifurcações significam que a corrente elétrica passa por ambos os fios. Por exemplo. como veremos. Entrada: pode ser o produto tensorial entre os q-bits de entrada ou um estado emaranhado (os q-bits não devem ser considerados individualmente). por exemplo. Linhas horizontais: as linhas que aparecem não são necessariamente fios. os fenômenos ocorrem de outra forma.1 Notação e Convenções Para apresentar as convenções usadas em circuitos quânticos. vamos utilizar um circuito (porta U-controlada) em que a entrada e a saída são um estado de 2 q-bits (Figura 2. Elas representam a evolução de um q-bit. U Figura 2.Capítulo 2 Circuitos Quânticos A representação gráfica de circuitos clássicos é. Nos circuitos quânticos. de certa forma. próxima da realidade física do circuito implementado. podendo ser apenas a passagem do tempo ou. o deslocamento de um fóton. . 2.

Antes de prosseguir. A importância do estudo de portas lógicas em computação quântica baseia-se no fato de que toda matriz unitária 2 × 2 pode ser representada por um circuito quântico de 1 q-bit e vice-versa [16]. que pode ocorrer em um circuito clássico. Caso o q-bit de controle seja um estado superposto ou os 2 q-bits estejam emaranhados. PORTA NOT QUÂNTICA Sentido: o circuito descreve a evolução do sistema quântico no tempo. O mesmo não ocorre nos circuitos quânticos. a evolução no tempo de um sistema quântico isolado. A linha vertical representa o sincronismo. Controle: o símbolo • indica que o q-bit representado nessa linha é um q-bit de controle. Linhas verticais: o segmento vertical que aparece unindo os símbolos • e U informa que o circuito atua simultaneamente nos dois q-bits. (2.16 2. Saída: os q-bits que compõem a saída do circuito podem ou não ser medidos. como veremos. nem bifurcações de q-bits. que representa todo o circuito. a porta U realiza a operação. Devemos considerar a ação do operador unitário. caso esteja no estado |0i. dado por um q-bit. a porta U não realiza operação alguma. atuando simultaneamente nos 2 q-bits. não há sentido em aparecer retroalimentação. verifica-se facilmente que a representação matricial do operador X é dada por   0 1 X= . Sendo assim. A generalização para o caso quântico é dada por um operador X que satisfaz X|0i = |1i e X|1i = |0i. não são permitidas nem junções. 1 0 Exercício 2. .1) Com isso. vamos apresentar algumas portas quânticas. Comecemos por portas de 1 q-bit. façamos uma observação. e não o envio de informação. Portanto. há apenas uma possibilidade: a porta NOT. não é possível compreender o comportamento individual do q-bit de controle e do q-bit alvo. caso esteja no estado |1i. o resultado será 0 ou 1.1 Demonstre que X é um operador unitário. pode ser representada tanto matematicamente (por uma transformação unitária) quanto logicamente (por um circuito quântico). Como o q-bit inferior está sendo medido (o símbolo de medida está indicado na Figura 2. a porta NOT troca o 1 por 0 e vice-versa. No caso clássico. 2.2 Porta NOT Quântica No caso clássico. Com isso.2. da esquerda para a direita. ou seja.1). Vistas as principais convenções.

onde a probabilidade de se obter um dos estados.2) H=√ 2 1 −1 Exercício 2.3. pois. temos: H ⊗2 |00i = H|0i ⊗ H|0i     1 1 √ (|0i + |1i) ⊗ √ (|0i + |1i) = 2 2 1 (|00i + |01i + |10i + |11i) . é a mesma: 50%.0i (H|0i)⊗n  ⊗n 1 √ (|0i + |1i) = 2 2n −1 1 X |ii. temos situações sem contrapartida no caso clássico. (2. = 2 Em notação decimal. Aplicando o operador H em cada q-bit de um registrador com 2 q-bits no estado |00i.3 Porta Hadamard Uma outra porta de 1 q-bit. A porta X é apenas uma da portas de 1 q-bit. já que há infinitas matrizes unitárias 2 × 2. largamente utilizada.. obtemos: H ⊗2 |00i = H ⊗n |0. |ϕi = α|0i + β|1i. PORTA HADAMARD Com a porta NOT quântica.17 2. 2. 2 Generalizando para estados com n q-bits. se a entrada |ϕi for uma superposição dos estados |0i e |1i. obtemos 1 H|0i = √ (|0i + |1i). = √ 2n i=0 = Esse resultado será importante no algoritmo de Grover (Capítulo 3). 1 (|0i + |1i + |2i + |3i) . .2 Demonstre que H é um operador unitário. Aplicando H no estado |0i. ao se fazer uma medida do estado H|0i. a saída será X|ϕi = β|0i + α|1i.. é a porta Hadamard H. definida pelo operador   1 1 1 . 2 que é uma superposição dos estados |0i e |1i.

4 Porta de Fase ou Porta S A matriz unitária associada à porta S é  1 S= 0 0 i  . onde i é a unidade imaginária (i2 = −1). Também. usando a porta H. as probabilidades de se obter os estados |0i ou |1i serão as mesmas. PORTA DE FASE OU PORTA S Exercício 2. obtemos T |ψi = α|0i + exp(iπ/4)β|1i. se for feita uma medida do estado T |ψi. na forma   exp(−iπ/8) 0 . comparadas com uma medida realizada sobre o estado |ψi. 2. comparadas com uma medida realizada sobre o estado |ψi. as probabilidades de se obter os estados |0i ou |1i serão as mesmas. 0 exp(iπ/4) que poderia ser representada. se for feita uma medida do estado S|ψi. Aplicando S em um estado genérico |ψi = α|0i + β|1i. nesse caso. . também. por exemplo. Isso não acontece.18 2. 2.4. obtemos S|ψi = α|0i + iβ|1i. T = exp(iπ/8) 0 exp(iπ/8) Aplicando T em um estado genérico |ψi = α|0i + β|1i. A porta S pode também ser representada por   1 0 S= . Note que.5 Porta π/8 ou Porta T A matriz unitária associada à porta T é   1 0 T = . 0 exp(iπ/2) já que exp(iπ/2) = cos(π/2) + i sen(π/2) = i.3 Aplique o operador H em um estado superposto qualquer e interprete o resultado.

6 Porta CNOT Quântica Outra porta. se ele estiver no estado |0i. ji → |i. PORTA CNOT QUÂNTICA 2. → |01i. (2. o que distingue a porta CNOT quântica da clássica é que. → |10i. onde i.6. Essa descrição é adequada apenas quando o q-bit de controle está nos estados |0i ou |1i.3) Note que podemos representar essa ação na base computacional de forma mais esquemática por |i. Ela é “ativada” se o q-bit de controle estiver no estado |1i. e nada faz. ou seja. é a contrapartida quântica do circuito clássico apresentado anteriormente na Figura 1. os dois q-bits podem estar emaranhados. na porta CNOT quântica. i ⊕ ji. age dependendo do valor do q-bit de controle. os q-bits alvo e de controle podem ser estados superpostos.3. Figura 2. além disso. → |11i.4) . |00i |01i |10i |11i → |00i. (2. Uma porta controlada. o de controle e o alvo (Figura 2.2: Porta CNOT quântica. j ∈ {0. A ação da porta CNOT pode ser caracterizada pelas transformações operadas nos elementos da base computacional associada. e. essa atuando em estados de 2 q-bits. 1} e ⊕ é a adição módulo 2.2). Entretanto. como já vimos (Figura 2.19 2. Ela tem 2 q-bits de entrada.1).

Também é uma porta controlada. 0 1 1 0  0 0  . 1 0 0 1 que resulta em UCNOT  1  0 =  0 0 UCN OT 0 1 0 0 0 0 0 1     0 0 0 0   =  .7 Porta Toffoli Quântica A próxima porta a ser considerada é a correspondente quântica da porta Toffoli (Figura 1. k ⊕ iji.3).7 Demonstre que a porta CNOT não pode ser descrita usando portas de 1 q-bit. PORTA TOFFOLI QUÂNTICA Para obtermos a matriz UCN OT associada à porta CNOT. 1  0 (2. isto é. j. a base computacional possui 8 elementos. Sua ação na base computacional associada pode ser representada por |i. basta usarmos os valores dados em (2. ki → |i. 1} e ⊕ é a adição módulo 2. j. 0 0 0 0 UCN OT     0 0 0 0   =  . só que nesse caso. 0 = 0 . Exercício 2.3).6 Demonstre que a matriz UCN OT não pode ser descrita como produto tensorial de matrizes 2 × 2.7. Exercício 2. . k ∈ {0.5) Exercício 2. Observe que.4).20 2. Exercício 2. 2. onde i. j. Um resultado importante sobre circuitos quânticos é que qualquer operador unitário pode ser representado usando portas CNOT e portas de 1 q-bit [16].         1 1 0 0 0 0 1 1       UCN OT  UCN OT  0 = 0 .4 Demonstre que UCN OT é um operador unitário.5 Dê um exemplo de estado emaranhado produzido pela porta CNOT. nesse caso. com dois qbits de controle (Figura 2.

na representação da porta Toffoli da Figura 2.10 Faça a evolução dos estados da base computacional.21 2. Exercício 2. Exercício 2. que será utilizada nos capítulos seguintes. Como já sabemos.7.8 Exiba a matriz associada à porta Toffoli quântica.4 (há outras representações [19]). ela pode ser descrita usando portas de 1 q-bit e portas CNOT. temos também a porta Toffoli generalizada (Figura 2.4. . PORTA TOFFOLI QUÂNTICA Figura 2. Exercício 2.4: Decomposição da porta Toffoli em portas de 1 q-bit e portas CNOT. Uma representação possível é dada na Figura 2.5).9 Analise se a matriz associada à porta Toffoli quântica pode ser representada pelo produto tensorial de matrizes quadradas de dimensões diferentes de 1 × 1. Para simplificar ainda mais a representação de circuitos quânticos.3: Porta Toffoli quântica. A porta Toffoli é usada para simplificar a representação de circuitos quânticos. T T† T† H T† T T† T S H Figura 2.

5) e as saídas da sua decomposição (Figura 2.6: Porta Toffoli generalizada decomposta em portas Toffoli simples. em termos de portas Toffoli simples.7.. n Figura 2. ... Exercício 2.. São utilizados para simplificar a decomposição.5: Porta Toffoli generalizada.22 2. .. Os n − 2 q-bits de trabalho são q-bits extras. . |0i |0i n Figura 2.. elementos da base computacional.. PORTA TOFFOLI QUÂNTICA n−1 q-bits de controle q-bit alvo                        . considerando.                    n−1 q-bits de   controle                               n−2     q-bits  de   trabalho                 q-bit alvo .. ... cujas entradas são conhecidas antecipadamente.6. . A decomposição da porta Toffoli generalizada. na entrada.6). ....... ..... |0i |0i |0i . .11 Analise as saídas da porta Toffoli generalizada (Figura 2. . . é mostrada na Figura 2..

1): o primeiro.. . Este resultado será obtido usando o algoritmo de Grover [12. com 1 q-bit.1 Introdução Considere o seguinte problema: temos uma lista não ordenada com N elementos e desejamos encontrar um elemento específico que está na lista. A cada elemento i da lista {0. 1. 1. e que a função f : {0. (3.0i. associaremos o estado |ii de n q-bits.. se i 6= i0 . enquanto que o segundo é um registrador que terá um papel fundamental. N − 1}. No pior caso possível. inicializado no estado |1i. . vamos supor que a busca será realizada sobre a lista {0. Imagine a função f como sendo um oráculo que está à disposição para informar se um dado elemento é ou não o elemento procurado. o custo computacional para resolver o problema está associado ao número de vezes que a função f deve ser “utilizada”. a quantidade de√“testes” necessários para a identificação do elemento procurado será proporcional a N . como veremos.. N − 1}. se i = i0 .1) será utilizada para o reconhecimento do elemento procurado i0 (assumiremos que existe um único elemento i ∈ {0. inicializado no estado |0.. Dessa forma... 13].. 1.Capítulo 3 Algoritmo de Grover 3. N −1} tal que f (i) = 1). usando as propriedades da mecânica quântica.... Como veremos. N − 1} → {0. Para representar matematicamente o problema. deveríamos testar elemento a elemento. 1}. . ... onde N = 2n para algum número natural n. e o segundo. O primeiro registrador está relacionado aos elementos da lista onde será feita a busca... . Classicamente. O algoritmo de Grover utiliza dois registradores quânticos (Figura 3. precisaríamos realizar N testes. com n q-bits. 1. 0. definida por f (i) =  1.

H . se i 6= i0 . onde |ii é o estado de n q-bits do primeiro registrador. imaginemos. G G . . . A superposição obtida será denotada por |ψi. Usando (3. Para completar a inicialização do algoritmo.1: Esquema genérico para o algoritmo de Grover (G é um operador unitário que será definido mais adiante). Uf (|ii|0i) = (3. (3. H .    |0i        primeiro registrador (n q-bits)          |0i .5) |ii|0i....4). obtemos uma superposição de N = 2n estados com mesma amplitude.. um operador linear Uf que transforme |ii em |f (i)i. ( segundo |1i registrador (1 q-bit) |ψG i |ψi . .24 3. G . Denotando o resultado por |−i. temos:  |ii|1i.2.3) |−i = H|1i = √ (|0i − |1i).. ou seja.. o operador H também é aplicado sobre o estado inicial do segundo registrador (Figura 3... |ψGk i |ψG2 i H .. em (3.1). então. o primeiro registrador tem n q-bits e o segundo apenas 1 q-bit.2 Operadores do Algoritmo Antes da execução propriamente dita do algoritmo. 2 Já sabemos que qualquer alteração de um sistema quântico isolado (que não seja uma medida) é descrita por um operador unitário. Como Uf deve ser unitário. Uf |ii|0i −→ |ii|f (i)i. temos: 1 (3. então.. N −1 1 X |ψi = √ |ii.. Isso pode ser obtido aplicando o operador Hadamard H (2.1). utilizada para a identificação do elemento procurado.2) Observe que aplicando n vezes o operador H. OPERADORES DO ALGORITMO 3. se i = i0 . na “entrada” e na “saída”.. a “entrada” e a “saída” de Uf devem ter a mesma dimensão.. .... |−i |−i |−i |−i Figura 3.1). o primeiro registrador é alterado para formar uma superposição de todos os estados associados aos elementos da lista. Considere. Para “representar” quanticamente a função f . N i=0 (3..2) em cada q-bit do primeiro registrador (Figura 3.4) onde.

6) |ii|1i.5) e (3.           0 0 0 0 0 0 1 0             .2. para uma lista com 4 elementos (o primeiro registrador terá 2 q-bits). pois. |2i|1i.           0 0 0 0 0 0 0 1              . resultante da inicialização (Figura 3. representaremos (3. 0 0 0 0 0 1 0 0             . OPERADORES DO ALGORITMO Ou seja. Com isso. .           0 0 1 0 0 0 0 0             . a base será {|0i|0i. |1i|1i. ! ! N −1 1 X √ Uf (|ψi|−i) = Uf |ii |−i . Para completar a definição. Ou seja. |0i|1i. N i=0 . Vejamos. O que vai fazer diferença é que podemos também aplicar Uf em estados superpostos. Uf fica bem definido. o operador Uf altera o estado do segundo registrador quando o primeiro registrador representa o elemento procurado. precisamos definir o valor de Uf (|ii|1i). 1}) e ⊕ é a soma módulo 2. saberíamos que o elemento buscado teria sido encontrado. basta defini-lo nos elementos da base.                                 1 0 0 0 0 0 0 0             . isto é.1). Uf (|ii|1i) = (3. N − 1}). |1i|0i.25 3. 1. ou melhor. Para identificar o elemento procurado i0 . (3.2). O próximo passo do algoritmo é aplicar o operador Uf sobre o estado |ψi|−i. Note que a base é formada usando o produto tensorial.           0 0 0 0 1 0 0 0             . Quando o estado do segundo registrador fosse alterado. bastaria aplicar Uf em cada estado associado aos elementos da lista e manter o segundo registrador no estado |0i ou |1i. |3i|0i. Mantendo a mesma idéia. Exercício 3. |2i|0i. sendo um operador linear. |3i|1i}. O operador Uf foi definido para simular quanticamente o papel da função f (3. se i 6= i0 . Por exemplo.            Para facilitar os cálculos a seguir.           0 1 0 0 0 0 0 0             .7) onde |ii é o estado de n q-bits do primeiro registrador (i ∈ {0. Neste caso.1 Exiba a matriz que representa Uf . definimos:  |ii|0i.6) de uma única maneira. . usando a função f .           0 0 0 1 0 0 0 0             . se i = i0 . |ji é o estado de 1 q-bit do segundo registrador (j ∈ {0. n+1 n+1 Note que Uf ∈ C(2 ×2 ) .2 Demonstre que Uf é um operador unitário. isso não proporcionaria ganho algum em relação ao caso clássico. . No entanto.           Exercício 3. . o estado do primeiro registrador seria |i0 i. Uf (|ii|ji) = |ii|j ⊕ f (i)i.

N −1 1 X 1 √ (Uf (|ii|0i) − Uf (|ii|1i)) . da linearidade de Uf . N i=0 Substituindo a definição do estado |−i. obtemos: Uf (|ψi|−i) = =    N −1 1 X 1 √ Uf |ii √ (|0i − |1i) 2 N i=0   N −1 1 X 1 √ Uf √ (|ii|0i − |ii|1i) . N −1 1 X Uf (|ψi|−i) = √ Uf (|ii|−i) .. . . 2 N i=0 Novamente. OPERADORES DO ALGORITMO |ψi |0i H . . Usando a distributividade do produto tensorial em relação à adição de vetores.2: Aplicação do operador Uf sobre o estado |ψi|−i. na expressão acima. .8) .. ! N −1 1 X |ii|−i . temos: Uf (|ψi|−i) = = N −1 1 X 1 √ √ (|ii|f (i)i − |ii|1 ⊕ f (i)i) N i=0 2 N −1 1 X 1 √ √ (|ii (|f (i)i − |1 ⊕ f (i)i)) . N i=0 2 (3. |0i H |1i H .3).2. Uf (|ψi|−i) = √ N i=0 2 Da definição de Uf .26 3. Uf (|ψi|−i) = Uf √ N i=0 Da linearidade do operador Uf . em (3. dada em (3. Uf |−i Figura 3..7).

O estado do primeiro registrador continua sendo uma superposição de todos os estados associados aos elementos da lista. da definição de |−i.2. pois a probabilidade de se obter o elemento procurado é . (3. Uf (|ψi|−i) = =    N −1 1  X √ |ii|−i − |i0 i|−i N i=0. essa informação só está disponível quanticamente. |ii (|0i − |1i) .8). N i=0 Ou ainda. Entretanto.1). o estado associado ao elemento procurado foi “identificado” como sendo o único que teve sua amplitude alterada. Além da função f ter sido “avaliada” em todos os elementos da lista onde está sendo feita a busca. se i = i0 . OPERADORES DO ALGORITMO Da definição de f .10) Note que o estado do segundo registrador não se altera (como visto acima. Uf (|ψi|−i) = √ 2 2 N i=0. a amplitude do elemento procurado foi alterada de √1N para − √1N .27 3. No entanto. em (3. se i 6= i0 . um fato interessante ocorreu.i6=i0 Novamente. isso não quer dizer que ele seja desnecessário!). N i=0 (3. Uf (|ψi|−i) = ! N −1 1 X f (i) √ (−1) |ii |−i. Não adiantaria fazer uma medida do primeiro registrador. Após a aplicação do operador Uf .i6=i0 ! N −1 X 1 f (i) √ (−1) |ii|−i . |ii (|f (i)i − |1 ⊕ f (i)i) =  |ii (|1i − |0i) .9) Substituindo a expressão anterior em (3. temos:    N −1  1  X 1 1 √ (|ii (|0i − |1i)) + √ (|i0 i (|1i − |0i)) . com apenas uma aplicação de Uf (este fenômeno é conhecido como paralelismo quântico [16]).

.

.

−1 .

2 .

√ .

. = 1 .

N.

ainda mantém o segundo registrador no estado |−i? Vejamos. consideremos a seguinte questão: a aplicação do operador Uf sobre um estado qualquer. N Antes de prosseguirmos. no primeiro registrador. .

Uf (|ii|−i) =  −|ii|−i.11) Usando este resultado e aplicando Uf sobre um vetor unitário qualquer |vi = N −1 X i=0. Usando as definições do operador Uf e do estado |−i.i6=i0 i=0. e mantendo o estado |−i. 2 Da mesma forma que fizemos no cálculo de Uf (|ψi|−i).12) Conclusão: a aplicação de Uf sobre o estado |vi|−i não altera o estado do segundo registrador. sempre que o estado do segundo registrador for |−i. (3. gerado pelos elementos da base computacional {|0i. se i 6= i0 . É importante destacar que o estado |−i é fundamental no processo de marcação do elemento procurado. Portanto... .. |1i. (3. OPERADORES DO ALGORITMO Seja |ii.i6=i0 = N −1 X i=0.i6=i0 = N −1 X i=0.i6=i0  αi |ii − αi0 |i0 i |−i. no segundo registrador. omitiremos o segundo registrador. |ii|−i. se i = i0 . |N − 1i}.2. temos:      N −1 N −1 X X αi |ii|−i + αi0 |i0 i|−i αi |ii + αi0 |i0 i |−i = Uf  Uf  i=0. Ou seja. um estado qualquer da base computacional {|0i.i6=i0  =  αi Uf (|ii|−i) + αi0 Uf (|i0 i|−i) αi |ii|−i − αi0 |i0 i|−i N −1 X i=0.. |N −1i}.. obtemos: Uf (|ii|−i) = (−1)f (i) |ii|−i.i6=i0 αi |ii + αi0 |i0 i. |1i. . temos:    1 Uf (|ii|−i) = Uf |ii √ (|0i − |1i) 2   1 = Uf √ (|ii|0i − |ii|1i) 2 1 = √ (Uf (|ii|0i) − Uf (|ii|1i)) 2 1 = √ (|ii|f (i)i − |ii|1 ⊕ f (i)i) . . como é o caso no algoritmo de Grover.28 3. no primeiro registrador. para simplificar os cálculos..

ao aplicarmos o operador Uf .4 Demonstre que |ui pode ser representado por: √ 1 N |ui = √ |ψi − √ |i0 i. temos: N −1 X 1 |ii. calculemos os ângulos entre |ψi e |i0 i e entre |ui e |i0 i. podemos obter uma interpretação geométrica do efeito do operador Uf sobre o primeiro registrador: a aplicação de Uf sobre um vetor unitário qualquer gerado pelos elementos da base computacional {|0i.12). finalmente.i6=i (3. (3. N −1 N −1 (3. o ângulo é quase π/2 rad) e o ângulo entre |ui e |i0 i é exatamente π/2 rad. |ψ1 i = √ N i=0 (3.17) e a expressão dada em (3. Considerando o vetor unitário na direção dessa projeção. após uma medida.13) Olhando com mais cuidado o resultado da aplicação de Uf sobre o estado |vi|−i.. denotado por |ui.17) 0 Ou seja.14) 0 Exercício 3.29 3.. isto é. |1i. o estado do segundo registrador não for o estado |−i. . temos: e N −1 1 1 1 X hi|i0 i = √ hi0 |i0 i = √ hψ|i0 i = √ N i=0 N N hu|i0 i = √ N −1 X 1 hi|i0 i = 0. podemos considerar essa reflexão como uma reflexão em relação à projeção de |vi sobre o subespaço ortogonal a |i0 i. . Com o elemento a ser buscado já identificado quanticamente. podemos. N − 1 i=0. o próximo passo será aumentar a probabilidade de esse elemento ser obtido.3 Verifique o que acontece se. O novo estado do primeiro registrador será denotado por |ψ1 i. Voltemos ao algoritmo. |N − 1i} resulta numa reflexão desse vetor em relação ao subespaço ortogonal a |i0 i.16) (3. gerado por todos os outros elementos da base computacional.2.i6=i (3. Para “visualizar” esse resultado. em (3.15) Para completar a visualização. dada na Figura 3. OPERADORES DO ALGORITMO Exercício 3. obter uma representação geométrica para a ação do operador Uf sobre o estado |ψi. o ângulo entre |ψi e |i0 i é menor do que π/2 rad (se N é grande.3. Usando o produto interno. Usando os resultados (3. |ui = √ N − 1 i=0.15).16). N −1 1 X (−1)f (i) |ii..

4).3: Ação de Uf sobre o estado |ψi. então. para aumentar a amplitude do elemento procurado |i0 i. OPERADORES DO ALGORITMO |i0i |ψi |ui |ψ1i = Uf |ψi Figura 3. Uma observação importante: como todas as amplitudes dos estados envolvidos no algoritmo de Grover são números reais. poderíamos. em relação à sua amplitude no estado |ψi (Figura 3. Induzidos por essa representação. refletir o vetor |ψ1 i em relação ao vetor |ψi. o produto interno sempre resultará em .2.30 3. |i0i |ψi |ψ1i = Uf |ψi Figura 3.4: Reflexão de |ψ1 i em relação a |ψi.

(3. O estado resultante do primeiro registrador. pode ser reescrito como 2 |ψ1 i = |ψi − √ |i0 i. vemos que o vetor resultante da reflexão de |ψ1 i em relação a |ψi pode ser descrito como (2hψ|ψ1 i) |ψi − |ψ1 i.20) (3. após a aplicação do operador Uf .18) −|ψ1 i hψ|ψ1 i|ψi |ψ1 i Figura 3. OPERADORES DO ALGORITMO um número real. teremos em mente esse fato. podemos reescrever a expressão acima. A partir de agora.21) .5).31 3. em (3. A projeção de |ψ1 i sobre |ψi é dada por hψ|ψ1 i|ψi. obtendo: (2hψ|ψ1 i) |ψi − |ψ1 i = (2|ψihψ|) |ψ1 i − |ψ1 i = (2|ψihψ| − I) |ψ1 i. o operador que procuramos é 2|ψihψ| − I. Usando a propriedade (1. Isso possibilita a comparação entre ângulos de dois pares de estados quaisquer.2.13). O que desejamos é obter um novo operador que produza essa reflexão.19) onde I é o operador identidade.5: Reflexão de |ψ1 i em relação a |ψi. Motivados pelo losango abaixo (Figura 3. N onde N −1 1 X |ii |ψi = √ N i=0 (3. Ou seja. 2hψ|ψ1 i|ψi − |ψ1 i (3.14).

De (3. Denotando por |ψG i (Figura 3. é 25%. N N (3. obtemos a amplitude do estado |i0 i. N N (3.. e usando (3.6). . Já a probabilidade de se obter o elemento procurado. . |ψi |0i H . obtemos: |ψG i = (2|ψihψ| − I) |ψ1 i   2 = (2|ψihψ| − I) |ψi − √ |i0 i N   2 4 = (2hψ|ψi) |ψi − √ hψ|i0 i |ψi − |ψi + √ |i0 i. Exercício 3. o estado do primeiro registrador após a aplicação dos operadores Uf e 2|ψihψ| − I (o estado do segundo registrador permanece inalterado).22) Substituindo (3. A composição desses dois operadores é chamada de operador de Grover G. |0i H |1i H . |−i Figura 3. |ψG i 2|ψihψ| − I . para N = 4..23) Esse é. .23).. então.6). o estado resultante da aplicação do operador 2|ψihψ| − I sobre |ψ1 i. isto é.21).2. .20). (3. temos: |ψG i = 2 N −4 |ψi + √ |i0 i. a probabilidade de se obter o elemento procurado. O segundo operador identidade aparece.32 3. é 100%. em (3.16) em (3. em (3. .. OPERADORES DO ALGORITMO e i0 é o elemento procurado..6: Uma aplicação do operador de Grover (G). N N N N N Por exemplo. após a primeira aplicação do operador G:      N −4 1 2 3N − 4 √ √ +√ = . porque o operador 2|ψihψ| − I é aplicado apenas no primeiro registrador (Figura 3. após uma medida do estado |ψG i.5 Demonstre que G é um operador unitário. . |−i |ψ1 i Uf . após uma medida do estado |ψi. No .23).24) G = ((2|ψihψ| − I) ⊗ I) Uf .22).

para todo k ∈ N. 3. no subespaço gerado pelos vetores |ψi e |i0 i. CUSTO COMPUTACIONAL DO ALGORITMO entanto. o que podemos garantir é que. onde θ é o ângulo entre |ψi e G|ψi (Figura 3. a amplitude do estado |i0 i é aumentada. na Proposição 4. essa probabilidade ainda é pequena. o estado resultante do primeiro registrador. E se aplicarmos novamente o operador G sobre o estado |ψG i|−i? A interpretação geométrica dos operadores Uf e 2|ψihψ| − I nos induz justamente a isso (Figuras 3. para todo k ∈ N. |i0 i G3 |ψi G2 |ψi θ G|ψi θ θ |ψi Figura 3. A Proposição 2 estabelece que o ângulo entre Gk |ψi e Gk+1 |ψi também é θ. . demonstramos que G rotaciona |ψi em direção a |i0 i. A Proposição 1 diz que Gk |ψi pertence ao subespaço gerado por |ψi e |i0 i. temos que calcular quantas aplicações de G serão necessárias. provamos que o sentido da rotação produzida quando G é aplicado sobre Gk |ψi. após cada aplicação do operador G. em relação à sua amplitude no estado |ψi.33 3. vai se aproximando do estado |i0 i. com uma aplicação do operador G. Até agora. de kθ rad. para todo k ∈ N. pois ele é constante durante todo o processo.7). Proposição 1 Gn |ψi ∈ Ω. O estado do segundo registrador (|−i) será omitido.3. Finalmente. Inicialmente.3 Custo Computacional do Algoritmo Como demonstraremos nesta seção. dividiremos a demostração em 4 proposições. para determinar o custo computacional do algoritmo de Grover. Então.3 e 3. Na Proposição 3. é o mesmo obtido quando G é aplicado sobre |ψi. para todo n ∈ N. para valores grandes de N .7: Efeito da aplicação do operador G. O subespaço gerado por |ψi e |i0 i será denotado por Ω e o estado do primeiro registrador de Gk |ψi será denotado por |ψGk i.4). Para facilitar a leitura. demonstraremos que a aplicação de Gk (k ∈ N) produz um rotação de |ψi em direção a |i0 i.

3.3. CUSTO COMPUTACIONAL DO ALGORITMO

34

Prova. A demonstração é por indução. De (3.23), sabemos que
G|ψi =

2
N −4
|ψi + √ |i0 i.
N
N

(3.25)

Com isso, temos o resultado para n = 1. Suponhamos que, para um dado k ∈ N,
Gk |ψi ∈ Ω.
Isto é, existem α, β ∈ R tais que
Gk |ψi = α|ψi + β|i0 i.

(3.26)

Temos que provar que
Gk+1 |ψi ∈ Ω.

Aplicando o operador G nos dois lados de (3.26), obtemos:
Gk+1 |ψi = αG|ψi + βG|i0 i.

(3.27)

Já sabemos que G|ψi ∈ Ω. Calculemos G|i0 i. Da definição de G, em (3.24), temos:
G|i0 i = (2|ψihψ| − I) Uf |i0 i.

(3.28)

Uf |i0 i = −|i0 i.

(3.29)

De (3.11),
Substituindo (3.29) em (3.28) e usando (3.16), obtemos:
G|i0 i

= (2|ψihψ| − I) (−|i0 i)
= −2hψ|i0 i|ψi + |i0 i
2
= − √ |ψi + |i0 i.
N

(3.30)

Ou seja, G|i0 i ∈ Ω. Como os estados G|ψi e G|i0 i pertencem a Ω, de (3.27),
concluímos que
Gk+1 |ψi ∈ Ω,
que finaliza a indução.

Proposição 2 O ângulo entre Gk |ψi e Gk+1 |ψi é θ rad, para todo k ∈ N.
Prova. Usando a definição de ângulo entre dois vetores, dada no Capítulo 1, p. 13,
o enunciado deste lema torna-se equivalente a
hψGk |ψGk+1 i = cos θ, ∀k ∈ N.
Reescrevendo, temos
hψGk |ψGk+1 i

= hψGk |Gk |ψG i
= h(Gk )† ψGk |ψG i.

35

3.3. CUSTO COMPUTACIONAL DO ALGORITMO

Usando o fato de que
(Gk )† |ψGk i = (Gk )† Gk |ψi = |ψi,
obtemos, para todo k ∈ N,
hψGk |ψGk+1 i = hψ|ψG i
=

cos θ,

como queríamos demonstrar.
Proposição 3 O operador G rotaciona |ψi em direção a |i0 i.
Prova. Inicialmente, calculemos o ângulo θ entre os vetores |ψi e G|ψi. De (3.16)
e (3.23), temos:
cos θ

= hψ|ψG i
N −4
2
=
hψ|ψi + √ hψ|i0 i
N
N  

1
2
N −4

+√
=
N
N
N
N −2
=
.
N

(3.31)

Calculemos, agora, o ângulo entre G|ψi e |i0 i. De (3.16) e (3.25), temos:
hψG |i0 i

=
=
=

2
N −4
hψ|i0 i + √ hi0 |i0 i
N
N
N −4
2
√ +√
N N
N
3N − 4
√ .
N N

Para uma lista com 2 elementos (N = 2), o algoritmo de Grover “não funciona” (dê
uma justificativa para isso). Vamos supor, então, que N > 2. Neste caso,
3N − 4
1

>√ ,
N N
N
ou melhor,
hψG |i0 i > hψ|i0 i.

Como a função arccos é decrescente no intervalo [−1, 1], a desigualdade acima é
equivalente a
arccos(hψG |i0 i) < arccos(hψ|i0 i).

Da Proposição 1, |ψG i ∈ Ω e, de (3.31), sabemos que a rotação produzida por G é, no
máximo, de π/2 rad. Portanto, usando a desigualdade acima, a única possibilidade
é que a rotação de |ψi seja em direção a |i0 i.

3.3. CUSTO COMPUTACIONAL DO ALGORITMO

36

Proposição 4 A aplicação de G sobre |ψGn i, para todo n ∈ N, mantém o mesmo
sentido de rotação quando G é aplicado sobre |ψi.
Prova. Pelas Proposições 1, 2 e 3, já sabemos que, quando aplicamos o operador
G sobre o estado |ψGn i, temos apenas duas possibilidades: G (Gn |ψi) é um estado
resultante de uma rotação de θ rad, em Ω, no sentido horário ou anti-horário. Se
demonstrarmos que, para todo n ∈ N,
G (Gn |ψi) 6= Gn−1 |ψi,
poderemos concluir que a rotação mantém o mesmo sentido quando G é aplicado
sobre |ψi. A demonstração será, portanto, por indução. Inicialmente, mostremos
que 

G G1 |ψi 6= G0 |ψi,
ou seja,

G|ψG i =
6 |ψi.

Usando (3.25) e (3.30), podemos calcular G|ψG i:  

N −4
2
G|ψG i = G
|ψi + √ |i0 i
N
N
2
N −4
=
G|ψi + √ G|i0 i
N
N    

2
2
2
N −4 N −4
− √ |ψi + |i0 i
|ψi + √ |i0 i + √
=
N
N
N
N
N  

2
N −4
4
2N − 8
2
=
|ψi + √ |i0 i − |ψi + √ |i0 i
N
N
N N
N
!  

2
N −4
4
4N − 8
=

|ψi + √ |i0 i.
N
N
N N
Para N > 2, este estado é diferente de |ψi. Suponhamos agora que, para um dado
k ∈ N, 

G Gk |ψi 6= Gk−1 |ψi.

Como G é um operador unitário, podemos aplicá-lo nos dois lados da expressão
acima e ainda obter estados distintos, isto é, 

G Gk+1 |ψi 6= Gk |ψi.
Isso conclui a indução (dê um exemplo mostrando que a conclusão da indução só é
possível, porque G é um operador unitário).

Conclusão: a aplicação de Gk sobre |ψi produz uma rotação de kθ rad em direção
a |i0 i, no subespaço gerado por |ψi e |i0 i, para todo k ∈ N.
Consideremos, então, o “custo” do algoritmo de Grover. De forma mais precisa,
devemos calcular o número de vezes k que o operador G deve ser aplicado para

16) e (3. De (3. podemos representar matematicamente o problema acima através da seguinte equação: (3. temos: arccos k= arccos   √1 N . Calculando o limite. obtemos:     1 N −2 = 0.37 3.31). já sabemos que o ângulo θ entre |ψi e G|ψi é   N −2 θ = arccos .8: Aplicações sucessivas do operador G. Dito de outra forma. arccos √ − k arccos N N Isolando k.32) arccos(hψ|i0 i) − kθ = 0. Admitindo que k seja um número real. inicialmente. N −2 N (3.8). |i0 i Gk |ψi Gk−1 |ψi θ G2 |ψi G|ψi θ θ |ψi Figura 3.33) Substituindo (3. queremos saber que valor de k faz com que o ângulo entre |i0 i e Gk |ψi seja o mais próximo de zero (Figura 3. “comparemos” k com N .3. CUSTO COMPUTACIONAL DO ALGORITMO que o estado Gk |ψi torne-se o mais próximo do estado |i0 i.34) Para sabermos a ordem de grandeza de k. temos: k = 0.33) em (3. N (3.32). N →∞ N lim .

67. para valores grandes de N . Calculemos. 3 q-bits. obtemos: π k lim √ = . devemos aplicar 2 vezes o operador G (Figura 3.9). o seguinte: k lim = ∞. N →∞ log2 (N ) Neste caso. daremos um exemplo usando uma lista com 8 elementos. arccos 8−2 8 Para que o estado resultante da última aplicação de G esteja o mais próximo de |i0 i. Na próxima seção. no máximo. então. k é “maior” do que log2 (N ). o número de vezes √ que o operador G deve ser aplicado é. |ψi |0i H |0i H |0i H |1i H |ψG i |ψ1 i 2|ψihψ| − I Uf |ψG2 i |ψ2 i Uf 1 2|ψihψ| − I 0 1 |−i |−i G |−i G Figura 3. A idéia é arredondar o valor de k para o inteiro mais próximo. obtemos:   arccos √18 ∼ k= = 1.6 Calcule os três limites acima. k é “menor” do que N .4 Exemplo: N=8 Apliquemos o algoritmo de Grover em uma lista com N = 8 elementos.34). 4 N N →∞ Isso significa que.9: Duas aplicações do operador G. Tentando um valor “intermediário”. A primeira pergunta é: quantas aplicações do operador G devem ser utilizadas? Usando (3. |−i .4. portanto. para valores grandes de N . N vezes. Esse é o resultado que tínhamos enunciado no início do capítulo. para N = 8 e i0 = 101. para valores suficientemente grandes de N . Exercício 3. 3.38 3. EXEMPLO: N=8 Ou seja. O primeiro registrador terá.

= 2 8 2 8 . |ψi = H|0i ⊗ H|0i ⊗ H|0i       1 1 1 √ (|0i + |1i) ⊗ √ (|0i + |1i) ⊗ √ (|0i + |1i) = 2 2 2 1 = √ (|000i + |001i + |010i + |011i + |100i + |101i + |110i + |111i) . = 8 Em seguida.39 3. = 2 8 2 8 Se medirmos este estado. o próximo passo é aplicar o operador Uf sobre o estado |ψi|−i. 8 Em notação decimal. Isso é obtido aplicando o operador H (2. O elemento procurado é. 8 Supondo que o elemento procurado seja |i0 i = |101i = |5i. Aplicando o operador Uf sobre o estado |ψG i|−i. o algoritmo cria uma superposição |ψi formada por todos os elementos da base computacional associada ao problema. a probabilidade de se obter o elemento procurado é 2  5 ∼ √ = 78. temos: 1 |ψi = √ (|0i + |1i + |2i + |3i + |4i + |5i + |6i + |7i) .4.2) sobre cada q-bit do estado inicial (|000i) do primeiro registrador. o único que tem sua amplitude alterada: |ψ1 i|−i = Uf (|ψi|−i)   |0i + |1i + |2i + |3i + |4i − |5i + |6i + |7i √ |−i. o operador 2|ψihψ| − I é aplicado sobre o estado |ψ1 i. já sabemos que devemos aplicar 2 vezes o operador G. obtemos: |ψ2 i|−i = Uf (|ψG i|−i)   1 5 √ (|0i + |1i + |2i + |3i + |4i + |6i + |7i) − √ |5i |−i. 12%. então. EXEMPLO: N=8 Antes da aplicação de G. isto é. 2 8 Entretanto. produzindo o estado |ψG i: |ψG i = (2|ψihψ| − I) |ψ1 i = (2hψ|ψ1 i) |ψi − |ψ1 i 3 |ψi − |ψ1 i = 2 1 5 √ (|0i + |1i + |2i + |3i + |4i + |6i + |7i) + √ |5i.

iremos decompor o operador G em termos de portas de 1 q-bit e portas CNOT. representamos geometricamente os passos do algoritmo resultantes de duas aplicações do operador G. 3. o elemento procurado é o único que tem sua amplitude alterada.5 Circuitos Quânticos para o Operador G Nesta seção. = 4 8 4 8 |ψG2 i |i0 i |ψG i θ |ψi θ |ui |ψ1 i |ψ2 i Figura 3.5.7 Usando a Figura 3. Aplicando o operador 2|ψihψ| − I sobre |ψ2 i. obtemos o elemento procurado com probabilidade de  2 11 ∼ √ = 94. . para N = 8 e i0 = 101. Exercício 3. temos: |ψG2 i = = (2|ψihψ| − I) |ψ2 i (2hψ|ψ2 i) |ψi − |ψ2 i 1 = |ψi − |ψ2 i 4   −1 11 √ (|0i + |1i + |2i + |3i + |4i + |6i + |7i) + √ |5i . Fazendo uma medida do estado |ψG2 i. 53%.10. CIRCUITOS QUÂNTICOS PARA O OPERADOR G Novamente. dê uma explicação para os sinais das amplitudes da superposição dada em |ψG2 i. 4 8 Na Figura 3.10.40 3.10: Duas aplicações do operador G. Essa decomposição mostrará como poderia ser uma implementação prática do operador G.

Exercício 3. Nesse sentido.4 (n = 3 e i0 = 101).35) Observe que H ⊗n é uma matriz simétrica com apenas entradas reais.8 Demonstre que o produto tensorial de matrizes simétricas é uma matriz simétrica.5. De forma similar. 3. 2|ψihψ| − I = 2H ⊗n (|0ih0|)(H ⊗n )† − I = H ⊗n (2|0ih0|)(H ⊗n )† − H ⊗n (H ⊗n )† = H ⊗n (2|0ih0| − I)(H ⊗n )† = H ⊗n (2|0ih0| − I)H ⊗n . Se o elemento procurado fosse 111. o circuito quântico para o operador Uf .11: Circuito quântico para o operador Uf (n = 3 e i0 = 101). então.2 Circuito quântico para o operador 2|ψihψ| − I Consideremos. Por exemplo. 3 pares de portas X seriam usadas.5. 1 q-bit alvo no estado |−i e 2 portas X atuando no i-ésimo q-bit de controle. a decomposição do operador 2|ψihψ| − I. usado no exemplo dado na Seção 3. (H ⊗n )† = H ⊗n .5. agora. CIRCUITOS QUÂNTICOS PARA O OPERADOR G 3. o operador Uf também pode ser imaginado como um oráculo. Portanto. Caso fosse 000. (3. pois deve ser “preparado” para a identificação do estado |i0 i. sempre que o i-ésimo dígito binário de i0 for 0.11. um par em cada q-bit de controle. . Usando |ψi = H ⊗n |0i e hψ| = h0|(H ⊗n )† . nenhuma porta X seria usada. X X |−i |−i Figura 3. temos. tem a forma apresentada na Figura 3.1 Circuito quântico para o operador Uf Recordemos que a função f (3. ele é um operador diferente do operador 2|ψihψ| − I.1) age como um oráculo para identificar o elemento procurado i0 .41 3. O operador Uf pode ser representado por uma porta Toffoli generalizada com n q-bits de controle.

No capítulo seguinte.. basta considerarmos o operador 2|0ih0| − I. .5.12. |ψ1 i |1i |1i ..1: Ação do operador 2|0ih0| − I no estado |0i da base computacional. .. Na Tabela 3.. para qualquer entrada |ji. . |ψ4 i (-i · i )|1i |1i . . . Um ponto importante que ainda não foi discutido é o custo computacional associado a cada operador que compõe G.12 em outros estados da base computacional para perceber que. |ψ2 i i |1i |1i . Pode-se demonstrar que esse custo é proporcional a log 2 N (ver [16])..12.35) mostra que. com 0 < j < N . . . Esse operador faz uma reflexão em relação ao estado |0i. Exercício 3. ..42 3. . |ψ3 i i |1i |1i . .12: Circuito quântico para o operador 2|0ih0| − I. trataremos em detalhes essa questão. é a porta Toffoli generalizada (Figura 2. . . . CIRCUITOS QUÂNTICOS PARA O OPERADOR G A equação (3. . . representamos a ação desse operador sobre o estado |0i. n q-bits                                    X −iI iI X X . Observe que a única porta que atua nos n q-bits ao mesmo tempo.. . a saída será sempre -|ji. ..5)..... O circuito para esse operador é dado na Figura 3.1.. X . X X H X |ψ0 i .. .9 Teste a ação do circuito da Figura 3. para obtermos o circuito quântico do operador 2|ψihψ| − I. |ψ5 i |0i |0i . |ψ1 i X H |ψ2 i |ψ3 i |ψ4 i |ψ5 i Figura 3.. |ψ0 i |0i |0i . considerando o algoritmo de Shor. |0i |0i |1i |1i |1i |−i |1i -|−i |1i |1i |0i |0i Tabela 3. . na Figura 3.

podemos definir y como sendo xr/2 ≡ y mod N. onde ⌈log2 N ⌉ é o menor inteiro maior ou igual a log2 N . Se x e N possuem fatores comuns.Capítulo 4 Algoritmo de Shor 4. Embora N seja grande. Mais precisamente a questão é: existe um algoritmo de fatoração na classe de complexidade P [17]? A redução da fatoração de N ao problema de achar a ordem de um inteiro x menor que N pode ser descrita da seguinte forma. vemos que o número de fatores primos de N é no máximo n. (y−1)(y+1) ≡ . o número de q-bits necessário para guardá-lo é pequeno: log2 N . A notação acima significa que y é o resto da divisão de xr/2 por N e. por exemplo com 300 dígitos na notação decimal. N ) fornece um fator de N . ou equivalentemente. 0 ≤ y < N . então é natural perguntar se existe um algoritmo que fatora N em um número de passos que é polinomial em n. Se r for par. já que tais números são usados em criptografia. pela definição. Note que y satisfaz y 2 ≡ 1 mod N . é o menor inteiro positivo r. log2 N não é um inteiro. Começaremos mostrando como a fatoração pode ser reduzida ao cálculo da ordem de um número x menor que N . portanto. escolhido aleatoriamente. Em geral.1 Redução da Fatoração ao Cálculo da Ordem Nesse capítulo vamos descrever o algoritmo de Shor [21] que acha os fatores primos de um número composto N . então definimos n = ⌈log2 N ⌉. módulo N . então o MDC(x. Um computador quântico com n q-bits pode guardar N ou qualquer outro inteiro positivo menor que N na memória. é suficiente investigar o caso quando x é coprimo com N . Se o número de q-bits e o número de fatores primos são menores ou iguais a n. tal que xr ≡ 1 mod N. Imagine que N é um número grande. A ordem de x. Facilmente.

À primeira vista. se N for uma potência de algum primo. N ) produzem fatores de N . um algoritmo clássico eficiente é conhecido. no lugar do número 2. como você pode determinar os fatores de 15? Tente com outros inteiros menores do que 15. Neste último caso. determine todos os inteiros menores do que N que têm ordem par. N ). Portanto. É complicado provar que a probabilidade de achar x coprimo com N satisfazendo as condições (1) e (2) é alta. recomeçamos até achar um candidato x apropriado. já que não são conhecidos algoritmos clássicos eficientes para calcular a ordem de um inteiro x módulo N . A única alternativa é que ambos y − 1 e y + 1 tenham fatores de N .4. Por outro lado.1. N ) e MDC(y + 1. O método sistematicamente falha. existe (depois do trabalho de Shor) um algoritmo quântico eficiente. Vamos descrevê-lo a seguir. Se N for par. a probabilidade é maior ou igual a 1/2 (veja a prova no Apêndice B de [10]). N ) e MDC(y + 1.1 Calcule a ordem de 2 módulo 15. então o MDC(y − 1. Então. mas felizmente este não é o caso. e (2) 0 < y − 1 < y + 1 < N .2 Com N = 21. os fatores y − 1 e y + 1 satisfazem 0 < y − 1 < y + 1 < N . se escolhermos aleatoriamente um inteiro positivo x menor que N e calcularmos o MDC(x. ou ficaremos sabendo que x é coprimo com N . onde k é o número de fatores primos de N . Considere N = 21 como exemplo. eles podem ser calculados aplicando o algoritmo recursivamente. y ≡ 23 ≡ 8 mod 21. N não pode dividir y − 1 nem y + 1 separadamente. de fato. ou teremos um fator de N . portanto. Restanos aplicar o método para os inteiros compostos ímpares que não são potências de algum número primo. módulo 21. Exercício 4. De y − 1 resulta o fator 7 e de y + 1 resulta o fator 3 de 21. essa probabilidade é 1 − 1/2k−1 . Resumindo. Se uma das condições não é verdadeira. No pior dos casos (N tem 2 fatores). O método não seria útil se estas suposições fossem restritivas demais. A partir do resultado. parece que acabamos de descrever um algoritmo eficiente para achar um fator de N . Calcule a probabilidade do método descrito nesta seção fornecer o resultado correto. . Isto não é verdade. MDC(y − 1. Se N tiver mais fatores. Se 1 < y < N − 1. REDUÇÃO DA FATORAÇÃO AO CÁLCULO DA ORDEM 44 0 mod N . A seqüência de equivalências 24 5 2 26 ≡ 16 mod 21 ≡ 11 mod 21 ≡ 11 × 2 ≡ 1 mod 21 mostra que a ordem de 2. Exercício 4. mas nesse caso. N ) produzem fatores não triviais de N . é r = 6. se x satisfizer as condições (1) a ordem r é par. podemos continuar dividindo por 2 até o resultado passar a ser ímpar. o que significa que N divide (y − 1)(y + 1).

4.1 que calcula a ordem r de um inteiro positivo x menor que N .2. Vx é um operador linear unitário dado por . ALGORITMO QUÂNTICO PARA O CÁLCULO DE ORDEM 4. coprimo com N .2 45 Algoritmo Quântico para o Cálculo de Ordem Considere o circuito da Figura 4.

1) Vx (|ji |ki) = |ji . (4.

.4. 0i |0 . Nesta seção. então é suficiente tomar t = n. respectivamente.k + xj . onde t deve ser escolhido de forma que N 2 ≤ 2t ≤ 2N 2 . vamos considerar este caso especial e deixar o caso geral para a Seção 4.2) O primeiro registrador está em uma superposição de todos os estados da base computacional com igual amplitude dada por √12t . em cada q-bit do primeiro registrador. resulta em t 2 −1 1 X |ji |0i . Se a ordem é uma potência de 2. onde |ji e |ki são os estados do primeiro e segundo registrador. O estado inicial é |ψ0 i = |0 . 0i . Continuaremos usando a variável t para generalizarmos nossa discussão mais adiante. assim 0 ≤ k + xj < N . . O primeiro registrador possui t q-bits. Os estados do computador quântico estão indicados por |ψ0 i até |ψ5 i na Figura 4. . As operações aritméticas são feitas módulo N . O operador DFT (Discrete Fourier Transform) será descrito mais adiante. | {z } | {z } t n A aplicação do operador Hadamard 1 H=√ 2  1 1 1 −1  . Agora. .1. note o que acontece quando aplicamos Vx em |ψ1 i: |ψ2 i = Vx |ψ1 i t = 2 −1 1 X √ Vx (|ji |0i) 2t j=0 t = 2 −1 . por razões que ficarão claras mais adiante [20]. |ψ1 i = √ 2t j=0 (4.

1 X √ |ji .

já que Vx é linear. isto gera todas as potências de x simultaneamente. pois. as quais correspondem aos estados . Logo. ele atua simultaneamente em todos os termos |ji |0i para 2t valores de j. Algumas dessas potências são 1.xj . 2t j=0 (4.3) O estado |ψ2 i é interessante. Esta característica é chamada paralelismo quântico.

 t   .

2 .

|0i |1i . . |ri |1i . |2ri |1i . · · · .

(4. − 1 r |1i .4) r .

poderíamos calcular sucessivamente xj . Mas esta informação não está totalmente disponível no nível clássico. para j começando de 2 até chegarmos a j = r. Como xj é uma função periódica com período r. vamos reescrever o estado |ψ2 i. No nível quântico. fatorando os termos iguais do segundo registrador.1: Circuito quântico para achar a ordem de um inteiro positivo x módulo N . Quanticamente. não ajudaria se medíssemos o primeiro registrador.4) é periódico. Antes de fazer isto. portanto r divide 2t . Então. onde 0 ≤ a ≤ (2t /r) − 1 e 0 ≤ b ≤ r − 1.46 4. vamos substituir j por ar + b na equação (4.3).1) para Vx . A primeira parte da estratégia para determinar r é observar que o primeiro registrador dos estados (4. A equação (4. vamos medir o segundo registrador. pode-se calcular todas as potências de x com uma única aplicação de Vx . Para facilitar os cálculos. neste ponto. ALGORITMO QUÂNTICO PARA O CÁLCULO DE ORDEM { |0i { |0i H registrador (t q-bits) DFT† H 1◦ |0i Vx 2◦ registrador (n q-bits) |0i |ψ0 i |ψ1 i |ψ2 i |ψ3 i |ψ4 i |ψ5 i Figura 4.2. já que todos os estados da superposição (4.3) possuem igual amplitude.3) é convertida em  t  2 r−1 r −1 X X 1  . Isto explica a escolha de (4. a informação que queremos é um período. todos os valores de j que produzem xj ≡ 1 mod N são “conhecidos”. Lembre-se que supomos que t = n e r é uma potência de 2. Uma informação clássica de um estado quântico é obtida através de uma medida e. Classicamente.

(4.5) |ar + bi .

. |ψ2 i = √  2t b=0 a=0 No segundo registrador. Agora. xr−1 pode ser obtido com igual probabilidade.. . o segundo registrador é medido. substituímos xb por xar+b . Qualquer resultado x0 . O estado do computador quântico é agora  t  2 r r −1 X r  . Suponha que o resultado é xb0 . já que xr ≡ 1 mod N . x1 ..xb .

|ψ3 i = (4.6) |ar + b0 i .

xb0 .  t 2 a=0 .

exceto para os estados |b0 i. Isto faz diferença para determinar r.47 4. A transformada de Fourier de uma função periódica de período r é uma nova função com período proporcional a 1/r. a constante é renormalizada para r/2t . ..4 Faça todos os cálculos desta seção. de forma explícita. ALGORITMO QUÂNTICO PARA O CÁLCULO DE ORDEM p Note que depois da medida. |r + b0 i. |2t − r + b0 i. O eixo horizontal tem 2t pontos. que não está disponível classicamente.3 Mostre que o operador descrito em (4. . Estes valores são zero. Exercício 4. Distribuição de probabilidades r { r 2t 0 b0 r + b0 2r + b0 3r + b0 Termos de |ψ3 i (1◦ registrador) Figura 4.2.5.. Como podemos descobrir o período de uma função eficientemente? A resposta é a transformada de Fourier. A Figura 4. |2r + b0 i. Na Seção 4.6). Todo o método depende de um algoritmo quântico eficiente para calcular a transformada de Fourier.2 mostra a probabilidade de obtermos os estados da base computacional. A probabilidade forma uma função periódica com período r. A transformada de Fourier é a segunda e última parte da estratégia usada por Shor. Todas as expressões devem ter os respectivos somatórios expandidos. Exercício 4.1) é unitário. já que existem 2t /r termos na soma (4. medindo o primeiro registrador. o número de picos é 2t /r e o período é r. no caso N = 15 e x = 2.. mostraremos que a transformada de Fourier é calculada eficientemente num computador quântico.2: Distribuição de probabilidades de |ψ3 i medido na base computacional (para o caso b0 = 3 and r = 8).

4. . . É fácil verificar que (4. i. A transformada de Fourier é um operador linear unitário.8).8). portanto. (4. N − 1} → C definida por N −1 1 X 2πijk/N F˜ (k) = √ e F (j).7) ou (4. .9) é verdadeira. A Figura 4. . Note que DFT−1 = DFT† . |N − 1i} é N −1 1 X 2πijk/N √ DFT(|ki) = |ψk i = e |ji . . continuaremos o processo de cálculo da Figura 4.3 48 A Transformada de Fourier Quântica Discreta A transformada de Fourier de uma função F : {0.5. . porém com um sinal de menos no expoente. . .7) Podemos aplicar a transformada de Fourier ou em uma função ou em um estado da base computacional. . que é similar a (4. . N j=0 (4. se k é um múltiplo de N e = 0. N j=0 (4. podemos usar a identidade  N −1 1 X 2πijk/N 1. 6) para o caso k = 1 e N = 7 como vetores num plano complexo. diz-se que a interferência é destrutiva neste caso.3.. . . . Note que a soma dos vetores deve ser zero pelo argumento de simetria: a distribuição dos vetores é isotrópica. Se k não é um múltiplo de N . . A TRANSFORMADA DE FOURIER QUÂNTICA DISCRETA 4. podemos definir a transformada de Fourier inversa. se sabemos como ele atua nos estados da base computacional. Apresentaremos os detalhes de um circuito quântico para realizar a transformada de Fourier na Seção 4.3 mostra cada termo e2πijk/N (j = 0. . também sabemos como ele atua num estado genérico N −1 X F (a) |ai . N − 1} é uma base ortonormal. No resto do trabalho.. N − 1} → C é uma nova função F˜ : {0.9) é verdade. mesmo se N não for uma potência de 2. . N j=0 (4. . . . . . justificando o primeiro caso da identidade. hψk′ |ψk i = δk′ k . vamos usar a última forma. então e2πijk/N = 1. Para provar que {|ψk i : k = 0. Agora. |ψi = a=0 A transformada de Fourier de |ψi pode ser obtida através de (4. Usualmente.e. Usando essa identidade. N − 1} forma uma nova base ortonormal.. .8) onde o conjunto {|ψk i : k = 0. já que DFT é um operador unitário. A transformada de Fourier aplicada ao estado |ki da base computacional {|0i .1. caso contrário.9) que é útil no contexto da transformada de Fourier.. Se k é um múltiplo de N .

. 6) no plano complexo. A soma desses vetores é zero por argumentos de simetria. . k = 1. Estamos prontos para achar o próximo estado do computador quântico: |ψ4 i.8) e a linearidade da DFT† . Este é um exemplo da equação (4. usando a equação (4.9) para N = 7.3. obtemos |ψ4 i = DFT† (|ψ3 i)   t r 2rt −1 2X −1 X ..3: Desenho dos vetores e2πij/7 (j = 0.49 4. Aplicando a transformada de Fourier inversa no primeiro registrador.. A TRANSFORMADA DE FOURIER QUÂNTICA DISCRETA Im j=2 j=1 j=3 2π 7 j=0 Re j=4 j=6 j=5 Figura 4.

t r  √1 e−2πij(ar+b0 )/2 |ji .

= t 2 a=0 2t j=0 Invertendo a ordem do somatório. temos     2t t 2X −1 r −1 X −2πija t 1   .xb0 .

 1 |ψ4 i = √  e 2t /r  e−2πijb0 /2 |ji .

temos . se e somente se j = k2t /r com k = 0.  t r j=0 2 /r a=0 (4. Então. vemos que a expressão nos colchetes é diferente de zero.10) Usando (4. Quando j assume tais valores. r − 1... a expressão nos colchetes é igual a 1.9). .xb0 ..

! r−1 .

b 1 X −2πi k b0 .

.

k2t .

11) e . r |ψ4 i = √ (4.x 0 .

a expressão |ψ4 i tem duas vantagens sobre a expressão |ψ3 i (equação (4. Medindo . ocupando agora um lugar “inofensivo”. A Figura 4.6)): r está no denominador do ket e o parâmetro aleatório b0 foi movido do ket para o expoente. r r k=0 Para acharmos r.4 mostra a distribuição de probabilidades de |ψ4 i medido na base computacional.

11 e 14 têm ordem 2 e os elementos 2. mas não é o próprio r. Se k0 e r têm fator comum. porque o número de iterações é menor ou igual a log2 r. Agora. 8 e 13 têm ordem 4. O eixo horizontal tem 2t pontos. 7. módulo N . dividimos k0 2t /r por 2t . para r = 1. o primeiro registrador. apenas os termos não nulos são mostrados. Os elementos 4. O processo recursivo não é longo. o denominador da fração reduzida k0 /r é um fator de r. Os autores de [23] usam um computador quântico com 7 q-bits. onde k0 pode ser qualquer número entre 0 e r −1. deve-se usar o lado esquerdo da equação acima. 2. . obtemos o valor k0 2t /r. 11. e o algoritmo tem que ser rodado novamente. Se k0 6= 0. obtendo k0 /r. 14}. o objetivo é determinar r2 .50 4. O conjunto de números menores que 15 e coprimos com 15 é {1. N − 1} é uma base ortonormal onde |ψk i é dado por (4. . simplesmente selecionamos o denominador. Exercício 4. O número de picos é r e o período é 2t /r. tome N = 15 que é o menor número composto não trivial.5 Prove a eq. . r é uma potência de 2 e os fatores de N = 15 podem ser encontrados num computador quântico com 8 q-bits. que é a ordem de xr1 . 8. Rodamos novamente a parte quântica do algoritmo para achar a ordem de xr1 . com igual probabilidade (picos na Figura 4. 4. Suponha que o denominador é r1 . 7. em qualquer caso. . Exercício 4.9) usando a série geométrica: 1 + r + r2 + · + rn−1 = rn − 1 . pulando partes do algoritmo original.6 Prove que o conjunto {|ψk i : k = 0. não teremos nenhuma informação sobre r. Nem k0 nem r são conhecidos. Se k0 é coprimo com r. Portanto.4). Se acharmos r2 na primeira rodada. 13.8). A TRANSFORMADA DE FOURIER QUÂNTICA DISCRETA Distribuição de probabilidades { 2t r 1 r 0 2t r 2×2t r 3×2t r Termos de |ψ4 i (1◦ registrador) Figura 4. Seja r = r1 r2 .4: Distribuição de probabilidades de |ψ4 i medida na base computacional. . o algoritmo pára.3. Como exemplo. caso contrário. Se obtivermos k0 = 0. o aplicamos recursivamente. r−1 Descubra quem deve ser r e note que. (4.

o que é sempre possível [20].2)) 511 1 X |ji |0i . GENERALIZAÇÃO POR MEIO DE UM EXEMPLO 51 Exercício 4. consideramos a fatoração de N = 21. tal que 1 < x < N . e testar se x é coprimo com N .4.4. Este é o exemplo mais simples permitido pelos vínculos. consideramos um caso especial quando a ordem r é uma potência de 2 e t = n (t é o número de q-bits no primeiro registrador.7 Continuando o exercício 4.4. gerando (veja equação (4. veja na Figura 4. O primeiro passo é escolher x aleatoriamente. onde o primeiro registrador tem t = 9 q-bits e o segundo tem n = 5 q-bits. Se não for. Devemos escolher t tal que 2t esteja entre N 2 e 2N 2 .4 Generalização por meio de um Exemplo Nas seções precedentes. iniciamos a parte quântica do algoritmo. Para N = 21. que é r = 6. o menor valor de t é 9. Se for. no caso N = 15 e x = 2. 4. N ). O computador quântico é inicializado no estado |ψ0 i = |0i |0i . O próximo passo é a aplicação de H ⊗9 sobre o primeiro registrador.1. faça todos os cálculos desta seção. Todas as expressões devem ter os respectivos somatórios expandidos.1)). de forma explícita. Suponha que x = 2 foi escolhido. que é o próximo número composto não trivial depois de N = 15. obtemos |ψ2 i = = 511 1 X . aplicando Vx (definido em (4. O objetivo é encontrar a ordem de x. e n = ⌈log2 N ⌉). |ψ1 i = √ 512 j=0 Em seguida. mas é suficiente para mostrar todas as propriedades do algoritmo de Shor. Nesta seção. encontramos facilmente um fator de N pelo cálculo do MDC(x.

.

podemos rearranjar os termos de forma a . Portanto. . . j |ji 2 mod N 512 j=0  1 √ |0i |1i + |1i |2i + |2i |4i + |3i |8i + |4i |16i + |5i |11i + 512 |6i |1i + |7i |2i + |8i |4i + |9i |8i + |10i |16i + |11i |11i +  |12i |1i + . √ Note que a expressão acima tem o seguinte padrão: o estado do segundo registrador de cada “coluna” é o mesmo. .

GENERALIZAÇÃO POR MEIO DE UM EXEMPLO fatorar o segundo registrador:   1 √ |0i + |6i + |12i + .4. 16. . e a transformada de Fourier pode revelar o valor deste período. . 186). Esses termos nunca se anulam.12) Esta característica foi explicitada na equação (4.4.5). . 4. este passo não é necessário. 85. . . Então. Como a ordem não é uma potência de 2. Para nos convencermos. Não importa o resultado da medida.13) Observe que o estado |ψ3 i foi renormalizado para ser unitário. 86 (4. A última equação é similar à equação (4. Agora é feita uma medida no primeiro registrador1 . 11}. Suponha que o resultado da medida seja 2. . 52 (4. O período do estado do primeiro registrador é a solução para o problema. + |504i + |510i |1i + |ψ2 i = 512  |1i + |7i + |13i + . . que são obtidos de 512k0 /6 para k0 de 0 até 5 (compare com a discussão logo após a equação (4. o próximo passo é aplicar a transformada de Fourier inversa no primeiro registrador de |ψ3 i: |ψ4 i = DFT† (|ψ3 i) ! 85 1 X = DFT √ |6a + 1i |2i 86 a=0 " # ! 511 85 1 X 1 X −2πi 6ja −2πi j 512 512 |ji √ = √ e e |2i . + |507i |8i +  |4i + |10i + |16i + .9) para simplificar os termos nos colchetes da equação (4. + |506i |4i +  |3i + |9i + |15i + . Então. 8. Isto não é verdade nesse caso (6 não divide 512).13).14) onde usamos a equação (4.2. + |508i |16i +   |5i + |11i + |17i + . 256. mas com uma importante diferença. o que importa é o padrão periódico de (4. não podemos usar a identidade (4. gerando um dos seguintes números com igual probabilidade: {1. serve apenas para simplificar as expressões seguintes. façamos o 1 Como a medida sempre pode ser feita no final do algoritmo (veja [16]. . 427. . enquanto o restante delas tem 85. . . Na Seção 4. mas a contribuição principal é ainda em torno de j = 0.12) têm 86 termos.8) e rearranjamos as somas.11)). assumimos que r divide 2t . 2. aqui existe uma pequena diferença: as primeiras duas linhas da equação (4. p.10). 341.14). portanto. + |509i |11i . 512 j=0 86 a=0 † (4. . 171. . + |505i + |511i) |2i . . . + |505i + |511i |2i +  |2i + |8i + |14i + . 1 |ψ3 i = √ (|1i + |7i + |13i + .

temos que a probabilidade é .53 4. medindo o primeiro registrador do estado |ψ4 i.14). De (4. GENERALIZAÇÃO POR MEIO DE UM EXEMPLO gráfico da probabilidade de dar o resultado j (no intervalo de 0 até 511).4.

85 .

2 .

X .

1 .

.

−2πi 6ja 512 .

Prob(j) = e . .

.

512 × 86 .

.15) O gráfico da Prob(j) é mostrado na Figura 4.15) temos que Prob(0) = 86/512 ≈ 0. e um estudo meticuloso da forma do pico é feita em [9]. A probabilidade de dar j = 0 é baixa: da equação (4. . indicando alta probabilidade de dar um destes valores. resultando 85/512.. O q-ésimo convergente (0 ≤ q ≤ p) é definido como um número racional [a0 . ap são positivos. onde a0 é um inteiro não-negativo e a1 . a probabilidade é quase zero. 85. Dividimos por 512.. os convergentes de 85/512 são 1/6. e então. p. 21) fornece dois fatores não triviais de 21. . que é igual a 6 + 2/85.. Repetimos o processo com 2/85 até obtermos o numerador 1. . Este método é aplicado facilmente pela inversão da fração. seguido pela divisão inteira com resto racional. 492). . = a0 + j2 a1 + . 341. Isto é uma aproximação para j1 /j2 e tem o denominador menor que j2 . 256. Invertendo 85/512. r = 6. Um cálculo 2 A desigualdade r ≤ ϕ(N ) segue do teorema de Euler: xϕ(N ) ≡ 1 mod N .. O limite inferior de 2t ≥ N 2 assegura uma alta probabilidade em medir um valor de j carregando a informação desejada. Deve ser executado novamente. Se o resultado for j = 0 (primeiro pico). onde x é um inteiro positivo coprimo com N e ϕ é a função totiente de Euler (ϕ(N ) fornece o número de inteiros positivos menores que N . e a parte quântica do algoritmo termina com a resposta correta. O resultado é 1 85 = 1 . portanto MDC(2(6/2) ±1. a1 ..5. a1 .. Vemos os picos em torno de j = 0.a=0 (4. ou algum valor muito próximo deles. Devemos selecionar os convergentes que tenham um denominador menor que N = 21 (já que r < N )2 . aq ]. Como podemos obter r de 85/512? O método de aproximação por frações contínuas permite-nos extrair a informação desejada. A ordem r = 6 é um número par.. Checamos que 26 ≡ 1 mod 21. temos 512/85.15) é feita em [15]. 42/253 e 85/512. Uma análise cuidadosa da expressão (4. No intervalo entre eles. Agora suponha que o resultado foi j = 85 (ou qualquer valor no segundo pico). Uma fração contínua de um número racional j1 /j2 tem a forma 1 j1 . 512 6 + 42+ 1 2 Assim. 167.+1 1 ap usualmente representada por [a0 . A largura dos picos depende de t (número de q-bits no primeiro registrador). para k0 = 1. 427. coprimos com N ). que é uma aproximação racional de k0 /6.. Vamos analisar os possíveis resultados da medida. ap ]. 171.. o algoritmo não revela o valor de r.. Escolhamos x = 2 e executamos novamente a parte quântica do algoritmo. Este método fornece 1/6. A desigualdade ϕ(N ) < N segue da definição de ϕ (veja [24].

5. r = r1 r2 = 3 × 2 = 6.1 Prob(j) 0.6% de 3 50%. o algoritmo retorna r na segunda rodada ou mais (3◦ . terceiro. o algoritmo retorna r de primeira (2◦ e 6◦ picos). 167. em aproximadamente 17% dos casos. vamos calcular a probabilidade de achar r na segunda rodada.4.05 0 0 50 100 150 200 250 300 350 400 450 500 j Figura 4.6% dos casos. que corresponde a k0 = 2 da fórmula k0 /6. direto mostra que qualquer resultado no segundo pico (digamos 81 ≤ j ≤ 89) produz o convergente 1/6. Rodamos a parte quântica do algoritmo novamente. GENERALIZAÇÃO POR MEIO DE UM EXEMPLO 0. Agora. Assim. adicionando a Prob(j). As áreas embaixo do segundo. que é igual a aproximadamente 22%. Resumindo. o resultado é 2×50%+66.4. já que 23 ≡ 8 6≡ 1 mod 21. Em aproximadamente 33% dos casos. Para o 3◦ e 5◦ picos. O primeiro e o quarto picos são diferentes dos outros — eles não são espalhados. . a probabilidade de sucesso para x = 2 é em torno de 55%. Aplicamos novamente o método de aproximação por frações contínuas. Logo. neste caso. tomamos a base igual a 1. o algoritmo falha (1◦ pico). então o algoritmo retorna r2 em 50% dos casos. para achar a ordem de 8. tem 2 picos. Neste caso. para j rodando em torno do centro de cada pico. o fator restante é r2 = 2. O quarto e quinto picos também fornecem fatores de r. Compare o formato dos picos deste gráfico com o formato dos picos do gráfico da Figura 4. resultando r diretamente.5: Gráfico de Prob(j) em função de j.PSfrag 54 4. A avaliação geral da probabilidade de sucesso é a seguinte.15 0. obtemos um fator de r (r1 = 3). Para o 4◦ pico. o fator restante é r = 3 e o algoritmo retorna r2 em 66. para qualquer j no terceiro pico (digamos 167 ≤ j ≤ 175). quinto e último picos são calculadas. Então. O último pico é similar ao segundo. Em aproximadamente 50% dos casos. resultando em 1/3. Considere agora o terceiro pico. Obteremos r2 = 2. O gráfico equivalente para a Figura 4. 4◦ e 5◦ picos). Para calcular suas contribuições para a probabilidade total. A área abaixo de todos os picos é aproximadamente a mesma: ≈ 0.

16). estamos usando a base 2 para fatorar o lado direito da equação (4. . Nesta seção.5. veja a referência [17].17) DFT(|2i) = 2 2     |0i − |1i |0i − i |1i √ √ DFT(|3i) = ⊗ . notando que o lado direito da equação (4. (4. é mais conveniente mostrar esse ganho na complexidade.16) Notando que o lado direito da equação (4. |3i} pode ser escrita como     |0i + |1i |0i + |1i √ √ DFT(|0i) = ⊗ 2 2     |0i − |1i |0i + i |1i √ √ ⊗ DFT(|1i) = 2 2     |0i − |1i |0i + |1i √ √ ⊗ (4. 4. No nosso contexto.4.9 Faça todos os cálculos desta seção. Faça o gráfico da distribuição de probabilidades e avalie a chance do algoritmo de Shor encontrar o resultado correto.16) tem N termos e a base computacional tem N estados. Exercício 4. no caso N = 35 e x = 2. O primeiro passo é escrever 3 O(N 2 ) significa que o custo é proporcional a N 2 . Esta decomposição permite avaliarmos o custo computacional (complexidade) da transformada discreta de Fourier e mostra como implementá-la em um computador quântico real. é O(N 2 ) = O(22n ) 3 .17). usando a equação (4. DFT(|ji) = √ N k=0 (4. temos que o custo computacional do cálculo da transformada de Fourier clássica dos estados da base computacional. |1i. a transformada de Fourier de {|0i. 2 2 Note que no exemplo (4. A transformada de Fourier dos estados da base computacional é N −1 1 X 2πijk/N e |ki . TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS 55 Exercício 4.8 Use um sistema de computação algébrica para refazer o gráfico da eq. decompomos a transformada de Fourier em termos de portas universais: CNOT e portas de 1 q-bit. Por exemplo. Essa notação é útil no cálculo do custo computacional de algoritmos. vamos fatorar a expressão geral. assumindo que a transformada de Fourier poderia ser implementada eficientemente. Agora. mostramos que o algoritmo de Shor é um algoritmo probabilístico eficiente. |2i. Um resultado muito importante em Computação foi o desenvolvimento da transformada de Fourier rápida (FFT).15). que pode ser totalmente fatorado. que reduz o custo computacional para O(n2n ) [6].16) é um tipo muito especial de expansão.5 Transformada de Fourier em termos de Portas Universais Nas seções precedentes.16). Para maiores detalhes.

6. É fácil checar que o valor dos q-bits |jm i.5. 56 (4.. Considerando que a exponencial da soma é o produto das exponenciais. 2 2 (4. já que existem n termos no produto.19). Vamos verificar o caso mais difícil: |jl i.18) Pn onde o ket |ki foi convertido para a base 2. 2n k =0 k =0 P kl n l=1 2l n 1 |k1 i ⊗ . um de cada vez. l 2n l=1 k =0 (4. As matrizes unitárias Rk são definidas como   1 0  Rk = . que tem um número exponencial de termos. .20) l Para nos convencermos de que a última equação está correta. colocamos todos os termos da soma no começo da expressão resultante para obter (4.19) n 1 Fatorando (4. o custo da transformada de Fourier quântica é medida pelo tamanho do circuito. Expandindo a soma da equação (4...20) e. e2πij 2l |kl i . pela troca da soma pelo produto.18) transforma-se em um produto (não-comutativo) dos seguintes kets: 1 1 Y n   X kl 1 X . o produto. então. obtemos: 1 n  1 Y X  2πij kll 2 |k i √ e DFT(|ji) = . TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS (4. façamos o cálculo inverso: simplesmente expandimos o produto na equação (4. já que o cálculo é feito em cada um dos 2n elementos da base. e a transformada de Fourier do estado |ψi = n 2X −1 a=0 F (a) |ai .⊗ .4. A transformada de Fourier de 2n elementos da base é calculada simultaneamente. obtemos finalmente DFT(|ji) = = n  l 1 Y √ |0i + e2πij/2 |1i 2n l=1 ! ! j j |0i + e2πi 2 |1i |0i + e2πi 2n |1i √ √ ⊗. O(n2n ). não muda. (4. . Agora..21) para um |ji é O(n). . 0 exp 2πi 21k . DFT(|ji) = √ 2n k =0 k =0 l=1 (4. e usamos a expansão k = l=1 kl 2n−l no expoente. vamos mostrar que são necessárias O(n2 ) portas. Por outro lado. é calculada com uma única aplicação da transformada de Fourier quântica.21) O custo do cálculo da equação (4. . então. o computador quântico usa o paralelismo quântico. O custo do cálculo da transformada rápida de Fourier clássica de toda a base computacional ainda é exponencial. Considere o circuito da Figura 4.16) na forma 1 1 X 1 X DFT(|ji) = √ e2πij . Então. ⊗ |kn i .19).20) e. m 6= l.

. Rk é controlado por |jk+l−1 i. .25) . Definimos P Rn+1−l = 1 Y CRk . 2πi que muda para |ψi = |0i+e j 2n+1−l |1i √ 2 .22) CRk = 0 exp 2πi jk+l−1 2k Para simplificarmos os cálculos. obtemos   1 1 0  √ P Rn+1−l = jl jn 2 0 exp 2πi 2n+1−l + . O valor de todos os q-bits não muda. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS |j1 i |j1 i |jl−1 i |jl−1 i |jl i Rn+1−l R2 H 57 |ψi |jl+1 i |jl+1 i |jn i |jn i Figura 4. + 2   1 1 0  . . em vez de usar |ψi = CRn+1−l . usaremos |ψi = CRn+1−l . CR2 CR1 |+i .6: Parte do circuito da transformada de Fourier quântica que atua num q-bit |jl i.5. (4.4. exceto |jl i.22) e (4. podendo ser trocado pela seguinte porta de 1 q-bit: # " 1   0 . que pode ser lido diretamente da Figura 4. . e se jk+l−1 = 1. Usando (4. Cada porta Rk é controlada pelo q-bit |jk+l−1 i. Se jk+l−1 = 0. note que jl |0i + e2πi 2 |1i √ = CR1 |+i .6. = √ j 0 exp 2πi 2 2n+1−l (4.24). (4.23) + |1i). CR2 H |jl i . . . Isso significa que. H |jl i = 2 onde |+i = √1 (|0i 2 (4.24) k=n+1−l onde o produto está na ordem reversa. Então. então Rk é acionada. para os cálculos propostos. então Rk deve ser trocado pela matriz identidade (sem ação).

A saída tem a ordem inversa da equação (4. |1i |0i e |1i |1i. As portas PR k (k de n até 1) são colocadas em seqüência na Figura 4. obtemos |ψi = P Rn+1−l |+i j = |+i |+i |0i + e2πi 2n+1−l |1i √ .8. o CNOT invertido muda para |1i |1i. O primeiro CNOT da Figura 4.23). TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS Pn onde usamos j = m=1 jm 2n−m e o fato de que os primeiros l − 1 termos desta expansão não contribuem — eles são múltiplos inteiros de 2πi em (4. inverte um estado genérico da forma |ϕi |ψi. para executar os cálculos propostos. Para inverter os estados de 2 q-bits genéricos.5. Então.21). Agora. controlado pelos outros q-bits.7. Tome a entrada |ϕi |ψi = |0i |1i. que não mudam.7. Vamos mostrar por que o circuito funciona como desejado.26) |0i+e PR n |0i+e PR n−1 j 2πi n 2 |1i √ 2 j 2πi n−1 2 |1i √ 2 |+i |+i |+i |0i+e PR 2 PR 1 j 2πi 2 2 |1i √ 2 j 2πi 2 |1i |0i+e √ 2 Figura 4. Resta escrever a porta Rk -controlada em termos de CNOT e portas de 1 q-bit. atuando apenas no l-ésimo q-bit.21). usamos o circuito da Figura 4. Se repetirmos o mesmo processo com |0i |0i. a saída do primeiro q-bit é o último termo da equação (4.58 4. Vamos fundir as portas Rk . e assim por diante. gerando o penúltimo termo na equação (4. resta-nos inverter a ordem dos estados dos q-bits. .24). Finalmente. portanto. A saída é |ψi |ϕi.25). A entrada é tomada como |+i. e o último CNOT muda para |1i |0i. como explicado na equação (4. A decomposição não está completa ainda. O mesmo processo é repetido pelo PR n−1 atuando em |ψ2 i. Note que P Rn+1−l não pode ser implementado diretamente. porque ele precisa dos valores de jl+1 até jn . Esta decomposição é dada na Figura 4. O próximo passo é o circuito da Figura 4. até reproduzir todos os termos da transformada de Fourier. concluiremos que o circuito inverte todos os estados da base computacional.8 não muda este estado.9.7: Circuito intermediário para a transformada de Fourier quântica. usando a equação (4. correspondendo à ação do PR n no |ψ1 i.21). 2 (4.

alguém poderia estar se perguntando sobre a decomposição de Vx em termos de portas elementares. Na verdade.16). |2i.17) no caso N = 8. 10). Vx é um problema em chamadas recursivas do algoritmo. p. O gargalo não é tão estreito. isto é. um novo circuito deve ser construído. p. Obtenha as expressões equivalentes às expressões (4. . o custo para calcular exponenciação modular é O(n3 ). encontre a transformada de Fourier de {|0i. A essa altura. obtemos o termo dominante 5n2 /2. que implica que o custo é O(n2 ).10 Expanda as expressões (4. Exercício 4. em 1997. Vx é a maior porta da Figura 4.1. devido ao tempo e ao espaço consumidos para executar a exponenciação modular (veja [20]. que Vx é o “gargalo” do algoritmo quântico de fatoração.5.6 até 4.59 4. quando x varia. A verificação é direta. Para cada x. Contando o número de portas elementares nas Figuras de 4. O circuito quântico pode ser obtido do circuito clássico.9: Decomposição da porta Rk -controlada em termos de portas universais. 69). o que é incômodo no estágio atual do desenvolvimento da computação quântica. Basta acompanhar o que acontece na base computacional {|00i . |1i. Shor declarou no seu artigo [21]. Rk+1 Rk = Rk+1 † Rk+1 Figura 4. já que. |11i} em ambos os circuitos. |01i .17) e mostre que o resultado está de acordo com a fórmula (4. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS |ϕi |ψi |ϕi |ψi |ψi |ϕi = |ϕi |ψi Figura 4. trocando as portas clássicas irreversíveis pelas equivalentes reversíveis. O circuito completo para a transformada de Fourier quântica é dado na Figura 4.8: Circuito de inversão. podemos calcular o custo computacional do circuito quântico da transformada de Fourier.10. usando o método clássico conhecido por “quadrado repetido” e algoritmos de multiplicação de inteiros (veja [24]. |10i .9. Agora.

|5i. |7i} na forma fatorada.|4i.9 está correta. Exercício 4.10: Circuito completo para a transformada de Fourier quântica. Exercício 4. |6i. .12 Faça o circuito da transformada de Fourier para o caso de 3 q-bits. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS |j1 i j 2πi 2 |1i |0i+e √ 2 |j2 i |0i+e j 2πi 2 2 |1i √ 2 DFT com a saída inversa |jn−1 i |jn i |0i+e j 2πi n−1 2 |1i √ 2 |0i+e j 2πi n 2 |1i √ 2 Figura 4.11 Mostre que a decomposição da Figura 4.5.13 Faça o circuito da transformada de Fourier inversa para o caso de 3 q-bits. |3i.60 4. Exercício 4.

. Physical Review A A52. 400. J.. M. Ed. H.. Series A (London. R.. Margolus. Probability analysis of a quantum computer. 5 (1995).Bibliografia [1] Aharonov. Hoyer. 439. P. and Jozsa. G. D.. SIAM Journal on Computing 26. G. J. Int. Series A (London.. [8] Deutsch. ph/0303074). Royal Society. [11] Feynman. Rapid solution of problems by quantum computation. 1998. H. Reviews of Modern Physics 68 (1996). D. 1411–1473. [3] Bennett. SIAM Journal on Computing 26. Quantum computation. Royal Society. Strengths and weaknesses of quantum computing. 297–301. [7] Deutsch. [2] Barenco. R.. A. Stauffer. Brassard. E. In Proceedings of the Royal Society of London. C. 1992).. (quant-ph/9503016). 467–488. VI. D. 733–753. D. 1985). Elementary gates for quantum computation. 5 (1997). DiVincenzo. 1–78. Phys. Quantum complexity theory. 21 (1982). 3457–3487. W. Sleator. A. In Proceedings of the Royal Society of London. R. Jerusalem. Quantum computation and Shor’s factoring algorithm. P... 4-5 (1998). . and Vazirani. and Tapp. Cleve. and Jozsa.. U. and Weinfurter.. P. An algorithm for machine calculation of complex Fourier series. In Annual Reviews of Computational Physics. Bennett. [9] Einarsson. and Vazirani.. Quantum theory. pp. vol. Math. R. U... 493–506. G. Smolin. Theor.. Fortschritte der Physik 46. the church-turing principle and the universal quantum computer. A. 97–117. Brassard. E. Shor.. Comp. vol. 5 (1997). (quant-ph/9812037). J. pp. A. unpublished 2003. and Tukey. 1510–1523. pp. Tight bounds on quantum searching. vol. [6] Cooley. [5] Boyer. Simulating physics with computers. Bernstein. J. D. N. 553–558. T. 19 (1965).. (quant- [10] Ekert. P.. [4] Bernstein. C. World Scientific. H.

Bibliografia 62 [12] Grover. 1484 – 1509. unpublished 1998. A. 1999. L. [15] Lomonaco. K. Steffen. Nature 414. M. Lomonaco. 124–134. Co. O. 2002).. 2000. Addison Wesley Pub. [17] Papadimitriou. (quantph/0010034).. I. 883–887. Quantum Computing. 2000. SIAM Journal on Computing 26. M. SIAM Journal on Computing 26. 325–328. L.. An Introduction to Quantum Computing Algorithms. Quantum information and computation. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. [14] Hirvensalo. S. Modern Computer Algebra. R. L. 58. [18] Pittenger. I.. A. . Cambridge University Press.. L. 6866 (2001). J. 161–180. Jr. pp. (quant-ph/9706033). Algorithms for quantum computation: discrete logarithm and factoring. Quantum Computation and Quantum Information. Jr. J. C. [24] von zur Gathen. vol. Computational Complexity. Springer. 35th Annual Symposium on Foundations of Computer Science (1994). On the power of quantum computation. 2001. Cambridge. J. M. M.. Cambridge University Press. A fast quantum mechanical algorithm for database search. and Chuang. J. W. H. S. 28th Annual ACM Symposium on the Theory of Computing (1996). 1994. C. In Proc. M. Birkhauser. L. and Gerhard. (quant-ph/9605043). H. D. Cambridge. P. Breyta. [23] Vandersypen. pp. Sherwood. [16] Nielsen. pp. Experimental realization of Shor’s quantum factoring algorithm using nuclear magnetic resonance. J. [21] Shor. Physical Review Letters 79 (1997). K. 212–219. Ed. 5 (1997). Lecture Notes.. [13] Grover.. S.. Shor´s quantum factoring algorithm. 1474–1483. and Chuang. Massachussetts. Quantum mechanics helps in searching for a needle in a haystack. W. [22] Simon.. California Institute of Technology. In Proc. American Mathematical Society. [20] Shor. G. New York. P.. 5 (1997). Yannoni. In Proceedings of Symposia in Applied Mathematics (Washington. [19] Preskill.

18 notação de Dirac. 29. 6 interpretação física. 12 representação matricial. 13 superposto. 7 representação em R4 . 43 criptografia. 16 Rk . 13 produto tensorial definição. 8 estado. 43. 32. 5. 5 bra. 18 H. 7 fatoração. 41 circuito associado. 11 ângulo. 43 FFT. 24 oráculo. 11. 8 medida. 11 bit quântico. 5 representação em R3 . 5. 15 esfera de Bloch. 10 q-bit. 18 CNOT. 41 X. 25. 16. 20. 54 ket. 6. 13 representação matricial. 5. 16 produto externo definição. 5. 12 mecânica quântica. 19 norma. 11. 19. 12 emaranhamento. 16 unitário. 13 produto interno definição. 56 S. 41 ordem. 18 T.Índice amplitude. 6. 27. 5 definição. 5 emaranhado. 8 2|ψihψ| − I. 9 entre matrizes. 13 base computacional. 11 transformação linear . 5. 40 Uf . 24 NOT. 13. 12 classe de complexidade. 17. 46 porta quântica π/8. 18 Toffoli. 21 Toffoli generalizada. 17 Hadamard. 23. 15 fase. 44 paralelismo quântico. 24. 41 G. 43 dual. 19 fator de fase global. 21. 20 convenções. 5 operador. 22. 6 superposição.

55 64 . 54 transformada de Fourier inversa.ÍNDICE adjunta. 8 unitária. 56. 59 portas universais. 47. 8 transformada de Fourier. 48. 48 transformada rápida de Fourier.