• Nenhum resultado encontrado

A Utilização do Algoritmo Quântico de Busca em Problemas da Teoria da Informação

N/A
N/A
Protected

Academic year: 2021

Share "A Utilização do Algoritmo Quântico de Busca em Problemas da Teoria da Informação"

Copied!
61
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE

CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA

COORDENAÇÃO DE PÓS-GRADUAÇÃO EM INFORMÁTICA

A Utilização do Algoritmo Quântico de Busca em

Problemas da Teoria da Informação

Nigini Abilio Oliveira

(2)

CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA

COORDENAÇÃO DE PÓS-GRADUAÇÃO EM INFORMÁTICA

A Utilização do Algoritmo Quântico de Busca em

Problemas da Teoria da Informação

Nigini Abilio Oliveira

Dissertação submetida à Coordenação do Curso de Pós-Graduação em Ciência da Computação do Centro de Engenharia Elétrica e Informática da Universidade Federal de Campina Grande – Campus I como parte dos requisitos necessários para obtenção do grau de Mestre em Ciência da Computação.

Área de Concentração: Ciência da Computação

Linha de Pesquisa: Modelos Computacionais e Cognitivos Francisco Marcos de Assis

(Orientador) Bernardo Lula Jr.

(Orientador)

(3)

FICHA CATALOGRÁFICA ELABORADA PELA BIBLIOTECA CENTRAL DA UFCG

O49u

2007 Oliveira, Nigini Abilio.

A utilização do algoritmo quântico de busca em problemas da teoria da informação / Nigini Abilio. ─ Campina Grande: 2007.

50f. : il

Dissertação (Mestrado em Informática) – Universidade Federal de Campina Grande, Centro de Engenharia Elétrica e Informática.

Referências.

Orientadores: Dr. Francisco Marcos de Assis e Dr. Bernardo Lula Júnior.

1. Teoria da Informação. 2. Computação Quântica. 3. Algoritmo de Grover. I. Título.

(4)

Esta dissertação apresenta dois resultados da aplicação do Algoritmo Quântico de Busca (Algoritmo de Grover) em problemas da área da Teoria da Informação. O primeiro deles visa testar a qualidade de um Código de Bloco Linear dado que uma importante caracterís-tica dos mesmos é a distância mínimad entre as palavras que o compõe. A solução

apre-sentada utiliza o Algoritmo da Contagem Quântica para melhorar o desempenho do cálculo ded, para o qual algoritmos clássicos são normalmente intratáveis. Assim tal distância pode

ser utilizada como comparativo entre códigos diferentes. O segundo problema estudado é denominado Ataque Quântico ao Gerador Pseudo-aleatório de Blum-Micali. Tais geradores são utilizados em simulações de sistemas físicos e criptografia, substituindo geradores de números realmente aleatórios que são de difícil implementação. Neste trabalho utiliza-se o Algoritmo de Grover para quebrar a segurança do processo de geração dos números.

(5)

Abstract

This work presents two results related to Quantum Search Algorithm (Grover’s Algorithm) application in Information Theory problems. The first one aims to test the quality of a Linear Block Code, given that they have an important characteristic known as the minimum dis-tance (d) among its composing words. The presented solution uses the Quantum Counting

Algorithm to improved’s calculation since the classical algorithms are intractable.

There-fore, such distance can be used as a comparative parameter between different codes. The second studied problem is called Quantum Attack to Blum-Micali’s Pseudo-random Gener-ator. Such generators are used at physical systems simulations and criptography, replacing really random numbers generators that are difficult to implement. The Grover’s Algorithm is used here to break the number generation process’ security.

(6)

• A Cheyenne Ribeiro pela sua dedicação e paciência.

• A meus pais por todo o amor e esforço ao ensinar-me o caminho da dedicação. • A meus orientadores por todo ensinamento e flexibilidade no encaminhamento da

pesquisa.

• Ao governo brasileiro, através do CNPQ, pelo apoio financeiro.

(7)

Conteúdo

1 Introdução 1 1.1 Computação Quântica . . . 1 1.2 Teoria da Informação . . . 2 1.3 Relevância . . . 2 1.4 Objetivos . . . 3 1.5 Estrutura do Trabalho . . . 3 2 Computação Quântica 4 2.1 Mecânica Quântica . . . 5 2.1.1 Postulados . . . 5 2.1.2 Efeitos Quânticos . . . 9 2.2 Computação . . . 12 2.2.1 Algoritmos Quânticos . . . 13

2.3 Ferramenta: Busca Quântica . . . 13

2.3.1 Primeira Etapa . . . 14

2.3.2 Segunda Etapa . . . 15

2.3.3 Terceira Etapa . . . 17

2.3.4 Leitura e Desempenho . . . 17

2.4 Ferramenta: Contagem Quântica . . . 18

2.4.1 Introdução . . . 19

2.4.2 Estimação de Fase . . . 20

2.4.3 Definição do Algoritmo da Contagem Quântica . . . 22

2.4.4 Conclusões . . . 23

(8)

3 Códigos para Controle de Erros 25

3.1 Canais . . . 25

3.2 Códigos de Bloco Lineares . . . 27

3.2.1 Decodificação . . . 29

3.3 Teste Quântico para Códigos de Bloco Lineares . . . 30

3.3.1 Cálculo da Distância Mínima . . . 30

3.3.2 Algoritmo para Encontrard . . . 35

3.3.3 Avaliação de Desempenho e Recursos . . . 36

4 Ataque Quântico ao Gerador Pseuso-Aleatório de Blum-Micali 38 4.1 Gerador de Blum-Micali . . . 38

4.1.1 Ataque a Geradores Pseudo-aleatórios . . . 39

4.2 Busca Quântica dexj . . . 40

4.2.1 Simulação do Ataque Clássico utilizando o Paralelismo Quântico . 41 4.2.2 Utilização do Algoritmo de Grover . . . 43

4.2.3 Conclusões . . . 44

5 Conclusões e Trabalhos Futuros 46 5.1 Conclusões . . . 46

(9)

Lista de Símbolos

|vi - Vetor v na notação de Dirac. Lê-se ket-v.

hv| - Vetor v transposto na notação de Dirac. Lê-se bra-v. hv|wi - Produto interno entre vetores na notação de Dirac.

† - Operação linear sobre matrizes denominado adjunto ou conjugado Hermitiano. ⊗ - Produto tensorial utilizado para a composição de espaços vetoriais.

|+i - Superposição equiprovável gerada pela aplicação do operador Hadamard em |0i. |−i - Superposição equiprovável gerada pela aplicação do operador Hadamard em |1i. ⊕ - Operação binário denominada XOR, ou ainda, ou-exclusivo.

(10)

2.1 Um qubit definido como um vetor num espaço bi-dimensional de base

com-putacional. . . 6

2.2 Circuito que cria emaranhamento entre 2 qubits, onde a leitura do segundo define o valor do primeiro. . . 12

2.3 Estrutura de um circuito que executa uma iteração do algoritmo de Grover. . 14

2.4 A evolução do sistema para o estado1i = Orac |Ψi. . . . 16

2.5 A evolução do sistema para o estado2i = Ampl |Ψ1i. . . . 17

2.6 Esquema geral do circuito que implementa o algoritmo quântico de contagem. 21 2.7 Implementação detalhada da primeira fase do algoritmo de contagem. . . . 22

2.8 Esquema geral do circuito da contagem quântica de soluções. . . 23

3.1 Um canal de alfabeto binário e erro de apagamento. . . 26

3.2 Estrutura geral do uso de um canal de informação. . . 27

3.3 Duas palavras do código separadas por uma distânciad = 2t + 1. . . 30

3.4 Circuito quântico para cálculo ded em códigos de blocos lineares. . . 32

3.5 Circuito para codificação da porta G’. . . 33

3.6 Circuito para cálculo da porta C. . . 35

3.7 Conjunto de testes para a etapa de contagem. . . 35

4.1 Circuito de ataque ao gerador pseudo-aleatório de Blum-Micali. . . 41

4.2 Porta similar à portaF utilizando o bit mais significativo de xi. . . 43

4.3 Estrutura do oráculo utilizado para as iterações de Grover da portaG∗. . . . 44

(11)

Lista de Tabelas

4.1 Funcionamento do circuito parap = 19, g = 2 e b = 10001000 . . . 42 4.2 Permutação dos elementos utilizandop = 19 e g = 2 . . . 43

(12)

Introdução

Este trabalho apresenta o uso de Algoritmos Quânticos como ferramenta para a obtenção de soluções quânticas mais eficientes que as soluções clássicas existentes. Esta é uma aborda-gem bastante utilizada nos dias atuais e que tem ajudado a popularizar a Computação Quân-tica no meio científico. Neste capítulo serão apresentadas as áreas abrangidas, relevância e objetivos desta dissertação.

