Você está na página 1de 72

Notas em Matemtica Aplicada

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

Rubens Sampaio
Pontifcia Universidade Catlica do Rio de Janeiro
Rio de Janeiro, RJ, Brasil

Geraldo N. Silva
Universidade Estadual Paulista - UNESP
So Jos do Rio Preto, SP, Brasil

Sociedade Brasileira de Matemtica Aplicada e Computacional

Notas em Matemtica Aplicada

1. Restaurao de Imagens com Aplicaes em Biologia e Engenharia


Geraldo Cidade, Antnio Silva Neto e Nilson Costa Roberty
2. Fundamentos, Potencialidades e Aplicaes de Algoritmos Evolutivos
Leandro dos Santos Coelho
3. Modelos Matemticos e Mtodos Numricos em guas Subterrneas
Edson Wendlander
4. Mtodos Numricos para Equaes Diferenciais Parciais
Maria Cristina de Castro Cunha e Maria Amlia Novais Schleicher
5. Modelagem em Biomatematica
Joyce da Silva Bevilacqua, Marat Rafikov e Cludia de Lello Courtouke
Guedes
6. Mtodos de Otimizao Randmica: algoritmos genticos e simulated
annealing
Sezimria F. Pereira Saramago
7. Matemtica Aplicada Fisiologia e Epidemiologia
H.M. Yang, R. Sampaio e A. Sri Ranga

iv

8. Uma Introduo Computao Quntica


Renato Portugal, Carlile Campos Lavor, Luiz Mariano
Carvalho e Nelson Maculan
9. Aplicaes de Anlise Fatorial de Correspondncias para Anlise de Dados
Dr. Homero Chaib Filho, Embrapa
10. Modelos Matemticos baseados em autmatos celulares para
Geoprocessamento
Marilton Sanchotene de Aguiar, Fbia Amorim da Costa, Graaliz
Pereira Dimuro e Antnio Carlos da Rocha Costa
11. Computabilidade: os limites da Computao
Regivan H. N. Santiago e Benjamn R. C. Bedregal
12. Modelagem Multiescala em Materiais e Estruturas
Fernando Rochinha e Alexandre Madureira
13. Modelagem em Biomatemtica
1 - Modelagem matemtica do comportamento eltrico de neurnios e
algumas aplicaes
2 - Redes complexas e aplicaes nas Cincias
3 - Possveis nveis de complexidade na modelagem de sistemas biolgicos
Coraci Malta, 1 - Reynaldo D. Pinto, 2 - Jos Carlos M. Mombach e 3 Henrique L. Lenzi, Waldemiro de Souza Romanha e Marcelo Pelajo-Machado
14. A lgica na construo dos argumentos
Angela Cruz e Jos Eduardo de Almeida Moura

UMA INTRODUO COMPUTAO


QUNTICA

Renato Portugal - LNCC


portugal@lncc.br

Carlile Campos Lavor - UERJ


carlile@ime.uerj.br

Luiz Mariano Carvalho - UERJ


luizmc@ime.uerj.br

Nelson Maculan - UFRJ


maculan@cos.ufrj.br

Sociedade Brasileira de Matemtica Aplicada e Computacional


So Carlos - SP, Brasil
2004

vi
Coordenao Editorial: Vra Lucia da Rocha Lopes
Coordenao Editorial da Srie: Geraldo Nunes Silva
Editora: SBMAC
Impresso na Grfica: Epec Grfica
Capa: Matheus Botossi Trindade
Patrocnio: SBMAC

c
Copyright 2004
by Renato Portugal, Carlile Campos Lavor, Luiz Mariano
Carvalho and Nelson Maculan
Direitos reservados, 2004 pela SBMAC. A publicao nesta srie no impede o autor de publicar parte ou a totalidade da obra por outra editora, em qualquer meio,
desde que faa citao edio original.

Catalogao elaborada pela Biblioteca do IMECC/UNICAMP.


Portugal, Renato
Uma Introduo Computao Quntica - So Carlos, SP : SBMAC, 2004
ix, 62 p. - (Notas em Matemtica Aplicada; 8)
ISBN 85-86883-17-4
1. Computao Quntica. 2. Algoritmos Qunticos. 3. Circuitos Qunticos.
I. Portugal, Renato. II. Lavor, Carlile Campos. III. Carvalho, Luiz Mariano.
IV. Maculan, Nelson. V. Ttulo. VI. Srie
CDD - 530.12

Prefcio

Apresentamos um estudo introdutrio computao quntica. Esse um domnio


recente que combina trs reas bem conhecidas: matemtica, fsica e computao.
Vamos nos concentrar em aspectos matemticos da computao quntica. Apesar de desejvel, nenhum conhecimento prvio sobre fsica ou computao necessrio. Quanto matemtica, a principal exigncia um curso bsico de lgebra
linear.
O texto est dividido em quatro captulos. No Captulo 1, fazemos uma breve
exposio sobre computadores clssicos (Seo 1.1) e apresentamos os conceitos
bsicos usados no texto (Seo 1.2). Comparamos, rapidamente, computadores
clssicos e qunticos na Seo 1.1 (essa discusso ser mais til para aqueles com
algum conhecimento de computao). A Seo 1.2 fundamental para todo o livro
e dever ser consultada constantemente.
No Captulo 2, descrevemos alguns dos circuitos qunticos que sero utilizados
nos captulos seguintes. Nos Captulos 3 e 4, cremos, est a nossa principal contribuio: produzir um texto em portugus que estimule o estudante de graduao, em
qualquer rea de cincias exatas, a estudar o assunto. Nesses captulos, descrevemos
os dois algoritmos mais divulgados em computao quntica: o algoritmo de Grover
(Captulo 3) e o algoritmo de Shor (Captulo 4). O quarto captulo denso e, por
isso, exigir uma leitura mais atenta. No entanto, o texto tem todas as definies e
referncias necessrias para a compreenso desse algoritmo fundamental.
Existem timos livros sobre o assunto em lngua inglesa (veja a bibliografia). O
mais famoso, j um clssico, o livro de Michael A. Nielsen e Isaac L. Chuang [16].
Uma traduo para a lngua portuguesa est sendo concluda pelo Prof. Ivan dos
Santos Oliveira Jnior, do Centro Brasileiro de Pesquisas Fsicas (CBPF).
Para futuras edies melhoradas de nosso trabalho, gostaramos de receber crticas e sugestes por parte dos leitores.
Finalmente, agradecemos o apoio da Sociedade Brasileira de Matemtica Aplicada e Computacional (SBMAC), do Programa Institutos do Milnio (Informao
Quntica), da FAPERJ, do CNPq e, em particular, ao Prof. Rubens Sampaio, pelo
incentivo.
Os Autores
Rio de Janeiro, 21 de junho de 2004.

vii

Contedo
1 Conceitos Bsicos
1.1 O Computador Clssico . . . . . .
1.2 O Computador Quntico . . . . . .
1.2.1 O bit quntico (q-bit) . . .
1.2.2 Produto tensorial . . . . . .
1.2.3 Produtos interno e externo

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

1
1
4
4
8
11

2 Circuitos Qunticos
2.1 Notao e Convenes . .
2.2 Porta NOT Quntica . . .
2.3 Porta Hadamard . . . . .
2.4 Porta de Fase ou Porta S
2.5 Porta /8 ou Porta T . .
2.6 Porta CNOT Quntica . .
2.7 Porta Toffoli Quntica . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

14
14
15
16
17
17
18
19

3 Algoritmo de Grover
3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Operadores do Algoritmo . . . . . . . . . . . . . . .
3.3 Custo Computacional do Algoritmo . . . . . . . . .
3.4 Exemplo: N=8 . . . . . . . . . . . . . . . . . . . . .
3.5 Circuitos Qunticos para o Operador G . . . . . . .
3.5.1 Circuito quntico para o operador Uf . . . .
3.5.2 Circuito quntico para o operador 2|ih| I

.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

22
22
23
32
37
39
40
40

. . . . . . .
. . . . . . .
. . . . . .
. . . . . . .
Universais

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

42
42
43
46
49
53

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

4 Algoritmo de Shor
4.1 Reduo da Fatorao ao Clculo de Ordem .
4.2 Algoritmo Quntico para o Clculo de Ordem
4.3 A Transformada de Fourier Quntica Discreta
4.4 Generalizao por meio de um Exemplo . . .
4.5 Transformada de Fourier em termos de Portas
Bibliografia

59

Captulo 1

Conceitos Bsicos
1.1

O Computador Clssico

Um computador clssico pode ser descrito de forma bastante genrica como uma
mquina que l um certo conjunto de dados, codificado em zeros e uns, executa
clculos e gera uma sada tambm codificada em zeros e uns. Zeros e uns so estados
que podem ser representados fisicamente. No caso dos computadores clssicos,
atravs do potencial eltrico: 0 um estado de baixo potencial eltrico e 1 um
estado de alto potencial eltrico.
Zeros e uns formam um nmero binrio que pode ser convertido para a base
decimal. Pensemos, ento, num computador como um dispositivo que calcula uma
funo f : {0, . . . , N 1} {0, . . . , N 1}, onde N = 2n (n o nmero de bits
usados na memria do computador). Sem perda de generalidade, consideremos que
o domnio e a imagem de f so do mesmo tamanho. A cada conjunto de n bits
de entrada, corresponde um nico conjunto de n bits de sada, o que caracteriza
f como uma funo. Representamos o processo de clculo na Figura 1.1, onde
esquerda, temos os bits de entrada e direita, os de sada (o processo de clculo
ocorre da esquerda para a direita).
Em geral, f descrita por blocos elementares que podem ser implementados fisicamente por transistores e outros componentes eletrnicos. Os blocos so as portas
lgicas AND, OR e NOT, conhecidas como portas universais (na verdade, basta
apenas a porta NOT e uma das duas outras portas, OR ou AND). Por exemplo, um
exemplo de circuito que realiza a soma em aritmtica mdulo 2 de dois nmeros,
cada um com um bit, apresentado na Figura 1.2. As entradas possveis so 00,
01, 10 ou 11. As entradas so produzidas atravs de diferenas de potencial eltrico
que geram corrente eltrica. Por sua vez, a corrente se propaga atravs dos fios,
da esquerda para a direita, ativando as portas lgicas. Os smbolos de medida,
direita, representam que medidas de corrente so realizadas, indicando o valor de
cada bit: 0 ou 1. O bit, na posio inferior, d o resultado da operao. O fio
para o bit da posio superior desnecessrio, sendo utilizado apenas para exibir a
mesma quantidade de bits de entrada e sada.

1.1. O COMPUTADOR CLSSICO

bit0

bit0

bit1

bit1

..

..

.. .

bitn1

bitn1

Figura 1.1: Esquema genrico para um computador clssico.

AND
OR
NOT

OR
NOT

Figura 1.2: Circuito para realizar a soma de dois nmeros, em aritmtica mdulo 2, cada
um com um bit.

O circuito da Figura 1.2 irreversvel, pois as portas AND e OR so irreversveis.


Isso significa, no caso da porta AND, que se a sada for 0, no se sabe quais os valores
dos dois bits de entrada. Para a porta OR, ocorre o mesmo, caso a sada seja 1. As
portas AND e OR, descritas dessa forma, no podem ser representadas por portas
qunticas, pois como veremos, so reversveis.
No entanto, o circuito apresentado na Figura 1.2 pode ser transformado em um
equivalente reversvel. Para tanto, vamos utilizar a porta CNOT, representada na
Figura 1.3. O valor do bit superior (chamado bit de controle) nunca muda nessa
porta, enquanto que o bit inferior (chamado bit alvo) alterado apenas se a = 1.
Se a = 0, nada acontece a ambos os bits (no caso quntico, que ser visto adiante,
o comportamento bem diferente). A porta CNOT uma porta NOT, controlada
pelo valor do bit superior. Podemos verificar que o valor do bit inferior de sada
dado por a + b (mod 2).

1.1. O COMPUTADOR CLSSICO

a + b (mod 2)
Figura 1.3: Porta CNOT.

Generalizando a porta CNOT, usando dois bits de controle no lugar de apenas


um, temos a porta Toffoli (Figura 1.4), que pode ser usada para obter a contrapartida reversvel da porta AND.
a

c + ab (mod 2)
Figura 1.4: Porta Toffoli.

O valor do bit inferior (o bit alvo) invertido apenas se a e b valem 1. Caso


contrrio, nada alterado. A seguir, descrevemos todas as possveis entradas e as
sadas correspondentes:
000
001
010
011
100
101
110
111

000

011
100

001
010

101
111
110

A porta AND pode ser representada por uma porta Toffoli colocando c = 0. A
sada do bit inferior ser, ento, a AND b. Para obter o equivalente reversvel para
a porta OR, consulte [16].
Ainda na Figura 1.2, observe que h uma bifurcao de fios e no h problema
algum em faz-lo classicamente. Entretanto, isso no possvel em circuitos qunticos, devido ao teorema de no clonagem (veja [19], p. 162). Verifique que esse
efeito pode ser obtido atravs de uma porta CNOT, colocando b = 0. Com isso, o
valor do bit superior ser duplicado.
Consideremos, novamente, a Figura 1.1. Se o computador tem n bits de entrada,
h 2n entradas possveis, e, para cada uma delas, h tambm 2n sadas possveis.

1.2. O COMPUTADOR QUNTICO

Com isso, o nmero de funes que pode ser obtido (2n )2 , ou seja, 2n2 . Todas
essas funes podem ser reduzidas a circuitos usando as portas universais [16, 18].
Uma questo fundamental a velocidade com que um computador calcula
essas funes. Isso depender do nmero de portas usadas no circuito que calcula
f . Se o nmero de portas cresce polinomialmente com n, dizemos que o circuito
eficiente. Por outro lado, se o nmero de portas cresce exponencialmente com
n, dizemos que o circuito ineficiente. Esse um mtodo grosseiro de medida de
eficincia, mas til para a anlise terica quando n grande.
Todos os clculos realizados em um computador clssico tambm podem ser
efetuados em computadores qunticos. Basta substituirmos as portas irreversveis
clssicas pelas homlogas reversveis qunticas. Entretanto, o atrativo da computao quntica a possibilidade de se ter algoritmos qunticos mais rpidos que os
clssicos, para uma mesma classe de problemas. Para tanto, os algoritmos qunticos devem usar propriedades qunticas, no disponveis nos computadores clssicos,
como o paralelismo quntico e o emaranhamento.

