UM ALGORITMO QUÂNTICO (BASEADO EM ENSEMBLES) DE EM UMA LISTA COM N ELEMENTOS

Documentos relacionados
UMA NOVA DEMONSTRAÇÃO DA COMPLEXIDADE DO ALGORITMO DE GROVER

Introdução à Computação Quântica

Mecânica Quântica para Sistemas Fechados

Um Passeio pela Teoria da Informação

2, ao medirmos um observável deste estado que possui autovetores 0 e 1, obtemos o resultado 0 com probabilidade α 2, e 1 com probabilidade β 2.

Introdução a Circuitos Quânticos

SIMULAÇÃO DA TRANSFORMADA QUÂNTICA DE FOURIER COM O SIMULADOR ZENO

Uma Introdução aos Algoritmos Quânticos

Aula 01. Murilo V. G. da Silva DINF/UFPR

Construção de matrizes inteiras com somas das linhas e das colunas prescritas

Introdução à Computação Quântica

UFCG IQuanta DSC. Cheyenne R. G. Isidro Bernardo Lula Júnior

Mini-curso de Spintrônica

OBSTRUÇÕES DE COGRAFOS-(K, L)

Uma pequena introdução à álgebra para mecânica

CF372 Mecânica Quântica I Segunda Lista de Exercícios - Capítulo II. q exp( q 2 ) ( 2 π. 2 (2q 2 1) exp( q 2 )

Implementando Algoritmo de Deutsch

Algoritmos Quânticos

Fundamentos da Teoria Quântica da Informação

Notações e revisão de álgebra linear

Introdução a Circuitos Quânticos

I WPPC. Workshop de Pesquisas do Grupo PET-Computação. Elloá B. Guedes Orientador: Bernardo Lula Jr.

Álgebra Linear I - Aula Bases Ortonormais e Matrizes Ortogonais

e Problema do Subgrupo Oculto Cleber Okida Denise Goya Mateus Santos PCS Prof. Paulo Barreto maio/2008

AULA 8- ÁLGEBRA MATRICIAL VERSÃO: OUTUBRO DE 2016

Espaço Dual, Transposta e Adjunta (nota da álgebra linear 2)

i : V W V W é o produto tensorial de V e W se, ao considerarmos um outro espaço vetorial U sobre o mesmo corpo K e B também uma aplicação bilinear:

Walter Carnielli Grupo!de Lógica Teórica e Aplicada. CLE e IFCH- UNICAMP

Introduzir os conceitos de base e dimensão de um espaço vetorial. distinguir entre espaços vetoriais de dimensão fnita e infinita;

JORNADA DE FÍSICA TEÓRICA INSTITUTO DE FÍSICA TEÓRICA U.N.E.S.P. 19 a

Teorema da Triangularização de Schur e Diagonalização de Matrizes Normais

Computação Quântica: Complexidade e Algoritmos

Aula de Física Atômica e molecular. Operadores em Mecânica Quântica Prof. Vicente

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Technical Report. João Cândido Lima Dovicchi 1. Florianópolis SC Santa Catarina

Mecânica Quântica. Spin 1/2 e a formulação da M. Q. Parte II. A C Tort 1. Instituto Física Universidade Federal do Rio de Janeiro

A revolução por trás da computação quântica

Identificação de estados tripartite de q-bits puros com máximo valor de emaranhamento a partir de uma interpretação geométrica

Uma nova taxa de convergência para o Método do Gradiente

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais:

Distribuídas no Ambiente VPE-qGM

Polinômios Ortogonais em Várias Variáveis com Pontos de Massa

Folha de Rosto para Projeto de Iniciação Científica. Edital 02/2016

Introdução à Computação Quântica

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Teoria Clássica de Campos

Desenvolvendo Algoritmos Quânticos Utilizando uma Linguagem Funcional

APLICAÇÕES DAS FÓRMULAS DE FRENET EM CURVAS PLANAS E ESFÉRICAS

Notas de Aula da Disciplina

Momento Angular. 8.1 Álgebra do Momento Angular

Avaliação de Segurança em Curvas Eĺıpticas Usando o Corpo dos Números p-ádicos

Os Postulados da Mecânica Quântica

Caracterização Matemática e Visualização da Esfera de Bloch: Ferramentas para Computação Quântica

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Ajuste de dados por mínimos quadrados

A TRANSFORMADA DE LAPLACE E ALGUMAS APLICAÇÕES. (UFG) RESUMO

As bases da Dinâmica Molecular - 2

Criptografia Pós-Quântica baseada em Códigos Corretores de Erros

A revolução por trás da computação quântica

UMA PARTIÇÃO DO CONJUNTO DOS GRAFOS CONEXOS DE ORDEM n EM CLASSES DE GRAFOS (a, b)-lineares

Códigos de blocos lineares. Outubro de 2017

1 Matrizes Ortogonais

CF372 Mecânica Quântica I Os Postulados da Mecânica Quântica

I TRODUÇÃO À COMPUTAÇÃO QUÂ TICA

Apresentaremos neste capítulo duas importantes aplicações do emaranhamento

Poliedros na forma padrão

Uma Introdução à Computação Quântica

OPERADORES LINEARES ESPECIAIS: CARACTERIZAÇÃO EM ESPAÇOS DE DIMENSÃO DOIS*

NÚMEROS INTEIROS E CRIPTOGRAFIA UFRJ

- identificar operadores ortogonais e unitários e conhecer as suas propriedades;

Criptografia Pós-Quântica Corretores de Erros

Reticulados e Criptograa Pós-Quântica

Complexidade computacional

Circuitos Quânticos: uma introdução

Modelagem Computacional. Parte 8 2

Otimização Combinatória - Parte 4

A Universalidade do Produto Tensorial e o Teorema de Composicionalidade de Coecke

Sistemas de Equações Diferenciais Lineares

CONTEÚDO PROGRAMÁTICO EMENTA

Introdução à computação quântica

Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.

a) Em quantas ordem quatro pessoas podem senta num sofá de 4 lugares?