1.1

Computação Quântica

No último século, a base científica vigente adquiriu novas ferramentas. A denominada Fí-sica ClásFí-sica foi revista, resultando em uma nova área denominada FíFí-sica Moderna. Dentro desta “nova física” encontra-se a Mecânica Quântica que reúne os postulados e resultados referentes ao funcionamento das partículas subatômicas.

A Computação Quântica (CQ) é um novo paradigma que utiliza a Mecânica Quântica como base para o processamento e transmissão de informação. Esta mudança de paradigma parece estar no caminho natural da evolução tecnológica, já que a redução no tamanho dos componentes dos atuais computadores, se aproxima rapidamente do nível atômico. A curva que descreve o uso de átomos para registrar um bit de informação prevê que na década de 2020 a proporção será de um para um [Wil98], sendo assim, as leis clássicas da Física atualmente utilizadas na computação terão que ser substituídas pela abordagem quântica.

O estudo da CQ iniciou-se na década de 1980 quando Feynman [Fey82] afirmou que nenhum sistema quântico pode ser simulado eficientemente por um sistema clássico. Tal

(13)

1.2 Teoria da Informação 2

trabalho incentivou a pesquisa tanto na busca da construção de uma máquina quântica, como na obtenção de resultados que provassem os ganhos do novo sistema em relação ao clássico.

1.2

Teoria da Informação

A Teoria da Informação (TI) é uma disciplina da Matemática Aplicada relacionada ao estudo da utilização de sistemas de transmissão e armazenamento de informação criando, principal-mente, limitantes de desempenhos para os mesmos. A TI é uma área de pesquisa da qual depende todo sistema que envolva o tratamento de informação, estando portanto presente em todo sistema tecnológico utilizado. Tal área abrange a transmissão de dados por canais físicos sujeitos a interferências, a compactação sem perda de informação, a segurança dos dados através de criptografia, entre outras linhas estudadas.

Esta área foi fundada pelo matemático Claude Shannon em 1948 com o trabalho deno-minado Uma Teoria Matemática para a Comunicação [Sha48]. Shannon foca-se principal-mente na utilização de canais imperfeitos que durante a transmissão de informação possibi-lita a introdução de erros na mesma.

Neste trabalho dois problemas desta área serão analisados sob a ótica de sistemas quân-ticos. O primeiro deles está inserido na sub-área denominada Codificação para Controle

de Erros que define técnicas e limitantes para a utilização de meios de armazenamento e

transmissão de informação. O segundo problema está inserido na sub-área da Segurança e

Criptografia, mais especificamente a algoritmos geradores de números pseudo-aleatórios.

1.3

Relevância

A Teoria da Informação é de fundamental importância para o mundo atual pois contribui para o funcionamento de toda tecnologia utilizada no dia-a-dia. Melhorias em sub-áreas como transmissão e segurança da informação são suficientemente relevantes para o contexto deste trabalho.

Além disso, a obtenção de resultados que atestem os ganhos computacionais conseguidos através da utilização da teoria quântica, fomenta o desenvolvimento da ciência em busca, principalmente, da construção de hardwares baseados na mecânica quântica.

(14)

1.4

Objetivos

O objetivo geral deste trabalho é demonstrar a utilização da Computação Quântica como importante meio para solucionar problemas computacionais de modo mais eficiente. Deseja-se atingir tal objetivo utilizando ferramentas/algoritmos quânticos na solução de problemas da Teoria da Informação.

Na realização do mesmo pretende-se alcançar outras metas tais como:

• gerar resultados ao menos inspiradores para futuras pesquisas nos temas relacionados; • criar um texto acessível à pessoas da área da Computação e afins que desejem entender

melhor o estudo e pesquisa da Computação Quântica.

1.5

Estrutura do Trabalho

Além desta introdução, este trabalho conta com quatro outros capítulos. No capítulo 2 se-rão apresentados os principais conceitos teóricos relacionados à Computação Quântica e os algoritmos utilizados nas contribuições científicas aqui realizadas. O capítulo 3 contêm a primeira solução desenvolvida relacionada a Códigos Lineares. O capítulo 4 expõe uma segunda contribuição desenvolvida na sub-área de geradores pseudo-aleatórios. Por fim, a última parte mostra algumas conclusões e trabalhos futuros, buscando expor a satisfação dos objetivos anteriormente definidos.

(15)

Capítulo 2

Computação Quântica

O século XX apresenta os grandes passos do desenvolvimento científico necessários para o surgimento da chamada Computação Quântica (CQ), originada de uma vertente da Física hoje conhecida como Mecânica Quântica (MQ). Esta, por sua vez, surgiu da busca por res-postas não dadas pela Física Clássica, um conjunto de leis formuladas nos séculos anteriores para explicar o funcionamento do universo.

As primeiras décadas do século XX foram marcadas pela quebra de paradigmas na Física, baseada principalmente nas pesquisas relacionadas aos átomos e suas partículas. Esta “física do muito pequeno” respondeu a questões importantes e em meados do século, a MQ já embasava os trabalhos científicos. Nas décadas de 1980 e 1990 concentram-se os principais trabalhos de matemáticos, engenheiros e cientistas da Computação na construção da CQ.

Na década de 80, percebeu-se que se a linha evolutiva dos computadores se mantivesse (o que tem sido um fato), em 40 anos as unidades de processamento e memória estariam sendo implementadas em tamanhos tão pequenos que o paradigma físico a ser aplicado deveria mu-dar. Desde então, a preocupação com o estudo da computabilidade destas futuras máquinas tem sido o grande impulsionador da CQ. Estudo das classes de complexidade, autômatos e máquinas de turing, circuitos e algoritmos quânticos são as principais linhas de trabalho desta área nos últimos 30 anos.

(16)

2.1

Mecânica Quântica

A Mecânica Quântica é uma teoria física que estuda e descreve o comportamento do mundo das partículas microscópicas. Quando se estuda o nível atômico e subatômico, esta teoria corrige e complementa a Física Clássica, usualmente abordada em dois ramos: Mecânica Newtoniana e Eletromagnetismo. Existem algumas formulações matemáticas para esta me-cânica, dentre as mais utilizadas estão a mecânica ondulatória e a matricial, posteriormente unificadas pela descrição de Paul Dirac [Dir58]. Como os resultados apresentados por estas formulações não são intuitivos, várias interpretações são dadas à MQ. Este trabalho não dis-cute tais interpretações e considera apenas o fato destacado por Nick Herbert [Her85] quando afirma que: A mecânica funciona, independente do que se creia. Nesta seção será feita uma introdução à formulação matricial proposta por Werner Heisenberg [Hei25] e à notação de Dirac, juntamente com os princípios da MQ, que serão utilizados por todo o texto.

2.1.1

Postulados

Uma mecânica pode ser vista como um conjunto de propriedades aplicáveis no estudo e ma-nipulação de sistemas físicos. No caso de sistemas descritos pela MQ é possível a criação de métodos para a manipulação e, por assim dizer, a computação de informação. Nesta subse-ção será feita uma introdusubse-ção a esta mecânica baseada em conceitos fundamentais como os seus postulados e efeitos.

Postulado 1 - Espaço de Hilbert

Define o modelo matemático que descreve um sistema quântico.

Este primeiro postulado associa um sistema físico qualquer a um espaço vetorial com-plexo denominado Espaço de Hilbert. Por comcom-plexo deve-se entender que as componentes do mesmo pertencem ao conjunto dos números complexos. O espaço de Hilbert é um espaço vetorial provido de produto interno (notação< v, w >) cuja métrica1, definida pela norma

|v| =√< v, v >, o torna um espaço completo2.

1Um espaço métrico(X, d) é um conjunto X munido de uma métrica de distância d(x, y) (e x, y ∈ X)

que obedece a quatro propriedades: d(x, y) é um valor real, não negativo e finito; é nulo apenas para x = y; é

simétrico; e obedece a desigualdade triangular.

(17)

2.1 Mecânica Quântica 6

O mais simples dos sistemas quânticos (e mais importante para este trabalho) é o qubit (leia-se kiubit). Este sistema pode ser descrito como um vetor num espaço de Hilbert bi-dimensional. O estado de um qubit é descrito pela soma das componentes do vetor relativo às bases do espaço. Na figura 2.1 pode ser visto um exemplo de espaço vetorial composto pela base computacional {0, 1}.

|0ñ |1ñ

| ñψ

b a

Figura 2.1: Um qubit definido como um vetor num espaço bi-dimensional de base computa-cional.

Na notação de Dirac, um vetor v é descrito pelo símbolo |vi =

  v1 v2   denominado ket.