1.2
1.2.1

O Computador Quntico
O bit quntico (q-bit)

Em computao quntica, utilizam-se estados qunticos em vez de estados clssicos.


O bit , ento, substitudo pelo bit quntico, o q-bit, e os valores 0 e 1 de um bit
so substitudos pelos vetores |0i e |1i, representados por




0
1
.
e |1i =
|0i =
1
0
Essa notao, utilizada em mecnica quntica, conhecida por notao de Dirac.
A diferena entre um bit e um q-bit que um q-bit genrico |i pode tambm
ser uma combinao linear dos vetores |0i e |1i, ou seja,
|i = |0i + |1i,

(1.1)

onde e so nmeros complexos. Note que os vetores |0i e |1i formam uma base
ortonormal do espao vetorial C2 . Essa base chamada de base computacional e
o vetor |i chamado de superposio dos vetores |0i e |1i, com amplitudes e
. Em mecnica quntica, vetor tambm chamado de estado. Usaremos os dois
termos com o mesmo significado.
A interpretao fsica do q-bit, em (1.1), que ele est simultaneamente nos
estados |0i e |1i. Isso faz com que a quantidade de informao que pode ser armazenada no estado |i seja infinita. Entretanto, essa informao est no nvel
quntico. Para torn-la acessvel, no nvel clssico, precisamos fazer uma medida.
A mecnica quntica diz que o processo de medida altera o estado de um q-bit,
fazendo-o assumir o estado |0i, com probabilidade ||2 , ou o estado |1i, com probabilidade ||2 (isso significa que os valores e no podem ser conhecidos atravs

1.2. O COMPUTADOR QUNTICO

de uma medida). Com apenas duas possibilidades, |0i ou |1i, temos, ento,
||2 + ||2 = 1.

(1.2)

Isso significa que a norma do vetor |i vale 1 (vetor unitrio). Resumindo: matematicamente, um q-bit um vetor de norma 1 de C2 .
Na verdade, a definio da base computacional deveria ser




(0, 0)
(1, 0)
,
e |1i =
|0i =
(1, 0)
(0, 0)
pois todas as coordenadas so nmeros complexos. Para simplificar a notao,
usaremos 1 para representar (1,0) e 0 para representar (0,0).
Na equao
(1.2), considere

= a + i b (a, b R) e = c + i d (c, d R). Como


||2 = ( a2 + b2 )2 e ||2 = ( c2 + d2 )2 , podemos escrever
a2 + b2 + c2 + d2 = 1.

(1.3)

Nesse caso, podemos interpretar um q-bit como sendo um vetor unitrio de R4 .


Entretanto, existe uma representao geomtrica de um q-bit em R3 : a esfera de
Bloch (Figura 1.5). Para tanto, passemos o q-bit
|i = |0i + |1i,

(1.4)

de coordenadas cartesianas para coordenadas polares (como anteriormente, =


a + i b e = c + i d (a, b, c, d R)). Usando as representaes polares de e ,
= || exp(i)

= || exp(i( + )),

e definindo
ou ainda

cos(/2) = ||

sen(/2) = ||,

p
p
= 2 arccos( a2 + b2 ) = 2 arcsen( c2 + d2 ),
= arg() arg(),

(1.5)

= arg(),

podemos, finalmente, escrever


|i = exp(i)[cos(/2) |0i + exp(i) sen(/2) |1i].

(1.6)

Exerccio 1.1 Usando as definies dadas em (1.5), demonstre que a expresso (1.4)
pode ser escrita na forma (1.6).

1.2. O COMPUTADOR QUNTICO

Para fins de representao, vamos desconsiderar o termo externo aos colchetes,


exp(i), tambm chamado fator de fase global . Uma razo que permite essa simplificao que o valor do quadrado do mdulo das amplitudes de um q-bit no se
altera, quando exclumos esse fator. Por exemplo:
||2 = | exp(i) cos(/2)|2 = | exp(i)|2 | cos(/2)|2 = | cos(/2)|2 ,
o mesmo ocorrendo com ||2 (para um tratamento detalhado desse fato, consulte [16], p. 93). Ficamos, ento, com uma representao de trs parmetros:
dois explcitos, e , e um implcito, o comprimento do vetor, que sempre igual a
um. Esses parmetros podem ser utilizados para obtermos uma representao polar
no R3 , da forma

x
cos sen
y = sen sen ,
z
cos

onde 0 e 0 < 2.
Usando essas convenes, a representao da base computacional, na esfera de
Bloch (Figura 1.5), ser:


0
0

0
e |1i = 0 .
|0i =
1
1
Ou seja, |0i ser o plo norte da esfera e |1i ser seu plo sul.

|0i
z
|i

|1i
Figura 1.5: Esfera de Bloch.

1.2. O COMPUTADOR QUNTICO

Dessa forma, todos os estados de um q-bit podem ser representados (a menos de


um fator multiplicativo) na esfera de Bloch. Por exemplo, os estados 12 (|0i + |1i)
e 12 (|0i |1i), que sero utilizados mais frente, so representados por (1, 0, 0) e
(-1, 0, 0), respectivamente.
Exerccio 1.2 D uma interpretao, em termos de amplitudes e probabilidades,
para os estados representados na interseo entre o plano (x, y, 0) e a esfera de
Bloch.
Insistimos que no se pode calcular exatamente os valores de || ou ||, em (1.4),
mesmo que haja uma grande quantidade de estados |i de mesmo valor. Vejamos
por qu. Aps serem feitas repetidas medidas dos estados com valores iguais a
|i, teremos apenas os resultados |0i ou |1i. Atravs da quantidade de |0is e
|1is encontrados, teremos um valor aproximado para os valores ||2 e ||2 . No
podemos garantir sua exatido, pois trata-se de probabilidades. E mais, se para
sabermos o valor dos coeficientes de um simples q-bit, com uma preciso razovel,
precisssemos de um nmero enorme de medidas repetidas de q-bits com mesmo
valor, provavelmente haveria pouco interesse em computadores qunticos.
Essa seria uma situao paradoxal, pois apenas medindo estados que forneam
os resultados |0i ou |1i, no ultrapassaramos os marcos da computao clssica.
Ou seja, apesar da quantidade infinita de informao que um q-bit guardaria em
potencial, apenas dois valores seriam acessados por ns. No entanto, h outro tipo
de fenmeno que ocorre com um estado quntico, alm daquele ocasionado por sua
medida. A mecnica quntica tambm nos diz que a evoluo no tempo de um
sistema quntico isolado descrita matematicamente por uma transformao linear
[16]. Ora, sistemas qunticos isolados so descritos por vetores unitrios, e, como
sabemos da lgebra linear, as funes que transformam vetores unitrios em vetores
unitrios do mesmo espao vetorial so as transformaes unitrias.
Transformaes lineares unitrias U podem ser definidas (h outras definies
equivalentes) como aquelas que atendam seguinte propriedade:
U U = U U = I,
onde U =(U )T , com indicando a conjugao complexa, e T indicando a transposio matricial. U denominada transformao adjunta de U . Desse ponto em
diante, faremos referncia indistintamente transformao U e matriz que a representa usando a mesma notao, salvo indicao explcita. Usaremos, tambm, o
termo operador com esse mesmo significado. Com isso, quando escrevermos U |i,
estaremos falando tanto da aplicao de U , quanto da multiplicao da matriz U
pelo estado |i.
Resumindo: temos, ento, duas interaes bsicas de um computador quntico
com os dados de entrada: transformao unitria e medida. A primeira, atuando no
nvel quntico, e a segunda, fazendo a ligao entre o mundo quntico e o clssico.

1.2. O COMPUTADOR QUNTICO

1.2.2

Produto tensorial

Para considerarmos estados com mais de um q-bit, precisamos introduzir o conceito


de produto tensorial. H vrios graus de generalidade para a introduo dessa
definio. Usaremos, aqui, a mais simples e que ser plenamente suficiente para os
nossos propsitos.
O produto tensorial de dois estados

1
1
2
2

|i = . e |i = . ,
..
..
m

denotado por |i |i, tem como resultado o estado |i com mp-linhas, dado por

|i =

1 1
1 2
..
.

1 p

2 1

2 2

..
,
.

2 p

..

m 1

m 2

..

.
m p

(1.7)

onde i j o produto usual dos complexos.


Usaremos, tambm, outras notaes mais simplificadas para o produto tensorial
|i |i. So elas: |i|i, |, i e |i. Por exemplo:

0
   
1
0
1

|01i = |0i |1i =


0
1
0
0


0
   
0
0
1

|10i = |1i |0i =

=
1 .
1
0
0

1.2. O COMPUTADOR QUNTICO

Note que o produto tensorial no comutativo.


O produto tensorial pode ser estendido para matrizes quaisquer. Dadas as matrizes A Cmn e B Cpq , a matriz A B Cmpnq definida por

A11 B A12 B A1n B


A21 B A22 B A2n B

AB =
(1.8)
,
..
..
..
..

.
.
.
.
Am1 B

Am2 B

Amn B

onde Aij o elemento da linha i e da coluna j de A. De forma mais precisa, porm


mais criptogrfica, cada elemento da matriz A B definido por

(1.9)

(A B)rs = Aij Bkl ,


onde r = (i 1)p + k e s = (j 1)q + l, com os ndices
1 i m, 1 j n, 1 k p, 1 l q.
Por exemplo, se



1 0
0 1
A=
e B= 0 1
1 0
0 0
ento

AB =

0 1
1 0

1 0
0 1
0 0

0 =

0
0
0
1
0
0

variando da seguinte forma:

0
0
0
0
1
0

0
0 ,
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

A seguir, damos algumas propriedades do produto tensorial que sero utilizadas


ao longo do texto (considere z C, v, v1 , v2 Cn e w, w1 , w2 Cm ):
1. z(|vi |wi) = (z|vi) |wi = |vi (z|wi),
2. (|v1 i + |v2 i) |wi = (|v1 i |wi) + (|v2 i |wi),
3. |vi (|w1 i + |w2 i) = (|vi |w1 i) + (|vi |w2 i).
Exerccio 1.3 Demonstre as propriedade 1, 2 e 3 do produto tensorial.
Dadas duas transformaes lineares A e B, podemos definir um novo operador
linear, A B, por
(A B)(|ui |wi) = A|ui B|vi,
(1.10)

desde que garantidas as dimenses corretas para possibilitar as multiplicaes das


matrizes pelos vetores.
Ainda, introduzindo mais algumas notaes, diremos que |in e An so os
produtos tensoriais de |i, por ele prprio n vezes, e de A, por ela prpria n vezes,
respectivamente.

10

1.2. O COMPUTADOR QUNTICO

Vejamos, agora, a descrio de um estado genrico |i de 2 q-bits. Esse ser


uma superposio dos estados |00i, |01i, |10i e |11i (estamos usando a notao
simplificada para o produto tensorial entre dois estados de 1 q-bit), ou seja,
|i = |00i + |01i + |10i + |11i,

(1.11)

onde
||2 + ||2 + ||2 + ||2 = 1.

Visando a reduzir a notao, podemos considerar os zeros e uns que aparecem


na equao (1.11) como nmeros binrios, e assim,
|00i, |01i, |10i, |11i
podem ser abreviados por
|0i, |1i, |2i, |3i,

usando a notao decimal. claro que o |0i acima no o mesmo que aparece na
definio de um q-bit, pois tm dimenses diferentes. Em cada caso, o contexto
esclarecer a que situao estamos nos referindo.
Em geral, um estado |i de n q-bits uma superposio de 2n estados da base
computacional {|0i, |1i, . . . , |2n 1i}, dada por
|i =

n
2X
1

i=0

i |ii,

com as amplitudes i atendendo a


n
2X
1

i=0

|i |2 = 1.

Como havamos comentado anteriormente, a medio do estado genrico |i


produz um resultado |i0 i com probabilidade |i0 |2 , com 0 i0 2n 1. Usualmente, a medida realizada q-bit a q-bit, produzindo zeros e uns que so lidos
em conjunto, gerando a sada |i0 i. Repetiremos, aqui, uma propriedade central do
processo de medida. O estado |i, antes da medio, inacessvel, a no ser que
ele pertena base computacional. O procedimento de medida altera inevitavelmente |i, forando-o a um colapso para algum dos vetores da base computacional.
Este colapso, como vimos, no-determinstico, com probabilidades dadas pelos
quadrados dos mdulos das amplitudes de |i.
Consideremos, agora, outro conceito fundamental em computao quntica: o
emaranhamento. Um estado de 2 q-bits pode ou no ser o resultado do produto
tensorial de estados de 1 q-bit. Vejamos. Considere os estados de 1 q-bit
|i = a|0i + b|1i
e
|i = c|0i + d|1i,

11

1.2. O COMPUTADOR QUNTICO

onde a, b, c, d C. 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.

(1.12)

Observe que um estado de 2 q-bits genrico (1.11) da forma (1.12) se, e somente
se,

= ac,

= ad,
= bc,
= bd.

Dessas igualdades, temos que


c

c
= .

Ou seja,
= .
Logo, um estado de 2 q-bits, em geral, no o produto tensorial de estados de 1
q-bit. Quando isso acontece, dizemos que o estado est emaranhado. Por exemplo,
o estado |01i pode, obviamente, ser descrito como produto tensorial dos estados |0i
e |1i, isto ,

0
   
1
0
1

|01i = =
1
0
0
0
No entanto, o estado


