Projeto de Pesquisa Computação Quântica e Teoria da

Propaganda
Projeto de Pesquisa
Computação Quântica e Teoria da Computação
Alex Bredariol Grilo
(Aluno)
Prof. Dr. Arnaldo Vieira Moura
(Orientador)
Instituto de Computação — Universidade Estadual de Campinas
Resumo
Proposta em meados da década de 80, a Computação Quântica procura utilizar a estrutura quântica da matéria nos processos computacionais. É um tópico
de pesquisas recente, com focos voltados para várias áreas correlatas, tais como
Física, Matemática e Computação. O objetivo deste projeto de pesquisa é estudar a
Computação Quântica, principalmente sob uma perspectiva da Teoria da Computação. Serão abordados temas tais como algoritmos quânticos, passeios quânticos,
além de computabilidade e complexidade computacional quânticas, estudando-se
os avanços recentes nestas áreas. Procurar-se-á também sintetizar a bibliografia
pertinente, unificando notações e buscando generalizações. Ao final, uma monografia será redigida na língua portuguesa. Pretende-se, deste modo, oferecer um
texto coerente e consistente para que outros pesquisadores ligados à Computação possam, futuramente, avançar em estudos sobre temas ligados à Computação
Quântica.
1
1
Introdução
Computação Quântica é um tema recente, que procura utilizar as descobertas da fí-
sica quântica para o desenvolvimento de aplicações computacionais. Embora proposto
teoricamente na década de 80, ainda não há nenhum computador que utilize de forma
satisfatória a estrutura quântica da matéria nos processos de computação. Isso, ainda
hoje, constitui-se numa importante linha de pesquisas.
Para que pudessem ser estudadas aplicações que exploram as características de um
computador quântico, mesmo ainda não existindo nenhum disponível para uso científico, foram desenvolvidas ferramentas teóricas que descrevem seu funcionamento geral de forma independente de uma implementação física. É com essas ferramentas
que físicos, matemáticos e cientistas da computação trabalham no desenvolvimento da
Computação Quântica e da Teoria da Informação Quântica.
O objetivo deste trabalho é entender a importância da Computação Quântica para a
Teoria da Computação, estudando inicialmente seus conceitos básicos e posteriormente
alguns tópicos mais avançados que tenham relevância teórica. Pretende-se, também,
contribuir com o tema escrevendo uma monografia em língua portuguesa sobre todo o
conteúdo estudado.
Na língua inglesa, há uma grande diversidade de livros e artigos sobre Computação Quântica. A principal referência introdutória à Computação Quântica é o livro de
Nielsen [31], que possui uma abordagem mais ampla e cobre aspectos físicos, matemáticos e computacionais. Já os livros de Yanofsky [39] e Mermin [29] apresentam uma
abordagem voltada para cientistas da computação. Pretende-se utilizar um enfoque
semelhante ao adotado por estes dois últimos volumes, estreitando ainda mais o foco
para Teoria da Computação.
Na língua portuguesa, encontramos dois tipos de trabalhos. Em trabalhos como o
de Vignatti [36], Cardonha [11] e Portugal [33] encontra-se uma introdução à Computação Quântica em linhas gerais, sendo que o segundo também cobre tópicos de complexidade computacional quântica. Por outro lado, há também algumas teses [1] [32]
[28] e dissertações [10] [18] [25] [27] que focam alguns temas específicos da Computação
2
Quântica. Estes últimos, porém, requerem um conhecimento prévio mais aprofundado
do tema. Pretendemos, neste trabalho, mesclar essas duas abordagens.
2
Embasamento Teórico
Nesta seção, iniciamos com um breve histórico da Computação Quântica, passando,
em seguida, a apresentar seus ingredientes básicos. De posse destes, abordamos os
principais algoritmos quânticos conhecidos e finalizamos examinando questões de computabilidade e complexidade computacional quânticas.
2.1
História
Na década de 80, Richard Feynman sugeriu que os computadores clássicos só con-
seguiriam simular o funcionamento de sistemas quânticos com um custo exponencial
em termos de tempo computacional [16]. Foi então proposto um computador que extrairia da estrutura quântica da matéria seu poder computacional.
Paralelamente à evolução do estudo sobre como implementar na prática um computador quântico, físicos, matemáticos e cientistas da computação passaram a pesquisar o ganho que computadores quânticos poderiam trazer se fossem implementados
na prática. No final da década de 80, Deutsch descreveu as Máquinas de Turing Quânticas [12] e circuitos quânticos [13], duas importantes ferramentas que permitiram o
desenvolvimento de algoritmos quânticos compatíveis com qualquer concretização futura para computadores quânticos. Posteriormente, Yao demonstrou que esses dois
modelos são equivalentes [40]. No final da década de 90, Bernstein e Vazirani descreveram como construir uma Máquina de Turing Quântica Universal [8], uma Máquina
de Turing Quântica capaz de simular qualquer Máquina de Turing Quântica.
Na início da década de 90, foram desenvolvidos os algoritmos quânticos de Deutsch
[12] e de Deutsch-Josza [14], os quais permitem descobrir características de funções desconhecidas de forma mais eficiente quando comparados com algoritmos determinísticos clássicos, no segundo caso com ganho exponencial na complexidade em tempo.
3
A grande notoriedade da Computação Quântica, entretanto, ocorreu em 1994, quando
Shor apresentou algoritmos quânticos eficientes para os problemas de fatoração em números primos e para se encontrar o logaritmo discreto [34]. Esses dois problemas são
muito importantes pois alguns dos métodos criptográficos mais utilizados atualmente
assumem que não há uma forma eficiente de resolvê-los. Portanto, existindo um computador quântico, este tipo de criptografia seria facilmente quebrado.
Outro algoritmo importante para computação quântica foi o algoritmo de buscas
apresentado por Grover [19]. Procurar um elemento em uma base de dados não ordenada de n elementos necessita de tempo O(n) no pior caso, tanto classicamente quanto
probabilisticamente. Grover apresentou um algoritmo quântico que realiza tal busca
√
em tempo O( n). Tal ganho não é exponencial, porém a aplicabilidade do resultado
é muito importante, pois pode-se conseguir uma aceleração quadrática, portanto substancial, na solução de problemas da classe NP.
Nos anos 2000, novos algoritmos quânticos foram desenvolvidos, alguns utilizando
os algoritmos anteriores como submódulos [15] [2] [21] [5] [38] [37], outros utilizando
novas técnicas [4]. Foram descobertos também novos métodos para se encontrar limitantes quânticos para vários problemas, o que veio auxiliar no avanço dos estudos na
área de teoria de complexidade computacional [6] [3].
2.2
Circuitos quânticos
Nesta subseção, apresentamos uma breve introdução aos circuitos quânticos, muito
usados no desenvolvimento de algoritmos quânticos.
2.2.1
Bits quânticos
Um bit clássico é unidade de informação básica de um sistema computacional clássico, e que pode assumir os valores 0 ou 1 de forma exclusiva. Alternativamente, podemos considerar que cada um desses valores é um vetor no espaço 2-dimensional em
que o bit 0 corresponde ao vetor 10 e o bit 1 corresponde ao vetor 01 .
Já um bit quântico (qubit) é uma unidade de informação de um sistema quântico
4
2-dimensional. Um qubit pode ser descrito como um elemento do espaço de Hilbert
complexo 2-dimensional sobre o qual, arbitrariamente, escolhemos uma base ortonor
mal: | 0i ≡ 10 e | 1i ≡ 01 . Os estados que um qubit pode assumir são então uma
superposição normalizada dos dois elementos da base:
| ψi = α | 0i + β | 1i,
onde α, β ∈ C, |α|2 + |β|2 = 1.
Uma consequência direta desta definição é que um qubit pode assumir um número
infinito de estados. Porém, diferente dos bits clássicos, quando observamos o valor de
um qubit | ψi, efetuando uma medição, teremos | 0i com probabilidade |α|2 ou | 1i com
probabilidade |β|2 , e o qubit colapsa para o estado correspondente. Portanto, ainda
que o número possível de estados seja infinito, não é possível diferenciá-los com um
número finito de medições.
2.2.2
Registradores quânticos
Podemos, assim como na versão clássica, imaginar um sistema com n qubits, que
seria representado por um elemento do espaço de Hilbert 2n -dimensional, caracterizado
pelo produto tensorial dos n espaços de Hilbert de cada qubit. O sistema resultante terá
uma base computacional com 2n elementos, representadas por | 000....000i, | 000...001i,
..., | 111...110i, | 111...111i. Chamaremos esse conjunto de qubits de um registrador
quântico.
Os estados de um registrador quântico são formados por superposições dos 2n estados da base e, da mesma forma que no caso de um único qubit, a cada elemento da
base computacional corresponderá uma amplitude complexa, sendo que a soma dos
quadrados das normas das amplitudes deve ser unitário. Podemos resumir essas informações em
| ψi =
X
ai | ii,
onde ai ∈ C, i ∈ {0, 1}n , e
i∈{0,1}n
X
|ai |2 = 1.
i∈{0,1}n
Podemos observar que numa abordagem mais direta para simular um sistema quân5
tico classicamente, seria necessário armazenar o valor da amplitude de cada elemento
da base. Com isso, a quantidade de memória necessária cresce exponencialmente em
relação ao número de qubits no sistema. Sem mencionar o fato de que um número
complexo ai é representado por um par de números reais, e números reais não podem
ser todos completamente especificados em um computador digital (ou em uma Máquina de Turing). Por esse motivo, suspeita-se que sistemas quânticos não podem ser
representados em computadores clássicos sem incorrer em um custo computacional
exponencial.
2.2.3
Circuitos quânticos
Uma vez que qubits e registradores quânticos armazenam informação, veremos
agora como estes podem ser utilizados para realizar computações.
Na computação clássica utilizamos portas lógicas para manipular n bits de entrada
e computar uma saída de m bits. Na Computação Quântica, as manipulações de qubits
são feitas através de portas quânticas. De acordo com as leis da mecânica quântica, os
sistemas quânticos evoluem através de operadores unitários determinísticos. Portanto,
uma porta quântica tem como entrada n qubits e sobre eles realiza uma transformação
linear unitária, devolvendo como saída os n qubits alterados.
Dado que computações quânticas são sempre unitárias, uma implicação direta é
que são também reversíveis, pois toda matriz unitária é invertível. A reversibilidade
das portas quânticas pode parecer, em um primeiro momento, restritiva, dado que
portas lógicas usuais, como as portas lógicas AND e OR, não são reversíveis — veja
que se a saída de uma porta AND for 0, não é possível identificar os valores de entrada.
Porém sabe-se que operações irreversíveis podem ser simuladas em portas quânticas,
utilizando uma quantidade polinomial de qubits adicionais [7] [26].
Veremos agora algumas portas quânticas importantes e de uso recorrente na computação quântica.
Porta de Hadamard. A porta de Hadarmard é uma porta de um qubit e pode ser
representada pela seguinte matriz unitária:
6