O símbolo para o vetor transposto é denominado bra e escreve-sehv| = hv1 v2i. Assim, pode-se escrever o estado de um qubit genérico da seguinte forma:|Ψi = a |0i + b |1i; onde

a, b ∈ C, e {|0i , |1i} compõem a base do espaço.

Postulado 2 - Operadores Unitários

Sobre a evolução do sistema.

A evolução de um sistema quântico de um estado1i para um estado |Ψ2i se dá através

da aplicação de um operador unitárioU. Um operador é definido como uma matriz quadrada

com as dimensões do espaço em questão. A aplicação do mesmo a um estado é definida como a multiplicação da matriz pelo vetor, resultando em um novo estado. Utilizando a notação de Dirac, a aplicação de uma operação é escrita da seguinte forma: 2i = U |Ψ1i.

(18)

Este postulado define que, no caso dos sistemas quânticos, os operadores devem ser unitários, o que significa que o operadorU deve satisfazer: UU†= UU = I. Esta exigência

está relacionada com a manutenção da norma, uma característica intrínseca aos vetores. O cálculo da norma é feito através da fórmulakvk = phv|vi, onde hv|vi é o produto interno também escrito como(|vi , |vi). A equação 2.1 mostra que o produto interno não é alterado por operadores unitários e por conseguinte sua norma permanece constante.

(|vi , |wi) = U(|vi , |wi) = (U |vi , U |wi) = hv| U†U |wi = hv|wi (2.1) A interpretação geométrica do resultado deste produto é a do ângulo entre os vetores:

angulo (v, w) = arccoskvk·kwkhv|wi . Para a MQ os vetores devem ser unitários (ou normalizados) o que significa que sua norma é 1, reduzindo a fórmula acima, ao cálculo do produto interno (angulo (v, w) = arccoshv|wi1·1 ).

Os vetores da base do espaço devem ser ortogonais, logo o produto interno entre eles é 0. A equação 2.2 mostra tal relação.

hv|wi =      0, sev ⊥ w 1, quandov = w (2.2) Postulado 3 - Medições

Mostra como devem ser feitas leituras de informações no sistema quântico.

Um sistema computacional clássico é dito aberto pois uma entidade externa ao sistema é capaz de conhecer seu estado sem interferir na computação. Já os sistemas quânticos são fechados por definição, pois as leituras externas interferem no próprio estado lido. Este postulado vem definir a medição quântica como sendo um conjunto de operadoresMmonde

o índice m refere-se ao valor de leitura possível, denominado observável. O conjunto de

observáveis é definido pela base do espaço utilizada para codificar o sistema. Por exemplo, a base computacional define um estado |Ψi = a |0i + b |1i, determinando os observáveis

m = {0, 1}.

A medição é um experimento probabilístico que retorna m com uma probabilidade p(m) = hΨ| M†

mMm|Ψi. Os operadores de medição na base computacional são: M0 =

(19)

2.1 Mecânica Quântica 8

base computacional. Como resultado, as probabilidadesp(0) = |a|2 ep(1) = |b|2 mostram a correlação das componentes complexas do vetor e o experimento de leitura.

p(0) = hΨ| M0†M0|Ψi

= (a∗h0| + bh1|)(|0i h0|0i h0|)(a |0i + b |1i)

= (a∗h0| + bh1|)(|0i h0|)(a |0i + b |1i)

= (a∗h0| + bh1|)(a h0|0i |0i + b h1|0i |0i)

= (a∗h0| + bh1|)(a · 1 · |0i + b · 0 · |0i)

= (a∗h0| + bh1|)(a |0i)

= |a|2h0|0i + |b|2h1|0i

= |a|2.

(2.3)

Ainda como parte do postulado, o estado após a medição é definido como sendoi =

Mm|Ψi /pp(m). A equação 2.4 descreve o estado após a aplicação do operador M0. O

resultadoi = |0i demonstra que o estado colapsa para o vetor da base escolhido para a leitura. Este tipo de medida é conhecida como projetiva, pois leva o sistema a uma base do espaço. |Ψ′i = M0|Ψi √ p(0) = (|0ih0|)(a|0i+b|1i)√ |a|2 = ah0|0i|0i+bh1|0i|0i|a| = |a|a |0i . (2.4)

Várias outras importantes consequências são definidas na literatura da área sobre medi-ções. Porém, pelo motivo deste trabalho não utilizar mais que as idéias expostas acima, não serão definidos outros cenários de medição.

Postulado 4 - Composição de Espaços

Tece sobre a composição de qubits em sistemas quânticos capazes de computar tarefas reais.

Nenhum sistema com apenas uma posição de informação (i.e. um qubit no caso compu-tacional) parece ser suficiente para computar alguma tarefa real. No caso dos computadores clássicos atuais, os processadores usam 32 ou 64 bits por instrução computacional, ou ainda

(20)

milhões de bits para guardar informações relevantes aos processos. A questão abordada por este postulado é a montagem de sistemas quânticos eficazes utilizando vários qubits.

A composição dos sistemas físicos aqui estudados é dada pelo produto tensorial dos espa-ços vetoriais. Matricialmente um produto tensorial (A ⊗ B) é definido como a multiplicação de cada elemento da matriz A pela matriz B, como mostra a equação 2.5. Na notação de Di-rac, o produto tensorial entre vetores pode ser escrito como|vi ⊗ |wi, |vi |wi ou ainda |vwi. De forma geral, sejam dois espaços vetoriais V e W de dimensões m e n respectivamente. O novo espaçoV ⊗ W tem dimensão m × n e seus vetores são descritos como combinações lineares da sua base. A base do espaçoV ⊗ W é definida pelo produto tensorial das bases dos espaços menores.

Como exemplo, descreve-se a seguir um estado genérico para um sistema com dois qubits na base computacional. Como a base para cada um dos qubits é formada pelos vetores|0i e|1i tem-se que a nova base computacional é definida pelos vetores: |00i , |01i , |10i , |11i, que são os produtos tensoriais das combinações entre vetores das bases menores. Assim, um estado genérico para este sistema é escrito como: |Ψi = a |00i + b |01i + c |10i + d |11i.

I ⊗ X =   1 0 0 1   ⊗   0 1 1 0   =   0 · X 1 · X 1 · X 0 · X   =         0 1 0 0 1 0 0 0 0 0 0 1 0 0 1 0         (2.5)

A equação 2.6 mostra duas propriedades do produto tensorial: (1) não distributividade com relação a multiplicação por escalares e (2) distributividade com relação à soma vetorial, sendoz um escalar, v e w vetores (pertencentes a espaços V e W diferentes).

            

(1) z(|vi ⊗ |wi) = z |vi ⊗ |wi = |vi ⊗ z |wi

(2) (|v1i + |v2i) ⊗ |wi = |v1i ⊗ |wi + |v2i ⊗ |wi , ou

|vi ⊗ (|w1i + |w2i) = |vi ⊗ |w1i + |vi ⊗ |w2i .

(2.6)

2.1.2

Efeitos Quânticos

Além dos postulados, alguns outros conceitos são de fundamental importância para o enten-dimento da Computação Quântica. Estes conceitos podem ser vistos como ferramentas que

(21)

2.1 Mecânica Quântica 10

dão à CQ melhorias computacionais não antes disponíveis nos sistemas físicos clássicos.

Superposição

A superposição ou sobreposição é talvez o mais conhecido efeito do modelo quântico. É a propriedade que os qubits possuem de registrar ao mesmo tempo diferentes valores. Este conceito é equivalente à definição do estado |Ψi definido no Postulado 1 onde o mesmo é descrito pela combinação linear dos vetores da base.

Um operador particularmente importante na descrição deste conceito é o operador de Hadamard. A matriz que define este operador é mostrada na equação 2.7 (1), assim como sua representação na notação de Dirac (2).

(1) H = √1 2   1 1 1 −1   (2) H = √1

2(|0i h0| + |0i h1| + |1i h0| − |1i h1|)

(2.7)

A aplicação do Haddamard nos vetores da base computacional cria um estado em su-perposição com leitura dos observáveis igualmente provável (p = 1/2), como mostrado na

equação 2.8.

(1) H |0i = √1

2(|0i h0| + |0i h1| + |1i h0| − |1i h1|) |0i

= 1

2(|0i h0|0i + |0i h1|0i + |1i h0|0i − |1i h1|0i)

= √1

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

(2) H |1i = 1

2(|0i h0| + |0i h1| + |1i h0| − |1i h1|) |1i

= √1

2(|0i h0|1i + |0i h1|1i + |1i h0|1i − |1i h1|1i)

= 1

2(|0i − |1i) = |−i

(2.8)

De forma geral, se um sistema quântico pode estar em um dentren estados |Ψ1i, |Ψ2i,

...,ni, este mesmo sistema está em um estado superposto descrito por:

|Ψi = n−1 X i=0 ai|Ψii (2.9) Paralelismo

O paralelismo é uma consequência direta da superposição quântica. Como o sistema evolui através de operações unitárias (vide Postulado 2), todas as componentes superpostas do

(22)

es-tado em questão são modificadas ao mesmo tempo, como se fossem argumentos individuais para a função computada pela operação. Um exemplo pode ser dado com a aplicação da transformaçãoX, equivalente ao NOT clássico, em um sistema de um qubit na base

compu-tacional.

|Ψ1i = |1i (um qubit no estado 1)

|Ψ2i = H |1i (aplicação da porta Hadamard)

= |−i (estado sobreposto)

|Ψ3i = X√12(|0i − |1i) (aplicação do NOT)

= √1

2(|1i − |0i) (bits invertidos pelo NOT).

(2.10)

A questão do paralelismo possui uma contra-partida importante. Quanto mais compo-nentes superpostos num estado, maior a capacidade de computação paralela e menor a pro-babilidade de leitura de um determinado valor superposto.

Emaranhamento

O emaranhamento é uma característica relacionada ao Postulado 4. Os sistemas quânticos quando combinados posuem a característica de não poderem mais ser descritos como dois espaços, mas sim, como um único espaço maior. Por estarem emaranhados, a leitura em um dos sistemas (e.g. qubit) leva os outros a um colapso compartilhado.

Um exemplo pode ser dado com a utilização de dois qubits. O circuito da figura 2.2 recebe como entrada dois qubits|0i e seu estado inicial é descrito por |Ψ0i = |0i⊗|0i = |00i.

Quando o primeiro qubit é posto em superposição através da porta Hadamard, o estado passa a ser1i = √12(|00i+|10i), pois o segundo qubit não foi alterado. No terceiro passo

aplica-se uma porta conhecida como CNOT, ou NOT controlado, significando que o aplica-segundo qubit será invertido apenas se o primeiro for igual a 1. Esta operação leva o sistema ao estado

|Ψ2i = √12(|00i + |11i). A leitura do segundo qubit no estado |Ψ2i retorna 0 ou 1, com

uma probabilidade dep(0) = p(1) = (1/√2)2 = 1/2, levando o primeiro qubit a colapsar

(23)

2.2 Computação 12 |0i H • |0i X NM |Ψ0i        |Ψ1i        |Ψ2i       

Figura 2.2: Circuito que cria emaranhamento entre 2 qubits, onde a leitura do segundo define o valor do primeiro.

2.2

Computação

A Teoria da Computação (TC) tem como principal linha de pesquisa os modelos que des-crevem a tarefa de computar. Deste estudo surgem caracterizações de tais tarefas como por exemplo a sua análise de complexidade. Esta análise busca definir em termos gerais, quanto recurso consome uma determinada solução para um problema. Por exemplo: Quanta memó-ria é utilizada para realizar uma soma de dois números inteiros? Quanto tempo é necessário para ordenar um vetor de n elementos?

A caracterização dos problemas de acordo com suas soluções mais eficientes deu origem às classes de complexidade. Para definir uma classe de complexidade é necessário fixar o modelo computacional utilizado e o recurso analisado. Uma classe fundamental para a computação é a classe P. Esta inclui todos os problemas que possuem solução em tempo polinomial numa máquina determinística. Por tempo polinomial deve-se entender que o consumo de tempo pelo algoritmo é expresso por uma função polinomial, como: n2, n3,

2n2, 5n3 + 7 (onde n é o tamanho da entrada do problema). Neste caso, o importante da

função é a magnitude de seu crescimento, e por isso a função n2 pode ser dita da mesma

ordem de2n2. Formalmente escreve-se:5n3+ 7 ≡ O(n3).

Assim como o crescimento polinomial, existem problemas em classes que definem um crescimento linear, exponencial, fatorial, etc. Para fins deste trabalho, a principal informa-ção neste contexto é a comparainforma-ção entre soluções polinomiais e exponenciais já que, na TC clássica, estas definem os problemas como tratáveis e intratáveis, respectivamente. O estudo da Computação Quântica prova que problemas até então intratáveis em modelos computaci-onais clássicos, podem ter uma solução tratável no modelo quântico.

Nas próximas seções deste capítulo serão introduzidos os algoritmos quânticos, com ênfase no algoritmo de busca, utilizado como principal ferramenta deste trabalho.

(24)

2.2.1

Algoritmos Quânticos

Algoritmos quânticos são aqueles que fazem uso de algumas das características citadas pre-viamente neste capítulo para computar uma tarefa. O estudo destes algoritmos teve início apenas na década de 1980 com resultados comparativos entre máquinas de turing (MT) determinísticas, probabilísticas e não-determinísticas. Deutsch e Jozsa [Deu85], [Joz91], [DJ92] mostraram resultados com funções que eram computadas mais rapidamente em uma MT quântica (não-determinística), porém os ganhos não foram tão representativos pois al-goritmos probabilísticos também realizavam a tarefa facilmente. Outros trabalhos também analisaram os modelos computacionais quânticos como [BV97], [BB92], [Sim94] funda-mentando os estudos das classes de complexidade quânticas.

Apenas no ano de 1994, Shor [Sho94] criou o primeiro algoritmo significativo na área: um algoritmo polinomial para fatorar números grandes. Como a segurança computacional dos dias atuais é baseada na dificuldade de fatoração, o algoritmo de Shor aumentou o in-teresse pela CQ. No ano de 1996, um outro algoritmo foi descrito por Grover [Gro96] para realizar a busca de elementos dentro de um conjunto desordenado, apresentando um ganho quadrático sobre o algoritmo clássico mais eficiente.

Até os dias atuais, a Transformada Quântica de Fourier utilizada por Shor em seu famoso algoritmo de fatoração, e o Algoritmo Quântico de Busca de Grover têm sido as bases para o desenvolvimento dos algoritmos quânticos evidenciando as potencialidades de uma máquina quântica. Neste trabalho, o algoritmo de Grover será utilizado em duas situações distintas: a primeira aplicada à teoria dos códigos de bloco lineares, descrita no capítulo 3, e a segunda relacionada com geradores pseudo-aleatórios, descrita no capítulo 4. Uma introdução ao mesmo será feita na próxima seção.

2.3

Ferramenta: Busca Quântica

O Algoritmo Quântico de Busca, ou simplesmente Algoritmo de Grover [Gro96], foi es-crito por L.K. Grover no ano de 1996. O melhor algoritmo clássico resolve a busca de um elemento em uma estrutura desordenada em tempo O(N) (onde N é a quantidade de

elementos do conjunto de entrada), enquanto a solução apresentada por Grover encontra o elemento em tempoO(√N ). Este algoritmo quadrático tem sido utilizado por alguns

(25)

traba-2.3 Ferramenta: Busca Quântica 14

lhos desde sua publicação incluindo [LLM05] e parte dos resultados já publicados [OA06; ONA07], descritos no capítulo 3 e 4 respectivamente.

O Algoritmo de Grover está dividido em três etapas. A primeira delas, bastante comum na Computação Quântica, é a preparação dos qubits utilizados colocando-os em superpo-sição. A segunda etapa deve marcar o elemento buscado através de uma operação unitária denominada oráculo. Por fim, na terceira etapa, é aplicada uma operação conhecida como

amplificação de amplitude, que deve aumentar a probabilidade de leitura do elemento

ante-riormente marcado.

O circuito da figura 2.3 é dividido nas três partes do algoritmo citadas acima. Considera-se a existência de dois registradores: o primeiro possui n = logN qubits, todos iniciados

com o valor|0i; e o segundo possui um único qubit auxiliar iniciado com o valor |1i. Dados os valores dos registradores é possível escrever o estado inicial do sistema como: |Ψi =

|0...01i. |0i H Orac Ampl NM .. . ... ... |0i H NM |1i H H

Figura 2.3: Estrutura de um circuito que executa uma iteração do algoritmo de Grover.

2.3.1

Primeira Etapa

O primeiro estágio do algoritmo é a preparação dos qubits utilizando portas Hadamard. Esta porta coloca os qubit em superposição, com uma amplitude de probabilidade igualmente distribuída para cada estado da base do espaço (vide seção 2.1.2). A ação desta operação pode ser vista na equação 2.11, onde as três últimas igualdades são formas diferentes de notação para o mesmo resultado.

(26)

|Ψ1i = H⊗n+1|Ψi = H⊗n|0i⊗nH |1i = h√1 2n Pn−1 i=0 |ii i h |0i−|1i 2 i =   |0i+|1i 2 ⊗nh |0i−|1i 2 i = |+i⊗n|−i (2.11)

2.3.2

Segunda Etapa