Função polinomial. Pré-Cálculo. Função polinomial. Função polinomial: exemplos. Humberto José Bortolossi. Parte 6. Definição

4.1 Preliminares. No exemplo acima: Dom(R 1 ) = e Im(R 1 ) = Dom(R 2 ) = e Im(R 2 ) = Dom(R 3 ) = e Im(R 3 ) = Diagrama de Venn

Capítulo 2. Ortogonalidade e Processo de Gram-Schmidt. Curso: Licenciatura em Matemática

Área e Teorema Fundamental do Cálculo

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

Método de Newton truncado

Alexandre Santiago de Abreu

HASHING HASHING 6/10/2008

Alaor Cervati Neto. Teoria de Controle Ótimo em Sistemas Abertos

Disciplina: Cálculo Numérico IPRJ/UERJ. Sílvia Mara da Costa Campos Victer. Aula 6 - Solução de Sistema de Equações Algébricas

Os Ensembles Caps. 4, 5, 7 do Salinas

Representação e erros numéricos

)XQGDPHQWRVGHSURJUDPDomRPDWHPiWLFD

ANÁLISE DE ALGORITMOS: PARTE 4

Daniel Barbosa Stein Douglas Alves Reis Marcio R. Santos Marcos Takechi Hirata Nelson M. Tsuboi Nobuyuki Tateoka Peter Ngugi Nyumu Ricardo de Cillo

Transcrição:

A pesquisa Operacional e os Recursos Renováveis 4 a 7 de novembro de 2003, Natal-RN UM ALGORITMO QUÂNTICO (BASEADO EM ENSEMBLES) DE COMPLEXIDADE O(log 2 N) PARA UM PROBLEMA DE BUSCA EM UMA LISTA COM N ELEMENTOS Carlile Lavor Universidade do Estado do Rio de Janeiro (IME-UERJ) Rua São Francisco Xavier 524, 6º andar, bl. D 20550-900, Rio de Janeiro RJ, Brasil e-mail: carlile@ime.uerj.br Renato Portugal Laboratório Nacional de Computação Científica - LNCC Av. Getúlio Vargas 333, 2565-070, Petrópolis RJ, Brasil e-mail: portugal@lncc.br Luiz M. Carvalho Universidade do Estado do Rio de Janeiro (IME-UERJ) Rua São Francisco Xavier 524, 6º andar, bl. D 20550-900, Rio de Janeiro RJ, Brasil e-mail: luizmc@ime.uerj.br Nelson Maculan Programa de Engenharia de Sistemas e Computação COPPE Universidade Federal do Rio de Janeiro - UFRJ C. P. 685, 2945-970, Rio de Janeiro RJ, Brasil e-mail: maculan@cos.ufrj.br Resumo. Os algoritmos quânticos ainda não são muito conhecidos pela comunidade de Pesquisa Operacional. Neste artigo, apresentamos o algoritmo de Brüschweiler para resolver o mesmo problema em que foi aplicado o algoritmo de Grover: tem-se uma lista não ordenada com N elementos e deseja-se localizar um elemento específico. O algoritmo de Grover tem um ganho quadrático em relação ao melhor algoritmo clássico, enquanto que o algoritmo de Brüschweiler tem um ganho exponencial sobre os dois. Além de apresentarmos um exemplo mostrando claramente os passos do algoritmo de Brüschweiler, descrevemos matematicamente suas operações para simplificar a compreensão de sua complexidade. Isso é feito usando apenas os conceitos introduzidos no artigo. Palavras-chave: Algoritmos Quânticos, Busca Quântica, Algoritmo de Brüschweiler. Abstract. Quantum algorithms are not well known in the Operations Research community. In this paper, we present Brüschweiler s algorithm applied to solve the same problem addressed by Grover s algorithm: find a specific element in an unstructured database with N items. Grover s algorithm allows a quadratic speedup over the best classical algorithm, while Brüschweiler s algorithm allows an exponential speedup over both of them. We give a detailed example explaining the steps of Brüschweiler s algorithm and a mathematical description of its operators. This is done using only the concepts given in the paper. Keywords: Quantum Algorithms, Quantum Search, Brüschweiler s Algorithm. Introdução

Além dos algoritmos quânticos propostos por Grover [3, 4, 6] e Shor [0], uma nova abordagem foi apresentada por Madi, Brüschweiler e Ernst: algoritmos baseados em ensembles quânticos [, 7]. A diferença fundamental entre eles é que estes algoritmos não manipulam estados emaranhados [8], o que acontece com os algoritmos de Grover e Shor. Utilizamos o algoritmo de Brüschweiler [] para resolver o mesmo problema em que foi aplicado o algoritmo de Grover: tem-se uma lista não ordenada com N elementos e deseja-se localizar um elemento específico. O melhor algoritmo clássico resolve o problema em O(N) passos, enquanto que o algoritmo de Grover requer O( N ) passos. O algoritmo de Brüschweiler, aplicado a esse problema, tem complexidade O(log 2 N). Ou seja, tem-se um ganho exponencial sobre o algoritmo clássico e o de Grover. O algoritmo de Brüschweiler é descrito em duas revistas da área de física [, 7]. Neste artigo, descrevemos o algoritmo para a comunidade de Pesquisa Operacional, assim como reformulamos a demonstração de sua complexidade. O artigo está organizado da seguinte forma. Na seção 2, apresentamos as noções básicas para a compreeensão do artigo. Na seção 3, o algoritmo de Brüschweiler é descrito juntamente com sua complexidade. Na seção 4, o algoritmo é exemplificado com uma lista com 8 elementos. Finalmente, concluímos com a seção 5. 2 Conceitos Básicos Em computação quântica, os valores 0 e de um bit são substituídos pelos vetores 0 e de um qubit (quantum bit). Essa é a notação utilizada em mecânica quântica e é conhecida por notação de Dirac [8]. A diferença entre um bit e um qubit é que um qubit ψ pode também ser uma combinação linear dos vetores 0 e, ψ α 0 + β, () onde α e β são números complexos. Os vetores 0 e são representados por 0 0 e 0 e formam uma base ortonormal do espaço vetorial C 2. Essa base é chamada de base computacional e o vetor ψ é chamado de uma superposição dos vetores 0 e, com amplitudes α e β (em mecânica quântica, vetor é também chamado de estado; usaremos os dois termos com o mesmo significado). Da mecânica quântica, sabe-se que α 2 e β 2 são as probabilidades do qubit ψ estar nos estados 0 e, respectivamente [8]. Portanto, Calculando a norma de ψ, em (), obtemos: α 2 + β 2. ψ ( α 2 + β 2 ) / 2. Ou seja, o estado de um qubit tem sempre norma. Como as mudanças de estado de um sistema isolado em mecânica quântica são descritas por transformações lineares [8], as matrizes associadas a essas transformações que preservam a norma são matrizes unitárias [8]. Um matriz unitária U C 2 2 pode ser definida como sendo uma matriz tal que 2069