1 1
1
.
H=√ 
2 1 −1
Para registradores quânticos com mais qubits , pode-se aplicar a porta de Hadamard
a cada um dos bits individualmente. Isto produz o mesmo efeito que a porta de WalshHadamard, representada pela matriz Wn , onde o valor da linha i e coluna j é:
1
Wn (i, j) = (−1)i·j √ .
2n
onde i · j denota o produto interno das representações binárias de i e j, modulo 2: i.e.
i · j = i0 j0 ⊕ i1 j1 ⊕ ... ⊕ in−2 jn−2 ⊕ in−1 jn−1 . Portanto, com a porta de Walsh-Hadamard,
é possível gerar uma sobreposição equiprovável de todos os elementos da base computacional, ou seja, todas as amplitudes terão a mesma norma. Com essa superposição
pode-se, por exemplo, computar o valor de uma função em todos os pontos da base
computacional de forma balanceada.
Portas controladas. Uma porta U-controlada é uma porta quântica que tem como
entrada x bits controladores e y bits alvo. Se algum bit controlador for | 0i, os valores
dos bits alvo permanecem inalterados. Caso o valor de todos os bits controladores
sejam | 1i, a porta quântica U atua sobre os bits alvo.
Vejamos um exemplo com um qubit de entrada e um qubit controlador. Seja