O segundo estágio do algoritmo refere-se à aplicação do oráculo (porta Orac). Este é um operador unitário que utiliza qubits auxiliares para marcar o elemento procurado. A equa-ção 2.12 mostra como uma operaequa-ção unitária computa uma funequa-çãof qualquer, colocando o

resultado no segundo qubit (auxiliar).

Uf(|ii |ji) = |ii |j ⊕ f(i)i . (2.12)

No caso estudado, Uf representa o oráculo, o |ii representa a entrada da função

(super-posição dos elementos da estrutura desordenada) e o|ji é um qubit utilizado para marcar o elemento. A equação 2.13 define a função a ser implementada pelo oráculo.

f (i) =      1, se i é o elemento procurado 0, caso contrário . (2.13)

A aplicação dos resultados exibidos na equação 2.12 sobre o estado1i do circuito pode

ser vista na equação 2.14.

|Ψ2i = Uf(|Ψ1i)

= Uf(|+i⊗n|−i)

= (chamando o primeiro registrador de |ii escreve-se)

= Uf(|ii |−i) = Uf  |ii|0i−|ii|1i 2  = Uf(|ii|0i)−Uf(|ii|1i) √ 2 = √1

2(|ii |f(i)i − |ii |1 ⊕ f(i)i)

= |ii|f(i)−|1⊕f(i)ii√ 2



(27)

2.3 Ferramenta: Busca Quântica 16

Para finalizar a aplicação do oráculo resta considerar as possibilidades de valor para a função f (i) = {0, 1} (vide equação 2.15). O resultado final do estado |Ψ2i mostra que,

apenas os elementos que satisfazem a função computada porUf recebem uma fase, ou seja,

o elemento buscado será marcado com um sinal negativo.

|Ψ2i =      |ii|0i−|1i√ 2 

= |ii |−i , Se f(i) = 0

|ii|1i−|0i√ 2



= |ii (−1) |−i , Se f(i) = 1 = (−1)f (i)|ii |−i

(2.15)

É possível fazer uma interpretação geométrica deste algoritmo. Como mostra a primeira parte da figura 2.4 o estado do sistema pode ser reescrito utilizando uma nova base: |βi representa o vetor que define o elemento procurado pelo oráculo e|αi o seu vetor ortogonal. Normalmente, nesta nova base, o vetori = a |αi + b |βi estará mais próximo do vetor

|αi pois existem muito mais elementos que não satisfazem o oráculo que o contrário. Na

mesma figura é mostrado o estado após a ação do oráculo, que nos moldes acima definidos, representa sempre uma reflexão do estado inicial em relação ao vetor|αi, pois |Ψ1i = a |αi−

b |βi. |añ |bñ |ψ*ñ |ψ1ñ * θ/2 θ/2

(28)

2.3.3

Terceira Etapa

A operação unitáriaAmpl = (2 |Ψi hΨ| − I) foi introduzida por Grover em [Gro96], e sua aplicação em um estado com elementos previamente marcados, acarreta na amplificação da amplitude [BHMT00] de tais elementos. A figura 2.5 mostra a reflexão, em relação ai, executada por este operador. A composição das reflexões impostas pelos operadores Orac e

Ampl é conhecida como iteração de Grover. O resultado de uma aplicação desta iteração

pode ser vista como a rotação do estadoi num ângulo de θ para mais próximo do vetor

|βi. |añ |bñ |ψ*ñ |ψ1ñ * θ θ/2 | 2ψ θ/2

Figura 2.5: A evolução do sistema para o estado2i = Ampl |Ψ1i.

2.3.4

Leitura e Desempenho

Como visto no Postulado 3, a medição dos qubits retornará um observável (0 ou 1) com uma determinada probabilidade. A iteração de Grover, por haver levado o sistema para mais próximo de|βi, aumenta a probabilidade de leitura do elemento buscado, porém em muitos casos a aplicação de sucessivas iterações de Grover pode levar a uma probabilidade ainda maior. Mas existe um limite máximo de aproximação entre os vetoresi e |βi.

Para demonstrar esse limite de aplicações da iteração (rotação) de Grover, reescreve-se o estado do sistema considerando a possibilidade do oráculo marcar M elementos. Sendo N o número total de elementos do conjuntos, define-se:

(29)

2.4 Ferramenta: Contagem Quântica 18

• P′

xindica a soma dos M elementos que são solução para a busca; e

• P′′

xno caso contrário (N-M elementos).

Usando estas definições os vetores que formam a base do espaço são escritos:

• |αi = √ 1 N −M P′′ x|xi; e • |βi = 1 M P′ x|xi.

Considerando esta definição dos vetores da base, o estado inicial é definido por: i =

q

N −M N |αi +

q

M

N |βi. Como mostrado na figura 2.5, cada iteração de Grover, composta de

duas reflexões, causa uma rotação deθ graus em direção ao vetor |βi. Desta forma, a rotação do vetor i de arccos(pM/N) radianos leva o sistema a uma aproximação máxima de

|βi definindo um valor para R como mostrado na equação 2.16.

R = IMP arccospM/N θ

!

onde, IMP significa Inteiro Mais Próximo. (2.16)

ComoarccospM/N ≤ π/2 a equação 2.16 pode ser reescrita como:

R ≤lπ m (2.17)

Partindo da equação 2.17 pode-se criar um limite superior paraR dado um limite inferior

paraθ, já que os mesmo são inversamente proporcionais. Este limite pode ser estipulado dada

a relação trigonométrica: θ2 ≥ sinθ2. A equação 2.18 reescreve a equação 2.17 utilizando a relação e mostra que o algoritmo executa em O(pN/M) passos, provando um ganho quadrático com relação à complexidadeO(N/M) do caso clássico.

sinθ 2 = r M N =⇒ R ≤ & π 4 r N M ' (2.18)

2.4

Ferramenta: Contagem Quântica

O Algoritmo de Grover apresentado na seção 2.3 pode ser visto como um caso especial de um processo mais geral denominado Amplificação de Amplitude. Da mesma forma, a ferramenta descrita nesta seção pode ser considerada um caso especial de um processo conhecido como

(30)

Estimação de Amplitude. A Contagem Quântica [BHT98] resulta da combinação de dois dos

principais resultados da CQ: a busca quântica e a Transformada Quântica de Fourier (QFT) [Sho94].

2.4.1

Introdução

Uma transformação é uma função que age sobre um conjunto de dados de entrada e gera um conjunto transformado destes dados. Poucas são as transformadas que possuem uma usabilidade tão alta como a transformada de Fourier, largamente utilizada nas áreas de teoria dos números, análise combinatória, processamento de imagens e sinais, criptografia, entre outras. A QFT é uma implementação quântica análoga à sua versão clássica, cuja ação num estado arbitrário é descrita por:

N −1 X j=0 xj|ji −→ N −1 X k=0 yk|ki (2.19)

onde a amplitudeyké a transformada discreta de Fourier da amplitudexj.

A descrição detalhada da QFT será omitida por uma questão de simplicidade, mas outras informações podem ser encontradas em [NC00] capítulo 5. Para fins de entendimento da contagem quântica é suficiente saber que ao aplicar esta transformação em um estado|ji, o mesmo será decomposto em estados da base de forma bem peculiar. A equação 2.20 mostra tal decomposição utilizando duas notações: o valor decimal do estado |ji é reescrito na forma binária|j1, . . . , jni, e a fração binária jl/2 + jl+1/4 + · · · + jm/2m−l+1é representada

por0.jljl+1· · · jm.

|j1, . . . , jni → (|0i + e

(2πi)(0.jn)|1i)(|0i + e(2πi)(0.jn−1jn)|1i) · · · (|0i + e(2πi)(0.j1j2...jn)|1i)

2n/2

(2.20) É importante perceber que um valor transformado dej foi escrito na fase do estado |1i da base computacional. Como a entrada foi representada em binário, a saída é composta por vários qubits onde a fase de cada um dos estados|1i carrega parte do resultado. Apesar de parecerem demasiado complexos, os resultados do cálculo desta equação são facilmente compreendidos. Na equação 2.21 é mostrado o cálculo da transformada de Fourier sobre os

(31)

2.4 Ferramenta: Contagem Quântica 20

estados da base computacional paran = 1, {|0i , |1i}, cujo resultado equivale à aplicação da porta Hadamard. |0i → (|0i + e 2πi(0.0)|1i) 21/2 (2.21) → (|0i + e 2πi(0/2)|1i) √ 2 → (|0i + |1i)√ 2 |1i → (|0i + e 2πi(0.1)|1i) √ 2 → (|0i + e 2πi(1/2)|1i) √ 2 → (|0i − |1i)√ 2

Já na equação 2.22, o cálculo da transformada é realizado sobre um dos estados da base para n = 2, {|00i , |01i , |10i , |11i}, para que a utilização das frações binárias fique mais clara.