U + U UU + I, onde U + é a matriz transposta conjugada de U e I é a matriz identidade. Para tratar estados com mais de um qubit, usamos o produto tensorial [8]. Para os nossos propósitos, definimos o produto tensorial A B, entre as matrizes A C n e B C q, como (A B) ij (A) ij B, onde i,..., m e j,..., n. Note que a dimensão da matriz A B é mp nq e que o produto tensorial não é comutativo. Por exemplo, e 0 0 0 0 0 0 0 0 0 0 0. 0 O produto tensorial possui as seguintes propriedades [8]:. z( v w ) (z v ) w v (z w ), 2. ( v + v 2 ) w ( v w ) + ( v 2 w ), 3. v ( w + w 2 ) ( v w ) + ( v w 2 ), onde z C; v, v, v 2 C m ; e w, w, w 2 C n. Usaremos também a notação v w e vw para o produto tensorial v w. Com o produto tensorial, representamos um estado ψ de 2 qubits como uma superposição dos estados 00, 0, 0 e : onde ψ a 00 + b 0 + c 0 + d, a 2 + b 2 + c 2 + d 2. Usando a notação decimal, podemos simplificar a representação dos estados substituindo-os por 00, 0, 0 e, 0,, 2 e 3. 2070

De forma similar, pode-se representar um estado qualquer de n qubits. Neste caso, a base computacional, em notação decimal, é o conjunto { 0,..., N }, onde N 2 n. Para finalizar esta seção, apresentamos mais três definições. O dual de um vetor ϕ C n, denotado por ϕ, é o vetor transposto de ϕ com os elementos substituídos pelos seus conjugados. Ou seja, ϕ ( ϕ ) +. Além do produto interno ϕ ψ entre dois vetores ϕ, ψ C n, definido por ϕ ψ ( ϕ ) + ψ, usaremos também o produto externo ϕ ψ, definido por ϕ ψ ϕ ( ψ ) +. Note que o produto externo também poderia ser definido como um produto tensorial: Por exemplo, ϕ ψ ϕ ψ. (2) 0 0 0 [0 ] 0 0 0. Destacamos mais uma propriedade que será útil mais adiante [8]: ( ϕ ψ ) + ( ϕ ) + ( ψ ) +. 3 O Algoritmo de Brüschweiler Em vez de usar vetores, uma outra maneira de descrever sistemas quânticos é através do conceito de matriz densidade [8]. Ele é conveniente para descrever sistemas quânticos cujos estados não são totalmente conhecidos. Suponha que um sistema quântico esteja em um estado ψ i com probabilidade p i. O conjunto {(p i, ψ i ) : i,..., n} é chamado de um ensemble de estados puros, ou simplesmente, um ensemble. A matriz densidade ρ associada ao sistema é definida por n ρ i p i ψ i ψ i. Se um sistema está em um estado ψ i, com probabilidade p i, o estado resultante, após a aplicação de um operador unitário U, será o estado U ψ i, com a mesma probabilidade. Em termos de matriz densidade, a aplicação do operador U sobre o sistema resulta na matriz densidade UρU +. 207

Um sistema quântico, cujo estado ψ é conhecido, é dito estar em um estado puro. Neste caso, a matriz densidade do sistema é simplesmente ψ ψ. Consideremos, agora, o problema em que aplicaremos o algoritmo de Brüschweiler. Vamos supor que a busca será realizada sobre a lista {0,,..., N }, onde N 2 n para algum número natural n, e que a função f : {0,,..., N } {0, }, definida por f(i), se i i0 0, se i i 0 (3) será utilizada para o reconhecimento do elemento procurado i 0. A essência do algoritmo é aplicar uma idéia já bem conhecida em computação: a busca binária. O primeiro passo é dividir a lista em duas de mesmo tamanho, e r {0,..., N 2 } 2 r + { N,..., N }, 2 e testar se o elemento procurado i 0 está em r ou r +. Para avaliar a função f, o algoritmo de Brüschweiler utiliza um operador unitário U f, dependente de f, definido por U f ( i 0 ) i f(i), (4) onde o primeiro registrador tem n qubits e o segundo tem qubit. O primeiro registrador é inicializado como um ensemble {(, i ) : i 0,..., N 2 }. Ou seja, tem-se um ensemble formado pelos elementos de r com a mesma 2 probabilidade para cada elemento. A matriz densidade associada é dada por i N 2 r / i i. O segundo registrador é inicializado como um ensemble {, 0 }. Portanto, a matriz densidade associada aos dois registradores é dada por ρ ( / N 2 i i ) ( 0 0 )) ( i i 0 0 ). (5) Antes de aplicarmos o operador U f sobre a matriz densidade ρ, consideremos dois lemas. 2072

