Você está na página 1de 91

Notas em Matemtica Aplicada e-ISSN 2236-5915

Volume 08, 2012


Editores
Cassio Machiaveli Oishi
Universidade Estadual Paulista - UNESP
Presidente Prudente, SP, Brasil
Fernando Rodrigo Rafaeli
Universidade Estadual Paulista - UNESP
So Jos do Rio Preto, SP, Brasil
Rosana Sueli da Motta Jafelice (Editor Chefe)
Universidade Federal de Uberlndia - UFU
Uberlndia, MG, Brasil
Rubens de Figueiredo Camargo
Universidade Estadual Paulista - UNESP
Bauru, SP, Brasil
Sezimria de Ftima P. Saramago
Universidade Federal de Uberlndia - UFU
Uberlndia, MG, Brasil
Vanessa Avansini Botta Pirani (Editor Adjunto)
Universidade Estadual Paulista - UNESP
Presidente Prudente, SP, Brasil
Sociedade Brasileira de Matemtica Aplicada e Computacional
2012
A Sociedade Brasileira de Matemtica Aplicada e Computacional
- SBMAC publica, desde as primeiras edies do evento, monograas
dos cursos que so ministrados nos CNMAC.
Para a comemorao dos 25 anos da SBMAC, que ocorreu durante
o XXVI CNMAC em 2003, foi criada a srie Notas em Matemtica
Aplicada para publicar as monograas dos minicursos ministrados
nos CNMAC, o que permaneceu at o XXXIII CNMAC em 2010.
A partir de 2011, a srie passa a publicar, tambm, livros nas reas
de interesse da SBMAC. Os autores que submeterem textos srie
Notas em Matemtica Aplicada devem estar cientes de que podero
ser convidados a ministrarem minicursos nos eventos patrocinados pela
SBMAC, em especial nos CNMAC, sobre assunto a que se refere o
texto.
O livro deve ser preparado em Latex (compatvel com o Mik-
tex verso 2.7), as guras em eps e deve ter entre 80 e 150
pginas. O texto deve ser redigido de forma clara, acompanhado de
uma excelente reviso bibliogrca e de exerccios de vericao
de aprendizagem ao nal de cada captulo.
Veja todos os ttulos publicados nesta srie na pgina
http://www.sbmac.org.br/notas.php
Sociedade Brasileira de Matemtica Aplicada e Computacional
2012
UMA INTRODUO COMPUTAO
QUNTICA
2
a
edio
Renato Portugal
portugal@lncc.br
Laboratrio Nacional de Computao Cientca
Ministrio da Cincia e Tecnologia
Petrpolis, Brasil
Carlile Campos Lavor
clavor@ime.unicamp.br
Departamento de Matemtica Aplicada
Instituto de Matemtica, Estatstica e Computao Cientca
Universidade Estadual de Campinas
Campinas, Brasil
Luiz Mariano Carvalho
luizmc@ime.uerj.br
Departamento de Matemtica Aplicada
Instituto de Matemtica e Estatstica
Universidade do Estado do Rio de Janeiro
Rio de Janeiro, Brasil
Nelson Maculan - UFRJ
maculan@cos.ufrj.br
Programa de Engenharia de Sistemas e Computao
Instituto Alberto Luiz Coimbra de Ps-graduao e Pesquisa de Engenharia -
COPPE
Universidade Federal do Rio de Janeiro
Rio de Janeiro, Brasil
Sociedade Brasileira de Matemtica Aplicada e Computacional
So Carlos - SP, Brasil
2012
Coordenao Editorial: Elbert Einstein Nehrer Macau
Coordenao Editorial da Srie: Rosana Sueli da Motta Jafelice
Editora: SBMAC
Capa: Matheus Botossi Trindade
Patrocnio: SBMAC
Copyright c _2012 by Renato Portugal, Carlile Campos Lavor, Luiz
Mariano Carvalho e Nelson Maculan.
Direitos reservados, 2012 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 IBILCE/UNESP
Bibliotecria: Maria Luiza Fernandes Jardim Froner
Portugal, Renato
Uma Introduo Computao Quntica - So Carlos,
SP : SBMAC, 2012, 91 p., 20.5 cm - (Notas em Matemtica
Aplicada; v. 08) - 2
a
edio
e-ISBN 978-85-86883-61-3
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 - 51
Esta edio em formato e-book uma edio revisada do livro original
do mesmo ttulo publicado em 2004 nesta mesma srie pela SBMAC.
Contedo
1 Conceitos Bsicos 9
1.1 O Computador Clssico . . . . . . . . . . . . . . . . . 9
1.2 O Computador Quntico . . . . . . . . . . . . . . . . . 13
1.2.1 O bit quntico (q-bit) . . . . . . . . . . . . . . 13
1.2.2 Produto tensorial . . . . . . . . . . . . . . . . . 17
1.2.3 Produtos interno e externo . . . . . . . . . . . . 22
Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . 24
2 Circuitos Qunticos 27
2.1 Notao e Convenes . . . . . . . . . . . . . . . . . . 27
2.2 Porta NOT Quntica . . . . . . . . . . . . . . . . . . . 29
2.3 Porta Hadamard . . . . . . . . . . . . . . . . . . . . . 29
2.4 Porta de Fase ou Porta S . . . . . . . . . . . . . . . . 30
2.5 Porta /8 ou Porta T . . . . . . . . . . . . . . . . . . 31
2.6 Porta CNOT Quntica . . . . . . . . . . . . . . . . . . 32
2.7 Porta Tooli Quntica . . . . . . . . . . . . . . . . . . 33
Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . 35
3 Algoritmo de Grover 37
3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Operadores do Algoritmo . . . . . . . . . . . . . . . . . 38
3.3 Custo Computacional do Algoritmo . . . . . . . . . . . 49
3.4 Exemplo: N=8 . . . . . . . . . . . . . . . . . . . . . . 56
3.5 Circuitos Qunticos para o Operador G . . . . . . . . . 59
3.5.1 Circuito quntico para o operador U
f
. . . . . 59
5
6
3.5.2 Circuito quntico para o operador 2[[ I . 60
Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . 61
4 Algoritmo de Shor 63
4.1 Reduo da Fatorao ao Clculo da Ordem . . . . . . 63
4.2 Algoritmo Quntico para o Clculo de Ordem . . . . . 65
4.3 A Transformada de Fourier Quntica Discreta . . . . . 69
4.4 Generalizao por meio de um Exemplo . . . . . . . . . 72
4.5 Transformada de Fourier em termos de Portas Universais 78
Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . 85
Bibliograa 87
Prefcio
Esta uma nova edio em que acrescentamos novos exerccios e ze-
mos algumas correes.
Apresentamos um estudo introdutrio computao quntica. Esse
um domnio recente, uma combinao de 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, faze-
mos uma breve exposio sobre computadores clssicos (Seo 1.1) e
apresentamos os conceitos bsicos usados no texto (Seo 1.2). Com-
paramos, rapidamente, computadores clssicos e qunticos na Seo
1.1 (essa discusso ser mais til para aqueles com algum conheci-
mento 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 se-
ro 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 en-
tanto, o texto tem todas as denies e referncias necessrias para a
compreenso desse algoritmo fundamental.
Existem timos livros e artigos sobre o assunto em lngua inglesa,
7
8
entre os quais podemos destacar [1, 3, 4, 5, 7, 8, 11, 14, 22]. O mais
famoso, j um clssico, o livro de Michael A. Nielsen e Isaac L.
Chuang [16].
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 Mate-
mtica Aplicada e Computacional (SBMAC), do Programa Institutos
do Milnio (Informao Quntica), da FAPERJ, do CNPq e, em par-
ticular, ao Prof. Rubens Sampaio, pelo incentivo.
Rio de Janeiro, 17 de agosto de 2011.
Renato Portugal
Carlile Campos Lavor
Luiz Mariano Carvalho
Nelson Maculan
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, codicado em
zeros e uns, executa clculos e gera uma sada tambm codicada em
zeros e uns. Zeros e uns so estados que podem ser representados
sicamente. 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 dis-
positivo que calcula uma funo f : 0, . . . , N 1 0, . . . , N 1,
onde N = 2
n
(n o nmero de bits usados na memria do compu-
tador). 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 ca-
racteriza 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 im-
plementados sicamente por transistores e outros componentes eletr-
nicos. Os blocos so as portas lgicas AND, OR e NOT, conhecidas
10 Conceitos Bsicos
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 pos-
sveis 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 os, da esquerda para a direita,
ativando as portas lgicas. Os smbolos de medida, direita, represen-
tam 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 o para o bit da posio superior desnecessrio, sendo utilizado
apenas para exibir a mesma quantidade de bits de entrada e sada.
f
bit
0
bit
1
bit
n1
bit
0
bit
1
bit
n1
.
.
.
.
.
.
.
.
.
.
.
.
Figura 1.1: Esquema genrico para um computador clssico.
OR
OR
NOT
NOT
AND
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
O Computador Clssico 11
so irreversveis. Isso signica, 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 trans-
formado 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 adi-
ante, o comportamento bem diferente). A porta CNOT uma porta
NOT, controlada pelo valor do bit superior. Podemos vericar que o
valor do bit inferior de sada dado por a + b (mod 2).
a a
b
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 Tooli (Figura 1.4), que pode ser usada
para obter a contrapartida reversvel da porta AND.
a a
c
c + ab (mod 2)
b
b
Figura 1.4: Porta Tooli.
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
12 Conceitos Bsicos
possveis entradas e as sadas correspondentes:
000 000
001 001
010 010
011 011
100 100
101 101
110 111
111 110
A porta AND pode ser representada por uma porta Tooli colo-
cando 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 os 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). Verique 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 2
n
entradas possveis, e, para cada uma delas,
h tambm 2
n
sadas possveis. Com isso, o nmero de funes que
pode ser obtido (2
n
)
2
n
, ou seja, 2
n2
n
. 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 eciente. Por outro lado, se o nmero
de portas cresce exponencialmente com n, dizemos que o circuito
ineciente. Esse um mtodo grosseiro de medida de ecincia, 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.
O Computador Quntico 13
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 de-
vem usar propriedades qunticas, no disponveis nos computadores
clssicos, como o paralelismo quntico e o emaranhamento.
1.2 O Computador Quntico
1.2.1 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 [0 e
[1, representados por
[0 =
_
1
0
_
e [1 =
_
0
1
_
.
Essa notao, utilizada em mecnica quntica, conhecida por nota-
o de Dirac.
A diferena entre um bit e um q-bit que um q-bit genrico [
pode tambm ser uma combinao linear dos vetores [0 e [1, ou seja,
[ = [0 + [1, (1.2.1)
onde e so nmeros complexos. Note que os vetores [0 e [1
formam uma base ortonormal do espao vetorial C
2
. Essa base cha-
mada de base computacional e o vetor [ chamado de superposio
dos vetores [0 e [1, com amplitudes e . Em mecnica quntica,
vetor tambm chamado de estado. Usaremos os dois termos com o
mesmo signicado.
A interpretao fsica do q-bit, em (1.2.1), que ele est simul-
taneamente nos estados [0 e [1. Isso faz com que a quantidade de
informao que pode ser armazenada no estado [ seja innita. En-
tretanto, essa informao est no nvel quntico. Para torn-la aces-
svel, no nvel clssico, precisamos fazer uma medida. A mecnica
quntica diz que o processo de medida altera o estado de um q-bit,
14 Conceitos Bsicos
fazendo-o assumir o estado [0, com probabilidade [[
2
, ou o estado
[1, com probabilidade [[
2
(isso signica que os valores e no
podem ser conhecidos atravs de uma medida). Com apenas duas
possibilidades, [0 ou [1, temos, ento,
[[
2
+[[
2
= 1. (1.2.2)
Isso signica que a norma do vetor [ vale 1 (vetor unitrio). Resu-
mindo: matematicamente, um q-bit um vetor de norma 1 de C
2
.
Na verdade, a denio da base computacional deveria ser
[0 =
_
(1, 0)
(0, 0)
_
e [1 =
_
(0, 0)
(1, 0)
_
,
pois todas as coordenadas so nmeros complexos. Para simplicar a
notao, usaremos 1 para representar (1,0) e 0 para representar (0,0).
Na equao (1.2.2), considere = a + i b (a, b R) e = c + i d
(c, d R). Como [[
2
= (

a
2
+ b
2
)
2
e [[
2
= (

c
2
+ d
2
)
2
, podemos
escrever
a
2
+ b
2
+ c
2
+ d
2
= 1. (1.2.3)
Nesse caso, podemos interpretar um q-bit como sendo um vetor uni-
trio de R
4
. Entretanto, existe uma representao geomtrica de um
q-bit em R
3
: a esfera de Bloch (Figura 1.5). Para tanto, passemos o
q-bit
[ = [0 + [1, (1.2.4)
de coordenadas cartesianas para coordenadas polares (como anterior-
mente, = a + i b e = c + i d (a, b, c, d R)). Usando as represen-
taes polares de e ,
= [[ exp(i) e = [[ exp(i( + )),
e denindo
cos(/2) = [[ e sen(/2) = [[,
ou ainda
O Computador Quntico 15
= 2 arccos(

a
2
+ b
2
) = 2 arcsen(

c
2
+ d
2
),
= arg() arg(),
= arg(),
(1.2.5)
podemos, nalmente, escrever
[ = exp(i)[cos(/2) [0 + exp(i) sen(/2) [1]. (1.2.6)
Para ns de representao, vamos desconsiderar o termo externo
aos colchetes, exp(i), tambm chamado fator de fase global . Uma
razo que permite essa simplicao 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 compri-
mento do vetor, que sempre igual a um. Esses parmetros podem
ser utilizados para obtermos uma representao polar no R
3
, da forma
_
_
x
y
z
_
_
=
_
_
cos sen
sen sen
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
1
_
_
e [1 =
_
_
0
0
1
_
_
.
Ou seja, [0 ser o plo norte da esfera e [1 ser seu plo sul.
16 Conceitos Bsicos
x
y
z
|0
|1
|

Figura 1.5: Esfera de Bloch.


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
1

2
([0 + [1) e
1

2
([0 [1), que sero utilizados mais
frente, so representados por (1, 0, 0) e (-1, 0, 0), respectivamente.
Insistimos que no se pode calcular exatamente os valores de [[ ou
[[, em (1.2.4), mesmo que haja uma grande quantidade de estados
[ de mesmo valor. Vejamos por qu. Aps serem feitas repetidas
medidas dos estados com valores iguais a [, teremos apenas os resul-
tados [0 ou [1. Atravs da quantidade de [0s e [1s encontrados,
teremos um valor aproximado para os valores [[
2
e [[
2
. No pode-
mos garantir sua exatido, pois trata-se de probabilidades. E mais,
se para sabermos o valor dos coecientes de um simples q-bit, com
uma preciso razovel, precisssemos de um nmero enorme de medi-
das 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 [0 ou [1, no ultrapassaramos os marcos
da computao clssica. Ou seja, apesar da quantidade innita de
O Computador Quntico 17
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 denidas (h outras
denies equivalentes) como aquelas que atendam seguinte propri-
edade:
U

U = UU

= I,
onde U

=(U

)
T
, com indicando a conjugao complexa, e T in-
dicando a transposio matricial. U

denominada transformao
adjunta de U. Desse ponto em diante, faremos referncia indistinta-
mente transformao U e matriz que a representa usando a mesma
notao, salvo indicao explcita. Usaremos, tambm, o termo opera-
dor com esse mesmo signicado. Com isso, quando escrevermos U[,
estaremos falando tanto da aplicao de U, quanto da multiplicao
da matriz U pelo estado [.
Resumindo: temos, ento, duas interaes bsicas de um compu-
tador 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.2 Produto tensorial
Para considerarmos estados com mais de um q-bit, precisamos intro-
duzir o conceito de produto tensorial. H vrios graus de generalidade
para a introduo dessa denio. Usaremos, aqui, a mais simples e
que ser plenamente suciente para os nossos propsitos.
18 Conceitos Bsicos
O produto tensorial de dois estados
[ =
_

2
.
.
.

m
_

_
e [ =
_

2
.
.
.

p
_

_
,
denotado por [ [, tem como resultado o estado [ com mp-
linhas, dado por
[ =
_

2
.
.
.

2
.
.
.

p
.
.
.

2
.
.
.

p
_

_
, (1.2.7)
onde
i

j
o produto usual dos complexos.
Usaremos, tambm, outras notaes mais simplicadas para o pro-
duto tensorial [[. So elas: [[, [, e [. Por exemplo:
[01 = [0 [1 =
_
1
0
_

_
0
1
_
=
_

_
0
1
0
0
_

_
e
[10 = [1 [0 =
_
0
1
_

_
1
0
_
=
_

_
0
0
1
0
_

_
.
O Computador Quntico 19
Note que o produto tensorial no comutativo.
O produto tensorial pode ser estendido para matrizes quaisquer.
Dadas as matrizes A C
mn
e B C
pq
, a matriz AB C
mpnq

denida por
A B =
_

_
A
11
B A
12
B A
1n
B
A
21
B A
22
B A
2n
B
.
.
.
.
.
.
.
.
.
.
.
.
A
m1
B A
m2
B A
mn
B
_

_
, (1.2.8)
onde A
ij
o elemento da linha i e da coluna j de A. De forma mais
precisa, porm mais criptogrca, cada elemento da matriz A B
denido por
(AB)
rs
= A
ij
B
kl
, (1.2.9)
onde r = (i 1)p + k e s = (j 1)q + l, com os ndices variando da
seguinte forma: 1 i m, 1 j n, 1 k p, 1 l q.
Por exemplo, se
A =
_
0 1
1 0
_
e B =
_
_
1 0 0
0 1 0
0 0 1
_
_
,
ento
A B =
_
0 1
1 0
_

_
_
1 0 0
0 1 0
0 0 1
_
_
=
_

_
0 0 0 1 0 0
0 0 0 0 1 0
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, v
1
, v
2
C
n
e
w, w
1
, w
2
C
m
):
1. z([v [w) = (z[v) [w = [v (z[w),
2. ([v
1
+[v
2
) [w = ([v
1
[w) + ([v
2
[w),
20 Conceitos Bsicos
3. [v ([w
1
+[w
2
) = ([v [w
1
) + ([v [w
2
).
Dadas duas transformaes lineares A e B, podemos denir um
novo operador linear, AB, por
(AB)([u [w) = A[u B[w, (1.2.10)
desde que garantidas as dimenses corretas para possibilitar as multi-
plicaes das matrizes pelos vetores.
Ainda, introduzindo mais algumas notaes, diremos que [
n
e
A
n
so os produtos tensoriais de [, por ele prprio n vezes, e de A,
por ela prpria n vezes, respectivamente.
Vejamos, agora, a descrio de um estado genrico [ de 2 q-
bits. Esse ser uma superposio dos estados [00, [01, [10 e [11
(estamos usando a notao simplicada para o produto tensorial entre
dois estados de 1 q-bit), ou seja,
[ = [00 + [01 + [10 + [11, (1.2.11)
onde
[[
2
+[[
2
+[[
2
+[[
2
= 1.
Visando a reduzir a notao, podemos considerar os zeros e uns que
aparecem na equao (1.2.11) como nmeros binrios, e assim,
[00, [01, [10, [11
podem ser abreviados por
[0, [1, [2, [3,
usando a notao decimal. claro que o [0 acima no o mesmo que
aparece na denio de um q-bit, pois tm dimenses diferentes. Em
cada caso, o contexto esclarecer a que situao estamos nos referindo.
Em geral, um estado [ de n q-bits uma superposio de 2
n
estados da base computacional {[0, [1, . . . , [2
n
1}, dada por
[ =
2
n
1

i=0

i
[i,
O Computador Quntico 21
com as amplitudes
i
atendendo a
2
n
1

i=0
[
i
[
2
= 1.
Como havamos comentado anteriormente, a medio do estado
genrico [ produz um resultado [i
0
com probabilidade [
i
0
[
2
, com
0 i
0
2
n
1. Usualmente, a medida realizada q-bit a q-bit, pro-
duzindo zeros e uns que so lidos em conjunto, gerando a sada [i
0
.
Repetiremos, aqui, uma propriedade central do processo de medida. O
estado [, antes da medio, inacessvel, a no ser que ele pertena
base computacional. O procedimento de medida altera inevitavel-
mente [, 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
[.
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
[ = a[0 + b[1
e
[ = c[0 + d[1,
onde a, b, c, d C. O estado denido pelo produto tensorial de [ e
[
[ [ = (a[0 + b[1) (c[0 + d[1)
= ac[00 + ad[01 + bc[10 + bd[11. (1.2.12)
Observe que um estado de 2 q-bits genrico (1.2.11) da forma (1.2.12)
se, e somente se,
= ac,
= ad,
= bc,
= bd.
22 Conceitos Bsicos
Dessas igualdades, temos que

=
c
d
e

=
c
d
.
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 [01 pode, obviamente, ser
descrito como produto tensorial dos estados [0 e [1, isto ,
[01 =
_

_
0
1
0
0
_

_
=
_
1
0
_

_
0
1
_
.
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 denir o produto interno entre os estados [, [ C
n
,
denotado por [, como sendo o produto matricial entre [

e [,
ou seja,
[ = ([)

[ =
n

i=1

i
. (1.2.13)
O estado [

chamado dual de [ e denotado por [ ([ e [ so


denominados ket e bra, respectivamente).
O produto interno satisfaz s seguintes propriedades:
1. [ = [

,
O Computador Quntico 23
2. [(a[u + b[v) = a[u + b[v,
3. [ > 0 (se [ , = 0),
com a, b C e [, [, [u, [v C
n
.
A norma de um estado [ pode, ento, ser denida por
[[ [ [[ =
_
[.
Podemos, tambm, denir o produto externo entre os estados [
C
m
e [ C
n
, denotado por [[, como sendo o produto matricial
de [ por [, ou seja,
[[ = [([)

.
Note que [[ uma matriz de ordem mn.
Como exemplos das denies acima, considere os estados de 1
q-bit
[ = [0 + [1
e
[ = [0 + [1.
Temos, ento,
[ =
_

_
=

,
para o produto interno, e
[[ =
_

_
_


=
_

_
,
para o produto externo.
Usando o produto interno, podemos denir o ngulo entre dois
vetores unitrios [, [ R
n
por
= arccos([). (1.2.14)
Observe que, usando essa denio, [0, ].
24 Conceitos Bsicos
Com os conceitos apresentados at aqui, podemos dar uma repre-
sentao 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.
U
|
1

|
2

|
n
0 ou 1
.
.
.
.
.
.
0 ou 1
0 ou 1
Figura 1.6: Esquema genrico para um computador quntico.
A priori, usando n q-bits, existe a possibilidade de um nmero
innito de operadores unitrios U, representados por matrizes com
2
n
2
n
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.
Exerccios
Exerccio 1.1. Usando as denies dadas em (1.2.5), demonstre que
a expresso (1.2.4) pode ser escrita na forma (1.2.6).
Exerccios 25
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.
Exerccio 1.3. Demonstre as propriedade 1, 2 e 3 do produto tenso-
rial.
Exerccio 1.4. Demonstre as propriedades 1, 2 e 3 do produto in-
terno.
Exerccio 1.5. Demonstre que, dados dois vetores [, [ C
n
,
temos
([[)[ = [[. (1.2.15)
26 Conceitos Bsicos
Captulo 2
Circuitos Qunticos
A representao grca de circuitos clssicos , de certa forma, pr-
xima da realidade fsica do circuito implementado. Por exemplo, linhas
correspondem a os e bifurcaes signicam que a corrente eltrica
passa por ambos os os. Nos circuitos qunticos [2], 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
28 Circuitos Qunticos
um estado emaranhado (os q-bits no devem ser considerados
individualmente).
Linhas horizontais: as linhas que aparecem no so necessariamente
os. Elas representam a evoluo de um q-bit, podendo ser ape-
nas a passagem do tempo ou, por exemplo, o deslocamento de
um fton.
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 smbo-
los 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 [1, a porta
U realiza a operao; caso esteja no estado [0, 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
Porta NOT Quntica 29
de que toda matriz unitria 2 2 pode ser representada por um cir-
cuito 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 re-
presentada 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 genera-
lizao para o caso quntico dada por um operador X que satisfaz
X[0 = [1 e X[1 = [0. (2.2.1)
Com isso, verica-se facilmente que a representao matricial do ope-
rador X dada por
X =
_
0 1
1 0
_
.
Com a porta NOT quntica, temos situaes sem contrapartida no
caso clssico, pois, se a entrada [ for uma superposio dos estados
[0 e [1,
[ = [0 + [1,
a sada ser
X[ = [0 + [1.
A porta X apenas uma da portas de 1 q-bit, j que h innitas
matrizes unitrias 2 2.
2.3 Porta Hadamard
Uma outra porta de 1 q-bit, largamente utilizada, a porta Hadamard
H, denida pelo operador
H =
1

2
_
1 1
1 1
_
. (2.3.2)
30 Circuitos Qunticos
Aplicando H no estado [0, obtemos
H[0 =
1

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

2
([0 +[1)
_

_
1

2
([0 +[1)
_
=
1
2
([00 +[01 +[10 +[11) .
Em notao decimal,
H
2
[00 =
1
2
([0 +[1 +[2 +[3) .
Generalizando para estados com n q-bits, obtemos:
H
n
[0...0 = (H[0)
n
=
_
1

2
([0 +[1)
_
n
=
1

2
n
2
n
1

i=0
[i.
Esse resultado ser importante no algoritmo de Grover (Captulo 3).
2.4 Porta de Fase ou Porta S
A matriz unitria associada porta S
S =
_
1 0
0 i
_
,
Porta /8 ou Porta T 31
onde i a unidade imaginria (i
2
= 1). A porta S pode tambm ser
representada por
S =
_
1 0
0 exp(i/2)
_
,
j que exp(i/2) = cos(/2) + i sen(/2) = i.
Aplicando S em um estado genrico
[ = [0 + [1,
obtemos
S[ = [0 + i[1.
Note que, se for feita uma medida do estado S[, as probabilidades de
se obter os estados [0 ou [1 sero as mesmas, comparadas com uma
medida realizada sobre o estado [. Isso no acontece, por exemplo,
usando a porta H.
2.5 Porta /8 ou Porta T
A matriz unitria associada porta T
T =
_
1 0
0 exp(i/4)
_
,
que poderia ser representada, tambm, na forma
T = exp(i/8)
_
exp(i/8) 0
0 exp(i/8)
_
.
Aplicando T em um estado genrico
[ = [0 + [1,
obtemos
T[ = [0 + exp(i/4)[1.
Tambm, nesse caso, se for feita uma medida do estado T[, as proba-
bilidades de se obter os estados [0 ou [1 sero as mesmas, comparadas
com uma medida realizada sobre o estado [.
32 Circuitos Qunticos
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 [1, e nada faz, se ele estiver no estado [0. Essa descrio
adequada apenas quando o q-bit de controle est nos estados [0 ou
[1. 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,
[00 [00,
[01 [01, (2.6.3)
[10 [11,
[11 [10.
Note que podemos representar essa ao na base computacional de
forma mais esquemtica por
[i, j [i, i j, (2.6.4)
onde i, j 0, 1 e a adio mdulo 2.
Porta Tooli Quntica 33
Para obtermos a matriz U
CNOT
associada porta CNOT, basta
usarmos os valores dados em (2.6.3), isto ,
U
CNOT
_

_
1
0
0
0
_

_
=
_

_
1
0
0
0
_

_
, U
CNOT
_

_
0
1
0
0
_

_
=
_

_
0
1
0
0
_

_
,
U
CNOT
_

_
0
0
1
0
_

_
=
_

_
0
0
0
1
_

_
, U
CNOT
_

_
0
0
0
1
_

_
=
_

_
0
0
1
0
_

_
,
que resulta em
U
CNOT
=
_

_
1 0 0 0
0 1 0 0
0 0 0 1
0 0 1 0
_

_
. (2.6.5)
Um resultado importante sobre circuitos qunticos que qualquer
operador unitrio pode ser representado usando portas CNOT e portas
de 1 q-bit [16].
2.7 Porta Tooli Quntica
A prxima porta a ser considerada a correspondente quntica da
porta Tooli (Figura 1.4). Tambm uma porta controlada, s que
nesse caso, com dois q-bits de controle (Figura 2.3). Sua ao na base
computacional associada pode ser representada por
[i, j, k [i, j, k ij,
onde i, j, k 0, 1 e a adio mdulo 2. Observe que, nesse
caso, a base computacional possui 8 elementos.
34 Circuitos Qunticos
Figura 2.3: Porta Tooli quntica.
A porta Tooli usada para simplicar 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]).
H
T

T T
T
H
S
Figura 2.4: Decomposio da porta Tooli em portas de 1 q-bit e portas CNOT.
Para simplicar ainda mais a representao de circuitos qunticos,
temos tambm a porta Tooli generalizada (Figura 2.5), que ser uti-
lizada nos captulos seguintes.
Exerccios 35
n 1
q-bits de
controle

q-bit alvo

.
.
.
Figura 2.5: Porta Tooli generalizada.
A decomposio da porta Tooli generalizada, em termos de portas
Tooli simples, mostrada na Figura 2.6. Os n2 q-bits de trabalho
so q-bits extras, cujas entradas so conhecidas antecipadamente. So
utilizados para simplicar a decomposio.
n 1
q-bits
de
controle

n 2
q-bits
de
trabalho

q-bit
alvo

|0
|0
|0
|0
|0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Figura 2.6: Porta Tooli generalizada decomposta em portas Tooli simples.
Exerccios
Exerccio 2.1. Demonstre que X um operador unitrio.
36 Circuitos Qunticos
Exerccio 2.2. Demonstre que H um operador unitrio.
Exerccio 2.3. Aplique o operador H em um estado superposto qual-
quer e interprete o resultado.
Exerccio 2.4. Demonstre que U
CNOT
um operador unitrio.
Exerccio 2.5. D um exemplo de estado emaranhado produzido pela
porta CNOT.
Exerccio 2.6. Demonstre que a matriz U
CNOT
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.
Exerccio 2.8. Exiba a matriz associada porta Tooli quntica.
Exerccio 2.9. Analise se a matriz associada porta Tooli quntica
pode ser representada pelo produto tensorial de matrizes quadradas de
dimenses diferentes de 1 1.
Exerccio 2.10. Faa a evoluo dos estados da base computacional,
na representao da porta Tooli da Figura 2.4.
Exerccio 2.11. Analise as sadas da porta Tooli generalizada (Fi-
gura 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 especco 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 de testes neces-
srios para a identicao 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 = 2
n
para
algum nmero natural n, e que a funo
f : 0, 1, ..., N 1 0, 1,
denida por
f(i) =
_
1, se i = i
0
,
0, se i ,= i
0
,
(3.1.1)
ser utilizada para o reconhecimento do elemento procurado i
0
(assu-
miremos que existe um nico elemento i 0, 1, ..., N 1 tal que
f(i) = 1). Dessa forma, o custo computacional para resolver o pro-
blema est associado ao nmero de vezes que a funo f deve ser
utilizada. Imagine a funo f como sendo um orculo que est
38 Algoritmo de Grover
disposio para informar se um dado elemento ou no o elemento
procurado.
O algoritmo de Grover utiliza dois registradores qunticos (Fi-
gura 3.1): o primeiro, com n q-bits, inicializado no estado [0...0, e
o segundo, com 1 q-bit, inicializado no estado [1. O primeiro regis-
trador est relacionado aos elementos da lista onde ser feita a busca,
enquanto que o segundo um registrador que ter um papel funda-
mental, como veremos. A cada elemento i da lista 0, 1, ..., N 1,
associaremos o estado [i de n q-bits.
3.2 Operadores do Algoritmo
Antes da execuo propriamente dita do algoritmo, o primeiro regis-
trador alterado para formar uma superposio de todos os estados
associados aos elementos da lista. Isso pode ser obtido aplicando o
operador Hadamard H (2.3.2) em cada q-bit do primeiro registrador
(Figura 3.1).
|
|1
|0
|0
G
| | |
| |
G
|
G
2 |
G
k
H
H
H
G G

primeiro
registrador
(n q-bits)
segundo
registrador
(1 q-bit)

. . .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Figura 3.1: Esquema genrico para o algoritmo de Grover (G um operador unitrio que
ser denido mais adiante).
A superposio obtida ser denotada por [, ou seja,
[ =
1

N
N1

i=0
[i. (3.2.2)
Observe que aplicando n vezes o operador H, obtemos uma superpo-
sio de N = 2
n
estados com mesma amplitude.
Operadores do Algoritmo 39
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 [, temos:
[ = H[1 =
1

2
([0 [1). (3.2.3)
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.1), utilizada para a
identicao do elemento procurado, imaginemos, ento, um operador
linear U
f
que transforme [i em [f(i), onde [i o estado de n q-bits
do primeiro registrador. Como U
f
deve ser unitrio, a entrada e a
sada de U
f
devem ter a mesma dimenso. Considere, ento,
[i[0
U
f
[i[f(i), (3.2.4)
onde, na entrada e na sada, o primeiro registrador tem n q-bits e
o segundo apenas 1 q-bit. Usando (3.2.4), temos:
U
f
([i[0) =
_
[i[1, se i = i
0
,
[i[0, se i ,= i
0
.
(3.2.5)
Ou seja, o operador U
f
altera o estado do segundo registrador quando
o primeiro registrador representa o elemento procurado. Para comple-
tar a denio, precisamos denir o valor de U
f
([i[1). Mantendo a
mesma idia, denimos:
U
f
([i[1) =
_
[i[0, se i = i
0
,
[i[1, se i ,= i
0
.
(3.2.6)
Com isso, U
f
ca bem denido, pois, sendo um operador linear, basta
deni-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
[0[0, [0[1, [1[0, [1[1, [2[0, [2[1, [3[0, [3[1,
40 Algoritmo de Grover
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
_

_
,
_

_
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.2.5) e (3.2.6)
de uma nica maneira, isto ,
U
f
([i[j) = [i[j f(i), (3.2.7)
onde [i o estado de n q-bits do primeiro registrador, com i
0, 1, . . . , N 1, [j o estado de 1 q-bit do segundo registrador
(j 0, 1) e a soma mdulo 2. Note que U
f
C
(2
n+1
2
n+1
)
.
O operador U
f
foi denido para simular quanticamente o papel da
funo f (3.1.1). Para identicar o elemento procurado i
0
, bastaria
aplicar U
f
em cada estado associado aos elementos da lista e manter o
segundo registrador no estado [0 ou [1. Quando o estado do segundo
registrador fosse alterado, saberamos que o elemento buscado teria
sido encontrado. Neste caso, o estado do primeiro registrador seria
[i
0
. 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 U
f
em estados superpostos. Vejamos.
O prximo passo do algoritmo aplicar o operador U
f
sobre o
estado [[, resultante da inicializao (Figura 3.2). Ou seja,
U
f
([[) = U
f
__
1

N
N1

i=0
[i
_
[
_
.
Operadores do Algoritmo 41
|1
|0
|0
U
f
|
|
.
.
.
.
.
.
.
.
.
H
H
H
Figura 3.2: Aplicao do operador U
f
sobre o estado ||.
Usando a distributividade do produto tensorial em relao adio
de vetores,
U
f
([[) = U
f
_
1

N
N1

i=0
[i[
_
.
Da linearidade do operador U
f
,
U
f
([[) =
1

N
N1

i=0
U
f
([i[) .
Substituindo a denio do estado [, dada em (3.2.3), na expresso
acima, obtemos:
U
f
([[) =
1

N
N1

i=0
U
f
_
[i
_
1

2
([0 [1)
__
=
1

N
N1

i=0
U
f
_
1

2
([i[0 [i[1)
_
.
Novamente, da linearidade de U
f
,
U
f
([[) =
1

N
N1

i=0
1

2
(U
f
([i[0) U
f
([i[1)) .
42 Algoritmo de Grover
Da denio de U
f
, em (3.2.7), temos:
U
f
([[) =
1

N
N1

i=0
1

2
([i[f(i) [i[1 f(i))
=
1

N
N1

i=0
1

2
([i ([f(i) [1 f(i))) . (3.2.8)
Da denio de f, em (3.1.1),
[i ([f(i) [1 f(i)) =
_
[i ([1 [0) , se i = i
0
,
[i ([0 [1) , se i ,= i
0
.
(3.2.9)
Substituindo a expresso anterior em (3.2.8), temos:
U
f
([[) =
1

N
_
N1

i=0,i=i
0
_
1

2
([i ([0 [1))
_
+
1

2
([i
0
([1 [0))
_
.
Novamente, da denio de [,
U
f
([[) =
1

N
__
N1

i=0,i=i
0
[i[
_
[i
0
[
_
=
1

N
_
N1

i=0
(1)
f(i)
[i[
_
.
Ou ainda,
U
f
([[) =
_
1

N
N1

i=0
(1)
f(i)
[i
_
[. (3.2.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
1

N
para
1

N
.
Operadores do Algoritmo 43
Aps a aplicao do operador U
f
, 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 U
f
(este
fenmeno conhecido como paralelismo quntico [16]), o estado asso-
ciado ao elemento procurado foi identicado como sendo o nico que
teve sua amplitude alterada. No entanto, essa informao s est dis-
ponvel quanticamente. No adiantaria fazer uma medida do primeiro
registrador, pois a probabilidade de se obter o elemento procurado

2
=
1
N
.
Antes de prosseguirmos, consideremos a seguinte questo: a aplica-
o do operador U
f
sobre um estado qualquer, no primeiro registrador,
ainda mantm o segundo registrador no estado [? Vejamos.
Seja [i, um estado qualquer da base computacional [0, [1, ..., [N
1. Usando as denies do operador U
f
e do estado [, temos:
U
f
([i[) = U
f
_
[i
_
1

2
([0 [1)
__
= U
f
_
1

2
([i[0 [i[1)
_
=
1

2
(U
f
([i[0) U
f
([i[1))
=
1

2
([i[f(i) [i[1 f(i)) .
Da mesma forma que zemos no clculo de U
f
([[), obtemos:
U
f
([i[) = (1)
f(i)
[i[.
Ou seja,
U
f
([i[) =
_
[i[, se i = i
0
,
[i[, se i ,= i
0
.
(3.2.11)
44 Algoritmo de Grover
Usando este resultado e aplicando U
f
sobre um vetor unitrio qualquer
[v =
N1

i=0,i=i
0

i
[i +
i
0
[i
0
,
gerado pelos elementos da base computacional [0, [1, ..., [N1, no
primeiro registrador, e mantendo o estado [, no segundo registrador,
temos:
U
f
__
N1

i=0,i=i
0

i
[i +
i
0
[i
0

_
[
_
= U
f
_
N1

i=0,i=i
0

i
[i[ +
i
0
[i
0
[
_
=
N1

i=0,i=i
0

i
U
f
([i[) +
i
0
U
f
([i
0
[)
=
N1

i=0,i=i
0

i
[i[
i
0
[i
0
[
=
_
N1

i=0,i=i
0

i
[i
i
0
[i
0

_
[. (3.2.12)
Concluso: a aplicao de U
f
sobre o estado [v[ no altera o estado
do segundo registrador. Portanto, para simplicar os clculos, sempre
que o estado do segundo registrador for [, como o caso no algoritmo
de Grover, omitiremos o segundo registrador. importante destacar
que o estado [ fundamental no processo de marcao do elemento
procurado.
Voltemos ao algoritmo. Com o elemento a ser buscado j identi-
cado 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
, isto
,
[
1
=
1

N
N1

i=0
(1)
f(i)
[i. (3.2.13)
Operadores do Algoritmo 45
Olhando com mais cuidado o resultado da aplicao de U
f
sobre o
estado [v[, em (3.2.12), podemos obter uma interpretao geom-
trica do efeito do operador U
f
sobre o primeiro registrador: a aplica-
o de U
f
sobre um vetor unitrio qualquer gerado pelos elementos da
base computacional [0, [1, ..., [N 1 resulta numa reexo desse
vetor em relao ao subespao ortogonal a [i
0
, gerado por todos os
outros elementos da base computacional. Para visualizar esse resul-
tado, podemos considerar essa reexo como uma reexo em relao
projeo de [v sobre o subespao ortogonal a [i
0
. Considerando o
vetor unitrio na direo dessa projeo, denotado por [u, temos:
[u =
1

N 1
N1

i=0,i=i
0
[i. (3.2.14)
Para completar a visualizao, calculemos os ngulos entre [ e
[i
0
e entre [u e [i
0
. Usando o produto interno, temos:
[i
0
=
1

N
N1

i=0
i[i
0
=
1

N
i
0
[i
0
=
1

N
(3.2.15)
e
u[i
0
=
1

N 1
N1

i=0,i=i
0
i[i
0
= 0. (3.2.16)
Ou seja, o ngulo entre [ e [i
0
menor do que /2 rad (se N
grande, o ngulo quase /2 rad) e o ngulo entre [u e [i
0
exata-
mente /2 rad. Usando os resultados (3.2.15), (3.2.16) e a expresso
dada em (3.5.35), podemos, nalmente, obter uma representao ge-
omtrica para a ao do operador U
f
sobre o estado [, dada na
Figura 3.3.
Induzidos por essa representao, poderamos, ento, reetir o vetor
[
1
em relao ao vetor [, para aumentar a amplitude do elemento
procurado [i
0
, em relao sua amplitude no estado [ (Figura 3.4).
46 Algoritmo de Grover
|
|i
0

|u
|
1
= U
f
|
Figura 3.3: Ao de U
f
sobre o estado |.
Uma observao importante: como todas as amplitudes dos esta-
dos envolvidos no algoritmo de Grover so nmeros reais, o produto
interno sempre resultar em um nmero real. Isso possibilita a com-
parao entre ngulos de dois pares de estados quaisquer. A partir de
agora, teremos em mente esse fato.
A projeo de [
1
sobre [ dada por [
1
[. Motivados pelo
losango abaixo (Figura 3.5), vemos que o vetor resultante da reexo
de [
1
em relao a [ pode ser descrito como
(2[
1
) [ [
1
. (3.2.17)
Operadores do Algoritmo 47
|
|i
0

|
1
= U
f
|
Figura 3.4: Reexo de |1 em relao a |.
|
1

|
1

|
1
|
2|
1
| |
1

Figura 3.5: Reexo de |1 em relao a |.


O que desejamos obter um novo operador que produza essa ree-
xo. Usando a propriedade (1.2.15), podemos reescrever a expresso
48 Algoritmo de Grover
acima, obtendo:
(2[
1
) [ [
1
= (2[[) [
1
[
1
= (2[[ I) [
1
.
Ou seja, o operador que procuramos
2[[ I, (3.2.18)
onde I o operador identidade.
O estado resultante do primeiro registrador, aps a aplicao do
operador U
f
, em (3.2.13), pode ser reescrito como
[
1
= [
2

N
[i
0
, (3.2.19)
onde
[ =
1

N
N1

i=0
[i (3.2.20)
e i
0
o elemento procurado. Denotando por [
G
(Figura 3.6), o
estado resultante da aplicao do operador 2[[ I sobre [
1
, e
usando (3.2.19), obtemos:
[
G
= (2[[ I) [
1

= (2[[ I)
_
[
2

N
[i
0

_
= (2[) [
_
4

N
[i
0

_
[ [ +
2

N
[i
0
. (3.2.21)
Substituindo (3.2.15) em (3.2.21), temos:
[
G
=
N 4
N
[ +
2

N
[i
0
. (3.2.22)
Esse , ento, o estado do primeiro registrador aps a aplicao dos
operadores U
f
e 2[[ I (o estado do segundo registrador perma-
nece inalterado). A composio desses dois operadores chamada de
operador de Grover G, isto ,
G = ((2[[ I) I) U
f
. (3.2.23)
Custo Computacional do Algoritmo 49
O segundo operador identidade aparece, porque o operador 2[[I
aplicado apenas no primeiro registrador (Figura 3.6).
|1
|0
|0
U
f
|
| |
1

|
.
.
.
.
.
.
.
.
.
2|| I
|
G

.
.
.
.
.
.
H
H
H
Figura 3.6: Uma aplicao do operador de Grover (G).
De (3.2.22), obtemos a amplitude do estado [i
0
, aps a primeira
aplicao do operador G:
_
N 4
N
__
1

N
_
+
2

N
=
_
3N 4
N

N
_
.
Por exemplo, para N = 4, a probabilidade de se obter o elemento
procurado, aps uma medida do estado [, em (3.2.20), 25%. J a
probabilidade de se obter o elemento procurado, aps uma medida do
estado [
G
, em (3.2.22), 100%. No 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 [i
0
aumentada, em relao sua amplitude no estado [.
E se aplicarmos novamente o operador G sobre o estado [
G
[? A
interpretao geomtrica dos operadores U
f
e 2[[ 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
50 Algoritmo de Grover
do estado [i
0
. 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 G
k
(k N) pro-
duz um rotao de [ em direo a [i
0
, de k rad, no subespao
gerado pelos vetores [ e [i
0
, onde o ngulo entre [ e G[
(Figura 3.7). Para facilitar a leitura, dividiremos a demostrao em
4 proposies. A Proposio 1 diz que G
k
[ pertence ao subespao
gerado por [ e [i
0
, para todo k N. A Proposio 2 estabelece que
o ngulo entre G
k
[ e G
k+1
[ tambm , para todo k N. Na
Proposio 3, demonstramos que G rotaciona [ em direo a [i
0
.
Finalmente, na Proposio 4, provamos que o sentido da rotao pro-
duzida quando G aplicado sobre G
k
[, para todo k N, o mesmo
obtido quando G aplicado sobre [. O subespao gerado por [ e
[i
0
ser denotado por e o estado do primeiro registrador de G
k
[
ser denotado por [
G
k. O estado do segundo registrador ([) ser
omitido, pois ele constante durante todo o processo.
|
|i
0

G|
G
2
|
G
3
|

Figura 3.7: Efeito da aplicao do operador G.


Lema 3.1. G
n
[ , para todo n N.
Demonstrao. A demonstrao por induo. De (3.2.22), sabemos
Custo Computacional do Algoritmo 51
que
G[ =
N 4
N
[ +
2

N
[i
0
. (3.3.24)
Com isso, temos o resultado para n = 1. Suponhamos que, para um
dado k N,
G
k
[ .
Isto , existem , R tais que
G
k
[ = [ + [i
0
. (3.3.25)
Temos que provar que
G
k+1
[ .
Aplicando o operador G nos dois lados de (3.3.25), obtemos:
G
k+1
[ = G[ + G[i
0
. (3.3.26)
J sabemos que G[ . Calculemos G[i
0
. Da denio de G, em
(3.2.23), temos:
G[i
0
= (2[[ I) U
f
[i
0
. (3.3.27)
De (3.2.11),
U
f
[i
0
= [i
0
. (3.3.28)
Substituindo (3.3.28) em (3.3.27) e usando (3.2.15), obtemos:
G[i
0
= (2[[ I) ([i
0
)
= 2[i
0
[ +[i
0

=
2

N
[ +[i
0
. (3.3.29)
Ou seja, G[i
0
. Como os estados G[ e G[i
0
pertencem a , de
(3.3.26), conclumos que
G
k+1
[ ,
que naliza a induo.
Lema 3.2. O ngulo entre G
k
[ e G
k+1
[ rad, para todo k N.
52 Algoritmo de Grover
Demonstrao. Usando a denio de ngulo entre dois vetores, dada
no Captulo 1, p. 23, o enunciado deste lema torna-se equivalente a

G
k[
G
k+1 = cos , k N.
Reescrevendo, temos

G
k[
G
k+1 =
G
k[G
k
[
G

= (G
k
)

G
k[
G
.
Usando o fato de que
(G
k
)

[
G
k = (G
k
)

G
k
[ = [,
obtemos, para todo k N,

G
k [
G
k+1 = [
G

= cos ,
como queramos demonstrar.
Lema 3.3. O operador G rotaciona [ em direo a [i
0
.
Demonstrao. Inicialmente, calculemos o ngulo entre os vetores
[ e G[. De (3.2.15) e (3.2.22), temos:
cos = [
G

=
N 4
N
[ +
2

N
[i
0

=
N 4
N
+
2

N
_
1

N
_
=
N 2
N
. (3.3.30)
Calculemos, agora, o ngulo entre G[ e [i
0
. De (3.2.15) e (3.3.24),
Custo Computacional do Algoritmo 53
temos:

G
[i
0
=
N 4
N
[i
0
+
2

N
i
0
[i
0

=
N 4
N

N
+
2

N
=
3N 4
N

N
.
Para uma lista com 2 elementos (N = 2), o algoritmo de Grover no
funciona (d uma justicativa para isso). Vamos supor, ento, que
N > 2. Neste caso,
3N 4
N

N
>
1

N
,
ou melhor,

G
[i
0
> [i
0
.
Como a funo arccos decrescente no intervalo [1, 1], a desigual-
dade acima equivalente a
arccos(
G
[i
0
) < arccos([i
0
).
Da Proposio 1, [
G
e, de (3.3.30), sabemos que a rotao
produzida por G , no mximo, de /2 rad. Portanto, usando a desi-
gualdade acima, a nica possibilidade que a rotao de [ seja em
direo a [i
0
.
Lema 3.4. A aplicao de G sobre [
G
n, para todo n N, mantm
o mesmo sentido de rotao quando G aplicado sobre [.
Demonstrao. Pelas Proposies 1, 2 e 3, j sabemos que, quando
aplicamos o operador G sobre o estado [
G
n, temos apenas duas pos-
sibilidades: G(G
n
[) um estado resultante de uma rotao de
rad, em , no sentido horrio ou anti-horrio. Se demonstrarmos que,
para todo n N,
G(G
n
[) ,= G
n1
[,
54 Algoritmo de Grover
poderemos concluir que a rotao mantm o mesmo sentido quando
G aplicado sobre [. A demonstrao ser, portanto, por induo.
Inicialmente, mostremos que
G
_
G
1
[
_
,= G
0
[,
ou seja,
G[
G
, = [.
Usando (3.3.24) e (3.3.29), podemos calcular G[
G
:
G[
G
= G
_
N 4
N
[ +
2

N
[i
0

_
=
N 4
N
G[ +
2

N
G[i
0

=
N 4
N
_
N 4
N
[ +
2

N
[i
0

_
+
2

N
_

N
[ +[i
0

_
=
_
N 4
N
_
2
[ +
2N 8
N

N
[i
0

4
N
[ +
2

N
[i
0

=
_
_
N 4
N
_
2

4
N
_
[ +
4N 8
N

N
[i
0
.
Para N > 2, este estado diferente de [. Suponhamos agora que,
para um dado k N,
G
_
G
k
[
_
,= G
k1
[.
Como G um operador unitrio, podemos aplic-lo nos dois lados da
expresso acima e ainda obter estados distintos, isto ,
G
_
G
k+1
[
_
,= G
k
[.
Isso conclui a induo (d um exemplo mostrando que a concluso da
induo s possvel, porque G um operador unitrio).
Concluso: a aplicao de G
k
sobre [ produz uma rotao de k
rad em direo a [i
0
, no subespao gerado por [ e [i
0
, para todo
k N.
Custo Computacional do Algoritmo 55
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 que o estado G
k
[ torne-se o mais prximo
do estado [i
0
. Dito de outra forma, queremos saber que valor de
k faz com que o ngulo entre [i
0
e G
k
[ 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:
arccos([i
0
) k = 0. (3.3.31)
|
G
k
|
G|
G
k1
|

G
2
|
|i
0

Figura 3.8: Aplicaes sucessivas do operador G.


De (3.3.30), j sabemos que o ngulo entre [ e G[
= arccos
_
N 2
N
_
. (3.3.32)
Substituindo (3.2.15) e (3.3.32) em (3.3.31), obtemos:
arccos
_
1

N
_
k arccos
_
N 2
N
_
= 0.
56 Algoritmo de Grover
Isolando k, temos:
k =
arccos
_
1

N
_
arccos
_
N2
N
_. (3.3.33)
Para sabermos a ordem de grandeza de k, inicialmente, compare-
mos k com N. Calculando o limite, temos:
lim
N
k
N
= 0.
Ou seja, k menor do que N, para valores grandes de N. Calcule-
mos, ento, o seguinte:
lim
N
k
log
2
(N)
= .
Neste caso, k maior do que log
2
(N), para valores grandes de N.
Tentando um valor intermedirio, obtemos:
lim
N
k

N
=

4
.
Isso signica que, para valores sucientemente grandes de N, o n-
mero 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 ele-
mentos.
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.3.33), obtemos:
k =
arccos
_
1

8
_
arccos
_
82
8
_

= 1, 67.
Exemplo: N=8 57
Para que o estado resultante da ltima aplicao de G esteja o mais
prximo de [i
0
, devemos aplicar 2 vezes o operador G (Figura 3.9).
A idia arredondar o valor de k para o inteiro mais prximo.
| |1
|0
|0
|0
U
f
2|| I
|
U
f
2|| I
| |
| |1 |G |2
|
G
2
G
G
1
1
0
H
H
H
H
Figura 3.9: Duas aplicaes do operador G, para N = 8 e i0 = 101.
Antes da aplicao de G, o algoritmo cria uma superposio [
formada por todos os elementos da base computacional associada ao
problema. Isso obtido aplicando o operador H (2.3.2) sobre cada
q-bit do estado inicial ([000) do primeiro registrador, isto ,
[ = H[0 H[0 H[0
=
_
1

2
([0 +[1)
_

_
1

2
([0 +[1)
_

_
1

2
([0 +[1)
_
=
1

8
([000 +[001 +[010 +[011 +[100 +[101 +[110 +[111) .
Em notao decimal, temos:
[ =
1

8
([0 +[1 +[2 +[3 +[4 +[5 +[6 +[7) .
Supondo que o elemento procurado seja
[i
0
= [101 = [5,
58 Algoritmo de Grover
o prximo passo aplicar o operador U
f
sobre o estado [[. O
elemento procurado , ento, o nico que tem sua amplitude alterada:
[
1
[ = U
f
([[)
=
_
[0 +[1 +[2 +[3 +[4 [5 +[6 +[7

8
_
[.
Em seguida, o operador 2[[ I aplicado sobre o estado [
1
,
produzindo o estado [
G
:
[
G
= (2[[ I) [
1

= (2[
1
) [ [
1

=
3
2
[ [
1

=
1
2

8
([0 +[1 +[2 + [3 +[4 +[6 +[7) +
5
2

8
[5.
Se medirmos este estado, a probabilidade de se obter o elemento pro-
curado
_
5
2

8
_
2

= 78, 12%.
Entretanto, j sabemos que devemos aplicar 2 vezes o operador G.
Aplicando o operador U
f
sobre o estado [
G
[, obtemos:
[
2
[ = U
f
([
G
[)
=
_
1
2

8
([0 +[1 +[2 +[3 +[4 +[6 +[7)
5
2

8
[5
_
[.
Novamente, o elemento procurado o nico que tem sua amplitude
alterada. Aplicando o operador 2[[ I sobre [
2
, temos:
[
G
2 = (2[[ I) [
2

= (2[
2
) [ [
2

=
1
4
[ [
2

=
_
1
4

8
([0 +[1 +[2 + [3 +[4 +[6 +[7) +
11
4

8
[5
_
.
Circuitos Qunticos para o Operador G 59
|
|i
0

|u
|
1

|
G

|
2

|
G
2
Figura 3.10: Duas aplicaes do operador G, para N = 8 e i0 = 101.
Fazendo uma medida do estado [
G
2, obtemos o elemento procu-
rado com probabilidade de
_
11
4

8
_
2

= 94, 53%.
Na Figura 3.10, representamos geometricamente os passos do algo-
ritmo resultantes de duas aplicaes do operador G.
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.
3.5.1 Circuito quntico para o operador U
f
Recordemos que a funo f (3.1.1) age como um orculo para identi-
car o elemento procurado i
0
. De forma similar, o operador U
f
tambm
pode ser imaginado como um orculo. Nesse sentido, ele um opera-
dor diferente do operador 2[[ I, pois deve ser preparado para a
60 Algoritmo de Grover
identicao do estado [i
0
. O operador U
f
pode ser representado por
uma porta Tooli generalizada com n q-bits de controle, 1 q-bit alvo
no estado [ e 2 portas X atuando no i-simo q-bit de controle, sem-
pre que o i-simo dgito binrio de i
0
for 0. Por exemplo, o circuito
quntico para o operador U
f
, usado no exemplo dado na Seo 3.4
(n = 3 e i
0
= 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.
| |
X X
Figura 3.11: Circuito quntico para o operador U
f
(n = 3 e i0 = 101).
3.5.2 Circuito quntico para o operador 2[[ I
Consideremos, agora, a decomposio do operador 2[[I. Usando
[ = H
n
[0 e [ = 0[(H
n
)

,
temos, ento,
2[[ I = 2H
n
([00[)(H
n
)

I
= H
n
(2[00[)(H
n
)

H
n
(H
n
)

= H
n
(2[00[ I)(H
n
)

= H
n
(2[00[ I)H
n
. (3.5.34)
Observe que H
n
uma matriz simtrica com apenas entradas reais.
Portanto, (H
n
)

= H
n
.
A equao (3.5.34) mostra que, para obtermos o circuito quntico
do operador 2[[ I, basta considerarmos o operador 2[00[ I.
Exerccios 61
Esse operador faz uma reexo em relao ao estado [0. O circuito
para esse operador dado na Figura 3.12. Na Tabela 3.1, represen-
tamos a ao desse operador sobre o estado [0.
n
q-bits

|
0
|
1
|
2

iI iI X X
X
X
H H X X
X
X
|
3
|
4
|
5

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Figura 3.12: Circuito quntico para o operador 2|00| I.
Observe que a nica porta que atua nos n q-bits ao mesmo tempo,
na Figura 3.12, a porta Tooli generalizada (Figura 2.5).
Um ponto importante que ainda no foi discutido o custo compu-
tacional associado a cada operador que compe G. Pode-se demons-
trar que esse custo proporcional a log
2
N (ver [16]). No captulo
seguinte, trataremos em detalhes essa questo, considerando o algo-
ritmo de Shor.
[
0
[
1
[
2
[
3
[
4
[
5

[0 [1 i[1 i[1 (-i i )[1 [0


[0 [1 [1 [1 [1 [0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
[0 [1 [1 [1 [1 [0
[0 [1 [ -[ [1 [0
Tabela 3.1: Ao do operador 2|00| I no estado |0 da base computacional.
62 Algoritmo de Grover
Exerccios
Exerccio 3.1. Exiba a matriz que representa U
f
.
Exerccio 3.2. Demonstre que U
f
um operador unitrio.
Exerccio 3.3. Verique o que acontece se, ao aplicarmos o operador
U
f
, o estado do segundo registrador no for o estado [.
Exerccio 3.4. Demonstre que [u pode ser representado por:
[u =

N 1
[
1

N 1
[i
0
. (3.5.35)
Exerccio 3.5. Demonstre que G um operador unitrio.
Exerccio 3.6. Calcule os trs limites da pgina 56.
Exerccio 3.7. Usando a Figura 3.10, d uma explicao para os
sinais das amplitudes da superposio dada em [
G
2.
Exerccio 3.8. Demonstre que o produto tensorial de matrizes sim-
tricas uma matriz simtrica.
Exerccio 3.9. Teste a ao do circuito da Figura 3.12 em outros es-
tados da base computacional para perceber que, para qualquer entrada
[j, com 0 < j < N, a sada ser sempre -[j.
Captulo 4
Algoritmo de Shor
4.1 Reduo da Fatorao ao Clculo da Ordem
Nesse captulo 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 n-
mero 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 criptograa. Embora N seja grande,
o nmero de q-bits necessrio para guard-lo pequeno: log
2
N. Em
geral, log
2
N no um inteiro, ento denimos
n = log
2
N,
onde log
2
N o menor inteiro maior ou igual a log
2
N.
Um computador quntico com n q-bits pode guardar N ou qualquer
outro inteiro positivo menor que N na memria. 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 T [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
64 Algoritmo de Shor
possuem fatores comuns, ento o MDC(x, N) fornece um fator de N;
portanto, suciente investigar o caso quando x coprimo com N. A
ordem de x, mdulo N, o menor inteiro positivo r, tal que
x
r
1 mod N.
Se r for par, podemos denir y como sendo
x
r/2
y mod N.
A notao acima signica que y o resto da diviso de x
r/2
por N e,
pela denio, 0 y < N. Note que y satisfaz y
2
1 mod N, ou
equivalentemente, (y 1)(y + 1) 0 mod N, o que signica que N
divide (y1)(y+1). Se 1 < y < N1, os fatores y1 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
2
4
16 mod 21
2
5
11 mod 21
2
6
11 2 1 mod 21
mostra que a ordem de 2, mdulo 21, r = 6. Portanto, y 2
3

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 caremos sabendo que x coprimo com N. Neste ltimo caso, se x
satiszer as condies (1) a ordem r par, e (2) 0 < y1 < 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 eciente conhecido. Se N for par,
Algoritmo Quntico para o Clculo de Ordem 65
podemos continuar dividindo por 2 at o resultado passar a ser mpar.
Resta-nos 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/2
k1
, 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 eciente para achar um fator de N. Isto no verdade, j
que no so conhecidos algoritmos clssicos ecientes para calcular a
ordem de um inteiro x mdulo N. Por outro lado, existe (depois do
trabalho de Shor) um algoritmo quntico eciente. 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. V
x
um operador linear
unitrio dado por
V
x
([j [k) = [j

k + x
j
_
, (4.2.1)
onde [j e [k so os estados do primeiro e segundo registrador, res-
pectivamente. As operaes aritmticas so feitas mdulo N, assim
0 k +x
j
< N. O operador DFT (Discrete Fourier Transform) ser
descrito mais adiante.
O primeiro registrador possui t q-bits, onde t deve ser escolhido
de forma que N
2
2
t
2N
2
, por razes que caro claras mais
adiante [20]. Se a ordem uma potncia de 2, ento suciente 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
at
[
5
na Figura 4.1. O estado inicial
[
0
= [0 . . . 0
. .
t
[0 . . . 0
. .
n
.
66 Algoritmo de Shor
H
H
{
{
V
x
DFT

|0
|0
|0
|0
1

registrador
(t q-bits)
2

registrador
(n q-bits)
|
0
|
1
|
2
|
3
|
4
|
5

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


positivo x mdulo N.
A aplicao do operador Hadamard
H =
1

2
_
1 1
1 1
_
,
em cada q-bit do primeiro registrador, resulta em
[
1
=
1

2
t
2
t
1

j=0
[j [0 . (4.2.2)
O primeiro registrador est em uma superposio de todos os estados
da base computacional com igual amplitude dada por
1

2
t
. Agora,
note o que acontece quando aplicamos V
x
em [
1
:
[
2
= V
x
[
1

=
1

2
t
2
t
1

j=0
V
x
([j [0)
=
1

2
t
2
t
1

j=0
[j

x
j
_
. (4.2.3)
Algoritmo Quntico para o Clculo de Ordem 67
O estado [
2
interessante, pois, j que V
x
linear, ele atua simul-
taneamente em todos os termos [j [0 para 2
t
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
[0 [1 , [r [1 , [2r [1 , ,

_
2
t
r
1
_
r
_
[1 . (4.2.4)
Isto explica a escolha de (4.2.1) para V
x
. Classicamente, poderamos
calcular sucessivamente x
j
, para j comeando de 2 at chegarmos a
j = r. Quanticamente, pode-se calcular todas as potncias de x com
uma nica aplicao de V
x
. No nvel quntico, todos os valores de j
que produzem x
j
1 mod N so conhecidos. Mas esta informao
no est totalmente disponvel no nvel clssico. Uma informao cls-
sica 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.2.3) possuem igual amplitude. A pri-
meira parte da estratgia para determinar r observar que o primeiro
registrador dos estados (4.2.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
, fatorando os termos
iguais do segundo registrador. Como x
j
uma funo peridica com
perodo r, vamos substituir j por ar + b na equao (4.2.3), onde
0 a (2
t
/r) 1 e 0 b r 1. Lembre-se que supomos que t = n
e r uma potncia de 2, portanto r divide 2
t
. A equao (4.2.3)
convertida em
[
2
=
1

2
t
r1

b=0
_
_
_
2
t
r
1

a=0
[ar + b
_
_
_

x
b
_
. (4.2.5)
No segundo registrador, substitumos x
b
por x
ar+b
, j que x
r
1 mod
N. Agora, o segundo registrador medido. Qualquer resultado x
0
,
x
1
, ..., x
r1
pode ser obtido com igual probabilidade. Suponha que o
68 Algoritmo de Shor
resultado x
b
0
. O estado do computador quntico agora
[
3
=
_
r
2
t
_
_
_
2
t
r
1

a=0
[ar + b
0

_
_
_

x
b
0
_
. (4.2.6)
Note que depois da medida, a constante renormalizada para
_
r/2
t
,
j que existem 2
t
/r termos na soma (4.2.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 [b
0
,
[r + b
0
, [2r + b
0
, ..., [2
t
r + b
0
.
{
0
b
0
r + b
0
2r + b
0 3r + b
0
r
2
t
r
Distribuio de probabilidades
Termos de |
3

(1

registrador)
Figura 4.2: Distribuio de probabilidades de |3 medido na base
computacional (para o caso b0 = 3 and r = 8). O eixo horizontal tem
2
t
pontos, o nmero de picos 2
t
/r e o perodo r.
Como podemos descobrir o perodo de uma funo ecientemente?
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 trans-
formada de Fourier a segunda e ltima parte da estratgia usada
por Shor. Todo o mtodo depende de um algoritmo quntico eciente
para calcular a transformada de Fourier, que no est disponvel clas-
sicamente. Na Seo 4.5, mostraremos que a transformada de Fourier
A Transformada de Fourier Quntica Discreta 69
calculada ecientemente 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 denida por

F(k) =
1

N
N1

j=0
e
2ijk/N
F(j). (4.3.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 [k da base computacional [0 , . . . , [N 1
DFT([k) = [
k
=
1

N
N1

j=0
e
2ijk/N
[j , (4.3.8)
onde o conjunto [
k
: k = 0, . . . , N 1 forma uma nova base or-
tonormal. A transformada de Fourier um operador linear unitrio;
portanto, se sabemos como ele atua nos estados da base computacio-
nal, tambm sabemos como ele atua num estado genrico
[ =
N1

a=0
F(a) [a .
A transformada de Fourier de [ pode ser obtida atravs de (4.3.7)
ou (4.3.8). No resto do trabalho, vamos usar a ltima forma.
Para provar que [
k
: k = 0, . . . , N 1 uma base ortonormal,
i.e.,

k
[
k
=
k

k
,
podemos usar a identidade
1
N
N1

j=0
e
2ijk/N
=
_
1, se k um mltiplo de N
0, caso contrrio,
(4.3.9)
70 Algoritmo de Shor
que til no contexto da transformada de Fourier. fcil vericar
que (4.3.9) verdadeira. Se k um mltiplo de N, ento e
2ijk/N
= 1,
justicando o primeiro caso da identidade. Se k no um mltiplo
de N, (4.3.9) verdade, mesmo se N no for uma potncia de 2. A
Figura 4.3 mostra cada termo e
2ijk/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 denir a transformada de
Fourier inversa, que similar a (4.3.8), porm com um sinal de menos
no expoente. Note que DFT
1
= 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 pro-
cesso de clculo da Figura 4.1.
Estamos prontos para achar o prximo estado do computador qun-
tico: [
4
. Aplicando a transformada de Fourier inversa no primeiro
registrador, usando a equao (4.3.8) e a linearidade da DFT

, obte-
mos
[
4
= DFT

([
3
)
=
_
r
2
t
2
t
r
1

a=0
_
1

2
t
2
t
1

j=0
e
2ij(ar+b
0
)/2
t
[j
_

x
b
0
_
.
Invertendo a ordem do somatrio, temos
[
4
=
1

r
_
_
_
2
t
1

j=0
_

_
1
2
t
/r
2
t
r
1

a=0
e
2ija
2
t
/r
_

_
e
2ijb
0
/2
t
[j
_
_
_

x
b
0
_
. (4.3.10)
Usando (4.3.9), vemos que a expresso nos colchetes diferente de
zero, se e somente se j = k2
t
/r com k = 0, ..., r 1. Quando j assume
tais valores, a expresso nos colchetes igual a 1. Ento, temos
[
4
=
1

r
_
r1

k=0
e
2i
k
r
b
0

k2
t
r
_
_

x
b
0
_
. (4.3.11)
A Transformada de Fourier Quntica Discreta 71
2
7
Re
Im
j = 0
j = 1
j = 2
j = 3
j = 4
j = 5
j = 6
Figura 4.3: Desenho dos vetores e
2ij/7
(j = 0, ..., 6) no plano com-
plexo. A soma desses vetores zero por argumentos de simetria. Este
um exemplo da equao (4.3.9) para N = 7, k = 1.
Para acharmos r, a expresso [
4
tem duas vantagens sobre a expres-
so [
3
(equao (4.2.6)): r est no denominador do ket e o parmetro
aleatrio b
0
foi movido do ket para o expoente, ocupando agora um lu-
gar inofensivo. A Figura 4.4 mostra a distribuio de probabilidades
de [
4
medido na base computacional. Medindo o primeiro registra-
dor, obtemos o valor k
0
2
t
/r, onde k
0
pode ser qualquer nmero entre
0 e r 1, com igual probabilidade (picos na Figura 4.4). Se obtiver-
mos k
0
= 0, no teremos nenhuma informao sobre r, e o algoritmo
tem que ser rodado novamente. Se k
0
,= 0, dividimos k
0
2
t
/r por 2
t
,
obtendo k
0
/r. Nem k
0
nem r so conhecidos. Se k
0
coprimo com r,
simplesmente selecionamos o denominador.
Se k
0
e r tm fator comum, o denominador da frao reduzida k
0
/r
um fator de r, mas no o prprio r. Suponha que o denominador
r
1
. Seja r = r
1
r
2
. Agora, o objetivo determinar r
2
, que a
ordem de x
r
1
, mdulo N. Rodamos novamente a parte quntica do
algoritmo para achar a ordem de x
r
1
. Se acharmos r
2
na primeira
rodada, o algoritmo pra; caso contrrio, o aplicamos recursivamente.
O processo recursivo no longo, porque o nmero de iteraes
menor ou igual a log
2
r.
72 Algoritmo de Shor
{
0
2
t
r
22
t
r
32
t
r
1
r
2
t
r
Distribuio de probabilidades
Termos de |
4

(1

registrador)
Figura 4.4: Distribuio de probabilidades de |4 medida na base
computacional. O eixo horizontal tem 2
t
pontos, apenas os termos no
nulos so mostrados. O nmero de picos r e o perodo 2
t
/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 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 or-
dem r uma potncia de 2 e t = n (t o nmero de q-bits no primeiro
registrador, veja na Figura 4.1, e n = log
2
N). Nesta seo, conside-
ramos a fatorao de N = 21, que o prximo nmero composto no
trivial depois de N = 15. Devemos escolher t tal que 2
t
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
suciente para mostrar todas as propriedades do algoritmo de Shor.
Generalizao por meio de um Exemplo 73
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
= [0 [0 ,
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.2))
[
1
=
1

512
511

j=0
[j [0 .
Em seguida, aplicando V
x
(denido em (4.2.1)), obtemos
[
2
=
1

512
511

j=0
[j

2
j
mod N
_
=
1

512
_
[0 [1 +[1 [2 +[2 [4 +[3 [8 + [4 [16 + [5 [11 +
[6 [1 +[7 [2 +[8 [4 +[9 [8 +[10 [16 +[11 [11 +
[12 [1 + . . .
_
.
Note que a expresso acima tem o seguinte padro: o estado do se-
gundo registrador de cada coluna o mesmo. Portanto, podemos
74 Algoritmo de Shor
rearranjar os termos de forma a fatorar o segundo registrador:
[
2
=
1

512
_
_
[0 + [6 +[12 + . . . +[504 +[510
_
[1 +
_
[1 + [7 +[13 + . . . +[505 +[511
_
[2 +
_
[2 + [8 +[14 + . . . +[506
_
[4 + (4.4.12)
_
[3 + [9 +[15 + . . . +[507
_
[8 +
_
[4 +[10 +[16 + . . . +[508
_
[16 +
_
[5 + [11 +[17 + . . . +[509
_
[11
_
.
Esta caracterstica foi explicitada na equao (4.2.5). Como a ordem
no uma potncia de 2, aqui existe uma pequena diferena: as pri-
meiras duas linhas da equao (4.4.12) tm 86 termos, enquanto o
restante delas tem 85.
Agora feita uma medida no primeiro registrador
1
, gerando um dos
seguintes nmeros com igual probabilidade: 1, 2, 4, 8, 16, 11. Supo-
nha que o resultado da medida seja 2. Ento,
[
3
=
1

86
([1 +[7 +[13 + . . . +[505 +[511) [2 . (4.4.13)
Observe que o estado [
3
foi renormalizado para ser unitrio. No
importa o resultado da medida; o que importa o padro peridico de
(4.4.13). O perodo 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
1
Como a medida sempre pode ser feita no nal do algoritmo (veja [16], p. 186), este passo
no necessrio, serve apenas para simplicar as expresses seguintes.
Generalizao por meio de um Exemplo 75
inversa no primeiro registrador de [
3
:
[
4
= DFT

([
3
)
= DFT

_
1

86
85

a=0
[6a + 1
_
[2
=
1

512
511

j=0
__
1

86
85

a=0
e
2i
6ja
512
_
e
2i
j
512
[j
_
[2 , (4.4.14)
onde usamos a equao (4.3.8) e rearranjamos as somas. A ltima
equao similar equao (4.3.10), mas com uma importante dife-
rena. Na Seo 4.2, assumimos que r divide 2
t
. Isto no verdade
nesse caso (6 no divide 512); portanto, no podemos usar a identidade
(4.3.9) para simplicar os termos nos colchetes da equao (4.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 512k
0
/6
para k
0
de 0 at 5 (compare com a discusso logo aps a equao
(4.3.11)). Para nos convencermos, faamos o grco da probabilidade
de dar o resultado j (no intervalo de 0 at 511), medindo o primeiro
registrador do estado [
4
. De (4.4.14), temos que a probabilidade
Prob(j) =
1
512 86

85

a=0
e
2i
6ja
512

2
. (4.4.15)
O grco 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 2
t
N
2
assegura uma alta probabilidade em medir um
valor de j carregando a informao desejada. Uma anlise cuidadosa
da expresso (4.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
76 Algoritmo de Shor
0
0.05
0.1
0.15
0 50 100 150 200 250 300 350 400 450 500
P
S
f
r
a
g
Prob(j)
j
Figura 4.5: Grco de Prob(j) em funo de j. Compare o
formato dos picos deste grco com o formato dos picos do
grco da Figura 4.4.
a parte quntica do algoritmo. A probabilidade de dar j = 0 baixa:
da equao (4.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 k
0
/6, para k
0
= 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
j
1
/j
2
tem a forma
j
1
j
2
= a
0
+
1
a
1
+
1
...+
1
ap
,
usualmente representada por [a
0
, a
1
, ..., a
p
], onde a
0
um inteiro no-
negativo e a
1
, ..., a
p
so positivos. O q-simo convergente (0 q
p) denido como um nmero racional [a
0
, a
1
, ..., a
q
]. Isto uma
aproximao para j
1
/j
2
e tem o denominador menor que j
2
. Este
mtodo aplicado facilmente pela inverso da frao, seguido pela
diviso inteira com resto racional. Invertendo 85/512, temos 512/85,
Generalizao por meio de um Exemplo 77
que igual a 6 + 2/85. Repetimos o processo com 2/85 at obtermos
o numerador 1. O resultado
85
512
=
1
6 +
1
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)
2
. Este mtodo fornece 1/6, e ento, r = 6.
Checamos que 2
6
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 k
0
= 2 da fr-
mula k
0
/6. Aplicamos novamente o mtodo de aproximao por fra-
es contnuas, resultando em 1/3, para qualquer j no terceiro pico
(digamos 167 j 175). Neste caso, obtemos um fator de r (r
1
= 3),
j que 2
3
8 , 1 mod 21. Rodamos a parte quntica do algoritmo
novamente, para achar a ordem de 8. Obteremos r
2
= 2. Logo,
r = r
1
r
2
= 3 2 = 6.
O quarto e quinto picos tambm fornecem fatores de r. O ltimo
pico similar 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 to-
tal, tomamos a base igual a 1. As reas embaixo do segundo, terceiro,
quinto e ltimo picos so calculadas, adicionando a Prob(j), para j ro-
dando 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 apro-
ximadamente 50% dos casos, o algoritmo retorna r na segunda rodada
2
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 denio de
(veja [24], p. 492).
78 Algoritmo de Shor
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


r
2
= 2. O grco equivalente para a Figura 4.5, neste caso, tem 2
picos, ento o algoritmo retorna r
2
em 50% dos casos. Para o 4

pico,
o fator restante r = 3 e o algoritmo retorna r
2
em 66,6% dos casos.
Assim, o resultado
250%+66,6%
3
de 50%, que igual a aproximada-
mente 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 eciente, assumindo que a transformada de
Fourier poderia ser implementada ecientemente. Nesta seo, de-
compomos 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
DFT([j) =
1

N
N1

k=0
e
2ijk/N
[k . (4.5.16)
Notando que o lado direito da equao (4.5.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.5.16), O(N
2
) = O(2
2n
)
3
. Um
resultado muito importante em Computao foi o desenvolvimento da
transformada de Fourier rpida (FFT), que reduz o custo computaci-
onal para O(n2
n
) [6]. No nosso contexto, mais conveniente mostrar
esse ganho na complexidade, notando que o lado direito da equao
3
O(N
2
) signica que o custo proporcional a N
2
. Essa notao til no clculo do custo
computacional de algoritmos. Para maiores detalhes, veja a referncia [17].
Transformada de Fourier em termos de Portas Universais 79
(4.5.16) um tipo muito especial de expanso, que pode ser total-
mente fatorado. Por exemplo, a transformada de Fourier de {[0, [1,
[2, [3} pode ser escrita como
DFT([0) =
_
[0 +[1

2
_

_
[0 +[1

2
_
DFT([1) =
_
[0 [1

2
_

_
[0 + i [1

2
_
DFT([2) =
_
[0 +[1

2
_

_
[0 [1

2
_
(4.5.17)
DFT([3) =
_
[0 [1

2
_

_
[0 i [1

2
_
.
Note que no exemplo (4.5.17), estamos usando a base 2 para fatorar
o lado direito da equao (4.5.16). Agora, vamos fatorar a expresso
geral. O primeiro passo escrever (4.5.16) na forma
DFT([j) =
1

2
n
1

k
1
=0
. . .
1

kn=0
e
2ij

n
l=1
k
l
2
l
[k
1
. . . [k
n
, (4.5.18)
onde o ket [k foi convertido para a base 2, e usamos a expanso
k =

n
l=1
k
l
2
nl
no expoente. Considerando que a exponencial da
soma o produto das exponenciais, (4.5.18) transforma-se em um
produto (no-comutativo) dos seguintes kets:
DFT([j) =
1

2
n
1

k
1
=0
. . .
1

kn=0
n

l=1
_
e
2ij
k
l
2
l
[k
l

_
. (4.5.19)
Fatorando (4.5.19), pela troca da soma pelo produto, obtemos:
DFT([j) =
1

2
n
n

l=1
1

k
l
=0
_
e
2ij
k
l
2
l
[k
l

_
. (4.5.20)
Para nos convencermos de que a ltima equao est correta, faamos
o clculo inverso: simplesmente expandimos o produto na equao
80 Algoritmo de Shor
(4.5.20) e, ento, colocamos todos os termos da soma no comeo da
expresso resultante para obter (4.5.19). Expandindo a soma da equa-
o (4.5.20) e, ento, o produto, obtemos nalmente
DFT([j) =
1

2
n
n

l=1
_
[0 + e
2ij/2
l
[1
_
=
_
[0 + e
2i
j
2
[1

2
_
. . .
_
[0 + e
2i
j
2
n
[1

2
_
. (4.5.21)
O custo do clculo da equao (4.5.21) para um [j 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 expo-
nencial, O(n2
n
), j que o clculo feito em cada um dos 2
n
elementos
da base, um de cada vez. Por outro lado, o computador quntico usa
o paralelismo quntico, e a transformada de Fourier do estado
[ =
2
n
1

a=0
F(a) [a ,
que tem um nmero exponencial de termos, calculada com uma nica
aplicao da transformada de Fourier quntica. A transformada de
Fourier de 2
n
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(n
2
) portas.
Considere o circuito da Figura 4.6. fcil checar que o valor dos
q-bits [j
m
, m ,= l, no muda. Vamos vericar o caso mais difcil: [j
l
.
As matrizes unitrias R
k
so denidas como
R
k
=
_
1 0
0 exp
_
2i
1
2
k
_
_
.
Cada porta R
k
controlada pelo q-bit [j
k+l1
. Se j
k+l1
= 0, ento
R
k
deve ser trocado pela matriz identidade (sem ao), e se j
k+l1
= 1,
ento R
k
acionada. Isso signica que, para os clculos propostos, R
k
controlado por [j
k+l1
, podendo ser trocado pela seguinte porta de
Transformada de Fourier em termos de Portas Universais 81
R
2
R
n+1l
H
|j
1
|j
1

|j
l1
|j
l1

|j
l

|j
l+1
|j
l+1

|jn |jn
|
Figura 4.6: Parte do circuito da transformada de Fourier quntica que
atua num q-bit |j
l
. O valor de todos os q-bits no muda, exceto |j
l
,
que muda para | =
|0+e
2i
j
2
n+1l
|1

2
.
1 q-bit:
CR
k
=
_
1 0
0 exp
_
2i
j
k+l1
2
k
_
_
. (4.5.22)
Para simplicarmos os clculos, note que
H[j
l
=
[0 + e
2i
j
l
2
[1

2
= CR
1
[+ , (4.5.23)
onde [+ =
1

2
([0 +[1). Ento, em vez de usar
[ = CR
n+1l
. . . CR
2
H[j
l
,
que pode ser lido diretamente da Figura 4.6, usaremos
[ = CR
n+1l
. . . CR
2
CR
1
[+ .
Denimos
PR
n+1l
=
1

k=n+1l
CR
k
, (4.5.24)
onde o produto est na ordem reversa. Usando (4.5.22) e (4.5.24),
82 Algoritmo de Shor
obtemos
PR
n+1l
=
1

2
_
1 0
0 exp 2i
_
jn
2
n+1l
+ . . . +
j
l
2
_
_
=
1

2
_
1 0
0 exp
_
2i
j
2
n+1l
_
_
, (4.5.25)
onde usamos j =

n
m=1
j
m
2
nm
e o fato de que os primeiros l 1
termos desta expanso no contribuem eles so mltiplos inteiros
de 2i em (4.5.25). Finalmente, obtemos
[ = PR
n+1l
[+
=
[0 + e
2i
j
2
n+1l
[1

2
. (4.5.26)
PR
1
PR
2
PR
n1
PRn
|+
|+
|+
|+
|+
|0+e
2i
j
2
n
|1

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

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

2
|0+e
2i
j
2 |1

2
Figura 4.7: Circuito intermedirio para a transformada de Fourier
quntica. A entrada tomada como |+, para executar os clculos
propostos, como explicado na equao (4.5.23). A sada tem a ordem
inversa da equao (4.5.21).
Note que PR
n+1l
no pode ser implementado diretamente, atu-
ando apenas no l-simo q-bit, porque ele precisa dos valores de j
l+1
at j
n
.
O prximo passo o circuito da Figura 4.7. Vamos fundir as portas
R
k
, usando a equao (4.5.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
Transformada de Fourier em termos de Portas Universais 83
o ltimo termo da equao (4.5.21), correspondendo ao do PR
n
no [
1
, controlado pelos outros q-bits, que no mudam. O mesmo
processo repetido pelo PR
n1
atuando em [
2
, gerando o penltimo
termo na equao (4.5.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.
==
| |
|
|
|
|
| | |
|
|
|
|
|
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 [ [ = [0 [1. O primeiro CNOT da Figura 4.8 no
muda este estado; o CNOT invertido muda para [1 [1; e o ltimo
CNOT muda para [1 [0. A sada [ [. Se repetirmos o mesmo
processo com[0 [0, [1 [0 e [1 [1, concluiremos que o circuito inverte
todos os estados da base computacional; portanto, inverte um estado
genrico da forma [ [.
A decomposio no est completa ainda. Resta escrever a porta
=
R
k
R
k+1
R
k+1
R

k+1
Figura 4.9: Decomposio da porta R
k
-controlada em termos de portas
universais.
84 Algoritmo de Shor
DFT com
a sada
inversa
|j
1

|j
2

|j
n1

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

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

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

2
|0+e
2i
j
2 |1

2
Figura 4.10: Circuito completo para a transformada de Fourier qun-
tica.
R
k
-controlada em termos de CNOT e portas de 1 q-bit. Esta decompo-
sio dada na Figura 4.9. A vericao direta. Basta acompanhar o
que acontece na base computacional [00 , [01 , [10 , [11 em ambos
os circuitos.
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 5n
2
/2, que implica que o custo O(n
2
).
A essa altura, algum poderia estar se perguntando sobre a decom-
posio de V
x
em termos de portas elementares. V
x
a maior porta da
Figura 4.1. Na verdade, Shor declarou no seu artigo [21], em 1997, que
V
x
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 multiplica-
o de inteiros (veja [24], p. 69), o custo para calcular exponenciao
modular O(n
3
). O circuito quntico pode ser obtido do circuito
clssico, trocando as portas clssicas irreversveis pelas equivalentes
reversveis. V
x
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
Exerccios 85
quntica.
Exerccios
Exerccio 4.1. Calcule a ordem de 2 mdulo 15. A partir do resul-
tado, como voc pode determinar os fatores de 15? Tente com outros
inteiros menores do que 15, no lugar do nmero 2.
Exerccio 4.2. Com N = 21, determine todos os inteiros menores do
que N que tm ordem par. Calcule a probabilidade do mtodo descrito
nesta seo fornecer o resultado correto.
Exerccio 4.3. Mostre que o operador descrito em (4.2.1) unitrio.
Exerccio 4.4. Faa todos os clculos da seo 4.2, no caso N = 15 e
x = 2, de forma explcita. Todas as expresses devem ter os respectivos
somatrios expandidos.
Exerccio 4.5. Prove a eq. (4.3.9) usando a srie geomtrica:
1 + r + r
2
+ + r
n1
=
r
n
1
r 1
.
Descubra quem deve ser r e note que, para r = 1, deve-se usar o lado
esquerdo da equao acima.
Exerccio 4.6. Prove que o conjunto [
k
: k = 0, . . . , N 1 uma
base ortonormal onde [
k
dado por (4.3.8).
Exerccio 4.7. Continuando o exerccio 4.4, faa todos os clculos
da seo 4.3, no caso N = 15 e x = 2, de forma explcita. Todas as
expresses devem ter os respectivos somatrios expandidos.
Exerccio 4.8. Use um sistema de computao algbrica para refazer
o grco da eq. (4.4.15).
Exerccio 4.9. Faa todos os clculos da seo 4.4, no caso N = 35
e x = 2. Faa o grco da distribuio de probabilidades e avalie a
chance do algoritmo de Shor encontrar o resultado correto.
86 Algoritmo de Shor
Exerccio 4.10. Expanda as expresses (4.5.17) e mostre que o re-
sultado est de acordo com a frmula (4.5.16). Obtenha as expresses
equivalentes s expresses (4.5.17) no caso N = 8, isto , encontre
a transformada de Fourier de {[0, [1, [2, [3,[4, [5, [6, [7} na
forma fatorada.
Exerccio 4.11. Mostre que a decomposio da Figura 4.9 est cor-
reta.
Exerccio 4.12. Faa o circuito da transformada de Fourier para o
caso de 3 q-bits.
Exerccio 4.13. Faa o circuito da transformada de Fourier inversa
para o caso de 3 q-bits.
Bibliograa
[1] D. Aharonov, Quantum computation. In Annual Reviews of
Computational Physics, D. Stauer, Ed., vol. VI. World Scienti-
c, Jerusalem, 1998, pp. 178. (quant-ph/9812037).
[2] A. Barenco, C. H. Bennett, R. Cleve, D. P. DiVincenzo, N. Mar-
golus, P. W. Shor, T. Sleator, J. A. Smolin, and H. Weinfurter,
Elementary gates for quantum computation. Physical Review A
A52, 5 (1995), 34573487. (quant-ph/9503016).
[3] C. H. Bennett, E. Bernstein, G. Brassard, and U. Vazirani,
Strengths and weaknesses of quantum computing. SIAM Journal
on Computing 26, 5 (1997), 15101523.
[4] E. Bernstein, and U. Vazirani, Quantum complexity theory.
SIAM Journal on Computing 26, 5 (1997), 14111473.
[5] M. Boyer, G. Brassard, P. Hoyer, and A. Tapp, Tight bounds
on quantum searching. Fortschritte der Physik 46, 4-5 (1998),
493506.
[6] J. Cooley, and J. Tukey, An algorithm for machine calculation
of complex Fourier series. Math. Comp. 19 (1965), 297301.
[7] D. Deutsch, 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.
87
88 Bibliograa
[8] D. Deutsch, and R. Jozsa, Rapid solution of problems by quan-
tum computation. In Proceedings of the Royal Society of London.
Series A (London, 1992), vol. 439, Royal Society, pp. 553558.
[9] G. Einarsson, Probability analysis of a quantum computer.
(quant-ph/0303074), unpublished 2003.
[10] A. Ekert, and R. Jozsa, Quantum computation and Shors facto-
ring algorithm. Reviews of Modern Physics 68 (1996), 733753.
[11] R. P. Feynman, Simulating physics with computers. Int. J.
Theor. Phys. 21 (1982), 467488.
[12] L. K. Grover, A fast quantum mechanical algorithm for da-
tabase search. In Proc. 28th Annual ACM Symposium on the
Theory of Computing (1996), pp. 212219. (quant-ph/9605043).
[13] L. K. Grover, Quantum mechanics helps in searching for a nee-
dle in a haystack. Physical Review Letters 79 (1997), 325328.
(quant-ph/9706033).
[14] M. Hirvensalo, Quantum Computing. Springer, New York, 2001.
[15] S. J. Lomonaco, Jr., 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. (quant-ph/0010034).
[16] M. A. Nielsen, and I. L. Chuang, Computao quntica e infor-
mao quntica. Traduo de Ivan S. Oliveira, Bookman, 2005.
[17] C. H. Papadimitriou, Computational Complexity. Addison Wes-
ley Pub. Co., Massachussetts, 1994.
[18] A. O. Pittenger, An Introduction to Quantum Computing Al-
gorithms. Birkhauser, 2000.
[19] J. Preskill, Quantum information and computation. Lecture
Notes, California Institute of Technology, unpublished 1998.
89
[20] P. W. Shor, Algorithms for quantum computation: discrete lo-
garithm and factoring. In Proc. 35th Annual Symposium on
Foundations of Computer Science (1994), pp. 124134.
[21] P. W. Shor, Polynomial-time algorithms for prime factorization
and discrete logarithms on a quantum computer. SIAM Journal
on Computing 26, 5 (1997), 1484 1509.
[22] D. R. Simon, On the power of quantum computation. SIAM
Journal on Computing 26, 5 (1997), 14741483.
[23] L. M. Vandersypen, M. Steen, G. Breyta, C. S. Yannoni, M. H.
Sherwood, and I. L. Chuang, Experimental realization of Shors
quantum factoring algorithm using nuclear magnetic resonance.
Nature 414, 6866 (2001), 883887.
[24] J. von zur Gathen, and J.Gerhard, Modern Computer Algebra.
Cambridge University Press, Cambridge, 1999.
ndice
amplitude, 13, 21
ngulo, 23
base computacional, 13, 20
bit quntico, 13
bra, 22
classe de complexidade, 63
criptograa, 63
dual, 22
emaranhamento, 21, 28
esfera de Bloch, 14, 16
estado, 13
emaranhado, 32
norma, 23
superposto, 32
fator de fase global, 15
fatorao, 63
FFT, 78
ket, 22
mecnica quntica, 13, 17
medida, 13, 21, 28, 31
notao de Dirac, 13
operador, 17
2[[ I, 60
G, 48, 59
U
f
, 39, 40, 45, 59
circuito associado, 29
unitrio, 24, 39
orculo, 37, 59
ordem, 63, 65
paralelismo quntico, 43, 67
porta quntica
/8, 31
CNOT, 32, 33
convenes, 27
fase, 30
H, 29
Hadamard, 29, 38
NOT, 29
R
k
, 80
S, 30
T, 31
Tooli, 33, 34
Tooli generalizada, 34, 35, 60
X, 29
produto externo
denio, 23
representao matricial, 23
produto interno
denio, 22
90
91
representao matricial, 23
produto tensorial
denio, 18
entre matrizes, 19
q-bit, 13
denio, 14
interpretao fsica, 13
representao em R
3
, 14, 15
representao em R
4
, 14
superposio, 13, 20
transformao linear
adjunta, 17
unitria, 17
transformada de Fourier, 6870, 80,
84
portas universais, 78
transformada de Fourier inversa,
70
transformada rpida de Fourier, 80