|01i → (|0i + e

2πi(0.1)|1i)(|0i + e2πi(0.01)|1i)

22/2 (2.22)

→ (|0i + e

2πi(1/2)|1i)(|0i + e2πi(0/2+1/4)|1i)

2 → (|0i + e

πi|1i)(|0i + eπi(1/2)|1i)

2 → (|0i − |1i)(|0i + i |1i)2

→ (|00i + i |01i + |10i − i |11i)2

2.4.2

Estimação de Fase

SejaU uma operação unitária com autovetor |ui e autovalor e2πiφ. O objetivo do algoritmo de estimação de fase é estimar o valor deφ. A solução apresentada para este problema depende

da existência de um oráculo capaz de preparar o autovetor|ui para que seja utilizado como entrada do algoritmo. A figura 2.6 mostra o circuito geral que soluciona o problema proposto.

(32)

Este circuito utiliza dois registradores compostos por vários qubits e é executado em duas etapas.

O primeiro registrador, utilizado para guardar o valor binário de φ, é iniciado com |0i em todos os seust qubits. A quantidade t depende da precisão desejada para o valor da fase

buscada. É provado em [NC00] (seção 5.2.1) que para uma aproximação do valor deφ com

precisão2−msão necessários

t = m +  log  2 + 1 2ǫ  (2.23) com probabilidade de sucesso de ao menos1 − ǫ. O segundo registrador possui tantos qubits quantos forem necessários para registrar o autovetor|ui previamente preparado.

|0i / H • F T† NM |ui / Uj

Figura 2.6: Esquema geral do circuito que implementa o algoritmo quântico de contagem.

A primeira fase

A primeira fase do algoritmo (aplicação da portaUj) é responsável pela construção do valor

φ no primeiro registrador. É necessário ressaltar que a aplicação de uma operação unitária U qualquer ao seu autovetor |ui resulta em uma fase do tipo eiθ. A equação 2.24 mostra a

evolução de um sistema similar ao da figura 2.7 até a aplicação deU, mas utilizando apenas

um qubit no primeiro registrador.

|Ψ1i = |0i |ui (2.24)

|Ψ2i = H |0i I |ui = (|0i |ui + |1i |ui)/

√ 2 |Ψ3i = U(|Ψ2i) = (|0i |ui + eiθ|1i |ui)/

√ 2 = (|0i + eiθ|1i) |ui /√2

O circuito da figura 2.7 implementa detalhadamente a primeira fase do algoritmo. O resultado de cada qubit do primeiro registrador neste circuito baseia-se nos resultados da

(33)

2.4 Ferramenta: Contagem Quântica 22

equação 2.24 fazendo-se θ = 2πi(2zφ) (onde 0 ≤ z ≤ t − 1). O estado do primeiro

registrador após a aplicação deste circuito está descrito na equação 2.25.

1

2t/2(|0i + e

2πi(2t−1φ)

|1i)(|0i + e2πi(2t−2φ)|1i) . . . (|0i + e2πi(20φ)|1i) (2.25)

= 1 2t/2 2t−1 X k=0 e2πiφk|ki .

|0i H · · · • |0i + e2πi(2t−1ϕ)|1i

.. .

Registrador 1

t qubits |0i H • · · · |0i + e2πi(22ϕ)|1i

|0i H • · · · |0i + e2πi(21ϕ)|1i

|0i H • · · · |0i + e2πi(20ϕ)|1i

U20 U21 U22 U2t−1

Registrador 2 |ui · · · |ui

                               

Figura 2.7: Implementação detalhada da primeira fase do algoritmo de contagem.

A segunda fase

A segunda fase do algoritmo é a aplicação da QFT inversa (QF T†) no primeiro registrador

seguido da medição do mesmo. Uma comparação do estado descrito na equação 2.25 e o resultado da aplicação de QFT na equação 2.20 mostra o porquê do uso da inversa de QFT: a equação 2.25 é exatamente a transformação deφ decomposta em valores binários. Deste

modo, a aplicação da QF T† resultará em uma estimativa de φ com t bits de precisão no

primeiro registrador.

2.4.3

Definição do Algoritmo da Contagem Quântica

O algoritmo de contagem quântica é um caso particular do procedimento de estimativa de fase descrito na subseção anterior. O circuito da figura 2.8 implementa a contagem quântica,

(34)

evidenciando a utilização do circuito referente à estimativa de fase (vide figura 2.6), onde as portasUj são substituídas pela iteração de Grover (G), já definida na seção 2.3.

|0i H⊗t • F T† Registrador1 |0i • · · · t qubits |0i • |0i H⊗n+1 G20 G21 G2t−1 |0i Registrador2 |0i · · · n+ 1 qubits |0i |0i |0i                          

Figura 2.8: Esquema geral do circuito da contagem quântica de soluções.

Para melhor entender a solução apresentada, faz-se necessário contextualizar o uso do operador G como substituto de Uj no algoritmo de estimativa de fase. O estado de um

sistema que receberá a aplicação deG pode ser escrito como |Ψ0i = a |αi + b |βi, onde a

primeira componente (|αi) reúne todos os N − M elementos que não satisfazem o oráculo e a segunda (|βi), os M elementos que serão marcados pelo mesmo. O estado |Ψ0i pode

ser reescrito em termos do ânguloθ, pelo qual o estado será rotacionado a cada aplicação da

amplificação de fase: 0i = ei(2π−θ)|αi + 2θi|βi.

Desta forma, ao submeter o estado 0i ao circuito da contagem, o mesmo irá estimar

o valor do ângulo θ, sendo possível então utilizá-lo na equação sin2(θ/2) = M/N para

calcularM.

2.4.4

Conclusões

Duas conclusões sobre o algoritmo da contagem quântica são destacadas nesta subseção e posteriormente serão utilizadas no capítulo 3. A primeira delas está relacionada à quantidade de qubits e de execuções deG requeridos pela contagem quântica. A quantidade de qubits

depende do valor det estimado, que será o número de qubits necessários para codificar os N

elementos do espaço de busca. Para umm = ⌈n/2⌉+1 e ǫ = 1/6, mostra-se que o algoritmo da contagem utilizaria t = ⌈n/2⌉ + 3 qubits no primeiro registrador, e faria chamadas ao oráculo na ordem deΘ(√N ) vezes (vide [NC00] - seção 6.3). No capítulo 3, a análise de

(35)

2.4 Ferramenta: Contagem Quântica 24

desempenho da solução proposta fará uso destes valores.

O segundo ponto em destaque é que a contagem quântica pode ser diretamente utilizada tanto para descobrir a existência de um determinado valor no espaço de busca, quanto para auxiliar na execução correta do algoritmo de Grover. O algoritmo de busca pode ser utili-zado apenas quando há ao menos uma solução a ser procurada pois caso contrário, nenhum elemento será marcado e assim amplificado, fazendo o algoritmo retornar um resultado in-correto. Com a contagem quântica, basta verificar que o valor deM calculado é maior que

zero para atestar a existência de solução. O cálculo de quantas iterações de Grover são ne-cessárias para encontrar o valor correto buscado também depende de M, assim, para um

dado problema onde a quantidade de soluções é desconhecida, a contagem quântica pode ser utilizada primeiramente para estimar o valor deM e só então aplicar a busca quântica para

(36)

Códigos para Controle de Erros

A Teoria da Informação (TI) é uma área da Matemática Aplicada que estuda a quantifi-cação de dados visando maximização e confiabilidade na transmissão e armazenamento de informação. Ao utilizar qualquer meio de comunicação ou armazenamento computacional faz-se necessária a consideração dos possíveis erros inerentes aos meios físicos. Estes meios são denominados canais de informação e para lidar com a ocorrência de erros são utilizados códigos para a detecção e correção dos mesmos.

Inicialmente serão apresentados conceitos introdutórios da área de codificação de infor-mação. Na segunda parte deste capítulo serão apresentados alguns resultados obtidos com a utilização do algoritmo quântico de busca (vide seção 2.3) na montagem de um ambiente para teste de códigos de bloco lineares.

3.1

Canais

Um canal é qualquer meio físico que possua entrada e saída de informação. Alguns exem-plos cotidianos de canais são os cabos telefônicos, mídias digitais como CDs e DVDs e o próprio meio ambiente. Por tramitar por meios físicos e imperfeitos, a informação pode ser corrompida mediante ocorrências indesejadas, como por exemplo: eventuais interferências eletromagnéticas sobre os cabos telefônicos e ondas de rádio; e erros de refração e reflexão ótica da superfície metálica dos discos.

Para a definição de um canal na TI, é indiferente a natureza física ou o tipo de uso (i.e. transmitir ou armazenar), sendo fundamental a formalização da inserção e leitura dos

(37)