Lema. Sejam a e b, estados da base computacional { 0,..., N }. Então, a b a b a a b b. Prova. Supondo que o valor dos vetores a e b esteja nas posições j e k, respectivamente, o valor do vetor a b estará na posição j k. Fazendo o produto tensorial entre a b e a b, obtemos uma matriz onde o valor está na posição (j k, j k). Consideremos, agora, o segundo termo da igualdade acima. Com a mesma hipótese sobre a posição do valor nos vetores a e b, o valor das matrizes a a e b b estará nas posições (j, j) e (k, k), respectivamente. Fazendo então o produto tensorial entre a a e b b, obtemos também uma matriz onde o valor está na posição (j k, j k). Lema 2. Considere um operador unitário U C n n e um vetor ψ C n. Então, Prova. Usando (2), temos: U( ψ ψ )U + (U ψ ) ( ψ U + ). U( ψ ψ )U + U( ψ ψ )U + (U ψ )( ψ U + ) (U ψ )(U ψ ) + (U ψ ) (U ψ ) + (U ψ ) ( ψ U + ). Dos Lemas e 2, obtemos o resultado da aplicação operador U f sobre a matriz densidade ρ. por Teorema. A ação do operador U f, em (4), sobre a matriz densidade ρ, em (5), é dada U f ρu + f Prova. Usando (5), temos: ( i i f(i) f(i) ). U f ρu + f U f ( ( i i 0 0 ))U + f (U f ( i i 0 0 )U + f ). Do Lema, (U f ( i i 0 0 )U + f ) (U f ( i 0 i 0 )U + f ). Do Lema 2, 2073

(U f ( i 0 i 0 )U + f ) ((U f ( i 0 )) (( i 0 )U + f )) ((U f ( i 0 )) (U f ( i 0 ) + ) + ) ((U f ( i 0 )) (U f ( i 0 )) + ) ( i f(i) ( i f(i) ) + ) ( i f(i) i f(i) ). Novamente, do Lema, ( i f(i) i f(i) ) ( i i f(i) f(i) ). Após a aplicação do operador U f, algo surpreendente aconteceu: a função f foi avaliada simultaneamente em todos os elementos do conjunto r. Isto é denominado paralelismo quântico [8]. Note que o ensemble do segundo registrador é formado por todos os valores da função f sobre os elementos do conjunto r. Neste ponto, calcula-se a média f desses valores de forma experimental [, 7]. Para continuar nossa descrição matemática do algoritmo, representaremos esse cálculo por f f(i), que pode ser obtido (experimentalmente) em O(log 2 N) passos [, 7]. A média será diferente de zero se, e somente se, o conjunto r contiver o elemento procurado i 0. Dessa maneira, podemos descartar a metade dos elementos da lista. O próximo passo é então particionar o conjunto que contém i 0 e aplicar novamente o operador U f. Supondo que N 2 n, após a primeira partição, a lista terá 2 n elementos. Repetindo o processo, obtemos partições com 2 n 2, 2 n 3,..., 2 e 2 0 elementos. Portanto, para reduzir a lista a apenas um elemento (i 0 ), são necessárias n log 2 N divisões. Ou seja, o número de aplicações do operador U f é O(log 2 N). 4 Exemplo Para exemplificar, aplicaremos o algoritmo de Brüschweiler em uma lista com 8 elementos: {0,, 2, 3, 4, 5, 6, 7}. Vamos supor que o elemento procurado seja o número 4. O primeiro passo do algoritmo é dividir a lista em duas de mesmo tamanho: r {0,, 2, 3} 2074