0
1

1
0

um estado emaranhado, pois no pode ser descrito como produto tensorial de


estados de 1 q-bit.

1.2.3

Produtos interno e externo

Podemos definir o produto interno entre os estados |i, |i Cn , denotado por


h|i, como sendo o produto matricial entre |i e |i, ou seja,
h|i = (|i) |i =

n
X

i i .

(1.13)

i=1

O estado |i chamado dual de |i e denotado por h| (|i e h| so denominados


ket e bra, respectivamente).
O produto interno satisfaz s seguintes propriedades:

12

1.2. O COMPUTADOR QUNTICO

1. h|i = h|i ,
2. h|(a|ui + b|vi)i = ah|ui + bh|vi,
3. h|i > 0 (se |i =
6 0),

com a, b C e |i, |i, |ui, |vi Cn .


Exerccio 1.4 Demonstre as propriedades 1, 2 e 3 do produto interno.
A norma de um estado |i pode, ento, ser definida por
p
|| |i || = h|i.

Podemos, tambm, definir o produto externo entre os estados |i Cm e |i


C , denotado por |ih|, como sendo o produto matricial de |i por h|, ou seja,
n

|ih| = |i(|i) .

Note que |ih| uma matriz de ordem m n.


Como exemplos das definies acima, considere os estados de 1 q-bit
|i = |0i + |1i

|i = |0i + |1i.

Temos, ento,
h|i

para o produto interno, e


|ih|
para o produto externo.

= + ,

Exerccio 1.5 Demonstre que, dados dois vetores |i, |i Cn , temos


(|ih|)|i = h|i|i.

(1.14)

Usando o produto interno, podemos definir o ngulo entre dois vetores unitrios
|i, |i Rn por
= arccos(h|i).
(1.15)
Observe que, usando essa definio, [0, ].
Com os conceitos apresentados at aqui, podemos dar uma representao para
um computador quntico (Figura 1.6), generalizando o computador clssico, apresentado na Figura 1.1. Os bits de entrada so substitudos por estados de 1 q-bit e
a funo f substituda por um operador unitrio U que, em geral, o resultado
da composio de vrios outros operadores unitrios. O resultado da computao
dado pela medida de cada q-bit de sada.

13

1.2. O COMPUTADOR QUNTICO

|1 i

0 ou 1

|2 i

0 ou 1

..
|n i

..
0 ou 1

Figura 1.6: Esquema genrico para um computador quntico.

A priori, usando n q-bits, existe a possibilidade de um nmero infinito de operadores unitrios U , representados por matrizes com 2n 2n entradas. Na prtica, h
que se levar os erros em conta, o que diminui o nmero de circuitos implementveis.
Mesmo assim, os graus de liberdade so maiores que no computador clssico. Cada
operador U implementado com portas formando circuitos qunticos, assunto do
prximo captulo.

Captulo 2

Circuitos Qunticos
A representao grfica de circuitos clssicos , de certa forma, prxima da realidade fsica do circuito implementado. Por exemplo, linhas correspondem a fios e
bifurcaes significam que a corrente eltrica passa por ambos os fios. Nos circuitos
qunticos, os fenmenos ocorrem de outra forma, como veremos.

2.1

Notao e Convenes

Para apresentar as convenes usadas em circuitos qunticos, vamos utilizar um


circuito (porta U-controlada) em que a entrada e a sada so um estado de 2 q-bits
(Figura 2.1).

U
Figura 2.1: Porta quntica U-controlada.

Entrada: pode ser o produto tensorial entre os q-bits de entrada ou um estado


emaranhado (os q-bits no devem ser considerados individualmente).
Linhas horizontais: as linhas que aparecem no so necessariamente fios. Elas
representam a evoluo de um q-bit, podendo ser apenas a passagem do tempo
ou, por exemplo, o deslocamento de um fton.

15

2.2. PORTA NOT QUNTICA

Sentido: o circuito descreve a evoluo do sistema quntico no tempo, da esquerda


para a direita. Com isso, no h sentido em aparecer retroalimentao, que
pode ocorrer em um circuito clssico.
Linhas verticais: o segmento vertical que aparece unindo os smbolos e U
informa que o circuito atua simultaneamente nos dois q-bits. A linha vertical
representa o sincronismo, e no o envio de informao. Portanto, no so
permitidas nem junes, nem bifurcaes de q-bits.
Controle: o smbolo indica que o q-bit representado nessa linha um q-bit de
controle, ou seja, caso esteja no estado |1i, a porta U realiza a operao; caso
esteja no estado |0i, a porta U no realiza operao alguma. Caso o q-bit de
controle seja um estado superposto ou os 2 q-bits estejam emaranhados, no
possvel compreender o comportamento individual do q-bit de controle e do
q-bit alvo. Devemos considerar a ao do operador unitrio, que representa
todo o circuito, atuando simultaneamente nos 2 q-bits.
Sada: os q-bits que compem a sada do circuito podem ou no ser medidos.
Como o q-bit inferior est sendo medido (o smbolo de medida est indicado
na Figura 2.1), o resultado ser 0 ou 1.
Vistas as principais convenes, vamos apresentar algumas portas qunticas.
Comecemos por portas de 1 q-bit. No caso clssico, h apenas uma possibilidade:
a porta NOT. O mesmo no ocorre nos circuitos qunticos, como veremos.
Antes de prosseguir, faamos uma observao. A importncia do estudo de portas lgicas em computao quntica baseia-se no fato de que toda matriz unitria
2 2 pode ser representada por um circuito quntico de 1 q-bit e vice-versa [16].
Sendo assim, a evoluo no tempo de um sistema quntico isolado, dado por
um q-bit, pode ser representada tanto matematicamente (por uma transformao
unitria) quanto logicamente (por um circuito quntico).

2.2

Porta NOT Quntica

No caso clssico, a porta NOT troca o 1 por 0 e vice-versa. A generalizao para o


caso quntico dada por um operador X que satisfaz
X|0i = |1i

X|1i = |0i.

(2.1)

Com isso, verifica-se facilmente que a representao matricial do operador X dada


por


0 1
.
X=
1 0
Exerccio 2.1 Demonstre que X um operador unitrio.

16

2.3. PORTA HADAMARD

Com a porta NOT quntica, temos situaes sem contrapartida no caso clssico,
pois, se a entrada |i for uma superposio dos estados |0i e |1i,
|i = |0i + |1i,
a sada ser
X|i = |0i + |1i.
A porta X apenas uma da portas de 1 q-bit, j que h infinitas matrizes unitrias
2 2.

2.3

Porta Hadamard

Uma outra porta de 1 q-bit, largamente utilizada, a porta Hadamard H, definida


pelo operador


1
1
1
.
(2.2)
H=
2 1 1
Exerccio 2.2 Demonstre que H um operador unitrio.
Aplicando H no estado |0i, obtemos

1
H|0i = (|0i + |1i),
2

que uma superposio dos estados |0i e |1i, onde a probabilidade de se obter um
dos estados, ao se fazer uma medida do estado H|0i, a mesma: 50%. Aplicando
o operador H em cada q-bit de um registrador com 2 q-bits no estado |00i, temos:
H 2 |00i

= H|0i H|0i

 

1
1
(|0i + |1i) (|0i + |1i)
=
2
2
1
(|00i + |01i + |10i + |11i) .
=
2

Em notao decimal,
1
(|0i + |1i + |2i + |3i) .
2
Generalizando para estados com n q-bits, obtemos:
H 2 |00i =

H n |0...0i

(H|0i)n

n
1
(|0i + |1i)
=
2
N 1
1 X
|ii.
=
2n i=0

Esse resultado ser importante no algoritmo de Grover (Captulo 3).

17

2.4. PORTA DE FASE OU PORTA S

Exerccio 2.3 Aplique o operador H em um estado superposto qualquer e interprete o resultado.

2.4

Porta de Fase ou Porta S

A matriz unitria associada porta S



1
S=
0

0
i

onde i a unidade imaginria (i2 = 1). A porta S pode tambm ser representada
por


1
0
S=
,
0 exp(i/2)

j que exp(i/2) = cos(/2) + i sen(/2) = i.


Aplicando S em um estado genrico

|i = |0i + |1i,
obtemos
S|i = |0i + i|1i.
Note que, se for feita uma medida do estado S|i, as probabilidades de se obter os
estados |0i ou |1i sero as mesmas, comparadas com uma medida realizada sobre o
estado |i. Isso no acontece, por exemplo, usando a porta H.

2.5

Porta /8 ou Porta T

A matriz unitria associada porta T




1
0
,
T =
0 exp(i/4)
que poderia ser representada, tambm, na forma


exp(i/8)
0
.
T = exp(i/8)
0
exp(i/8)
Aplicando T em um estado genrico
|i = |0i + |1i,
obtemos
T |i = |0i + exp(i/4)|1i.

Tambm, nesse caso, se for feita uma medida do estado T |i, as probabilidades
de se obter os estados |0i ou |1i sero as mesmas, comparadas com uma medida
realizada sobre o estado |i.

18

2.6. PORTA CNOT QUNTICA

2.6

Porta CNOT Quntica

Outra porta, essa atuando em estados de 2 q-bits, a contrapartida quntica do


circuito clssico apresentado anteriormente na Figura 1.3. Ela tem 2 q-bits de
entrada, o de controle e o alvo (Figura 2.2). Uma porta controlada, como j vimos
(Figura 2.1), age dependendo do valor do q-bit de controle. Ela ativada se o
q-bit de controle estiver no estado |1i, e nada faz, se ele estiver no estado |0i. Essa
descrio adequada apenas quando o q-bit de controle est nos estados |0i ou
|1i. Entretanto, o que distingue a porta CNOT quntica da clssica que, na porta
CNOT quntica, os q-bits alvo e de controle podem ser estados superpostos, e, alm
disso, os dois q-bits podem estar emaranhados.

Figura 2.2: Porta CNOT quntica.

A ao da porta CNOT pode ser caracterizada pelas transformaes operadas


nos elementos da base computacional associada, ou seja,
|00i

|01i
|10i

|11i

|00i,

|01i,
|11i,

(2.3)

|10i.

Note que podemos representar essa ao na base computacional de forma mais


esquemtica por
|i, ji |i, i ji,
onde i, j {0, 1} e a adio mdulo 2.

(2.4)

19

2.7. PORTA TOFFOLI QUNTICA

Para obtermos a matriz UCN OT associada porta CNOT, basta usarmos os


valores dados em (2.3), isto ,


1
1
0
0
0 0
1 1


UCN OT
UCN OT
0 = 0 ,
0 = 0 ,
0
0
0
0

UCN OT


0
0
0 0
= ,
1 0
1
0

que resulta em
UCNOT

1
0
=
0
0

UCN OT

0
1
0
0

0
0
0
1


0
0
0 0
= ,
0 1
0
1

0
0
.
1
0

(2.5)

Exerccio 2.4 Demonstre que UCN OT um operador unitrio.


Exerccio 2.5 D um exemplo de estado emaranhado produzido pela porta CNOT.
Um resultado importante sobre circuitos qunticos que qualquer operador
unitrio pode ser representado usando portas CNOT e portas de 1 q-bit [16].
Exerccio 2.6 Demonstre que a matriz UCN OT no pode ser descrita como produto tensorial de matrizes 2 2.
Exerccio 2.7 Demonstre que a porta CNOT no pode ser descrita usando portas
de 1 q-bit.

2.7

Porta Toffoli Quntica

A prxima porta a ser considerada a correspondente quntica da porta Toffoli


(Figura 1.4). Tambm uma porta controlada, s que nesse caso, com dois qbits de controle (Figura 2.3). Sua ao na base computacional associada pode ser
representada por
|i, j, ki |i, j, k iji,

onde i, j, k {0, 1} e a adio mdulo 2. Observe que, nesse caso, a base


computacional possui 8 elementos.

20

2.7. PORTA TOFFOLI QUNTICA

Figura 2.3: Porta Toffoli quntica.

Exerccio 2.8 Exiba a matriz associada porta Toffoli quntica.


Exerccio 2.9 Analise se a matriz associada porta Toffoli quntica pode ser
representada pelo produto tensorial de matrizes quadradas de dimenses diferentes
de 1 1.
A porta Toffoli usada para simplificar a representao de circuitos qunticos.
Como j sabemos, ela pode ser descrita usando portas de 1 q-bit e portas CNOT.
Uma representao possvel dada na Figura 2.4 (h outras representaes [19]).

T
T

T
H

Figura 2.4: Decomposio da porta Toffoli em portas de 1 q-bit e portas CNOT.

Exerccio 2.10 Faa a evoluo dos estados da base computacional, na representao da porta Toffoli da Figura 2.4.
Para simplificar ainda mais a representao de circuitos qunticos, temos tambm a porta Toffoli generalizada (Figura 2.5), que ser utilizada nos captulos seguintes.

21

2.7. PORTA TOFFOLI QUNTICA

n1
q-bits de
controle

q-bit alvo

..
.

Figura 2.5: Porta Toffoli generalizada.

A decomposio da porta Toffoli generalizada, em termos de portas Toffoli simples, mostrada na Figura 2.6. Os n 2 q-bits de trabalho so q-bits extras, cujas
entradas so conhecidas antecipadamente. So utilizados para simplificar a decomposio.

n1
q-bits
de

controle

n2

q-bits
de

trabalho

q-bit
alvo

...

...

...

|0i
|0i
|0i

...

...

...

...

...

...

...

|0i
|0i

Figura 2.6: Porta Toffoli generalizada decomposta em portas Toffoli simples.

Exerccio 2.11 Analise as sadas da porta Toffoli generalizada (Figura 2.5) e as


sadas da sua decomposio (Figura 2.6), considerando, na entrada, elementos da
base computacional.

Captulo 3

Algoritmo de Grover
3.1

Introduo

Considere o seguinte problema: temos uma lista no ordenada com N elementos e