3.1 Canais 26

dados e o tipo de erro possível. Matematicamente o modelo de um canal é descrito por um conjunto de informação de entrada, um conjunto de informação saída e as imperfeições são incorporadas como erros probabilísticos que alteram as informações que passam pelo canal. No exemplo da figura 3.1, o conjunto de entrada é definido como sendo símbolos de um alfabeto binário A = {0, 1}, e ao conjunto de saída adiciona-se apenas um símbolo sinalizador de erro (e). O formato do erro é definido pela probabilidade p de qualquer um

dos símbolos ser substituído pelo símbolo de erroe. Este tipo de erro possui a propriedade

de que o local do erro é definido diretamente por um símbolo do alfabeto de saída. Em outros casos, o local do erro não é definido diretamente como acontece quando o erro é equivalente à troca entre símbolos do alfabeto de entrada.

Figura 3.1: Um canal de alfabeto binário e erro de apagamento.

Com a eventualidade dos erros, o estudo dos canais de informação depara-se com a ne-cessidade de detectar ou mesmo corrigí-los. Para isso a Teoria da Informação faz uso de

Códigos para Controle de Erros (CCE). Estes códigos variam desde a mera repetição ou

retransmissão da informação, até sofisticados algoritmos matemáticos. Porém, a base para qualquer CCE é a adição de informação redundante aos dados inseridos no canal.

A figura 3.2 mostra a sequência de passos necessários para o uso eficaz de um canal qualquer. Após a fonte gerar a informação a ser enviada, um processo denominado

codi-ficação adiciona, de forma organizada, informação redundante para então utilizar o canal.

A informação na saída do canal pode estar danificada e um processo denominado

decodifi-cação é utilizado para tentar identificar erros e recuperar a informação original, para assim

disponibilizá-la ao receptor. Os processos de de/codificação a serem utilizado estão intrinse-camente ligados ao tipo de erro inserido pelo canal.

(38)

Figura 3.2: Estrutura geral do uso de um canal de informação.

3.2

Códigos de Bloco Lineares

Os códigos utilizados nos processos de de/codificação podem ser classificados em dois gru-pos: convolucionais e blocos lineares. Num código de bloco, objeto de estudo deste capítulo, o processamento da informação é realizado sobre sequências de símbolos de tamanho fixo

k denominadas palavra ou vetor de informação (vi ∈ A∗). A palavra codificada a ser

trans-mitida é denominada palavra ou vetor código e é definida comovc = c1, c2, ..., ck, ..., cn. Os

n − k símbolos adicionais são denominados “símbolos de paridade”.

Um código (n, k) é produzido por uma matriz ao ser aplicada sobre os vetores vi (de

tamanhok) para gerar o vccorrespondente (de tamanhon). A matriz geradora G é construída

a partir dek vetores linearmente independentes, tendo cada um deles o tamanho n. A matriz

G =      1 0 0 1 0 0 1 0 0 1 0 0 1 1 1      (3.1)

é geradora de um código (5,3) pois, além de suas linhas serem linearmente independentes, a multiplicação de vetores de informação de tamanho k = 3 gera o correspondente vetor

código de tamanhon = 5. Um exemplo de codificação pode ser visto na equação 3.2.

vc = viG = (101)      1 0 0 1 0 0 1 0 0 1 0 0 1 1 1      = (10101) (3.2)

(39)

3.2 Códigos de Bloco Lineares 28

Uma outra matriz deve ser considerada neste contexto: a matriz de teste de paridadeH.

Esta é utilizada para checar a pertinência de um determinado vc ao código gerado por G

através da equação vc · HT = (0∗), podendo assim ser a base para a detecção de erros no

uso do canal. H pode ser construída a partir de G quando esta encontra-se em sua forma

sistemática1, ou sejaG = [I|P ] onde I é a matrix identidade de tamanho k × k e P é uma matriz de tamanhok × (n − k), que completa as dimensões definidas para G. Desta forma, a matrix de teste é definido como sendoH =−PT|I. No exemplo aqui utilizado a matriz

geradora (equação 3.1) já está em sua forma sistemática dando origem a matrizH mostrada

na equação 3.3. H =   1 0 1 1 0 0 1 1 0 1   (3.3)

A seguir dois testes de paridade são apresentados. Na equação 3.4 é testado um vetor que pertence ao código, ou seja, o resultado do teste é igual ao vetor nulo.

(10101)            1 0 0 1 1 1 1 0 0 1            = (1 + 0 + 1 + 0 + 0 0 + 0 + 1 + 0 + 1) = (00) (3.4)

Já na equação 3.5 é utilizado um vetor que não pertence, ou seja, não pode ser gerada pela matriz da equação 3.1.

(01010)            1 0 0 1 1 1 1 0 0 1            = (0 + 0 + 0 + 1 + 0 0 + 1 + 0 + 0 + 0) = (11) (3.5)

1Toda matriz geradora possui uma matriz equivalente na forma sistemática obtida através das operações de

(40)

3.2.1

Decodificação

Ao tramitar por um canal, a palavra codificada vc pode ser modificada. Matematicamente

diz-se que o canal adicionou um vetor erro (e) ao vetor código: ve = vc + e. Foi mostrado

anteriormente como identificar se a palavra recebida pertence ou não ao código, mas em muitos casos também é possível recuperar a informação corrompida. No contexto de códigos de bloco lineares a decodificação é vista como a busca da palavra pertencente ao código (vc) “mais próxima” do vetor recebido (ve). O conceito de proximidade aqui utilizado é

denominado distância de Hamming.

A distância d é normalmente o terceiro parâmetro de um código, o qual seria descrito

por (n, k, d). Este parâmetro define quão separadas estão os vetores vc. O cálculo da

dis-tância de Hamming depende da disdis-tância entre duas palavras quaisquer do código. Neste cálculo define-se que duas palavras distam entre si exatamente a quantidade de símbolos que as diferenciam (vide equação 3.6). Além disso define o pesow de uma palavra como

sendo a quantidade de símbolos não nulos da mesma, como por exemplo:w(01001) = 2 ou w(11100) = 3.

d∗((01001), (11100)) = 3 ou d∗((10001), (00000)) = 2 (3.6) Partindo destes conceitos de peso e distância das palavras de um código, define-se o cálculo da distância mínima através da fórmula: d = min d∗(v

c1, vc2), que significa a busca

pela menor distância entre quaisquer duas palavras do código. No entanto, como todo código linear possui a palavra nula ((0k)G = (0n)) e é fechado pela soma, este cálculo pode ser

redefinido em termos do pesow de uma palavra como mostrado na equação 3.7.

d = min d∗(v c1, vc2) = min d∗(v c1− vc2, vc2− vc2) = min d∗(v c3, (0n)) = min w(vc3) (3.7)

A figura 3.3 mostra a base para a decodificação através da distância mínima do código. Caso duas palavras quaisquer do código estejam separadas por d = 2t + 1, o código é

capaz de recuperar t erros. Isso ocorre pois cada erro somado ao vetor vc pode ser visto

(41)

3.3 Teste Quântico para Códigos de Bloco Lineares 30

da esfera definida pelo vi e raio t. Desta forma uma palavra incorreta no formato ve =

vc + e sempre será encaixada na esfera definida pela palavra código original se w(e) ≤

t. Este enquadramento define o processo de recuperação da palavra original, demonstra a

importância do conhecimento de d e sua relação com a eficiência de decodificação de um

código. vc1 t vc2 t 1

Figura 3.3: Duas palavras do código separadas por uma distânciad = 2t + 1.

Com a definição da equação 3.7, o cálculo desta distância é diretamente proporcional ao número de palavras código. Porém este valor cresce exponencialmente com a quantidade de bitsk da palavra de informação original, tornando-o um processo intratável pela computação

clássica (processo com complexidadeO(2k) no caso do alfabeto binário). No restante deste

capítulo será mostrado um algoritmo quântico que pode ser utilizado para tornar o cálculo ded mais eficiente.

3.3

Teste Quântico para Códigos de Bloco Lineares

Esta seção mostrará a utilização do algoritmo da Contagem Quântica, já definido no capítulo 2 - seção 2.4, para o teste de códigos de bloco lineares. Este teste baseia-se na busca da distância mínima de um dado código de bloco linear.

3.3.1

Cálculo da Distância Mínima

Nesta subseção será demonstrado um algoritmo quântico para o cálculo da distância mínima de códigos de bloco lineares. A título de exemplo foi utilizado um Código de Hamming pois possui toda a estrutura matemática exposta anteriormente. Além disso, este tipo de

(42)

código define uma maneira simplista de montagem das matrizesH e G tornando a distância

mínima (d) conhecida antecipadamente e igual a 3. Se m é a quantidade de linhas da matriz H, a quantidade de colunas é definida pela quantidade de vetores não nulos e linearmente

