Escolar Documentos
Profissional Documentos
Cultura Documentos
Editado por
Eliana X.L. de Andrade
Universidade Estadual Paulista - UNESP
So Jos do Rio Preto, SP, Brasil
Rubens Sampaio
Pontifcia Universidade Catlica do Rio de Janeiro
Rio de Janeiro, RJ, Brasil
Geraldo N. Silva
Universidade Estadual Paulista - UNESP
So Jos do Rio Preto, SP, Brasil
iv
vi
Coordenao Editorial: Vra Lucia da Rocha Lopes
Coordenao Editorial da Srie: Geraldo Nunes Silva
Editora: SBMAC
Impresso na Grfica: Epec Grfica
Capa: Matheus Botossi Trindade
Patrocnio: SBMAC
c
Copyright
2004
by Renato Portugal, Carlile Campos Lavor, Luiz Mariano
Carvalho and Nelson Maculan
Direitos reservados, 2004 pela SBMAC. A publicao nesta srie no impede o autor de publicar parte ou a totalidade da obra por outra editora, em qualquer meio,
desde que faa citao edio original.
Prefcio
vii
Contedo
1 Conceitos Bsicos
1.1 O Computador Clssico . . . . . .
1.2 O Computador Quntico . . . . . .
1.2.1 O bit quntico (q-bit) . . .
1.2.2 Produto tensorial . . . . . .
1.2.3 Produtos interno e externo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
4
4
8
11
2 Circuitos Qunticos
2.1 Notao e Convenes . .
2.2 Porta NOT Quntica . . .
2.3 Porta Hadamard . . . . .
2.4 Porta de Fase ou Porta S
2.5 Porta /8 ou Porta T . .
2.6 Porta CNOT Quntica . .
2.7 Porta Toffoli Quntica . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
14
14
15
16
17
17
18
19
3 Algoritmo de Grover
3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Operadores do Algoritmo . . . . . . . . . . . . . . .
3.3 Custo Computacional do Algoritmo . . . . . . . . .
3.4 Exemplo: N=8 . . . . . . . . . . . . . . . . . . . . .
3.5 Circuitos Qunticos para o Operador G . . . . . . .
3.5.1 Circuito quntico para o operador Uf . . . .
3.5.2 Circuito quntico para o operador 2|ih| I
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
23
32
37
39
40
40
. . . . . . .
. . . . . . .
. . . . . .
. . . . . . .
Universais
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
42
42
43
46
49
53
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Algoritmo de Shor
4.1 Reduo da Fatorao ao Clculo de Ordem .
4.2 Algoritmo Quntico para o Clculo de Ordem
4.3 A Transformada de Fourier Quntica Discreta
4.4 Generalizao por meio de um Exemplo . . .
4.5 Transformada de Fourier em termos de Portas
Bibliografia
59
Captulo 1
Conceitos Bsicos
1.1
O Computador Clssico
Um computador clssico pode ser descrito de forma bastante genrica como uma
mquina que l um certo conjunto de dados, codificado em zeros e uns, executa
clculos e gera uma sada tambm codificada em zeros e uns. Zeros e uns so estados
que podem ser representados fisicamente. No caso dos computadores clssicos,
atravs do potencial eltrico: 0 um estado de baixo potencial eltrico e 1 um
estado de alto potencial eltrico.
Zeros e uns formam um nmero binrio que pode ser convertido para a base
decimal. Pensemos, ento, num computador como um dispositivo que calcula uma
funo f : {0, . . . , N 1} {0, . . . , N 1}, onde N = 2n (n o nmero de bits
usados na memria do computador). Sem perda de generalidade, consideremos que
o domnio e a imagem de f so do mesmo tamanho. A cada conjunto de n bits
de entrada, corresponde um nico conjunto de n bits de sada, o que caracteriza
f como uma funo. Representamos o processo de clculo na Figura 1.1, onde
esquerda, temos os bits de entrada e direita, os de sada (o processo de clculo
ocorre da esquerda para a direita).
Em geral, f descrita por blocos elementares que podem ser implementados fisicamente por transistores e outros componentes eletrnicos. Os blocos so as portas
lgicas AND, OR e NOT, conhecidas como portas universais (na verdade, basta
apenas a porta NOT e uma das duas outras portas, OR ou AND). Por exemplo, um
exemplo de circuito que realiza a soma em aritmtica mdulo 2 de dois nmeros,
cada um com um bit, apresentado na Figura 1.2. As entradas possveis so 00,
01, 10 ou 11. As entradas so produzidas atravs de diferenas de potencial eltrico
que geram corrente eltrica. Por sua vez, a corrente se propaga atravs dos fios,
da esquerda para a direita, ativando as portas lgicas. Os smbolos de medida,
direita, representam que medidas de corrente so realizadas, indicando o valor de
cada bit: 0 ou 1. O bit, na posio inferior, d o resultado da operao. O fio
para o bit da posio superior desnecessrio, sendo utilizado apenas para exibir a
mesma quantidade de bits de entrada e sada.
bit0
bit0
bit1
bit1
..
..
.. .
bitn1
bitn1
AND
OR
NOT
OR
NOT
Figura 1.2: Circuito para realizar a soma de dois nmeros, em aritmtica mdulo 2, cada
um com um bit.
a + b (mod 2)
Figura 1.3: Porta CNOT.
c + ab (mod 2)
Figura 1.4: Porta Toffoli.
000
011
100
001
010
101
111
110
A porta AND pode ser representada por uma porta Toffoli colocando c = 0. A
sada do bit inferior ser, ento, a AND b. Para obter o equivalente reversvel para
a porta OR, consulte [16].
Ainda na Figura 1.2, observe que h uma bifurcao de fios e no h problema
algum em faz-lo classicamente. Entretanto, isso no possvel em circuitos qunticos, devido ao teorema de no clonagem (veja [19], p. 162). Verifique que esse
efeito pode ser obtido atravs de uma porta CNOT, colocando b = 0. Com isso, o
valor do bit superior ser duplicado.
Consideremos, novamente, a Figura 1.1. Se o computador tem n bits de entrada,
h 2n entradas possveis, e, para cada uma delas, h tambm 2n sadas possveis.
Com isso, o nmero de funes que pode ser obtido (2n )2 , ou seja, 2n2 . Todas
essas funes podem ser reduzidas a circuitos usando as portas universais [16, 18].
Uma questo fundamental a velocidade com que um computador calcula
essas funes. Isso depender do nmero de portas usadas no circuito que calcula
f . Se o nmero de portas cresce polinomialmente com n, dizemos que o circuito
eficiente. Por outro lado, se o nmero de portas cresce exponencialmente com
n, dizemos que o circuito ineficiente. Esse um mtodo grosseiro de medida de
eficincia, mas til para a anlise terica quando n grande.
Todos os clculos realizados em um computador clssico tambm podem ser
efetuados em computadores qunticos. Basta substituirmos as portas irreversveis
clssicas pelas homlogas reversveis qunticas. Entretanto, o atrativo da computao quntica a possibilidade de se ter algoritmos qunticos mais rpidos que os
clssicos, para uma mesma classe de problemas. Para tanto, os algoritmos qunticos devem usar propriedades qunticas, no disponveis nos computadores clssicos,
como o paralelismo quntico e o emaranhamento.
1.2
1.2.1
O Computador Quntico
O bit quntico (q-bit)
(1.1)
onde e so nmeros complexos. Note que os vetores |0i e |1i formam uma base
ortonormal do espao vetorial C2 . Essa base chamada de base computacional e
o vetor |i chamado de superposio dos vetores |0i e |1i, com amplitudes e
. Em mecnica quntica, vetor tambm chamado de estado. Usaremos os dois
termos com o mesmo significado.
A interpretao fsica do q-bit, em (1.1), que ele est simultaneamente nos
estados |0i e |1i. Isso faz com que a quantidade de informao que pode ser armazenada no estado |i seja infinita. Entretanto, essa informao est no nvel
quntico. Para torn-la acessvel, no nvel clssico, precisamos fazer uma medida.
A mecnica quntica diz que o processo de medida altera o estado de um q-bit,
fazendo-o assumir o estado |0i, com probabilidade ||2 , ou o estado |1i, com probabilidade ||2 (isso significa que os valores e no podem ser conhecidos atravs
de uma medida). Com apenas duas possibilidades, |0i ou |1i, temos, ento,
||2 + ||2 = 1.
(1.2)
Isso significa que a norma do vetor |i vale 1 (vetor unitrio). Resumindo: matematicamente, um q-bit um vetor de norma 1 de C2 .
Na verdade, a definio da base computacional deveria ser
(0, 0)
(1, 0)
,
e |1i =
|0i =
(1, 0)
(0, 0)
pois todas as coordenadas so nmeros complexos. Para simplificar a notao,
usaremos 1 para representar (1,0) e 0 para representar (0,0).
Na equao
(1.2), considere
(1.3)
(1.4)
= || exp(i( + )),
e definindo
ou ainda
cos(/2) = ||
sen(/2) = ||,
p
p
= 2 arccos( a2 + b2 ) = 2 arcsen( c2 + d2 ),
= arg() arg(),
(1.5)
= arg(),
(1.6)
Exerccio 1.1 Usando as definies dadas em (1.5), demonstre que a expresso (1.4)
pode ser escrita na forma (1.6).
x
cos sen
y = sen sen ,
z
cos
onde 0 e 0 < 2.
Usando essas convenes, a representao da base computacional, na esfera de
Bloch (Figura 1.5), ser:
0
0
0
e |1i = 0 .
|0i =
1
1
Ou seja, |0i ser o plo norte da esfera e |1i ser seu plo sul.
|0i
z
|i
|1i
Figura 1.5: Esfera de Bloch.
1.2.2
Produto tensorial
1
1
2
2
|i = . e |i = . ,
..
..
m
denotado por |i |i, tem como resultado o estado |i com mp-linhas, dado por
|i =
1 1
1 2
..
.
1 p
2 1
2 2
..
,
.
2 p
..
m 1
m 2
..
.
m p
(1.7)
0
0
0
1
=
1 .
1
0
0
AB =
(1.8)
,
..
..
..
..
.
.
.
.
Am1 B
Am2 B
Amn B
(1.9)
1 0
0 1
A=
e B= 0 1
1 0
0 0
ento
AB =
0 1
1 0
1 0
0 1
0 0
0 =
0
0
0
1
0
0
0
0
0
0
1
0
0
0 ,
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
10
(1.11)
onde
||2 + ||2 + ||2 + ||2 = 1.
usando a notao decimal. claro que o |0i acima no o mesmo que aparece na
definio de um q-bit, pois tm dimenses diferentes. Em cada caso, o contexto
esclarecer a que situao estamos nos referindo.
Em geral, um estado |i de n q-bits uma superposio de 2n estados da base
computacional {|0i, |1i, . . . , |2n 1i}, dada por
|i =
n
2X
1
i=0
i |ii,
i=0
|i |2 = 1.
11
(1.12)
Observe que um estado de 2 q-bits genrico (1.11) da forma (1.12) se, e somente
se,
= ac,
= ad,
= bc,
= bd.
c
= .
Ou seja,
= .
Logo, um estado de 2 q-bits, em geral, no o produto tensorial de estados de 1
q-bit. Quando isso acontece, dizemos que o estado est emaranhado. Por exemplo,
o estado |01i pode, obviamente, ser descrito como produto tensorial dos estados |0i
e |1i, isto ,
0
1
0
1
|01i = =
1
0
0
0
No entanto, o estado
0
1
1
0
1.2.3
n
X
i i .
(1.13)
i=1
12
1. h|i = h|i ,
2. h|(a|ui + b|vi)i = ah|ui + bh|vi,
3. h|i > 0 (se |i =
6 0),
|ih| = |i(|i) .
|i = |0i + |1i.
Temos, ento,
h|i
= + ,
(1.14)
Usando o produto interno, podemos definir o ngulo entre dois vetores unitrios
|i, |i Rn por
= arccos(h|i).
(1.15)
Observe que, usando essa definio, [0, ].
Com os conceitos apresentados at aqui, podemos dar uma representao para
um computador quntico (Figura 1.6), generalizando o computador clssico, apresentado na Figura 1.1. Os bits de entrada so substitudos por estados de 1 q-bit e
a funo f substituda por um operador unitrio U que, em geral, o resultado
da composio de vrios outros operadores unitrios. O resultado da computao
dado pela medida de cada q-bit de sada.
13
|1 i
0 ou 1
|2 i
0 ou 1
..
|n i
..
0 ou 1
A priori, usando n q-bits, existe a possibilidade de um nmero infinito de operadores unitrios U , representados por matrizes com 2n 2n entradas. Na prtica, h
que se levar os erros em conta, o que diminui o nmero de circuitos implementveis.
Mesmo assim, os graus de liberdade so maiores que no computador clssico. Cada
operador U implementado com portas formando circuitos qunticos, assunto do
prximo captulo.
Captulo 2
Circuitos Qunticos
A representao grfica de circuitos clssicos , de certa forma, prxima da realidade fsica do circuito implementado. Por exemplo, linhas correspondem a fios e
bifurcaes significam que a corrente eltrica passa por ambos os fios. Nos circuitos
qunticos, os fenmenos ocorrem de outra forma, como veremos.
2.1
Notao e Convenes
U
Figura 2.1: Porta quntica U-controlada.
15
2.2
X|1i = |0i.
(2.1)
16
Com a porta NOT quntica, temos situaes sem contrapartida no caso clssico,
pois, se a entrada |i for uma superposio dos estados |0i e |1i,
|i = |0i + |1i,
a sada ser
X|i = |0i + |1i.
A porta X apenas uma da portas de 1 q-bit, j que h infinitas matrizes unitrias
2 2.
2.3
Porta Hadamard
1
H|0i = (|0i + |1i),
2
que uma superposio dos estados |0i e |1i, onde a probabilidade de se obter um
dos estados, ao se fazer uma medida do estado H|0i, a mesma: 50%. Aplicando
o operador H em cada q-bit de um registrador com 2 q-bits no estado |00i, temos:
H 2 |00i
= H|0i H|0i
1
1
(|0i + |1i) (|0i + |1i)
=
2
2
1
(|00i + |01i + |10i + |11i) .
=
2
Em notao decimal,
1
(|0i + |1i + |2i + |3i) .
2
Generalizando para estados com n q-bits, obtemos:
H 2 |00i =
H n |0...0i
(H|0i)n
n
1
(|0i + |1i)
=
2
N 1
1 X
|ii.
=
2n i=0
17
2.4
0
i
onde i a unidade imaginria (i2 = 1). A porta S pode tambm ser representada
por
1
0
S=
,
0 exp(i/2)
|i = |0i + |1i,
obtemos
S|i = |0i + i|1i.
Note que, se for feita uma medida do estado S|i, as probabilidades de se obter os
estados |0i ou |1i sero as mesmas, comparadas com uma medida realizada sobre o
estado |i. Isso no acontece, por exemplo, usando a porta H.
2.5
Porta /8 ou Porta T
Tambm, nesse caso, se for feita uma medida do estado T |i, as probabilidades
de se obter os estados |0i ou |1i sero as mesmas, comparadas com uma medida
realizada sobre o estado |i.
18
2.6
|01i
|10i
|11i
|00i,
|01i,
|11i,
(2.3)
|10i.
(2.4)
19
UCN OT
0
0
0 0
= ,
1 0
1
0
que resulta em
UCNOT
1
0
=
0
0
UCN OT
0
1
0
0
0
0
0
1
0
0
0 0
= ,
0 1
0
1
0
0
.
1
0
(2.5)
2.7
20
T
T
T
H
Exerccio 2.10 Faa a evoluo dos estados da base computacional, na representao da porta Toffoli da Figura 2.4.
Para simplificar ainda mais a representao de circuitos qunticos, temos tambm a porta Toffoli generalizada (Figura 2.5), que ser utilizada nos captulos seguintes.
21
n1
q-bits de
controle
q-bit alvo
..
.
A decomposio da porta Toffoli generalizada, em termos de portas Toffoli simples, mostrada na Figura 2.6. Os n 2 q-bits de trabalho so q-bits extras, cujas
entradas so conhecidas antecipadamente. So utilizados para simplificar a decomposio.
n1
q-bits
de
controle
n2
q-bits
de
trabalho
q-bit
alvo
...
...
...
|0i
|0i
|0i
...
...
...
...
...
...
...
|0i
|0i
Captulo 3
Algoritmo de Grover
3.1
Introduo
definida por
f (i) =
1, se i = i0 ,
0, se i 6= i0 ,
(3.1)
23
3.2
Operadores do Algoritmo
|0i
primeiro
registrador
(n q-bits)
|0i
..
(
segundo
|1i
registrador
(1 q-bit)
|G i
|i
..
|Gk i
|G2 i
...
...
...
...
...
..
...
...
|i
|i
|i
|i
Figura 3.1: Esquema genrico para o algoritmo de Grover (G um operador unitrio que
ser definido mais adiante).
(3.2)
(3.4)
24
Ou seja, o operador Uf altera o estado do segundo registrador quando o primeiro registrador representa o elemento procurado. Para completar a definio, precisamos
definir o valor de Uf (|ii|1i). Mantendo a mesma idia, definimos:
|ii|0i, se i = i0 ,
Uf (|ii|1i) =
(3.6)
|ii|1i, se i 6= i0 .
Com isso, Uf fica bem definido, pois, sendo um operador linear, basta defini-lo nos
elementos da base. Note que a base formada usando o produto tensorial. Por
exemplo, para uma lista com 4 elementos (o primeiro registrador ter 2 q-bits), a
base ser
{|0i|0i, |0i|1i, |1i|0i, |1i|1i, |2i|0i, |2i|1i, |3i|0i, |3i|1i},
ou melhor,
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
|ii |i .
Uf (|i|i) = Uf
N i=0
25
|i
|0i
..
.
..
.
|0i
|1i
..
.
Uf
|i
N 1
1 X
1
Uf (|ii|0i |ii|1i) .
2
N i=0
Novamente, da linearidade de Uf ,
N 1
1 X 1
(Uf (|ii|0i) Uf (|ii|1i)) .
Uf (|i|i) =
N i=0 2
N 1
1 X 1
N 1
1 X 1
(3.8)
26
Da definio de f , em (3.1),
|ii (|f (i)i |1 f (i)i) =
(3.9)
N 1
1 X
1
1
(|ii (|0i |1i)) + (|i0 i (|1i |0i)) .
Uf (|i|i) =
2
2
N i=0,i6=i0
N 1
1 X
(1) |ii|i .
N i=0
Ou ainda,
Uf (|i|i) =
!
N 1
1 X
f (i)
(3.10)
Note que o estado do segundo registrador no se altera (como visto acima, isso no
quer dizer que ele seja desnecessrio!). O estado do primeiro registrador continua
sendo uma superposio de todos os estados associados aos elementos da lista.
Entretanto, a amplitude do elemento procurado foi alterada de 1N para 1N .
Aps a aplicao do operador Uf , um fato interessante ocorreu. Alm da funo
f ter sido avaliada em todos os elementos da lista onde est sendo feita a busca,
com apenas uma aplicao de Uf (este fenmeno conhecido como paralelismo
quntico [16]), o estado associado ao elemento procurado foi identificado como
sendo o nico que teve sua amplitude alterada. No entanto, essa informao s est
disponvel quanticamente. No adiantaria fazer uma medida do primeiro registrador, pois a probabilidade de se obter o elemento procurado
1 2
= 1 .
N
N
Antes de prosseguirmos, consideremos a seguinte questo: a aplicao do operador Uf sobre um estado qualquer, no primeiro registrador, ainda mantm o segundo
registrador no estado |i? Vejamos.
27
Seja |ii, um estado qualquer da base computacional {|0i, |1i, ..., |N 1i}. Usando
as definies do operador Uf e do estado |i, temos:
1
Uf (|ii|i) = Uf |ii (|0i |1i)
2
1
= Uf (|ii|0i |ii|1i)
2
1
= (Uf (|ii|0i) Uf (|ii|1i))
2
1
= (|ii|f (i)i |ii|1 f (i)i) .
2
Da mesma forma que fizemos no clculo de Uf (|i|i), obtemos:
Uf (|ii|i) = (1)f (i) |ii|i.
Ou seja,
Uf (|ii|i) =
|ii|i, se i = i0 ,
|ii|i, se i 6= i0 .
(3.11)
N
1
X
i=0,i6=i0
i |ii + i0 |i0 i,
gerado pelos elementos da base computacional {|0i, |1i, ..., |N 1i}, no primeiro
registrador, e mantendo o estado |i, no segundo registrador, temos:
N
1
N
1
X
X
i |ii|i + i0 |i0 i|i
Uf
i |ii + i0 |i0 i |i = Uf
i=0,i6=i0
i=0,i6=i0
N
1
X
i=0,i6=i0
N
1
X
i=0,i6=i0
N
1
X
i=0,i6=i0
(3.12)
28
(3.13)
(3.14)
Exerccio 3.4 Demonstre que a projeo de |i, definido em (3.2), sobre o subespao ortogonal a |i0 i pode ser representada por
N
1
|ui =
|i
|i0 i.
(3.15)
N 1
N 1
Para completar a visualizao, calculemos os ngulos entre |i e |i0 i e entre |ui
e |i0 i. Usando o produto interno, temos:
N 1
1
1
1 X
hi|i0 i = hi0 |i0 i =
h|i0 i =
N i=0
N
N
hu|i0 i =
N
1
X
1
hi|i0 i = 0.
N 1 i=0,i6=i
(3.16)
(3.17)
Ou seja, o ngulo entre |i e |i0 i menor do que /2 rad (se N grande, o ngulo
quase /2 rad) e o ngulo entre |ui e |i0 i exatamente /2 rad. Usando os
resultados (3.16), (3.17) e a expresso dada em (3.15), podemos, finalmente, obter
uma representao geomtrica para a ao do operador Uf sobre o estado |i, dada
na Figura 3.3.
29
|i0i
|i
|ui
|1i = Uf |i
|i0i
|i
|1i = Uf |i
30
um nmero real. Isso possibilita a comparao entre ngulos de dois pares de estados
quaisquer. A partir de agora, teremos em mente esse fato.
A projeo de |1 i sobre |i dada por h|1 i|i. Motivados pelo losango
abaixo (Figura 3.5), vemos que o vetor resultante da reflexo de |1 i em relao a
|i pode ser descrito como
(2h|1 i) |i |1 i.
2h|1 i|i |1 i
(3.18)
|1 i
h|1 i|i
|1 i
Figura 3.5: Reflexo de |1 i em relao a |i.
O que desejamos obter um novo operador que produza essa reflexo. Usando
a propriedade (1.14), podemos reescrever a expresso acima, obtendo:
(2h|1 i) |i |1 i = (2|ih|) |1 i |1 i = (2|ih| I) |1 i.
Ou seja, o operador que procuramos
2|ih| I,
(3.19)
N 1
1 X
|i =
|ii
N i=0
(3.20)
(3.21)
31
(2|ih| I) |1 i
2
(2|ih| I) |i |i0 i
N
4
2
(2h|i) |i h|i0 i |i |i + |i0 i.
N
N
=
=
(3.22)
2
N 4
|i + |i0 i.
N
N
(3.23)
G = ((2|ih| I) I) Uf .
..
.
..
.
|0i
|1i
..
.
|i
|1 i
Uf
..
.
|G i
2|ih| I
..
.
|i
+ =
.
N
N
N
N N
32
3.3
G|i
|i
33
2
N 4
|i + |i0 i.
N
N
(3.25)
(3.26)
(3.27)
(3.28)
Uf |i0 i = |i0 i.
(3.29)
De (3.11),
Substituindo (3.29) em (3.28) e usando (3.16), obtemos:
G|i0 i
= (2|ih| I) (|i0 i)
= 2h|i0 i|i + |i0 i
2
= |i + |i0 i.
N
(3.30)
= hGk |Gk |G i
= h(Gk ) Gk |G i.
34
cos ,
= h|G i
2
N 4
h|i + h|i0 i
=
N
N
N 4
2
1
=
+
N
N
N
N 2
.
=
N
(3.31)
=
=
=
2
N 4
h|i0 i + hi0 |i0 i
N
N
N 4
2
+
N N
N
3N 4
.
N N
> ,
N N
N
ou melhor,
hG |i0 i > h|i0 i.
35
ou seja,
G|G i =
6 |i.
|i + |i0 i.
N
N
N N
Para N > 2, este estado diferente de |i. Suponhamos agora que, para um dado
k N,
G Gk |i 6= Gk1 |i.
36
que o estado Gk |i torne-se o mais prximo do estado |i0 i. Dito de outra forma,
queremos saber que valor de k faz com que o ngulo entre |i0 i e Gk |i seja o mais
prximo de zero (Figura 3.8). Admitindo que k seja um nmero real, podemos
representar matematicamente o problema acima atravs da seguinte equao:
(3.32)
arccos(h|i0 i) k = 0.
|i0 i
Gk |i
Gk1 |i
G2 |i
G|i
|i
(3.33)
arccos
1
N
.
N 2
N
(3.34)
37
lim = .
4
N
3.4
Exemplo: N=8
|i
|0i
|0i
|0i
|1i
|G i
|1 i
2|ih| I
Uf
|G2 i
|2 i
Uf
1
2|ih| I
0
1
|i
|i
|i
|i
38
=
|i.
8
Em seguida, o operador 2|ih| I aplicado sobre o estado |1 i, produzindo o
estado |G i:
|G i =
=
=
=
(2|ih| I) |1 i
(2h|1 i) |i |1 i
3
|i |1 i
2
1
5
(|0i + |1i + |2i + |3i + |4i + |6i + |7i) + |5i.
2 8
2 8
= 78, 12%.
2 8
Entretanto, j sabemos que devemos aplicar 2 vezes o operador G. Aplicando o
operador Uf sobre o estado |G i|i, obtemos:
|2 i|i = Uf (|G i|i)
1
5
(|0i + |1i + |2i + |3i + |4i + |6i + |7i) |5i |i.
=
2 8
2 8
39
Novamente, o elemento procurado o nico que tem sua amplitude alterada. Aplicando o operador 2|ih| I sobre |2 i, temos:
|G2 i
=
=
(2|ih| I) |2 i
(2h|2 i) |i |2 i
1
|i |2 i
=
4
1
11
(|0i + |1i + |2i + |3i + |4i + |6i + |7i) + |5i |i.
=
4 8
4 8
|G2 i
|i0 i
|G i
|i
|ui
|1 i
|2 i
Fazendo uma medida do estado |G2 i, obtemos o elemento procurado com probabilidade de
2
11
= 94, 53%.
4 8
Na Figura 3.10, representamos geometricamente os passos do algoritmo resultantes de duas aplicaes do operador G.
Exerccio 3.7 Usando a Figura 3.10, d uma explicao para os sinais das amplitudes da superposio dada em |G2 i.
3.5
40
3.5.1
Recordemos que a funo f (3.1) age como um orculo para identificar o elemento
procurado i0 . De forma similar, o operador Uf tambm pode ser imaginado como
um orculo. Nesse sentido, ele um operador diferente do operador 2|ih| I,
pois deve ser preparado para a identificao do estado |i0 i. O operador Uf pode
ser representado por uma porta Toffoli generalizada com n q-bits de controle, 1
q-bit alvo no estado |i e 2 portas X atuando no i-simo q-bit de controle, sempre
que o i-simo dgito binrio de i0 for 0. Por exemplo, o circuito quntico para o
operador Uf , usado no exemplo dado na Seo 3.4 (n = 3 e i0 = 101), tem a forma
apresentada na Figura 3.11. Se o elemento procurado fosse 111, nenhuma porta X
seria usada. Caso fosse 000, 3 pares de portas X seriam usadas, um par em cada
q-bit de controle.
|i
|i
3.5.2
2H n (|0ih0|)(H n ) I
= H n (2|0ih0|)(H n ) H n (H n )
= H n (2|0ih0| I)(H n )
= H n (2|0ih0| I)H n .
(3.35)
Observe que H n uma matriz simtrica com apenas entradas reais. Portanto,
(H n ) = H n .
Exerccio 3.8 Demonstre que o produto tensorial de matrizes simtricas uma
matriz simtrica.
41
n
q-bits
iI
iI
X
..
.
..
X
..
.
..
.
..
..
.
..
.
..
X
X
H
|0 i
..
.
|1 i
|2 i
|3 i
|4 i
|5 i
Observe que a nica porta que atua nos n q-bits ao mesmo tempo, na Figura 3.12,
a porta Toffoli generalizada (Figura 2.5).
Exerccio 3.9 Teste a ao do circuito da Figura 3.12 em outros estados da base
computacional para perceber que, para qualquer entrada |ji, com 0 < j < N , a
sada ser sempre -|ji.
|0 i
|0i
|0i
..
.
|1 i
|1i
|1i
..
.
|2 i
i |1i
|1i
..
.
|3 i
i |1i
|1i
..
.
|4 i
(-i i )|1i
|1i
..
.
|5 i
|0i
|0i
..
.
|0i
|0i
|1i
|1i
|1i
|i
|1i
-|i
|1i
|1i
|0i
|0i
Captulo 4
Algoritmo de Shor
4.1
Neste captulo1 , vamos descrever o algoritmo de Shor [21] que acha os fatores primos de um nmero composto N . Comearemos mostrando como a fatorao pode
ser reduzida ao clculo da ordem de um nmero x menor que N , escolhido aleatoriamente. Imagine que N um nmero grande, por exemplo com 300 dgitos na
notao decimal, j que tais nmeros so usados em criptografia. Embora N seja
grande, o nmero de q-bits necessrio para guard-lo muito pequeno. Em geral,
log2 N no um inteiro, ento definimos
n = dlog2 N e,
onde dlog2 N e o menor inteiro maior ou igual a log2 N .
Um computador quntico com n q-bits pode guardar N ou qualquer outro inteiro
positivo menor que N . Facilmente, vemos que o nmero de fatores primos de N
no mximo n. Se o nmero de q-bits e o nmero de fatores primos so menores ou
iguais a n, ento natural perguntar se existe um algoritmo que fatora N em um
nmero de passos que polinomial em n. Mais precisamente a questo : existe um
algoritmo de fatorao na classe de complexidade P [17]?
A reduo da fatorao de N ao problema de achar a ordem de um inteiro x
menor que N pode ser descrita da seguinte forma. Se x e N possuem fatores comuns,
ento o MDC(x, N ) fornece um fator de N ; portanto, suficiente investigar o caso
quando x coprimo com N . A ordem de x, mdulo N , o menor inteiro positivo
r, tal que
xr 1 mod N.
Se r for par, podemos definir y como sendo
xr/2 y mod N.
1 Os exerccios deste captulo esto embutidos no prprio texto, com exceo dos trs ltimos
na pgina 58.
43
A notao acima significa que y o resto da diviso de xr/2 por N e, pela definio,
0 y < N . Note que y satisfaz y 2 1 mod N , ou equivalentemente, (y1)(y+1)
0 mod N , o que significa que N divide (y 1)(y + 1). Se 1 < y < N 1, os fatores
y 1 e y + 1 satisfazem 0 < y 1 < y + 1 < N ; portanto, N no pode dividir
y 1 nem y + 1 separadamente. A nica alternativa que ambos y 1 e y + 1
tenham fatores de N . Ento, MDC(y 1, N ) e MDC(y + 1, N ) produzem fatores
no triviais de N . Se N tiver mais fatores, eles podem ser calculados aplicando
o algoritmo recursivamente. Considere N = 21 como exemplo. A seqncia de
equivalncias
24
25
26
16 mod 21
11 mod 21
11 2 1 mod 21
4.2
44
|0i
|0i
registrador
(t q-bits)
DFT
H
|0i
Vx
2 registrador
(n q-bits)
|0i
|0 i
|1 i
|2 i
|3 i
|4 i
|5 i
O primeiro registrador possui t q-bits, onde t deve ser escolhido de forma que
N 2 2t 2N 2 , por razes que ficaro claras mais adiante [20]. Se a ordem
uma potncia de 2, ento suficiente tomar t = n. Nesta seo, vamos considerar
este caso especial e deixar o caso geral para a Seo 4.4. Continuaremos usando a
varivel t para generalizarmos nossa discusso mais adiante.
Os estados do computador quntico esto indicados por |0 i at |5 i na Figura
4.1. O estado inicial
|0 i = |0 . . . 0i |0 . . . 0i .
| {z } | {z }
t
1
H=
2
1
1
1
1
2 1
1 X
|1 i =
|ji |0i .
2t j=0
(4.2)
O primeiro registrador est em uma superposio de todos os estados da base computacional com igual amplitude dada por 12t . Agora, note o que acontece quando
45
aplicamos Vx em |1 i:
|2 i
= Vx |1 i
t
2 1
1 X
Vx (|ji |0i)
2t j=0
t
2 1
1 X
|ji xj .
t
2 j=0
(4.3)
Isto explica a escolha de (4.1) para Vx . Classicamente, poderamos calcular sucessivamente xj , para j comeando de 2 at chegarmos a j = r. Quanticamente, pode-se
calcular todas as potncias de x com uma nica aplicao de Vx . No nvel quntico,
todos os valores de j que produzem xj 1 mod N so conhecidos. Mas esta informao no est totalmente disponvel no nvel clssico. Uma informao clssica
de um estado quntico obtida atravs de uma medida e, neste ponto, no ajudaria
se medssemos o primeiro registrador, j que todos os estados da superposio (4.3)
possuem igual amplitude. A primeira parte da estratgia para determinar r observar que o primeiro registrador dos estados (4.4) peridico. Ento, a informao
que queremos um perodo.
Para facilitar os clculos, vamos medir o segundo registrador. Antes de fazer isto,
vamos reescrever o estado |2 i, fatorando os termos iguais do segundo registrador.
Como xj uma funo peridica com perodo r, vamos substituir j por ar + b na
equao (4.3), onde 0 a (2t /r) 1 e 0 b r 1. Lembre-se que supomos que
t = n e r uma potncia de 2, portanto r divide 2t . A equao (4.3) convertida
em
t
2
1
r1
r
1 X X
|2 i =
|ar + bi xb .
(4.5)
t
2 b=0 a=0
2
r
1
r
r X
|ar + b0 i xb0 .
(4.6)
|3 i =
t
2
a=0
46
p
Note que depois da medida, a constante renormalizada para r/2t , j que existem
2t /r termos na soma (4.6). A Figura 4.2 mostra a probabilidade de obtermos os
estados da base computacional, medindo o primeiro registrador. A probabilidade
forma uma funo peridica com perodo r. Estes valores so zero, exceto para os
estados |b0 i, |r + b0 i, |2r + b0 i, ..., |2t r + b0 i.
Distribuio de probabilidades
r
2t
b0
r + b0
2r + b0
3r + b0
Termos de |3 i
(1 registrador)
Figura 4.2: Distribuio de probabilidades de |3 i medido na base computacional (para o caso b0 = 3 and r = 8). O eixo horizontal tem 2t
pontos, o nmero de picos 2t /r e o perodo r.
4.3
(4.7)
47
(4.8)
(4.9)
r 2rt 1
2t 1
r X 1 X 2ij(ar+b0 )/2t b0
=
e
|ji x .
2t a=0
2t j=0
48
Im
j=2
j=1
j=3
2
7
j=0
Re
j=4
j=6
j=5
2t
t
2X
1
r 1
X
2ija
t
1
1
|4 i =
e 2t /r e2ijb0 /2 |ji xb0 .
r j=0 2t /r a=0
(4.10)
Usando (4.9), vemos que a expresso nos colchetes diferente de zero, se e somente
se j = k2t /r com k = 0, ..., r 1. Quando j assume tais valores, a expresso nos
colchetes igual a 1. Ento, temos
!
r1
b
1 X 2i k b0 k2t
x 0 .
r
e
(4.11)
|4 i =
r
r
k=0
49
Distribuio de probabilidades
2t
r
1
r
2t
r
22t
r
32t
r
Termos de |4 i
(1 registrador)
Figura 4.4: Distribuio de probabilidades de |4 i medida na base computacional. O eixo horizontal tem 2t pontos; apenas os termos no nulos
so mostrados. O nmero de picos r e o perodo 2t /r.
4.4
50
=
=
511
1 X j
|ji 2 mod N
512 j=0
1
|0i |1i + |1i |2i + |2i |4i + |3i |8i + |4i |16i + |5i |11i +
512
|6i |1i + |7i |2i + |8i |4i + |9i |8i + |10i |16i + |11i |11i +
|12i |1i + . . . .
Note que a expresso acima tem o seguinte padro: o estado do segundo registrador
de cada coluna o mesmo. Portanto, podemos rearranjar os termos de forma a
fatorar o segundo registrador:
1
|0i + |6i + |12i + . . . + |504i + |510i |1i +
|2 i =
512
|1i + |7i + |13i + . . . + |505i + |511i |2i +
|2i + |8i + |14i + . . . + |506i |4i +
(4.12)
|3i + |9i + |15i + . . . + |507i |8i +
|4i + |10i + |16i + . . . + |508i |16i +
|5i + |11i + |17i + . . . + |509i |11i .
(4.13)
51
!
85
1 X
|6a + 1i |2i
= DFT
86 a=0
"
#
!
511
85
1 X 2i 6ja 2i j
1 X
512
512 |ji
=
e
|2i ,
e
512 j=0
86 a=0
(4.14)
PSfrag
52
0.15
0.1
Prob(j)
0.05
0
0
50
100
150
200
250
300
350
400
450
500
nmero racional [a0 , a1 , ..., aq ]. Isto uma aproximao para j1 /j2 e tem o denominador menor que j2 . Este mtodo aplicado facilmente pela inverso da frao,
seguido pela diviso inteira com resto racional. Invertendo 85/512, temos 512/85,
que igual a 6 + 2/85. Repetimos o processo com 2/85 at obtermos o numerador
1. O resultado
85
1
=
1 .
512
6 + 42+
1
2
53
4.5
Nas sees precedentes, mostramos que o algoritmo de Shor um algoritmo probabilstico eficiente, assumindo que a transformada de Fourier poderia ser implementada eficientemente. Nesta seo, decompomos a transformada de Fourier em
termos de portas universais: CNOT e portas de 1 q-bit. Esta decomposio permite avaliarmos o custo computacional (complexidade) da transformada discreta de
Fourier e mostra como implement-la em um computador quntico real.
A transformada de Fourier dos estados da base computacional
N 1
1 X 2ijk/N
DFT(|ji) =
e
|ki .
N k=0
(4.16)
Notando que o lado direito da equao (4.16) tem N termos e a base computacional tem N estados, temos que o custo computacional do clculo da transformada
de Fourier clssica dos estados da base computacional, usando a equao (4.16),
O(N 2 ) = O(22n ) 4 . Um resultado muito importante em Computao foi o desenvolvimento da transformada de Fourier rpida (FFT), que reduz o custo computacional
para O(n2n ) [6]. No nosso contexto, mais conveniente mostrar esse ganho na complexidade, notando que o lado direito da equao (4.16) um tipo muito especial
de expanso, que pode ser totalmente fatorado. Por exemplo, a transformada de
4 O(N 2 ) significa que o custo proporcional a N 2 . Essa notao til no clculo do custo
computacional de algoritmos. Para maiores detalhes, veja a referncia [17].
DFT(|0i) =
2
2
|0i |1i
|0i + i |1i
DFT(|1i) =
2
2
|0i + |1i
|0i |1i
DFT(|2i) =
2
2
|0i |1i
|0i i |1i
DFT(|3i) =
.
2
2
54
(4.17)
Note que no exemplo (4.17), estamos usando a base 2 para fatorar o lado direito da
equao (4.16). Agora, vamos fatorar a expresso geral. O primeiro passo escrever
(4.16) na forma
1
1
Pn
X
1 X
e2ij l=1
...
DFT(|ji) =
n
2 k =0 k =0
n
kl
2l
|k1 i . . . |kn i ,
(4.18)
Pn
onde o ket |ki foi convertido para a base 2, e usamos a expanso k = l=1 kl 2nl no
expoente. Considerando que a exponencial da soma o produto das exponenciais,
(4.18) transforma-se em um produto (no-comutativo) dos seguintes kets:
1
1 Y
n
X
kl
1 X
DFT(|ji) =
...
e2ij 2l |kl i .
2n k =0 k =0 l=1
1
(4.19)
(4.20)
Para nos convencermos de que a ltima equao est correta, faamos o clculo
inverso: simplesmente expandimos o produto na equao (4.20) e, ento, colocamos
todos os termos da soma no comeo da expresso resultante para obter (4.19).
Expandindo a soma da equao (4.20) e, ento, o produto, obtemos finalmente
DFT(|ji) =
=
n
l
1 Y
. . .
.
2
2
(4.21)
O custo do clculo da equao (4.21) para um |ji O(n), j que existem n termos
no produto. O custo do clculo da transformada rpida de Fourier clssica de toda
a base computacional ainda exponencial, O(n2n ), j que o clculo feito em cada
55
n
2X
1
a=0
F (a) |ai ,
que tem um nmero exponencial de termos, calculada com uma nica aplicao da
transformada de Fourier quntica. A transformada de Fourier de 2n elementos da
base calculada simultaneamente. Ento, o custo da transformada de Fourier quntica medida pelo tamanho do circuito. Agora, vamos mostrar que so necessrias
O(n2 ) portas.
|j1 i
|j1 i
|jl1 i
|jl1 i
|jl i
Rn+1l
R2
|i
|jl+1 i
|jl+1 i
|jn i
|jn i
|0i+e
j
2n+1l |1i
Considere o circuito da Figura 4.6. fcil checar que o valor dos q-bits |jm i,
m 6= l, no muda. Vamos verificar o caso mais difcil: |jl i. As matrizes unitrias
Rk so definidas como
1
0
Rk =
.
0 exp 2i 21k
Cada porta Rk controlada pelo q-bit |jk+l1 i. Se jk+l1 = 0, ento Rk deve ser
trocado pela matriz identidade (sem ao), e se jk+l1 = 1, ento Rk acionada.
Isso significa que, para os clculos propostos, Rk controlado por |jk+l1 i, podendo
ser trocado pela seguinte porta de 1 q-bit:
#
"
1
0
.
(4.22)
CRk =
0 exp 2i jk+l1
2k
Para simplificarmos os clculos, note que
jl
H |jl i =
= CR1 |+i ,
2
(4.23)
56
onde |+i =
1 (|0i
2
1
Y
(4.24)
CRk ,
k=n+1l
(4.25)
Pn
onde usamos j = m=1 jm 2nm e o fato de que os primeiros l 1 termos desta expanso no contribuem eles so mltiplos inteiros de 2i em (4.25). Finalmente,
obtemos
|i
= P Rn+1l |+i
|+i
|+i
.
2
(4.26)
|0i+e
PR n
|0i+e
PR n1
j
2i n
2 |1i
j
2i n1
2
|1i
|+i
|+i
|+i
|0i+e
PR 2
PR 1
j
2i 2
2 |1i
j
2i
2 |1i
|0i+e
Figura 4.7: Circuito intermedirio para a transformada de Fourier quntica. A entrada tomada como |+i, para executar os clculos propostos, como explicado na equao (4.23). A sada tem a ordem inversa da
equao (4.21).
57
|i
|i
|i
|i
|i
|i
=
|i
|i
Rk+1
Rk
=
Rk+1
Rk+1
58
|j1 i
j
2i
2 |1i
|0i+e
|j2 i
|0i+e
j
2i 2
2 |1i
DFT com
a sada
inversa
|jn1 i
|jn i
|0i+e
j
2i n1
2
|1i
|0i+e
j
2i n
2 |1i
Bibliografia
[1] Aharonov, D. Quantum computation. In Annual Reviews of Computational
Physics, D. Stauffer, Ed., vol. VI. World Scientific, Jerusalem, 1998, pp. 178.
(quant-ph/9812037).
[2] Barenco, A., Bennett, C. H., Cleve, R., DiVincenzo, D. P., Margolus, N., Shor, P. W., Sleator, T., Smolin, J. A., and Weinfurter,
H. Elementary gates for quantum computation. Physical Review A A52, 5
(1995), 34573487. (quant-ph/9503016).
[3] Bennett, C. H., Bernstein, E., Brassard, G., and Vazirani, U.
Strengths and weaknesses of quantum computing. SIAM Journal on Computing 26, 5 (1997), 15101523.
[4] Bernstein, E., and Vazirani, U. Quantum complexity theory. SIAM
Journal on Computing 26, 5 (1997), 14111473.
[5] Boyer, M., Brassard, G., Hoyer, P., and Tapp, A. Tight bounds on
quantum searching. Fortschritte der Physik 46, 4-5 (1998), 493506.
[6] Cooley, J., and Tukey, J. An algorithm for machine calculation of complex Fourier series. Math. Comp. 19 (1965), 297301.
[7] Deutsch, D. Quantum theory, the church-turing principle and the universal
quantum computer. In Proceedings of the Royal Society of London. Series A
(London, 1985), vol. 400, Royal Society, pp. 97117.
[8] Deutsch, D., and Jozsa, R. Rapid solution of problems by quantum computation. In Proceedings of the Royal Society of London. Series A (London,
1992), vol. 439, Royal Society, pp. 553558.
[9] Einarsson, G. Probability analysis of a quantum computer.
ph/0303074), unpublished 2003.
(quant-
[10] Ekert, A., and Jozsa, R. Quantum computation and Shors factoring
algorithm. Reviews of Modern Physics 68 (1996), 733753.
[11] Feynman, R. P. Simulating physics with computers. Int. J. Theor. Phys.
21 (1982), 467488.
Bibliografia
60
ndice
amplitude, 5, 11
ngulo, 13
base computacional, 5, 11
bit quntico, 5
bra, 12
classe de complexidade, 43
criptografia, 43
dual, 12
emaranhamento, 11, 15
esfera de Bloch, 6, 8
estado, 5
emaranhado, 19
norma, 13
superposto, 19
fator de fase global, 7
fatorao, 43
FFT, 54
ket, 12
mecnica quntica, 5, 8
medida, 5, 11, 16, 18
notao de Dirac, 5
operador, 8
2|ih| I, 41
G, 32, 40
Uf , 24, 25, 29, 41
circuito associado, 16
unitrio, 13, 24
orculo, 23, 41
ordem, 43, 44
paralelismo quntico, 27, 46
porta quntica
/8, 18
CNOT, 19, 20
convenes, 15
fase, 18
H, 17
Hadamard, 17, 24
NOT, 16
Rk , 56
S, 18
T, 18
Toffoli, 20, 21
Toffoli generalizada, 21, 22, 41
X, 16
produto externo
definio, 13
representao matricial, 13
produto interno
definio, 12
representao matricial, 13
produto tensorial
definio, 9
entre matrizes, 10
q-bit, 5
definio, 6
interpretao fsica, 5
representao em R3 , 6, 7
representao em R4 , 6
superposio, 5, 11
transformao linear
NDICE
adjunta, 8
unitria, 8
transformada de Fourier, 47, 48, 56,
59
portas universais, 54
transformada de Fourier inversa, 48
transformada rpida de Fourier, 55
62