desejamos encontrar um elemento especfico que est na lista. Classicamente, deveramos testar elemento a elemento. No pior caso possvel, precisaramos realizar N
testes. Como veremos, usando as propriedades da mecnica quntica, a quantidade
detestes necessrios para a identificao do elemento procurado ser proporcional
a N . Este resultado ser obtido usando o algoritmo de Grover [12, 13].
Para representar matematicamente o problema, vamos supor que a busca ser
realizada sobre a lista {0, 1, ..., N 1}, onde N = 2n para algum nmero natural n,
e que a funo
f : {0, 1, ..., N 1} {0, 1},

definida por

f (i) =

1, se i = i0 ,
0, se i 6= i0 ,

(3.1)

ser utilizada para o reconhecimento do elemento procurado i0 (assumiremos que


existe um nico elemento i {0, 1, ..., N 1} tal que f (i) = 1). Dessa forma, o custo
computacional para resolver o problema est associado ao nmero de vezes que a
funo f deve ser utilizada. Imagine a funo f como sendo um orculo que est
disposio para informar se um dado elemento ou no o elemento procurado.
O algoritmo de Grover utiliza dois registradores qunticos (Figura 3.1): o primeiro, com n q-bits, inicializado no estado |0...0i, e o segundo, com 1 q-bit, inicializado
no estado |1i. O primeiro registrador est relacionado aos elementos da lista onde
ser feita a busca, enquanto que o segundo um registrador que ter um papel fundamental, como veremos. A cada elemento i da lista {0, 1, ..., N 1}, associaremos
o estado |ii de n q-bits.

23

3.2. OPERADORES DO ALGORITMO

3.2

Operadores do Algoritmo

Antes da execuo propriamente dita do algoritmo, o primeiro registrador alterado


para formar uma superposio de todos os estados associados aos elementos da lista.
Isso pode ser obtido aplicando o operador Hadamard H (2.2) em cada q-bit do
primeiro registrador (Figura 3.1).

|0i

primeiro
registrador
(n q-bits)

|0i

..

(
segundo
|1i
registrador
(1 q-bit)

|G i

|i

..

|Gk i

|G2 i

...
...

...

...

...

..

...

...
|i

|i

|i

|i

Figura 3.1: Esquema genrico para o algoritmo de Grover (G um operador unitrio que
ser definido mais adiante).

A superposio obtida ser denotada por |i, ou seja,


N 1
1 X
|i =
|ii.
N i=0

(3.2)

Observe que aplicando n vezes o operador H, obtemos uma superposio de N = 2n


estados com mesma amplitude.
Para completar a inicializao do algoritmo, o operador H tambm aplicado
sobre o estado inicial do segundo registrador (Figura 3.1). Denotando o resultado
por |i, temos:
1
|i = H|1i = (|0i |1i).
(3.3)
2
J sabemos que qualquer alterao de um sistema quntico isolado (que no
seja uma medida) descrita por um operador unitrio. Para representar quanticamente a funo f , em (3.1), utilizada para a identificao do elemento procurado,
imaginemos, ento, um operador linear Uf que transforme |ii em |f (i)i, onde |ii o
estado de n q-bits do primeiro registrador. Como Uf deve ser unitrio, a entrada
e a sada de Uf devem ter a mesma dimenso. Considere, ento,
Uf

|ii|0i |ii|f (i)i,

(3.4)

onde, na entrada e na sada, o primeiro registrador tem n q-bits e o segundo


apenas 1 q-bit. Usando (3.4), temos:

|ii|1i, se i = i0 ,
(3.5)
Uf (|ii|0i) =
|ii|0i, se i 6= i0 .

24

3.2. OPERADORES DO ALGORITMO

Ou seja, o operador Uf altera o estado do segundo registrador quando o primeiro registrador representa o elemento procurado. Para completar a definio, precisamos
definir o valor de Uf (|ii|1i). Mantendo a mesma idia, definimos:

|ii|0i, se i = i0 ,
Uf (|ii|1i) =
(3.6)
|ii|1i, se i 6= i0 .

Com isso, Uf fica bem definido, pois, sendo um operador linear, basta defini-lo nos
elementos da base. Note que a base formada usando o produto tensorial. Por
exemplo, para uma lista com 4 elementos (o primeiro registrador ter 2 q-bits), a
base ser
{|0i|0i, |0i|1i, |1i|0i, |1i|1i, |2i|0i, |2i|1i, |3i|0i, |3i|1i},
ou melhor,

1
0
0
0
0
0
0
0

0
1
0
0
0
0
0
0

0
0
1
0
0
0
0
0

0
0
0
1
0
0
0
0

0
0
0
0
1
0
0
0

Exerccio 3.1 Exiba a matriz que representa Uf .

0
0
0
0
0
1
0
0

0
0
0
0
0
0
1
0

0
0
0
0
0
0
0
1

Para facilitar os clculos a seguir, representaremos (3.5) e (3.6) de uma nica


maneira, isto ,
Uf (|ii|ji) = |ii|j f (i)i,
(3.7)

onde |ii o estado de n q-bits do primeiro registrador (i {0, 1, . . . , N 1}), |ji


o estado de 1 q-bit do segundo registrador (j {0, 1}) e a soma mdulo 2.
n+1
n+1
Note que Uf C(2 2 ) .
Exerccio 3.2 Demonstre que Uf um operador unitrio.
O operador Uf foi definido para simular quanticamente o papel da funo f
(3.1). Para identificar o elemento procurado i0 , bastaria aplicar Uf em cada estado
associado aos elementos da lista e manter o segundo registrador no estado |0i ou |1i.
Quando o estado do segundo registrador fosse alterado, saberamos que o elemento
buscado teria sido encontrado. Neste caso, o estado do primeiro registrador seria
|i0 i. No entanto, isso no proporcionaria ganho algum em relao ao caso clssico,
usando a funo f . O que vai fazer diferena que podemos tambm aplicar Uf
em estados superpostos. Vejamos.
O prximo passo do algoritmo aplicar o operador Uf sobre o estado |i|i,
resultante da inicializao (Figura 3.2). Ou seja,
!
!
N 1
1 X

|ii |i .
Uf (|i|i) = Uf
N i=0

25

3.2. OPERADORES DO ALGORITMO

|i
|0i

..
.

..
.

|0i

|1i

..
.

Uf

|i

Figura 3.2: Aplicao do operador Uf sobre o estado |i|i.

Usando a distributividade do produto tensorial em relao adio de vetores,


!
N 1
1 X
|ii|i .
Uf (|i|i) = Uf
N i=0
Da linearidade do operador Uf ,
N 1
1 X
Uf (|i|i) =
Uf (|ii|i) .
N i=0

Substituindo a definio do estado |i, dada em (3.3), na expresso acima, obtemos:


Uf (|i|i)


 
N 1
1 X
1

Uf |ii (|0i |1i)


2
N i=0


N 1
1
1 X

Uf (|ii|0i |ii|1i) .
2
N i=0

Novamente, da linearidade de Uf ,
N 1
1 X 1
(Uf (|ii|0i) Uf (|ii|1i)) .
Uf (|i|i) =
N i=0 2

Da definio de Uf , em (3.7), 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.8)

26

3.2. OPERADORES DO ALGORITMO

Da definio de f , em (3.1),
|ii (|f (i)i |1 f (i)i) =

|ii (|1i |0i) , se i = i0 ,


|ii (|0i |1i) , se i 6= i0 .

(3.9)

Substituindo a expresso anterior em (3.8), temos:


N 1 
1 X
1
1
(|ii (|0i |1i)) + (|i0 i (|1i |0i)) .
Uf (|i|i) =
2
2
N i=0,i6=i0

Novamente, da definio de |i,


Uf (|i|i)

N 1
1 X

|ii|i |i0 i|i


N
i=0,i6=i0
!
N
1
X
1
f (i)

(1) |ii|i .
N i=0

Ou ainda,
Uf (|i|i) =

!
N 1
1 X
f (i)

(1) |ii |i.


N i=0

(3.10)

Note que o estado do segundo registrador no se altera (como visto acima, isso no
quer dizer que ele seja desnecessrio!). O estado do primeiro registrador continua
sendo uma superposio de todos os estados associados aos elementos da lista.
Entretanto, a amplitude do elemento procurado foi alterada de 1N para 1N .
Aps a aplicao do operador Uf , um fato interessante ocorreu. Alm da funo
f ter sido avaliada em todos os elementos da lista onde est sendo feita a busca,
com apenas uma aplicao de Uf (este fenmeno conhecido como paralelismo
quntico [16]), o estado associado ao elemento procurado foi identificado como
sendo o nico que teve sua amplitude alterada. No entanto, essa informao s est
disponvel quanticamente. No adiantaria fazer uma medida do primeiro registrador, pois a probabilidade de se obter o elemento procurado


1 2
= 1 .
N
N
Antes de prosseguirmos, consideremos a seguinte questo: a aplicao do operador Uf sobre um estado qualquer, no primeiro registrador, ainda mantm o segundo
registrador no estado |i? Vejamos.

27

3.2. OPERADORES DO ALGORITMO

Seja |ii, um estado qualquer da base computacional {|0i, |1i, ..., |N 1i}. Usando
as definies do operador Uf e do estado |i, 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) .
2
Da mesma forma que fizemos no clculo de Uf (|i|i), obtemos:
Uf (|ii|i) = (1)f (i) |ii|i.
Ou seja,
Uf (|ii|i) =

|ii|i, se i = i0 ,
|ii|i, se i 6= i0 .

(3.11)

Usando este resultado e aplicando Uf sobre um vetor unitrio qualquer


|vi =

N
1
X

i=0,i6=i0

i |ii + i0 |i0 i,

gerado pelos elementos da base computacional {|0i, |1i, ..., |N 1i}, no primeiro
registrador, e mantendo o estado |i, no segundo registrador, temos:

N
1
N
1
X
X
i |ii|i + i0 |i0 i|i
Uf
i |ii + i0 |i0 i |i = Uf
i=0,i6=i0

i=0,i6=i0

N
1
X

i=0,i6=i0

N
1
X

i=0,i6=i0

i Uf (|ii|i) + i0 Uf (|i0 i|i)


i |ii|i i0 |i0 i|i

N
1
X

i=0,i6=i0

i |ii i0 |i0 i |i.

(3.12)

Concluso: a aplicao de Uf sobre o estado |vi|i no altera o estado do segundo


registrador. Portanto, para simplificar os clculos, sempre que o estado do segundo
registrador for |i, como o caso no algoritmo de Grover, omitiremos o segundo
registrador. importante destacar que o estado |i fundamental no processo de
marcao do elemento procurado.

28

3.2. OPERADORES DO ALGORITMO

Exerccio 3.3 Verifique o que acontece se, ao aplicarmos o operador Uf , o estado


do segundo registrador no for o estado |i.
Voltemos ao algoritmo. Com o elemento a ser buscado j identificado quanticamente, o prximo passo ser aumentar a probabilidade de esse elemento ser obtido,
aps uma medida.
O novo estado do primeiro registrador ser denotado por |1 i, isto ,
N 1
1 X
(1)f (i) |ii.
|1 i =
N i=0

(3.13)

Olhando com mais cuidado o resultado da aplicao de Uf sobre o estado |vi|i,


em (3.12), podemos obter uma interpretao geomtrica do efeito do operador Uf
sobre o primeiro registrador: a aplicao de Uf sobre um vetor unitrio qualquer
gerado pelos elementos da base computacional {|0i, |1i, ..., |N 1i} resulta numa
reflexo desse vetor em relao ao subespao ortogonal a |i0 i, gerado por todos os
outros elementos da base computacional. Para visualizar esse resultado, podemos
considerar essa reflexo como uma reflexo em relao projeo de |vi sobre o
subespao ortogonal a |i0 i. Denotando essa projeo pelo vetor unitrio |ui, temos:
N
1
X
1
|ii.
|ui =
N 1 i=0,i6=i

(3.14)

Exerccio 3.4 Demonstre que a projeo de |i, definido em (3.2), sobre o subespao ortogonal a |i0 i pode ser representada por

N
1
|ui =
|i
|i0 i.
(3.15)
N 1
N 1
Para completar a visualizao, calculemos os ngulos entre |i e |i0 i e entre |ui
e |i0 i. Usando o produto interno, temos:

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.
N 1 i=0,i6=i

(3.16)

(3.17)

Ou seja, o ngulo entre |i e |i0 i menor do que /2 rad (se N grande, o ngulo
quase /2 rad) e o ngulo entre |ui e |i0 i exatamente /2 rad. Usando os
resultados (3.16), (3.17) e a expresso dada em (3.15), podemos, finalmente, obter
uma representao geomtrica para a ao do operador Uf sobre o estado |i, dada
na Figura 3.3.

29

3.2. OPERADORES DO ALGORITMO

|i0i

|i
|ui
|1i = Uf |i

Figura 3.3: Ao de Uf sobre o estado |i.

Induzidos por essa representao, poderamos, ento, refletir o vetor |1 i em


relao ao vetor |i, para aumentar a amplitude do elemento procurado |i0 i, em
relao sua amplitude no estado |i (Figura 3.4).

|i0i

|i

|1i = Uf |i

Figura 3.4: Reflexo de |1 i em relao a |i.

Uma observao importante: como todas as amplitudes dos estados envolvidos


no algoritmo de Grover so nmeros reais, o produto interno sempre resultar em

30

3.2. OPERADORES DO ALGORITMO

um nmero real. Isso possibilita a comparao entre ngulos de dois pares de estados
quaisquer. A partir de agora, teremos em mente esse fato.
A projeo de |1 i sobre |i dada por h|1 i|i. Motivados pelo losango
abaixo (Figura 3.5), vemos que o vetor resultante da reflexo de |1 i em relao a
|i pode ser descrito como
(2h|1 i) |i |1 i.

2h|1 i|i |1 i

(3.18)

|1 i

h|1 i|i