independentesn = 2m− 1. Assim, um código de Hamming é definido genericamente como

(2m− 1, 2m− 1 − m, 3).

Um código de Hamming (7,4) será utilizado como exemplo. Sua matriz de teste de paridade foi construída comm = 3:

H =      1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 1      . (3.8)

DeH escreve-se a matriz geradora

G =         1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 1 1 1 0         . (3.9)

O algoritmo aqui proposto é apresentado na forma de circuito e ilustrado na figura 3.4. A construção do mesmo baseia-se na matriz geradora do códigoG sendo portanto bastante

geral.

A entrada do circuito é composta por 4 registradores. O primeiro possui k qubits que

guardam os bits das palavras de informação. O segundo registrador possui n − k qubits para armazenar os bits das palavras código. O terceiro registrador possuilog n qubits para

guardar o peso das palavras código. Por fim, o último registrador possui t qubits como

definido na seção 2.4, utilizados no algoritmo da contagem quântica. Todos os qubits devem ser preparados no estado|0i.

Há 4 fases no funcionamento do circuito. A primeira fase é a aplicação da porta Hada-mard ao primeiro registrador, criando assim uma superposição de todas as palavras de infor-mação de tamanhok. A segunda fase (porta G’) codifica as palavras código e as guarda no

segundo registrador. A terceira fase (porta C) calcula o peso de todas as palavras guardando as informações no terceiro registrador. A última fase (porta Cont) executa testes de existên-cia de um determinado valor de peso. As portas mostradas abaixo farão uso do exemplo de

(43)

3.3 Teste Quântico para Códigos de Bloco Lineares 32 |0i H⊕k G′ C Reg. 1 ... |0i |0i Reg. 2 ... |0i |0i Cont Reg. 3 ... |0i |0i NM Reg. 4 ... NM |0i NM                                

Figura 3.4: Circuito quântico para cálculo ded em códigos de blocos lineares.

código apresentado na equação 3.9.

A porta G’

Esta porta quântica representa a matriz geradora do código G. Dados osk qubits do primeiro

registrador já preparados pela porta Hadamard, formando uma combinação probabilística de todas as palavras de informação, a ação de G’ é gerar osn−k qubits redundantes no segundo registrador.

A entrada para o circuito é dada por:

|Ψ0i = |0000i ⊗ |000i ⊗ |000i ⊗ |0000i (3.10)

O estado do sistema, após a preparação do primeiro registrador pela porta Hadamard, é definido por: |Ψ1i = 1 4 15 X i=0

(44)

significando que os quatro qubits do primeiro registrador estão em sobreposição equi-provável enquanto os demais permanecem inalterados. A porta G’, ao ser operada sobre o estado1i cria, nos primeiro e segundo registradores, a sobreposição de todas as palavras

código.

Já foi visto que a geração de uma palavra código é dada pela multiplicação de um vetor de informação pela matriz geradora (vide 3.2). Dessa forma, cada coluna da matriz G é responsável por gerar um bit da palavra código. Os qubits do primeiro registrador passam inalterados, pois a matrizG está em sua forma sistemática(matriz identidade nas primeiras

colunas). Já os qubits do segundo registrador devem ser gerados de acordo com as colunas seguintes da matriz G, que neste caso são as colunas 5, 6 e 7.

A implementação da porta G’ é baseada em simples portasNOTcontroladas (CNOT). O circuito da figura 3.5 realiza a codificação para o exemplo em questão.

• Reg. 1 • •     Reg. 2                   

Figura 3.5: Circuito para codificação da porta G’.

Cada coluna da matriz G será representada por um qubit do circuito. As portasCNOTsão controladas pelos qubits do primeiro registrador cujos valores não são alterados. Tomando como exemplo o qubit número cinco, vê-se que o mesmo é alterado de acordo com os valores da quinta coluna (1 0 1 1). Da mesma forma, o qubit seis é alterado pelos valores (1 1 0 1). Seguindo o mesmo processo para cada um dos qubits do segundo registrador, a porta G’ estará completa.

A porta C

A função da porta C é calcular o peso de Hamming de cada uma das palavras do código. Como todas as palavras código já estão armazenadas em sobreposição nos dois primeiros registradores, esta operação criará a sobreposição dos pesos no terceiro registrador. O estado

(45)

3.3 Teste Quântico para Códigos de Bloco Lineares 34

do sistema após a operação desta porta pode ser visto na equação 3.12.

|Ψ3i = 1

4( |0000i ⊗ |000i ⊗ |000i

+ |0001i ⊗ |110i ⊗ |011i + |0010i ⊗ |101i ⊗ |011i + |0011i ⊗ |011i ⊗ |100i + |0100i ⊗ |011i ⊗ |011i + |0101i ⊗ |101i ⊗ |100i + |0110i ⊗ |110i ⊗ |100i + |0111i ⊗ |000i ⊗ |011i + |1000i ⊗ |111i ⊗ |100i + |1001i ⊗ |001i ⊗ |011i + |1010i ⊗ |010i ⊗ |011i + |1011i ⊗ |100i ⊗ |100i + |1100i ⊗ |100i ⊗ |011i + |1101i ⊗ |010i ⊗ |100i + |1110i ⊗ |001i ⊗ |100i

+ |1111i ⊗ |111i ⊗ |111i) ⊗ |0000i)

(3.12)

Os circuitos para executar esta tarefa são de construção simples na computação clássica. Uma realização possível utiliza uma estrutura simples, constituída apenas por portasCNOT, e que funciona como um contador. O circuito que implementa a porta C para o exemplo de código aqui seguido, pode ser visto na figura 3.6.

A portaCont

A leitura do terceiro registrador no estado 3i é similar a um experimento aleatório que,

de acordo com a distribuição probabilística, resulta em um dos possíveis valores de peso. A execução de tal leitura uma determinada quantidade de vezes leva a uma estimativa do polinômio enumerador de pesos. Tal polinômio tem a estrutura

(46)

• Reg. 1 • • • • • • • • Reg. 2 • • •      Reg. 3                             

Figura 3.6: Circuito para cálculo da porta C.

onde o índice Ai é a quantidade de palavras de pesoi. Logo, A0 = 1 pois um código

linear sempre contém a palavra nula, e A1, . . . , Ad−1 são iguais a zero. O cálculo do peso

mínimo consiste na busca do primeiro Ai cujo valor é não nulo, ou seja, Ad. A forma

utilizada neste trabalho para a busca de d baseia-se na contagem de cada Ai utilizando o

algoritmo quântico de contagem já exposto na seção 2.4. Portanto, a portaCont deve ser

vista como a implementação do algoritmo quântico de contagem (vide figura 2.8) apenas estando os registradores 3 e 4 (no circuito da figura 3.4) em ordem invertida.

Para o funcionamento interno, a contagem de cada Ai requer a existência de oráculos

que identifiquem os valor i que estão escritos no terceiro registrador. Na figura 3.7 estão

descritos todos os oráculos para o exemplo utilizado neste capítulo, onde o mais a esquerda reconhecei = 1 e sucessivamente até i = 7.

     

     

•      



      

Figura 3.7: Conjunto de testes para a etapa de contagem.

3.3.2

Algoritmo para Encontrar

d

Composto de acordo com a descrição anterior, o circuito é capaz de dizer se existem palavras códigos com um determinado peso. Isso acontece pois, como o algoritmo de contagem dei-xará registrada a quantidade de palavras com pesoi no quarto registrador, a leitura do mesmo

Referências

Documentos relacionados

Para isto, determinaremos a viabilidade de queratinócitos que expressem apenas uma oncoproteína viral após infecção com lentivírus que codifiquem shRNA para os genes candidatos;

Assim, existem gavetas destinadas aos cremes, géis e pomadas, outras destinadas aos enemas, supositórios e produtos de introdução vaginal, ainda as gavetas reservadas aos

The ultimate objectives of this work are to obtain the Failure, Mode, Effects, and Criticality Analysis (FMECA), with application of the Reliability Centered

Abstract: We consider the problem of robust model predictive control for linear sampled– data dynamical systems subject to state and control constraints and additive and

6 Num regime monárquico e de desigualdade social, sem partidos políticos, uma carta outor- gada pelo rei nada tinha realmente com o povo, considerado como o conjunto de

A iniciativa parti- cular veiu em auxílio do govêrno e surgiram, no Estado, vá- rios estabelecimentos, alguns por ventura falseados em seus fins pelos defeitos de organização,

The focus of this thesis was to determine the best standard conditions to perform a laboratory-scale dynamic test able to achieve satisfactory results of the

​ — these walls are solidly put together”; and here, through the mere frenzy of bravado, I rapped heavily with a cane which I held in my hand, upon that very portion of