U =
a b
c d


a transformação desejada sobre o qubit alvo. Então a porta controlada, c(U ), seria representada por

1 0


 0 1
c(U ) = 

 0 0

0 0
7
0 0



0 0 
.

a b 

c d
Portas controladas aparecem em vários algoritmos quânticos. Veremos a seguir
uma porta controlada especial.
Porta de Tofolli. A Porta de Tofolli ou a porta CCNOT é uma porta quântica de 3
qubits que utiliza os 2 primeiros como controladores. Quando ambos tiverem o valor
| 1i, o valor do terceiro qubit é invertido.
A Porta de Toffoli pode ser representada pelo mapeamento
| ai | bi | ci →| ai | bi | c ⊕ abi.
A Porta de Toffoli é universal na computação clássica, ou seja, qualquer circuito
clássico pode ser implementado utilizando somente portas de Toffoli [17]. Como a
porta de Tofolli também é quântica, sabemos que todos os circuitos clássicos podem
ser simulados em computadores quânticos.
Oráculos. Também conhecidos por "caixa-preta", oráculos calculam uma função
característica desconhecida. Seja uma função f (x) : {0, 1}n → {0, 1}. Um oráculo Uf
terá o seguinte comportamento:
Uf :| xi | yi →| xi | y ⊕ f (x)i,
onde x é um registrador de n qubits e y é um único qubit . Oráculos são amplamente
utilizados em algoritmos quânticos voltados para problemas de busca ou problemas
de se extrair informações de funções desconhecidas.
2.3
Algoritmos quânticos
Algoritmos quânticos estão baseados no modelo computacional que utiliza a estru-
tura quântica da matéria no processo de computação. Como já citado anteriormente,
circuitos quânticos e Máquinas de Turing Quânticas são formas equivalentes para se
descrever um algoritmo quântico, ficando a critério do autor utilizar a notação que
achar mais adequada.
Um conceito importante para o desenvolvimento de algoritmos quânticos é o para-
8
lelismo quântico. Como o estado de um registrador quântico reflete a superposição das
amplitudes dos elementos da base computacional do sistema, é possível aplicar uma
operação sobre todos esses elementos ao mesmo tempo e, assim, obter uma superposição dos resultados da operação sobre os elementos da base computacional. Como
o algoritmo irá tratar essa superposição de resultados para extrair a informação desejada varia de caso para caso. Porém, fica claro que esse é um grande diferencial da
computação quântica perante a computação clássica.
Vários algoritmos quânticos e técnicas para desenvolvimento de algoritmos quânticos foram desenvolvidos até hoje, e a explicação detalhada de todos estes é inviável
dada a limitação de espaço desta proposta. Vamos, então, comentar brevemente sobre
os mais importantes.
Algoritmos de Shor. O grande salto da Computação Quântica se deu quando Shor
propôs algoritmos quânticos que computam fatores primos de grandes números e que
calculam o logaritmo discreto de um número, ambos com complexidade polinomial
[34]. Os melhores algoritmos clássicos conhecidos até o momento para resolver esses
problemas apresentam complexidade exponencial em tempo. Portanto, um computador quântico faria com que problemas hoje considerados intratáveis pudessem ser
resolvidos de forma eficaz. Estes problemas são importantes pois são o cerne dos principais métodos criptográficos em uso hoje em dia.
Algoritmo de Grover. O Algoritmo de Grover resolve o problema de buscas em
um banco de dados desordenado, apresentando um ganho quadrático em relação aos
algoritmos clássicos. O ganho não é exponencial, como no caso dos algoritmos de Shor,
porém é possível aplicar seu resultado em muitos problemas importantes, inclusive a
todos os problemas da classe NP.
Passeios quânticos. Análogo quântico aos passeios aleatórios, os passeios quânticos descrevem o movimento de um caminhante condicionado a uma moeda quântica,
e tendo sua posição definida por uma sobreposição de estados. Um grande diferencial
dos passeios quânticos é que permitem trabalhar sobre estruturas muito conhecidas
como uma linha ou, mais genericamente, sobre um grafo qualquer. Diversos algorit-
9
mos quânticos foram desenvolvidos utilizando o conceito de passeios quânticos [28]
[27] [4] [23]. Alguns deles apresentam um ganho exponencial em complexidade de
tempo em relação aos algoritmos clássicos.
2.4
Computabilidade
Na computação clássica, o estudo da computabilidade nos permitiu classificar os
problemas quanto ao modelo computacional necessário para resolvê-lo, caso isso seja
possível. Esse estudo foi estendido à Computação Quântica, definindo-se modelos
quânticos análogos para autômatos finitos determinísticos (AFDs), autômatos de pilha
(APs) e Máquinas de Turing determinísticas (MTs). Verificou-se, porém, que varia o
modo como cada modelo computacional quântico se relaciona com sua contrapartida
determinística.
É sabido que o conjunto das linguagens aceitas por 1-QFAs (autômatos finitos quânticos que só se movem em uma direção) é um subconjunto próprio daquelas aceitas por
AFDs [24] [30]. Já no modelo em que é permitido mover-se nos 2 sentidos da fita de
entrada (os 2-QFAs), estes aceitam um superconjunto próprio das linguagens aceitas
por AFDs [24].
Quando partimos para o estudo das linguagens livres de contexto (LLC), que são
aceitas por APs, ainda não foi encontrada uma relação entre estas e aquelas aceitas por
autômatos de pilha quânticos (QAPs), as QLLC. Sabe-se, por exemplo, que toda LLC
não-ambígua é também uma QLLC e que há QLLCs que não são LLC [30]. Porém
ainda não se sabe se o conjunto das LLC é um subconjunto próprio das QLLC, ou se
há linguagens LLC que não são QLLC.
No quesito computabilidade, Máquinas de Turing determinísticas são equivalentes
às Máquinas de Turing Quânticas1 , dado que é possível obter uma que simule a outra,
e vice-versa [8].
1
Assume-se aqui que as amplitudes de transição da Máquina de Turing Quântica podem ser computadas exatamente e em tempo polinomial.
10
2.5
Complexidade computacional
Nesta subseção, trataremos da eficiência computacional dos algoritmos quânticos.
Com o Algoritmo de Shor, surgiu a questão da existência de algoritmos quânticos
capazes de resolver de maneira eficiente algum problema que só pode ser resolvido
de maneira ineficiente no modelo clássico. O estudo da complexidade computacional
quântica se desenvolveu, definindo classes de complexidade análogas àquelas associadas ao modelo computacional probabilístico. Apesar desta evolução, ainda hoje restam
muitas questões em aberto sobre como essas novas classes se relacionam com a classes
de complexidade clássicas.
Denomina-se BQP a classe dos problemas que são resolvíveis de maneira eficiente
no modelo computacional quântico. Consegue-se, de maneira direta, provar a seguinte
estrutura entre certas classes de complexidade [35]:
P ⊆ BPP ⊆ BQP ⊆ PSPACE,
onde P e BPP são as classes de problemas que podem ser resolvidos de forma eficiente
nos modelos computacionais determinísticos e probabilísticos, respectivamente, e PSPACE é a classe de problemas que podem ser resolvidos utilizado-se uma quantidade
de memória de tamanho polinomial em relação ao tamanho da entrada do problema,
no modelo computacional clássico.
Um importante problema em aberto em teoria da computação é a relação exata
entre as classes P e PSPACE. O estudo da complexidade quântica ganha relevância,
pois BQP 6= BPP implicaria em P 6= PSPACE. Ou seja, se for encontrado um problema
que pode ser resolvido de maneira eficiente em computadores quânticos, mas não em
?
modelos probabilísticos (ou determinísticos), o problema P = PSPACE, em aberto há
décadas, estaria resolvido.
Outro problema em aberto de grande importância é a relação entre as classes BQP e
NP. Esta última pode ser entendida como a classe de problemas para os quais pode-se
verificar certificados de soluções no modelo determinístico e de maneira eficiente. A
11
importância deste problema reside no fato de que há muitos problemas importantes em
NP os quais não se sabe se podem ser resolvidos de maneira eficiente classicamente.
Então, descobrir a relação entre essas duas classes de complexidade é equivalente a
descobrir se um computador quântico pode ou não resolver tais problemas de maneira
eficiente.
3
Proposta
Nesta seção apresentamos os objetivos desta proposta e a abordagem que será uti-
lizada para alcançá-los. Finalizamos com uma relação comentada da bibliografia pertinente, seguida de um cronograma de execução.
3.1
Objetivo
Podemos, conceitualmente, dividir este trabalho em duas partes. Primeiramente
serão estudados os conceitos básicos da Computação Quântica. Este estudo servirá
para entender o contexto em que a Computação Quântica está inserida e possibilitará
o aprofundamento dos estudos seguintes. Após essa etapa inicial, serão estudados a
fundo alguns tópicos da Computação Quântica especialmente relevantes para a Teoria
da Computação.
Para se chegar ao estado da arte nas pesquisas sobre o tema proposto será necessário estudar alguns conceitos mais avançados em algumas áreas tais como álgebra linear,
computabilidade e complexidade computacional. Logo, esta primeira etapa é importante, pois dará ao candidato familiaridade suficiente com temas tais como circuitos
quânticos e algoritmos quânticos, fundamentais para prosseguir nos estudos.
Ainda durante a fase inicial, serão estudados de maneira introdutórias temas mais
avançados da Computação Quântica. Para efeitos de uma lista inicial, pretende-se estudar (i) aplicações algorítmicas dos passeios quânticos, (ii) as classes de complexidade computacional quânticas e autômatos finitos quânticos, junto com as linguagens
regulares quânticas reconhecidas por estes. As técnicas e algoritmos englobados pelo
12
item (i) levam a alguns dos resultados mais recentes sobre algoritmos quânticos que
apresentam ganho exponencial em complexidade de tempo em relação a algoritmos
clássicos. Já no item (ii), serão estudados pontos referentes aos limites do poder computacional dos modelos quânticos.
Durante os estudos compreendidos na primeira fase serão levantados alguns tópicos sobre os quais será desenvolvido um estudo mais aprofundado na segunda fase.
Pretende-se, em um primeiro momento, aprofundar os tópicos listados sob o item (ii).
Não se espera, entretanto, a resolução de conjecturas que resistem há décadas. Porém, pretende-se um entendimento completo dos temas básicos de suporte, de forma a
alcançar o estado da arte em tópicos específicos. Nesta segunda fase pretende-se, também, melhor sintetizar alguns tópicos avançados ou mesmo obter novos resultados
parciais.
O projeto como um todo possui um cunho eminentemente teórico, e terá como um
de seus resultados a escrita de uma monografia, em língua portuguesa, abordando
em detalhes os tópicos estudados. As seções referentes à primeira parte do trabalho
contribuirão para uma introdução à Computação Quântica sob as lentes da Teoria da
Computação. O texto referente à segunda parte do trabalho irá aprofundar alguns
temas pouco explorados na literatura da área em língua portuguesa.
3.2
Materiais e Métodos
Para atingir os objetivos mencionados foi elaborado um plano de estudo inicial
utilizando-se a bibliografia tradicional na área de Computação Quântica. Esse plano
de estudo é referente à primeira fase do projeto.
Regularmente, serão feitas reuniões com o orientador para discutir o andamento
do trabalho e os resultados obtidos. Durante essas reuniões, serão levantados também
tópicos que poderão ser estudados na segunda fase do trabalho.
Aliadas ao estudo continuado, teremos a escrita da dissertação e de artigos científicos, bem como apresentações de tópicos selecionados em seminários para a comunidade local do Instituto de Computação da Unicamp. Estas atividades ajudarão a
13
consolidar os conhecimentos adquiridos.
Pretende-se também realizar um estágio de pesquisa no exterior em algum centro
de excelência na área dos tópicos sobre os quais será feito um estudo aprofundado.
O suporte computacional necessário ao projeto será suprido satisfatoriamente pelos
laboratórios do Instituto de Computação da Unicamp. A literatura indicada poderá ser
obtida nas bibliotecas da Unicamp, da USP, no portal de periódicos da Capes e na
internet.
3.3
Bibliografia comentada
Esta subseção descreve a bibliografia selecionada para a primeira etapa do projeto.
O livro de Yanofsky [39] é um texto introdutório que apresenta as bases da Com-
putação Quântica, usando uma linguagem voltada para cientistas da computação. Entretanto, o texto aborda os temas de uma maneira um tanto superficial. Servirá como
uma primeira leitura para assimilação de conceitos importantes acerca de cada tópico,
relevando-se, neste primeiro momento, maiores detalhes. Em seguida, serão utilizadas
as referências descritas a seguir, que aprofundam os temas de interesse.
Para um desenvolvimento mais detalhado dos temas iniciais serão utilizados os
livros de Kaye [22] e Hiversalo [20]. O primeiro associa os qubits, suas propriedades e
comportamentos à teoria da mecância quântica. O segundo parte dos conceitos de bits
clássicos e os conduz até qubits passando por bits probabilísticos.
Já a literatura sobre algoritmos quânticos é mais extensa e espalhada, dado que é
um tema ainda hoje em evolução. Serão utilizados os livros de Kaye [22] e Mermin
[29] como base para os algoritmos tradicionais. Posteriormente, algoritmos mais recentes e aplicações algorítmicas de passeios quânticos serão estudados através de artigos
específicos [4] [5] [9] [37] [38].
Os tópicos sobre computabilidade e complexidade computacional ainda hoje são
melhor cobertos por artigos científicos. Kondacs [24] e Moore [30] apresentam os resultados iniciais sobre a computabilidade de autômatos quânticos. O texto de Bernstein [8]
é uma boa referência para o estudo de Máquinas de Turing Quânticas. O ensaio de Va-
14
zirani [35], sobre a complexidade computacional quântica, contém os principais pontos
iniciais para um estudo sobre este tipo de complexidade computacional abstrata.
O livro de Nielsen [31], apesar de bem amplo, enfoca muitos tópicos sob aspectos
físicos. Será utilizado como suporte e consulta para assuntos específicos.
A bibliografia básica para a segunda etapa do projeto será definida e refinada durante o desenvolvimento da primeira fase, e consistirá de artigos especializados em
cada área abordada.
3.4
Plano de Trabalho e Cronograma de Execução
Esta seção descreve as atividades e suas respectivas durações, nas duas fases do
projeto como comentado na seção 3.1. Destaca-se também que durante a Fase II, pretendese realizar um estágio de pesquisa no exterior, como citado na seção 3.2.
3.4.1
Fase I
(1) Introdução à Computação Quântica. Bits quânticos, portas e circuitos quânticos, medições de bits quânticos, principais algoritmos quânticos
Duração: 1 mês.
(2) Passeios quânticos e algoritmos quânticos recentes. Aplicações algorítmicas
de passeios quânticos e novos algoritmos quânticos
Duração: 2 meses.
(3) Complexidade Computacional Quântica. Classes de complexidade computacional quânticas, relação entre classes de complexidade, limites da Computação
Quântica.
Duração: 2 meses.
(4) Autômatos quânticos e suas linguagens. Autômatos finitos quânticos, linguagens regulares quânticas, autômatos de pilha quânticos
Duração: 2 meses.
15
(5) Dissertação e relatórios. Escrita das seções referentes à parte estudada na
primeira fase e de relatórios anuais para a Fapesp.
Duração: 3 meses.
(6) Artigos e seminários. Escrita de artigos científicos e preparação de seminários
sobre os tópicos estudados.
Duração: 1 mês.
3.4.2
Fase II
(1) Complexidade Computacional Quântica. Tópicos sobre complexidade computacional quântica selecionados para estudo mais aprofundado.
Duração: 4 meses.
(2) Autômatos quânticos e suas linguagens. Tópicos sobre autômatos quânticos
e linguagens quânticas selecionados para estudo mais aprofundado.
Duração: 4 meses.
(3) Dissertação e relatório final. Finalização da escrita da dissertação e escrita do
relatório final para a Fapesp.
Duração: 3 meses.
(4) Artigos e seminários. Escrita de artigos científicos e preparação de seminários
sobre os tópicos estudados.
Duração: 2 meses.
4
Benefícios ao candidato
Primeiramente, o projeto apresentado permitirá ao candidato se especializar em um
tema recente, que agrega conceitos de diversas áreas adquiridos durante sua graduação, ampliando e solidificando seus conhecimentos em Teoria da Computação.
A dificuldade envolvida nesse tipo de projeto de pesquisa também é, sem dúvida,
uma enorme fonte de aprendizado para um candidato ao mestrado, permitindo um
16
amadurecimento acadêmico do candidato para que possa prosseguir seus estudos em
programas de doutorado.
Referências
[1] J. F. F. Abreu. Jogos Quânticos a partir de Hamiltonianos Biofísicos um Critério de Otimização Sub-neuronal da Informação. Tese de Doutorado, LNCC/MCT, 2005.
[2] A. Ambainis e R. Spalek. Quantum algorithms for matching and network flow.
Em Proceedings of the 23rd International Symposium on Theoretical Aspects of Computer
Science, pág. 172–183. Springer LNCS, 2006.
[3] Andris Ambainis. Quantum lower bounds by quantum arguments. Em Proceedings of the ACM Symposium on Theory of Computing, pág. 636–643, 2000.
[4] Andris Ambainis. Quantum walks and their algorithmic applications. International Journal of Quantum Information, 1:507, 2003.
[5] Andris Ambainis e Robert Špalek. Quantum algorithms for matching and network
flows. Em Proceedings of the 23rd Annual conference on Theoretical Aspects of Computer
Science, STACS’06, pág. 172–183, Berlin, Heidelberg, 2006. Springer-Verlag.
[6] Robert Beals, Harry Buhrman, Richard Cleve, Michele Mosca, e Ronald de Wolf.
Quantum lower bounds by polynomials. J. ACM, 48(4):778–797, 2001.
[7] Charles H. Bennett. Time/space trade-offs for reversible computation. SIAM J.
Comput., 18(4):766–776, August 1989.
[8] E. Bernstein e U. V. Vazirani. Quantum complexity theory. SIAM J. Comput., pág.
1411–1473, 1997.
[9] Harry Buhrman, Ronald de Wolf, Christoph Dürr, Mark Heiligman, Peter H"yer,
Frédéric Magniez, e Miklos Santha. Quantum algorithms for element distinctness.
Em Proceedings of the 16th Annual Conference on Computational Complexity, CCC ’01,
pág. 131–, Washington, DC, USA, 2001. IEEE Computer Society.
17
[10] C. H. Cardonha. Sistemas interativos de prova clássicos e quânticos. Dissertação
de Mestrado, Universidade de São Paulo, 2006.
[11] C. H. Cardonha, Silva M. K. de C., e C. G. Fernandes. Computação quântica:
Complexidade e algoritmos. Relatório técnico, Universidade de São Paulo, 2004.
[12] D. Deutsch. Quantum theory, the Church-Turing principle and the universal
quantum computer. Proceedings of the Royal Society of London A, 400:97–117, 1985.
[13] D. Deutsch. Quantum computational networks. Royal Society of London Proceedings
Series A, 425:73–90, 1989.
[14] D. Deutsch e R. Jozsa. Rapid solutions of problems by quantum computation. Em
Proceedings of the Royal Society of London A, volume 439, pág. 553–558, 1992.
[15] C. Dürr e P. Høyer. A quantum algorithm for finding the minimum. CoRR, quantph/9607014, 1996.
[16] Richard P Feynman. Simulating physics with computers. International Journal of
Theoretical Physics, 21(6-7):467–488, 1982.
[17] Edward Fredkin e Tommaso Toffoli. Conservative logic. International Journal of
Theoretical Physics, 21:219–253, 1982.
[18] D. N. Gonçalves. Algoritmos quânticos para problemas em teoria de grupo computacional. Dissertação de Mestrado, LNCC/MCT, 2009.
[19] Lov K. Grover. A fast quantum mechanical algorithm for database search. Em Proceedings of the twenty-eighth annual ACM symposium on Theory of computing, STOC
’96, pág. 212–219, New York, NY, USA, 1996. ACM.
[20] M. Hirvensalo. Quantum computing. Natural computing series. Springer, 2004.
[21] L. C. L. Hollenberg. Fast quantum search algorithms in protein sequence comparison - quantum biocomputing. Relatório Técnico quant-ph/0002076, Feb 2000.
18
[22] P. Kaye, R. Laflamme, e M. Mosca. An introduction to quantum computing. Oxford
University Press, 2007.
[23] J. Kempe. Quantum random walks - an introductory overview. Contemporary
Physics, 44:307–327, 2003.
[24] A. Kondacs e J. Watrous. On the power of quantum finite state automata. Em
Proceedings of the 38th Annual Symposium on Foundations of Computer Science, pág.
66–, Washington, DC, USA, 1997. IEEE Computer Society.
[25] L. A. B. Kowada. Construção de algoritmos reversíveis quânticos. Dissertação de
Mestrado, LNCC/MCT, 2006.
[26] Ming Li, John Tromp, e Paul Vitanyi. Reversible simulation of irreversible computation. Em Physica D, pág. 301–306, 1996.
[27] F. de L. Marquezino. A transformada de fourier quântica aproximada e sua simulação. Dissertação de Mestrado, LNCC/MCT, 2006.
[28] F. de L. Marquezino. Análise, simulações e aplicações algorítmicas de caminhadas quânticas. Tese de Doutorado, LNCC/MCT, 2010.
[29] N.D. Mermin. Quantum computer science: an introduction. Cambridge University
Press, 2007.
[30] Cristopher Moore e James P. Crutchfield. Quantum automata and quantum grammars. Theor. Comput. Sci., 237:275–306, April 2000.
[31] M.A. Nielsen e I.L. Chuang. Quantum computation and quantum information. Cambridge Series on Information and the Natural Sciences. Cambridge University
Press, 2000.
[32] A. C. Oliveira. Simulação de Caminhos Quânticos em Redes Bidimensionais. Tese de
Doutorado, LNCC/MCT, 2007.
19
[33] R. Portugal, C.C. Lavor, L.M. Carvalho, e N. Maculan. Uma introdução à computação
quântica. SBMAC, 2004.
[34] P W Shor. Algorithms for quantum computation: discrete logarithms and factoring. Proceedings 35th Annual Symposium on Foundations of Computer Science, 35:124–
134, 1994.
[35] Umesh Vazirani. A survey of quantum complexity theory. Em Proceedings of Symposia in Applied Mathematics, volume 58, pág. 193–. American Mathematical Society, 2002.
[36] A. L Vignatti, F.S. Netto, e L. F Bittencourt. Uma introdução à computação quântica. Relatório técnico, Universidade Federal do Paraná, 2004.
[37] N. S. Volpato Filho e A. V. Moura. An O(n3/4 log 2 n) quantum algorithm for the 1dimensional closest pair problem. Em Workshop-Escola de Computaćão e Informaćão
Quântica, 2006.
[38] N. S. Volpato Filho e A. V. Moura. A quantum algorithm for finding the minimum
pair. Em Workshop-Escola de Computaćão e Informaćão Quântica, 2007.
[39] N.S. Yanofsky e M.A. Mannucci. Quantum computing for computer scientists. Cambridge University Press, 2008.
[40] Andrew Chi-Chih Yao. Quantum circuit complexity. Em 34th Annual Symposium
on Foundations of Computer Science, 3-5 November 1993, Palo Alto, California, USA,
pág. 352–361. IEEE, 1993.
20
Download