|1 i
Figura 3.5: Reflexo de |1 i em relao a |i.

O que desejamos obter um novo operador que produza essa reflexo. Usando
a propriedade (1.14), podemos reescrever a expresso acima, obtendo:
(2h|1 i) |i |1 i = (2|ih|) |1 i |1 i = (2|ih| I) |1 i.
Ou seja, o operador que procuramos
2|ih| I,

(3.19)

onde I o operador identidade.


O estado resultante do primeiro registrador, aps a aplicao do operador Uf ,
em (3.13), pode ser reescrito como
2
|1 i = |i |i0 i,
N
onde

N 1
1 X
|i =
|ii
N i=0

(3.20)

(3.21)

31

3.2. OPERADORES DO ALGORITMO

e i0 o elemento procurado. Denotando por |G i (Figura 3.6), o estado resultante


da aplicao do operador 2|ih| I sobre |1 i, e usando (3.20), obtemos:
|G i =

(2|ih| I) |1 i


2
(2|ih| I) |i |i0 i
N


4
2
(2h|i) |i h|i0 i |i |i + |i0 i.
N
N

=
=

(3.22)

Substituindo (3.16) em (3.22), temos:


|G i =

2
N 4
|i + |i0 i.
N
N

(3.23)

Esse , ento, o estado do primeiro registrador aps a aplicao dos operadores Uf e


2|ih| I (o estado do segundo registrador permanece inalterado). A composio
desses dois operadores chamada de operador de Grover G, isto ,
(3.24)

G = ((2|ih| I) I) Uf .

O segundo operador identidade aparece, porque o operador 2|ih| I aplicado


apenas no primeiro registrador (Figura 3.6).
|i
|0i

..
.

..
.

|0i

|1i

..
.

|i

|1 i

Uf

..
.

|G i

2|ih| I

..
.

|i

Figura 3.6: Uma aplicao do operador de Grover (G).

Exerccio 3.5 Demonstre que G um operador unitrio.


De (3.23), obtemos a amplitude do estado |i0 i, aps a primeira aplicao do
operador G:





3N 4
1
N 4
2

+ =
.
N
N
N
N N

Por exemplo, para N = 4, a probabilidade de se obter o elemento procurado, aps


uma medida do estado |i, em (3.21), 25%. J a probabilidade de se obter
o elemento procurado, aps uma medida do estado |G i, em (3.23), 100%. No

32

3.3. CUSTO COMPUTACIONAL DO ALGORITMO

entanto, para valores grandes de N , essa probabilidade ainda pequena. At agora,


o que podemos garantir que, com uma aplicao do operador G, a amplitude do
estado |i0 i aumentada, em relao sua amplitude no estado |i. E se aplicarmos
novamente o operador G sobre o estado |G i|i? A interpretao geomtrica dos
operadores Uf e 2|ih| I nos induz justamente a isso (Figuras 3.3 e 3.4).

3.3

Custo Computacional do Algoritmo

Como demonstraremos nesta seo, o estado resultante do primeiro registrador,


aps cada aplicao do operador G, vai se aproximando do estado |i0 i. Ento,
para determinar o custo computacional do algoritmo de Grover, temos que calcular
quantas aplicaes de G sero necessrias.
Inicialmente, demonstraremos que a aplicao de Gk (k N) produz um rotao
de |i em direo a |i0 i, de k rad, no subespao gerado pelos vetores |i e |i0 i, onde
o ngulo entre |i e G|i (Figura 3.7). Para facilitar a leitura, dividiremos a
demostrao em 4 proposies. A Proposio 1 diz que Gk |i pertence ao subespao
gerado por |i e |i0 i, para todo k N. A Proposio 2 estabelece que o ngulo entre
Gk |i e Gk+1 |i tambm , para todo k N. Na Proposio 3, demonstramos
que G rotaciona |i em direo a |i0 i. Finalmente, na Proposio 4, provamos que
o sentido da rotao produzida quando G aplicado sobre Gk |i, para todo k N,
o mesmo obtido quando G aplicado sobre |i. O subespao gerado por |i e
|i0 i ser denotado por e o estado do primeiro registrador de Gk |i ser denotado
por |Gk i. O estado do segundo registrador (|i) ser omitido, pois ele constante
durante todo o processo.
|i0 i
G3 |i
G2 |i

G|i

|i

Figura 3.7: Efeito da aplicao do operador G.

Proposio 1 Gn |i , para todo n N.

3.3. CUSTO COMPUTACIONAL DO ALGORITMO

33

Prova. A demonstrao por induo. 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 definio 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),


conclumos que
Gk+1 |i ,

que finaliza a induo.

Proposio 2 O ngulo entre Gk |i e Gk+1 |i rad, para todo k N.


Prova. Usando a definio de ngulo entre dois vetores, dada no Captulo 1, p. 12,
o enunciado deste lema torna-se equivalente a
hGk |Gk+1 i = cos , k N.
Reescrevendo, temos
hGk |Gk+1 i

= hGk |Gk |G i
= h(Gk ) Gk |G i.

34

3.3. CUSTO COMPUTACIONAL DO ALGORITMO

Usando o fato de que


(Gk ) |Gk i = (Gk ) Gk |i = |i,
obtemos, para todo k N,
hGk |Gk+1 i = h|G i
=

cos ,

como queramos demonstrar.


Proposio 3 O operador G rotaciona |i em direo 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
2
N 4
h|i + h|i0 i
=
N
N


N 4
2
1

=
+
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:


hG |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 no funciona (d


uma justificativa para isso). Vamos supor, ento, que N > 2. Neste caso,
3N 4
1

> ,
N N
N
ou melhor,
hG |i0 i > h|i0 i.

Como a funo arccos decrescente no intervalo [1, 1], a desigualdade acima


equivalente a
arccos(hG |i0 i) < arccos(h|i0 i).

Da Proposio 1, |G i e, de (3.31), sabemos que a rotao produzida por G , no


mximo, de /2 rad. Portanto, usando a desigualdade acima, a nica possibilidade
que a rotao de |i seja em direo a |i0 i.

3.3. CUSTO COMPUTACIONAL DO ALGORITMO

35

Proposio 4 A aplicao de G sobre |Gn i, para todo n N, mantm o mesmo


sentido de rotao quando G aplicado sobre |i.
Prova. Pelas Proposies 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 rotao de rad, em , no sentido horrio ou anti-horrio. Se
demonstrarmos que, para todo n N,
G (Gn |i) 6= Gn1 |i,
poderemos concluir que a rotao mantm o mesmo sentido quando G aplicado
sobre |i. A demonstrao ser, portanto, por induo. 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
|i + |i0 i
G|G i = G
N
N
N 4
2
=
G|i + G|i0 i
N
N




N 4 N 4
2
2
2
=
|i + |i0 i +
|i + |i0 i
N
N
N
N
N

2
N 4
4
2
2N 8
=
|i + |i0 i |i + |i0 i
N
N
N N
N
!
2

4
4N 8
N 4
=

|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= Gk1 |i.

Como G um operador unitrio, podemos aplic-lo nos dois lados da expresso


acima e ainda obter estados distintos, isto ,

G Gk+1 |i 6= Gk |i.
Isso conclui a induo (d um exemplo mostrando que a concluso da induo s
possvel, porque G um operador unitrio).

Concluso: a aplicao de Gk sobre |i produz uma rotao de k rad em direo


a |i0 i, no subespao gerado por |i e |i0 i, para todo k N.
Consideremos, ento, o custo do algoritmo de Grover. De forma mais precisa,
devemos calcular o nmero de vezes k que o operador G deve ser aplicado para

36

3.3. CUSTO COMPUTACIONAL DO ALGORITMO

que o estado Gk |i torne-se o mais prximo do estado |i0 i. Dito de outra forma,
queremos saber que valor de k faz com que o ngulo entre |i0 i e Gk |i seja o mais
prximo de zero (Figura 3.8). Admitindo que k seja um nmero real, podemos
representar matematicamente o problema acima atravs da seguinte equao:
(3.32)

arccos(h|i0 i) k = 0.
|i0 i

Gk |i
Gk1 |i

G2 |i
G|i

|i

Figura 3.8: Aplicaes sucessivas do operador G.

De (3.31), j sabemos que o ngulo entre |i e G|i




N 2
= arccos
.
N

(3.33)

Substituindo (3.16) e (3.33) em (3.32), obtemos:






1
N 2
arccos
k arccos
= 0.
N
N
Isolando k, temos:
arccos
k=

arccos

1
N
.
N 2
N

(3.34)

Para sabermos a ordem de grandeza de k, inicialmente, comparemos k com


N . Calculando o limite, temos:
k
= 0.
N N
lim

37

3.4. EXEMPLO: N=8

Ou seja, k menor do que N , para valores grandes de N . Calculemos, ento, o


seguinte:
k
= .
lim
N log2 (N )
Neste caso, k maior do que log2 (N ), para valores grandes de N . Tentando um
valor intermedirio, obtemos:
k

lim = .
4
N

Isso significa que, para valores suficientemente grandes


de N , o nmero de vezes

que o operador G deve ser aplicado , no mximo, N vezes.


Esse o resultado que tnhamos enunciado no incio do captulo. Na prxima
seo, daremos um exemplo usando uma lista com 8 elementos.
Exerccio 3.6 Calcule os trs limites acima.

3.4

Exemplo: N=8

Apliquemos o algoritmo de Grover em uma lista com N = 8 elementos. O primeiro


registrador ter, portanto, 3 q-bits. A primeira pergunta : quantas aplicaes do
operador G devem ser utilizadas? Usando (3.34), obtemos:
 
arccos 18

k=
= 1, 67.
arccos 82
8

Para que o estado resultante da ltima aplicao de G esteja o mais prximo de


|i0 i, devemos aplicar 2 vezes o operador G (Figura 3.9). A idia arredondar o
valor de k para o inteiro mais prximo.

|i

|0i

|0i

|0i

|1i

|G i

|1 i

2|ih| I

Uf

|G2 i

|2 i

Uf

1
2|ih| I

0
1

|i

|i

|i

Figura 3.9: Duas aplicaes do operador G, para N = 8 e i0 = 101.

|i

38

3.4. EXEMPLO: N=8

Antes da aplicao de G, o algoritmo cria uma superposio |i formada por


todos os elementos da base computacional associada ao problema. Isso obtido
aplicando o operador H (2.2) sobre cada q-bit do estado inicial (|000i) do primeiro
registrador, isto ,
|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 notao decimal, temos:
1
|i = (|0i + |1i + |2i + |3i + |4i + |5i + |6i + |7i) .
8
Supondo que o elemento procurado seja
|i0 i = |101i = |5i,
o prximo passo aplicar o operador Uf sobre o estado |i|i. O elemento procurado , ento, o nico que tem sua amplitude alterada:
|1 i|i = Uf (|i|i)


|0i + |1i + |2i + |3i + |4i |5i + |6i + |7i

=
|i.
8
Em seguida, o operador 2|ih| I aplicado sobre o estado |1 i, 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.
2 8
2 8

Se medirmos este estado, a probabilidade de se obter o elemento procurado


2

5

= 78, 12%.
2 8
Entretanto, j sabemos que devemos aplicar 2 vezes o operador G. Aplicando o
operador Uf sobre o estado |G i|i, obtemos:
|2 i|i = Uf (|G i|i)


1
5
(|0i + |1i + |2i + |3i + |4i + |6i + |7i) |5i |i.
=
2 8
2 8

39

3.5. CIRCUITOS QUNTICOS PARA O OPERADOR G

Novamente, o elemento procurado o nico que tem sua amplitude alterada. Aplicando o operador 2|ih| I sobre |2 i, 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 |i.
=
4 8
4 8
|G2 i

|i0 i
|G i

|i

|ui

|1 i

|2 i

Figura 3.10: Duas aplicaes do operador G, para N = 8 e i0 = 101.

Fazendo uma medida do estado |G2 i, obtemos o elemento procurado com probabilidade de

2
11

= 94, 53%.
4 8

Na Figura 3.10, representamos geometricamente os passos do algoritmo resultantes de duas aplicaes do operador G.
Exerccio 3.7 Usando a Figura 3.10, d uma explicao para os sinais das amplitudes da superposio dada em |G2 i.

3.5

Circuitos Qunticos para o Operador G

Nesta seo, iremos decompor o operador G em termos de portas de 1 q-bit e portas


CNOT. Essa decomposio mostrar como poderia ser uma implementao prtica
do operador G.

40

3.5. CIRCUITOS QUNTICOS PARA O OPERADOR G

3.5.1

Circuito quntico para o operador Uf

Recordemos que a funo f (3.1) age como um orculo para identificar o elemento
procurado i0 . De forma similar, o operador Uf tambm pode ser imaginado como
um orculo. Nesse sentido, ele um operador diferente do operador 2|ih| I,
pois deve ser preparado para a identificao do estado |i0 i. O operador Uf pode
ser representado por uma porta Toffoli generalizada com n q-bits de controle, 1
q-bit alvo no estado |i e 2 portas X atuando no i-simo q-bit de controle, sempre
que o i-simo dgito binrio de i0 for 0. Por exemplo, o circuito quntico para o
operador Uf , usado no exemplo dado na Seo 3.4 (n = 3 e i0 = 101), tem a forma
apresentada na Figura 3.11. Se o elemento procurado fosse 111, nenhuma porta X
seria usada. Caso fosse 000, 3 pares de portas X seriam usadas, um par em cada
q-bit de controle.

|i

|i

Figura 3.11: Circuito quntico para o operador Uf (n = 3 e i0 = 101).

3.5.2

Circuito quntico para o operador 2|ih| I

Consideremos, agora, a decomposio do operador 2|ih| I. Usando


|i = H n |0i e h| = h0|(H n ) ,
temos, ento,
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 .

(3.35)

Observe que H n uma matriz simtrica com apenas entradas reais. Portanto,
(H n ) = H n .
Exerccio 3.8 Demonstre que o produto tensorial de matrizes simtricas uma
matriz simtrica.