e r + {4, 5, 6, 7}. O primeiro registrador é inicializado como o ensemble {( 4, 0 ), ( 4, ), ( 4, 2 ), ( 4, 3 )}, e o segundo registrador como o ensemble {, 0 }. A matriz densidade associada aos dois registradores é dada por ρ 4 (( 0 0 0 0 ) + ( 0 0 ) + ( 2 2 0 0 ) + ( 3 3 0 0 )). Aplicando U f sobre ρ, obtemos: U f ρu + f (( 0 0 f(0) f(0) ) + ( f() f() ) + 4 ( 2 2 f(2) f(2) ) + ( 3 3 f(3) f(3) )) O ensemble associado ao segundo registrador é 4 (( 0 0 0 0 ) + ( 0 0 ) + ( 2 2 0 0 ) + ( 3 3 0 0 )). {( 4, 0 ), ( 4, 0 ), ( 4, 0 ), ( 4, 0 )}. Calculando a média, temos f 0, o que significa que o elemento procurado está no conjunto {4, 5, 6, 7}. As duas novas partições são: r + e r + 2 r 2 {4, 5} {6, 7}. O primeiro registrador é reinicializado como o ensemble {( 2, 4 ), ( 2, 5 )}, e o segundo registrador como o ensemble {, 0 }. A matriz densidade associada aos dois registradores é ρ 2 (( 4 4 0 0 ) + ( 5 5 0 0 )). Aplicando U f sobre ρ, obtemos: 2075

U f ρu + f (( 4 4 f(4) f(4) ) + ( 5 5 f(5) f(5) )) 2 2 (( 4 4 ) + ( 5 5 0 0 )) O ensemble associado ao segundo registrador é {( 2, ), ( 2, 0 )}. Calculando a média, temos f 2. O conjunto que contém o elemento procurado é então o conjunto r 2076

O enfoque dado trata apenas da parte teórica. Entretanto, já existem resultados experimentais que implementam o algoritmo usando técnicas de ressonâcia magnética nuclear [, 7]. Um deficiência dos algoritmos baseados em ensembles é que o custo de armazenamento dos dados do problema é proporcional a quantidade desses dados [, 7]. Por outro lado, os algoritmos baseados em ensembles não apresentam o problema da descoerência [8], que é uma das principais dificuldades na implementação dos algoritmos quânticos. O desenvolvimento de algoritmos quânticos ainda é uma área muito recente e pouco explorada. Entretanto, já existem aplicações em problemas de otimização [9] e em problemas envolvendo grafos [2, 5]. Trabalhos neste sentido estão em andamento. Referências [] R. Brüschweiler, Novel strategy for database searching in spin Liouville space by NMR ensemble computing, Phys. Rev. Lett., 85 (2000), 485-488. [2] C. Dürr, M. Mhalla, and Y. Lei, Quantum query complexity of graph connectivity, arxiv: quant-ph/030369, (2003). [3] L.K. Grover, A fast quantum mechanical algorithm for database search, Proc. 28th Annual ACM Symposium on the Theory of Computing (STOC), (996), 22-29. [4] L.K. Grover, Quantum Mechanics helps in searching for a needle in a haystack, Phys. Rev. Lett., 79 (997), 325-328. [5] M. Heiligman, Quantum algorithms for lowest weight paths and spanning trees in complete graphs, arxiv: quant-ph/03033, (2003). [6] C. Lavor, L.R.U. Manssur e R. Portugal, Grover s Algorithm: Quantum Database Search, arxiv: quant-ph/030079, (2003). [7] Z.L. Madi, R. Brüschweiler, and R.R. Ernst, One- and two-dimensional ensemble quantum computing in spin Liouville space, J. Chem. Phys, 09 (998), 0603-06. [8] M.A. Nielsen e I.L. Chuang, Quantum Computation and Quantum Information, Cambridge University Press, Cambridge (2000). [9] V. Protopopescu, C. D Helon, and J. Barhen, Exponentially fast solution to the global optimization problem using Brüschweiler s ensemble search algorithm, arxiv: quantph/030007, (2003). [0] P. Shor, Algorithms for Quantum Computation: Discrete logarithms and factoring, SIAM J. Comp., 26 (997), 484-509. 2077