41

3.5. CIRCUITOS QUNTICOS PARA O OPERADOR G

A equao (3.35) mostra que, para obtermos o circuito quntico do operador


2|ih| I, basta considerarmos o operador 2|0ih0| I. Esse operador faz uma
reflexo em relao ao estado |0i. O circuito para esse operador dado na Figura
3.12. Na Tabela 3.1, representamos a ao desse operador sobre o estado |0i.

n
q-bits

iI

iI

X
..
.

..

X
..
.

..
.

..

..
.

..
.

..
X

X
H

|0 i

..
.

|1 i

|2 i

|3 i

|4 i

|5 i

Figura 3.12: Circuito quntico para o operador 2|0ih0| I.

Observe que a nica porta que atua nos n q-bits ao mesmo tempo, na Figura 3.12,
a porta Toffoli generalizada (Figura 2.5).
Exerccio 3.9 Teste a ao do circuito da Figura 3.12 em outros estados da base
computacional para perceber que, para qualquer entrada |ji, com 0 < j < N , a
sada ser sempre -|ji.

|0 i
|0i
|0i
..
.

|1 i
|1i
|1i
..
.

|2 i
i |1i
|1i
..
.

|3 i
i |1i
|1i
..
.

|4 i
(-i i )|1i
|1i
..
.

|5 i
|0i
|0i
..
.

|0i
|0i

|1i
|1i

|1i
|i

|1i
-|i

|1i
|1i

|0i
|0i

Tabela 3.1: Ao do operador 2|0ih0| I no estado |0i da base computacional.

Captulo 4

Algoritmo de Shor
4.1

Reduo da Fatorao ao Clculo de Ordem

Neste captulo1 , vamos descrever o algoritmo de Shor [21] que acha os fatores primos de um nmero composto N . Comearemos mostrando como a fatorao pode
ser reduzida ao clculo da ordem de um nmero x menor que N , escolhido aleatoriamente. Imagine que N um nmero grande, por exemplo com 300 dgitos na
notao decimal, j que tais nmeros so usados em criptografia. Embora N seja
grande, o nmero de q-bits necessrio para guard-lo muito pequeno. Em geral,
log2 N no um inteiro, ento definimos
n = dlog2 N e,
onde dlog2 N e o menor inteiro maior ou igual a log2 N .
Um computador quntico com n q-bits pode guardar N ou qualquer outro inteiro
positivo menor que N . Facilmente, vemos que o nmero de fatores primos de N
no mximo n. Se o nmero de q-bits e o nmero de fatores primos so menores ou
iguais a n, ento natural perguntar se existe um algoritmo que fatora N em um
nmero de passos que polinomial em n. Mais precisamente a questo : existe um
algoritmo de fatorao na classe de complexidade P [17]?
A reduo da fatorao de N ao problema de achar a ordem de um inteiro x
menor que N pode ser descrita da seguinte forma. Se x e N possuem fatores comuns,
ento o MDC(x, N ) fornece um fator de N ; portanto, suficiente investigar o caso
quando x coprimo com N . A ordem de x, mdulo N , o menor inteiro positivo
r, tal que
xr 1 mod N.
Se r for par, podemos definir y como sendo

xr/2 y mod N.
1 Os exerccios deste captulo esto embutidos no prprio texto, com exceo dos trs ltimos
na pgina 58.

4.2. ALGORITMO QUNTICO PARA O CLCULO DE ORDEM

43

A notao acima significa que y o resto da diviso de xr/2 por N e, pela definio,
0 y < N . Note que y satisfaz y 2 1 mod N , ou equivalentemente, (y1)(y+1)
0 mod N , o que significa que N divide (y 1)(y + 1). Se 1 < y < N 1, os fatores
y 1 e y + 1 satisfazem 0 < y 1 < y + 1 < N ; portanto, N no pode dividir
y 1 nem y + 1 separadamente. A nica alternativa que ambos y 1 e y + 1
tenham fatores de N . Ento, MDC(y 1, N ) e MDC(y + 1, N ) produzem fatores
no triviais de N . Se N tiver mais fatores, eles podem ser calculados aplicando
o algoritmo recursivamente. Considere N = 21 como exemplo. A seqncia de
equivalncias
24
25
26

16 mod 21
11 mod 21

11 2 1 mod 21

mostra que a ordem de 2, mdulo 21, r = 6. Portanto, y 23 8 mod 21. De


y 1 resulta o fator 7 e de y + 1 resulta o fator 3 de 21. Resumindo, se escolhermos
aleatoriamente um inteiro positivo x menor que N e calcularmos o MDC(x, N ), ou
teremos um fator de N , ou ficaremos sabendo que x coprimo com N . Neste ltimo
caso, se x satisfizer as condies (1) a ordem r par, e (2) 0 < y 1 < y + 1 < N ,
ento o MDC(y 1, N ) e MDC(y + 1, N ) produzem fatores de N . Se uma das
condies no verdadeira, recomeamos at achar um candidato x apropriado. O
mtodo no seria til se estas suposies fossem restritivas demais, mas felizmente
este no o caso. O mtodo sistematicamente falha, se N for uma potncia de
algum primo, mas nesse caso, um algoritmo clssico eficiente conhecido. Se N for
par, podemos continuar dividindo por 2 at o resultado passar a ser mpar. Restanos aplicar o mtodo para os inteiros compostos mpares que no so potncias de
algum nmero primo. complicado provar que a probabilidade de achar x coprimo
com N satisfazendo as condies (1) e (2) alta; de fato, essa probabilidade
1 1/2k1 , onde k o nmero de fatores primos de N . No pior dos casos (N tem
2 fatores), a probabilidade maior ou igual a 1/2 (veja a prova no Apndice B de
[10]). primeira vista, parece que acabamos de descrever um algoritmo eficiente
para achar um fator de N . Isto no verdade, j que no so conhecidos algoritmos
clssicos eficientes para calcular a ordem de um inteiro x mdulo N . Por outro
lado, existe (depois do trabalho de Shor) um algoritmo quntico eficiente. Vamos
descrev-lo a seguir.

4.2

Algoritmo Quntico para o Clculo de Ordem

Considere o circuito da Figura 4.1 que calcula a ordem r de um inteiro positivo x


menor que N , coprimo com N . Vx um operador linear unitrio dado por


(4.1)
Vx (|ji |ki) = |ji k + xj ,

onde |ji e |ki so os estados do primeiro e segundo registrador, respectivamente.


As operaes aritmticas so feitas mdulo N , assim 0 k + xj < N . O operador
DFT (Discrete Fourier Transform) ser descrito mais adiante.

44

4.2. ALGORITMO QUNTICO PARA O CLCULO DE ORDEM

|0i

|0i

registrador

(t q-bits)

DFT
H

|0i

Vx

2 registrador
(n q-bits)

|0i
|0 i

|1 i

|2 i

|3 i

|4 i

|5 i

Figura 4.1: Circuito quntico para achar a ordem de um inteiro


positivo x mdulo N .

O primeiro registrador possui t q-bits, onde t deve ser escolhido de forma que
N 2 2t 2N 2 , por razes que ficaro claras mais adiante [20]. Se a ordem
uma potncia de 2, ento suficiente tomar t = n. Nesta seo, vamos considerar
este caso especial e deixar o caso geral para a Seo 4.4. Continuaremos usando a
varivel t para generalizarmos nossa discusso mais adiante.
Os estados do computador quntico esto indicados por |0 i at |5 i na Figura
4.1. O estado inicial
|0 i = |0 . . . 0i |0 . . . 0i .
| {z } | {z }
t

A aplicao do operador Hadamard

1
H=
2

1
1

1
1

em cada q-bit do primeiro registrador, resulta em


t

2 1
1 X
|1 i =
|ji |0i .
2t j=0

(4.2)

O primeiro registrador est em uma superposio de todos os estados da base computacional com igual amplitude dada por 12t . Agora, note o que acontece quando

4.2. ALGORITMO QUNTICO PARA O CLCULO DE ORDEM

45

aplicamos Vx em |1 i:
|2 i

= Vx |1 i
t

2 1
1 X

Vx (|ji |0i)
2t j=0
t

2 1

1 X

|ji xj .
t
2 j=0

(4.3)

O estado |2 i interessante, pois, j que Vx linear, ele atua simultaneamente em


todos os termos |ji |0i para 2t valores de j. Logo, isto gera todas as potncias de
x simultaneamente. Esta caracterstica chamada paralelismo quntico. Algumas
dessas potncias so 1, as quais correspondem aos estados
 t
 
2
1 r |1i .
(4.4)
|0i |1i , |ri |1i , |2ri |1i , ,
r

Isto explica a escolha de (4.1) para Vx . Classicamente, poderamos calcular sucessivamente xj , para j comeando de 2 at chegarmos a j = r. Quanticamente, pode-se
calcular todas as potncias de x com uma nica aplicao de Vx . No nvel quntico,
todos os valores de j que produzem xj 1 mod N so conhecidos. Mas esta informao no est totalmente disponvel no nvel clssico. Uma informao clssica
de um estado quntico obtida atravs de uma medida e, neste ponto, no ajudaria
se medssemos o primeiro registrador, j que todos os estados da superposio (4.3)
possuem igual amplitude. A primeira parte da estratgia para determinar r observar que o primeiro registrador dos estados (4.4) peridico. Ento, a informao
que queremos um perodo.
Para facilitar os clculos, vamos medir o segundo registrador. Antes de fazer isto,
vamos reescrever o estado |2 i, fatorando os termos iguais do segundo registrador.
Como xj uma funo peridica com perodo r, vamos substituir j por ar + b na
equao (4.3), onde 0 a (2t /r) 1 e 0 b r 1. Lembre-se que supomos que
t = n e r uma potncia de 2, portanto r divide 2t . A equao (4.3) convertida
em

t
2
1
r1
r
1 X X

|2 i =
|ar + bi xb .
(4.5)

t
2 b=0 a=0

No segundo registrador, substitumos xb por xar+b , j que xr 1 mod N . Agora, o


segundo registrador medido. Qualquer resultado x0 , x1 , ..., xr1 pode ser obtido
com igual probabilidade. Suponha que o resultado xb0 . O estado do computador
quntico agora
t

2
r
1
r
r X

|ar + b0 i xb0 .
(4.6)
|3 i =

t
2
a=0

46

4.3. A TRANSFORMADA DE FOURIER QUNTICA DISCRETA

p
Note que depois da medida, a constante renormalizada para r/2t , j que existem
2t /r termos na soma (4.6). A Figura 4.2 mostra a probabilidade de obtermos os
estados da base computacional, medindo o primeiro registrador. A probabilidade
forma uma funo peridica com perodo r. Estes valores so zero, exceto para os
estados |b0 i, |r + b0 i, |2r + b0 i, ..., |2t r + b0 i.
Distribuio de probabilidades

r
2t

b0

r + b0

2r + b0

3r + b0

Termos de |3 i
(1 registrador)

Figura 4.2: Distribuio de probabilidades de |3 i medido na base computacional (para o caso b0 = 3 and r = 8). O eixo horizontal tem 2t
pontos, o nmero de picos 2t /r e o perodo r.

Como podemos descobrir o perodo de uma funo eficientemente? A resposta


a transformada de Fourier. A transformada de Fourier de uma funo peridica de
perodo r uma nova funo com perodo proporcional a 1/r. Isto faz diferena para
determinar r. A transformada de Fourier a segunda e ltima parte da estratgia
usada por Shor. Todo o mtodo depende de um algoritmo quntico eficiente para
calcular a transformada de Fourier, que no est disponvel classicamente. Na
Seo 4.5, mostraremos que a transformada de Fourier calculada eficientemente
num computador quntico.

4.3

A Transformada de Fourier Quntica Discreta

A transformada de Fourier de uma funo F : {0, . . . , N 1} C uma nova


funo F : {0, . . . , N 1} C definida por
N 1
1 X 2ijk/N
F (k) =
e
F (j).
N j=0

(4.7)

Podemos aplicar a transformada de Fourier ou em uma funo ou em um estado


da base computacional. A transformada de Fourier aplicada ao estado |ki da base

4.3. A TRANSFORMADA DE FOURIER QUNTICA DISCRETA

47

computacional {|0i , . . . , |N 1i}


N 1
1 X 2ijk/N
e
|ji ,
DFT(|ki) = |k i =
N j=0

(4.8)

onde o conjunto {|k i : k = 0, . . . , N 1} forma uma nova base ortonormal. A


transformada de Fourier um operador linear unitrio; portanto, se sabemos como
ele atua nos estados da base computacional, tambm sabemos como ele atua num
estado genrico
N
1
X
|i =
F (a) |ai .
a=0

A transformada de Fourier de |i pode ser obtida atravs de (4.7) ou (4.8). No


resto do trabalho, vamos usar a ltima forma.
Para provar que {|k i : k = 0, . . . , N 1} uma base ortonormal, i.e.,
hk0 |k i = k0 k ,
podemos usar a identidade

N 1
1 X 2ijk/N
1, se k um mltiplo de N
e
=
0, caso contrrio,
N j=0

(4.9)

que til no contexto da transformada de Fourier. fcil verificar que (4.9)


verdadeira. Se k um mltiplo de N , ento e2ijk/N = 1, justificando o primeiro
caso da identidade. Se k no um mltiplo de N , (4.9) verdade, mesmo se N
no for uma potncia de 2. A Figura 4.3 mostra cada termo e2ijk/N (j = 0, ..., 6)
para o caso k = 1 e N = 7 como vetores num plano complexo. Note que a soma
dos vetores deve ser zero pelo argumento de simetria: a distribuio dos vetores
isotrpica. Usualmente, diz-se que a interferncia destrutiva neste caso. Usando
essa identidade, podemos definir a transformada de Fourier inversa, que similar a
(4.8), porm com um sinal de menos no expoente. Note que DFT1 = DFT , j
que DFT um operador unitrio.
Apresentaremos os detalhes de um circuito quntico para realizar a transformada
de Fourier na Seo 4.5. Agora, continuaremos o processo de clculo da Figura 4.1.
Estamos prontos para achar o prximo estado do computador quntico: |4 i.
Aplicando a transformada de Fourier inversa no primeiro registrador, usando a
equao (4.8) e a linearidade da DFT , obtemos
|4 i = DFT (|3 i)

r 2rt 1
2t 1
r X 1 X 2ij(ar+b0 )/2t b0

=
e
|ji x .
2t a=0
2t j=0

48

4.3. A TRANSFORMADA DE FOURIER QUNTICA DISCRETA

Im
j=2
j=1
j=3
2
7

j=0
Re

j=4
j=6
j=5

Figura 4.3: Desenho dos vetores e2ij/7 (j = 0, ..., 6) no plano complexo.


A soma desses vetores zero por argumentos de simetria. Este um
exemplo da equao (4.9) para N = 7, k = 1.

Invertendo a ordem do somatrio, temos

2t
t
2X
1
r 1
X
2ija
t
1

1

|4 i =
e 2t /r e2ijb0 /2 |ji xb0 .

r j=0 2t /r a=0

(4.10)

Usando (4.9), vemos que a expresso nos colchetes diferente de zero, se e somente
se j = k2t /r com k = 0, ..., r 1. Quando j assume tais valores, a expresso nos
colchetes igual a 1. Ento, temos

!
r1
b
1 X 2i k b0 k2t
x 0 .
r
e
(4.11)
|4 i =

r
r
k=0

Para acharmos r, a expresso |4 i tem duas vantagens sobre a expresso |3 i


(equao (4.6)): r est no denominador do ket e o parmetro aleatrio b0 foi movido
do ket para o expoente, ocupando agora um lugar inofensivo. A Figura 4.4 mostra
a distribuio de probabilidades de |4 i medido na base computacional. Medindo
o primeiro registrador, obtemos o valor k0 2t /r, onde k0 pode ser qualquer nmero
entre 0 e r 1, com igual probabilidade (picos na Figura 4.4). Se obtivermos k0 = 0,
no teremos nenhuma informao sobre r, e o algoritmo tem que ser rodado novamente. Se k0 6= 0, dividimos k0 2t /r por 2t , obtendo k0 /r. Nem k0 nem r so
conhecidos. Se k0 coprimo com r, simplesmente selecionamos o denominador.
Se k0 e r tm fator comum, o denominador da frao reduzida k0 /r um fator de
r, mas no o prprio r. Suponha que o denominador r1 . Seja r = r1 r2 . Agora, o
objetivo determinar r2 , que a ordem de xr1 , mdulo N . Rodamos novamente a
parte quntica do algoritmo para achar a ordem de xr1 . Se acharmos r2 na primeira

49

4.4. GENERALIZAO POR MEIO DE UM EXEMPLO

Distribuio de probabilidades

2t
r

1
r

2t
r

22t
r

32t
r

Termos de |4 i
(1 registrador)

Figura 4.4: Distribuio de probabilidades de |4 i medida na base computacional. O eixo horizontal tem 2t pontos; apenas os termos no nulos
so mostrados. O nmero de picos r e o perodo 2t /r.

rodada, o algoritmo pra; caso contrrio, o aplicamos recursivamente. O processo


recursivo no longo, porque o nmero de iteraes menor ou igual a log2 r.
Como exemplo, tome N = 15 que o menor nmero composto no trivial. O
conjunto de nmeros menores que 15 e coprimos com 15 {1, 2, 4, 7, 8, 11, 13, 14}.
Os elementos 4, 11 e 14 tm ordem 2 e os elementos 2, 7, 8 e 13 tm ordem 4.
Portanto, em qualquer caso, r uma potncia de 2 e os fatores de N = 15 podem
ser encontrados num computador quntico com dlog2 15e = 8 q-bits. Os autores
de [23] usam um computador quntico com 7 q-bits, pulando partes do algoritmo
original.

4.4

Generalizao por meio de um Exemplo

Nas sees precedentes, consideramos um caso especial quando a ordem r uma


potncia de 2 e t = n (t o nmero de q-bits no primeiro registrador, veja na
Figura 4.1, e n = dlog2 N e). Nesta seo, consideramos a fatorao de N = 21, que
o prximo nmero composto no trivial depois de N = 15. Devemos escolher t
tal que 2t esteja entre N 2 e 2N 2 , o que sempre possvel [20]. Para N = 21, o
menor valor de t 9. Este o exemplo mais simples permitido pelos vnculos, mas
suficiente para mostrar todas as propriedades do algoritmo de Shor. O primeiro
passo escolher x aleatoriamente, tal que 1 < x < N , e testar se x coprimo com
N . Se no for, encontramos facilmente um fator de N pelo clculo do MDC(x, N ).
Se for, iniciamos a parte quntica do algoritmo. Suponha que x = 2 foi escolhido.
O objetivo encontrar a ordem de x, que r = 6. O computador quntico
inicializado no estado
|0 i = |0i |0i ,

50

4.4. GENERALIZAO POR MEIO DE UM EXEMPLO

onde o primeiro registrador tem t = 9 q-bits e o segundo tem n = 5 q-bits. O


prximo passo a aplicao de H 9 sobre o primeiro registrador, gerando (veja
equao (4.2))
511
1 X
|ji |0i .
|1 i =
512 j=0

Em seguida, aplicando Vx (definido em (4.1)), obtemos


|2 i

=
=

511

1 X 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 expresso acima tem o seguinte padro: o estado do segundo registrador
de cada coluna o mesmo. Portanto, podemos rearranjar os termos de forma a
fatorar o segundo registrador:


1
|0i + |6i + |12i + . . . + |504i + |510i |1i +
|2 i =
512

|1i + |7i + |13i + . . . + |505i + |511i |2i +

|2i + |8i + |14i + . . . + |506i |4i +
(4.12)

|3i + |9i + |15i + . . . + |507i |8i +

|4i + |10i + |16i + . . . + |508i |16i +


|5i + |11i + |17i + . . . + |509i |11i .

Esta caracterstica foi explicitada na equao (4.5). Como a ordem no uma


potncia de 2, aqui existe uma pequena diferena: as primeiras duas linhas da
equao (4.12) tm 86 termos, enquanto o restante delas tem 85.
Agora feita uma medida no primeiro registrador2 , gerando um dos seguintes
nmeros com igual probabilidade: {1, 2, 4, 8, 16, 11}. Suponha que o resultado da
medida seja 2. Ento,
1
|3 i = (|1i + |7i + |13i + . . . + |505i + |511i) |2i .
86

(4.13)

Observe que o estado |3 i foi renormalizado para ser unitrio. No importa o


resultado da medida; o que importa o padro peridico de (4.13). O perodo
2 Como a medida sempre pode ser feita no final do algoritmo (veja [16], p. 186), este passo no
necessrio; serve apenas para simplificar as expresses seguintes.

51

4.4. GENERALIZAO POR MEIO DE UM EXEMPLO

do estado do primeiro registrador a soluo para o problema, e a transformada


de Fourier pode revelar o valor deste perodo. Ento, o prximo passo aplicar a
transformada de Fourier inversa no primeiro registrador de |3 i:
|4 i = DFT (|3 i)

!
85
1 X
|6a + 1i |2i
= DFT
86 a=0
"
#
!
511
85
1 X 2i 6ja 2i j
1 X
512
512 |ji

=
e
|2i ,
e
512 j=0
86 a=0

(4.14)

onde usamos a equao (4.8) e rearranjamos as somas. A ltima equao similar


equao (4.10), mas com uma importante diferena. Na Seo 4.2, assumimos que r
divide 2t . Isto no verdade nesse caso (6 no divide 512); portanto, no podemos
usar a identidade (4.9) para simplificar os termos nos colchetes da equao (4.14).
Esses termos nunca se anulam, mas a contribuio principal ainda em torno de
j = 0, 85, 171, 256, 341, 427, que so obtidos de 512k0 /6 para k0 de 0 at 5 (compare
com a discusso logo aps a equao (4.11)). Para nos convencermos, faamos o
grfico da probabilidade de dar o resultado j (no intervalo de 0 at 511), medindo
o primeiro registrador do estado |4 i. De (4.14), temos que a probabilidade
85
2
X

6ja
1

e2i 512 .
(4.15)
Prob(j) =


512 86
a=0

O grfico da Prob(j) mostrado na Figura 4.5. Vemos os picos em torno de j =


0, 85, 171, 256, 341, 427, indicando alta probabilidade de dar um destes valores, ou
algum valor muito prximo deles. No intervalo entre eles, a probabilidade quase
zero. A largura dos picos depende de t (nmero de q-bits no primeiro registrador).
O limite inferior de 2t N 2 assegura uma alta probabilidade em medir um valor
de j carregando a informao desejada. Uma anlise cuidadosa da expresso (4.15)
feita em [15], e um estudo meticuloso da forma do pico feita em [9].
Vamos analisar os possveis resultados da medida. Se o resultado for j = 0 (primeiro pico), o algoritmo no revela o valor de r. Deve ser executado novamente. Escolhamos x = 2 e executamos novamente a parte quntica do algoritmo. A probabilidade de dar j = 0 baixa: da equao (4.15) temos que Prob(0) = 86/512 0, 167.
Agora suponha que o resultado foi j = 85 (ou qualquer valor no segundo pico). Dividimos por 512, resultando 85/512, que uma aproximao racional de k0 /6, para
k0 = 1. Como podemos obter r de 85/512?
O mtodo de aproximao por fraes contnuas permite-nos extrair a informao desejada. Uma frao contnua de um nmero racional j1 /j2 tem a forma
1
j1
= a0 +
,
j2
a1 + ...+1 1
ap

usualmente representada por [a0 , a1 , ..., ap ], onde a0 um inteiro no-negativo e


a1 , ..., ap so positivos. O q-simo convergente (0 q p) definido como um

PSfrag

52

4.4. GENERALIZAO POR MEIO DE UM EXEMPLO

0.15

0.1

Prob(j)

0.05

0
0

50

100

150

200

250

300

350

400

450

500

Figura 4.5: Grfico de Prob(j) em funo de j. Compare o formato dos


picos deste grfico com o formato dos picos do grfico da Figura 4.4.

nmero racional [a0 , a1 , ..., aq ]. Isto uma aproximao para j1 /j2 e tem o denominador menor que j2 . Este mtodo aplicado facilmente pela inverso da frao,
seguido pela diviso inteira com resto racional. Invertendo 85/512, temos 512/85,
que igual a 6 + 2/85. Repetimos o processo com 2/85 at obtermos o numerador
1. O resultado
85
1
=
1 .
512
6 + 42+
1
2

Assim, os convergentes de 85/512 so 1/6, 42/253 e 85/512. Devemos selecionar


os convergentes que tenham um denominador menor que N = 21 (j que r < N )3 .
Este mtodo fornece 1/6, e ento, r = 6. Checamos que 26 1 mod 21, e a parte
quntica do algoritmo termina com a resposta correta. A ordem r = 6 um nmero
par, portanto MDC(2(6/2) 1, 21) fornece dois fatores no triviais de 21. Um clculo
direto mostra que qualquer resultado no segundo pico (digamos 81 j 89) produz
o convergente 1/6.
Considere agora o terceiro pico, que corresponde a k0 = 2 da frmula k0 /6.
Aplicamos novamente o mtodo de aproximao por fraes contnuas, resultando
em 1/3, para qualquer j no terceiro pico (digamos 167 j 175). Neste caso,
obtemos um fator de r (r1 = 3), j que 23 8 6 1 mod 21. Rodamos a parte
quntica do algoritmo novamente, para achar a ordem de 8. Obteremos r2 = 2.
Logo, r = r1 r2 = 3 2 = 6.
O quarto e quinto picos tambm fornecem fatores de r. O ltimo pico similar
3 A desigualdade r (N ) segue do teorema de Euler: x(N ) 1 mod N , onde x um inteiro
positivo coprimo com N e a funo totiente de Euler ((N ) fornece o nmero de inteiros
positivos menores que N , coprimos com N ). A desigualdade (N ) < N segue da definio de
(veja [24], p. 492).

4.5. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS

53

ao segundo, resultando r diretamente.


A avaliao geral da probabilidade de sucesso a seguinte. A rea abaixo de
todos os picos aproximadamente a mesma: 0, 167. O primeiro e o quarto picos
so diferentes dos outros eles no so espalhados. Para calcular suas contribuies
para a probabilidade total, tomamos a base igual a 1. As reas embaixo do segundo,
terceiro, quinto e ltimo picos so calculadas, adicionando a Prob(j), para j rodando
em torno do centro de cada pico. Ento, em aproximadamente 17% dos casos, o
algoritmo falha (1 pico). Em aproximadamente 33% dos casos, o algoritmo retorna
r de primeira (2 e 6 picos). Em aproximadamente 50% dos casos, o algoritmo
retorna r na segunda rodada ou mais (3 , 4 e 5 picos). Agora, vamos calcular a
probabilidade de achar r na segunda rodada. Para o 3 e 5 picos, o fator restante
r2 = 2. O grfico equivalente para a Figura 4.5, neste caso, tem 2 picos, ento o
algoritmo retorna r2 em 50% dos casos. Para o 4 pico, o fator restante r = 3 e
de
o algoritmo retorna r2 em 66,6% dos casos. Assim, o resultado 250%+66,6%
3
50%, que igual a aproximadamente 22%. Resumindo, a probabilidade de sucesso
para x = 2 em torno de 55%.

4.5

Transformada de Fourier em termos de Portas


Universais

Nas sees precedentes, mostramos que o algoritmo de Shor um algoritmo probabilstico eficiente, assumindo que a transformada de Fourier poderia ser implementada eficientemente. Nesta seo, decompomos a transformada de Fourier em
termos de portas universais: CNOT e portas de 1 q-bit. Esta decomposio permite avaliarmos o custo computacional (complexidade) da transformada discreta de
Fourier e mostra como implement-la em um computador quntico real.
A transformada de Fourier dos estados da base computacional
N 1
1 X 2ijk/N
DFT(|ji) =
e
|ki .
N k=0

(4.16)

Notando que o lado direito da equao (4.16) tem N termos e a base computacional tem N estados, temos que o custo computacional do clculo da transformada
de Fourier clssica dos estados da base computacional, usando a equao (4.16),
O(N 2 ) = O(22n ) 4 . Um resultado muito importante em Computao foi o desenvolvimento da transformada de Fourier rpida (FFT), que reduz o custo computacional
para O(n2n ) [6]. No nosso contexto, mais conveniente mostrar esse ganho na complexidade, notando que o lado direito da equao (4.16) um tipo muito especial
de expanso, que pode ser totalmente fatorado. Por exemplo, a transformada de
4 O(N 2 ) significa que o custo proporcional a N 2 . Essa notao til no clculo do custo
computacional de algoritmos. Para maiores detalhes, veja a referncia [17].

4.5. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS

Fourier de {|0i, |1i, |2i, |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

DFT(|2i) =

2
2

 

|0i |1i
|0i i |1i

DFT(|3i) =

.
2
2

54

(4.17)

Note que no exemplo (4.17), estamos usando a base 2 para fatorar o lado direito da
equao (4.16). Agora, vamos fatorar a expresso geral. O primeiro passo escrever
(4.16) na forma
1
1
Pn
X
1 X
e2ij l=1
...
DFT(|ji) =
n
2 k =0 k =0
n

kl
2l

|k1 i . . . |kn i ,

(4.18)

Pn
onde o ket |ki foi convertido para a base 2, e usamos a expanso k = l=1 kl 2nl no
expoente. Considerando que a exponencial da soma o produto das exponenciais,
(4.18) transforma-se em um produto (no-comutativo) dos seguintes kets:
1
1 Y
n 

X
kl
1 X
DFT(|ji) =
...
e2ij 2l |kl i .
2n k =0 k =0 l=1
1

(4.19)

Fatorando (4.19), pela troca da soma pelo produto, obtemos:


1
n

1 Y X  2ij kll
2 |k i
e
.
DFT(|ji) =
l
2n l=1 k =0

(4.20)

Para nos convencermos de que a ltima equao est correta, faamos o clculo
inverso: simplesmente expandimos o produto na equao (4.20) e, ento, colocamos
todos os termos da soma no comeo da expresso resultante para obter (4.19).
Expandindo a soma da equao (4.20) e, ento, o produto, obtemos finalmente
DFT(|ji) =
=

n

l
1 Y

|0i + e2ij/2 |1i


2n l=1
!
!
j
j
|0i + e2i 2 |1i
|0i + e2i 2n |1i

. . .
.
2
2

(4.21)

O custo do clculo da equao (4.21) para um |ji O(n), j que existem n termos
no produto. O custo do clculo da transformada rpida de Fourier clssica de toda
a base computacional ainda exponencial, O(n2n ), j que o clculo feito em cada

4.5. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS

55

um dos 2n elementos da base, um de cada vez. Por outro lado, o computador


quntico usa o paralelismo quntico, e a transformada de Fourier do estado
|i =

n
2X
1

a=0

F (a) |ai ,

que tem um nmero exponencial de termos, calculada com uma nica aplicao da
transformada de Fourier quntica. A transformada de Fourier de 2n elementos da
base calculada simultaneamente. Ento, o custo da transformada de Fourier quntica medida pelo tamanho do circuito. Agora, vamos mostrar que so necessrias
O(n2 ) portas.
|j1 i

|j1 i

|jl1 i

|jl1 i

|jl i

Rn+1l

R2

|i

|jl+1 i

|jl+1 i

|jn i

|jn i

Figura 4.6: Parte do circuito da transformada de Fourier quntica que


atua num q-bit |jl i. O valor de todos os q-bits no muda, exceto |jl i,
2i

que muda para |i =

|0i+e

j
2n+1l |1i

Considere o circuito da Figura 4.6. fcil checar que o valor dos q-bits |jm i,
m 6= l, no muda. Vamos verificar o caso mais difcil: |jl i. As matrizes unitrias
Rk so definidas como


1
0

Rk =
.
0 exp 2i 21k

Cada porta Rk controlada pelo q-bit |jk+l1 i. Se jk+l1 = 0, ento Rk deve ser
trocado pela matriz identidade (sem ao), e se jk+l1 = 1, ento Rk acionada.
Isso significa que, para os clculos propostos, Rk controlado por |jk+l1 i, podendo
ser trocado pela seguinte porta de 1 q-bit:
#
"
1

 0
.
(4.22)
CRk =
0 exp 2i jk+l1
2k
Para simplificarmos os clculos, note que
jl

|0i + e2i 2 |1i

H |jl i =
= CR1 |+i ,
2

(4.23)

56

4.5. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS

onde |+i =

1 (|0i
2

+ |1i). Ento, em vez de usar


|i = CRn+1l . . . CR2 H |jl i ,

que pode ser lido diretamente da Figura 4.6, usaremos


|i = CRn+1l . . . CR2 CR1 |+i .
Definimos
P Rn+1l =

1
Y

(4.24)

CRk ,

k=n+1l

onde o produto est na ordem reversa. Usando (4.22) e (4.24), obtemos




1
1
0

P Rn+1l =
jn
jl
2 0 exp 2i 2n+1l + . . . + 2


1
1
0

=
,
j
2 0 exp 2i 2n+1l

(4.25)

Pn
onde usamos j = m=1 jm 2nm e o fato de que os primeiros l 1 termos desta expanso no contribuem eles so mltiplos inteiros de 2i em (4.25). Finalmente,
obtemos
|i

= P Rn+1l |+i

|+i
|+i

|0i + e2i 2n+1l |1i

.
2

(4.26)

|0i+e

PR n

|0i+e

PR n1

j
2i n
2 |1i

j
2i n1
2
|1i

|+i

|+i
|+i

|0i+e

PR 2
PR 1

j
2i 2
2 |1i

j
2i
2 |1i
|0i+e

Figura 4.7: Circuito intermedirio para a transformada de Fourier quntica. A entrada tomada como |+i, para executar os clculos propostos, como explicado na equao (4.23). A sada tem a ordem inversa da
equao (4.21).

57

4.5. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS

Note que P Rn+1l no pode ser implementado diretamente, atuando apenas no


l-simo q-bit, porque ele precisa dos valores de jl+1 at jn .
O prximo passo o circuito da Figura 4.7. Vamos fundir as portas Rk , usando
a equao (4.24). As portas PR k (k de n at 1) so colocadas em seqncia na
Figura 4.7. Ento, a sada do primeiro q-bit o ltimo termo da equao (4.21),
correspondendo ao do PR n no |1 i, controlado pelos outros q-bits, que no
mudam. O mesmo processo repetido pelo PR n1 atuando em |2 i, gerando o
penltimo termo na equao (4.21), e assim por diante, at reproduzir todos os
termos da transformada de Fourier. Agora, resta-nos inverter a ordem dos estados
dos q-bits.

|i

|i

|i

|i

|i

|i

=
|i

|i

Figura 4.8: Circuito de inverso.

Para inverter os estados de 2 q-bits genricos, usamos o circuito da Figura


4.8. Vamos mostrar por que o circuito funciona como desejado. Tome a entrada
|i |i = |0i |1i. O primeiro CNOT da Figura 4.8 no muda este estado; o CNOT
invertido muda para |1i |1i; e o ltimo CNOT muda para |1i |0i. A sada |i |i.
Se repetirmos o mesmo processo com |0i |0i, |1i |0i e |1i |1i, concluiremos que o circuito inverte todos os estados da base computacional; portanto, inverte um estado
genrico da forma |i |i.
A decomposio no est completa ainda. Resta escrever a porta Rk -controlada
em termos de CNOT e portas de 1 q-bit. Esta decomposio dada na Figura 4.9.
A verificao direta. Basta acompanhar o que acontece na base computacional
{|00i , |01i , |10i , |11i} em ambos os circuitos.

Rk+1

Rk

=
Rk+1

Rk+1

Figura 4.9: Decomposio da porta Rk -controlada em termos de portas


universais.

58

4.5. TRANSFORMADA DE FOURIER EM TERMOS DE PORTAS UNIVERSAIS

|j1 i

j
2i
2 |1i
|0i+e

|j2 i

|0i+e

j
2i 2
2 |1i

DFT com
a sada
inversa
|jn1 i
|jn i

|0i+e

j
2i n1
2
|1i

|0i+e

j
2i n
2 |1i

Figura 4.10: Circuito completo para a transformada de Fourier quntica.

O circuito completo para a transformada de Fourier quntica dado na Figura


4.10. Agora, podemos calcular o custo computacional do circuito quntico da transformada de Fourier. Contando o nmero de portas elementares nas Figuras de 4.6
at 4.9, obtemos o termo dominante 5n2 /2, que implica que o custo O(n2 ).
A essa altura, algum poderia estar se perguntando sobre a decomposio de
Vx em termos de portas elementares. Vx a maior porta da Figura 4.1. Na verdade, Shor declarou no seu artigo [21], em 1997, que Vx o gargalo do algoritmo
quntico de fatorao, devido ao tempo e ao espao consumidos para executar a exponenciao modular (veja [20], p. 10). O gargalo no to estreito, j que, usando
o mtodo clssico conhecido por quadrado repetido e algoritmos de multiplicao
de inteiros (veja [24], p. 69), o custo para calcular exponenciao modular O(n3 ).
O circuito quntico pode ser obtido do circuito clssico, trocando as portas clssicas irreversveis pelas equivalentes reversveis. Vx um problema em chamadas
recursivas do algoritmo, quando x varia. Para cada x, um novo circuito deve ser
construdo, o que incmodo no estgio atual do desenvolvimento da computao
quntica.
Exerccio 4.1 Mostre que a decomposio da Figura 4.9 est correta.
Exerccio 4.2 Faa o circuito da transformada de Fourier para o caso de 3 q-bits.
Exerccio 4.3 Faa o circuito da transformada de Fourier inversa para o caso de
3 q-bits.

Bibliografia
[1] Aharonov, D. Quantum computation. In Annual Reviews of Computational
Physics, D. Stauffer, Ed., vol. VI. World Scientific, Jerusalem, 1998, pp. 178.
(quant-ph/9812037).
[2] Barenco, A., Bennett, C. H., Cleve, R., DiVincenzo, D. P., Margolus, N., Shor, P. W., Sleator, T., Smolin, J. A., and Weinfurter,
H. Elementary gates for quantum computation. Physical Review A A52, 5
(1995), 34573487. (quant-ph/9503016).
[3] Bennett, C. H., Bernstein, E., Brassard, G., and Vazirani, U.
Strengths and weaknesses of quantum computing. SIAM Journal on Computing 26, 5 (1997), 15101523.
[4] Bernstein, E., and Vazirani, U. Quantum complexity theory. SIAM
Journal on Computing 26, 5 (1997), 14111473.
[5] Boyer, M., Brassard, G., Hoyer, P., and Tapp, A. Tight bounds on
quantum searching. Fortschritte der Physik 46, 4-5 (1998), 493506.
[6] Cooley, J., and Tukey, J. An algorithm for machine calculation of complex Fourier series. Math. Comp. 19 (1965), 297301.
[7] Deutsch, D. Quantum theory, the church-turing principle and the universal
quantum computer. In Proceedings of the Royal Society of London. Series A
(London, 1985), vol. 400, Royal Society, pp. 97117.
[8] Deutsch, D., and Jozsa, R. Rapid solution of problems by quantum computation. In Proceedings of the Royal Society of London. Series A (London,
1992), vol. 439, Royal Society, pp. 553558.
[9] Einarsson, G. Probability analysis of a quantum computer.
ph/0303074), unpublished 2003.

(quant-

[10] Ekert, A., and Jozsa, R. Quantum computation and Shors factoring
algorithm. Reviews of Modern Physics 68 (1996), 733753.
[11] Feynman, R. P. Simulating physics with computers. Int. J. Theor. Phys.
21 (1982), 467488.

Bibliografia

60

[12] Grover, L. K. A fast quantum mechanical algorithm for database search.


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

ndice
amplitude, 5, 11
ngulo, 13
base computacional, 5, 11
bit quntico, 5
bra, 12
classe de complexidade, 43
criptografia, 43
dual, 12
emaranhamento, 11, 15
esfera de Bloch, 6, 8
estado, 5
emaranhado, 19
norma, 13
superposto, 19
fator de fase global, 7
fatorao, 43
FFT, 54
ket, 12
mecnica quntica, 5, 8
medida, 5, 11, 16, 18
notao de Dirac, 5
operador, 8
2|ih| I, 41
G, 32, 40
Uf , 24, 25, 29, 41
circuito associado, 16
unitrio, 13, 24
orculo, 23, 41

ordem, 43, 44
paralelismo quntico, 27, 46
porta quntica
/8, 18
CNOT, 19, 20
convenes, 15
fase, 18
H, 17
Hadamard, 17, 24
NOT, 16
Rk , 56
S, 18
T, 18
Toffoli, 20, 21
Toffoli generalizada, 21, 22, 41
X, 16
produto externo
definio, 13
representao matricial, 13
produto interno
definio, 12
representao matricial, 13
produto tensorial
definio, 9
entre matrizes, 10
q-bit, 5
definio, 6
interpretao fsica, 5
representao em R3 , 6, 7
representao em R4 , 6
superposio, 5, 11
transformao linear

NDICE

adjunta, 8
unitria, 8
transformada de Fourier, 47, 48, 56,
59
portas universais, 54
transformada de Fourier inversa, 48
transformada rpida de Fourier, 55

62

Você também pode gostar