WECIQ 2006 - Mini-curso 4 Algoritmos Quânticos Renato Portugal1 , Carlos Magno Martins Cosme, Demerson Nunes Gonçalves1 1 Laboratório Nacional de Computação Científica Petrópolis, RJ, Brasil {portugal,magno,dnunes}@lncc.br 1. Introdução A capacidade de se ter dados computacionais em estado de superposição e de podermos manipulá-los através de operações unitárias é o diferencial da computação quântica em relação a convencional. São as leis da mecânica quântica que tornam isso possível. Duas tarefas devem ser realizadas para fazer uso dessas novas características na computação: (1) construir um hardware que manipule estados quânticos, (2) desenvolver algoritmos baseados na lógica quântica. Esse trabalho visa apresentar de forma didática uma parte da área de algoritmos quânticos. Atualmente existem três grandes vertentes na área de algoritmos quânticos, que podem ser caraterizadas como (1) o problema do subgrupo escondido, que inclui o algoritmo de Shor como caso particular, (2) problemas de busca e otimização, que inclui o algoritmo de Grover e (3) algoritmos baseados em caminhos aleatórios quânticos. Nesse trabalho vamos nos concentrar na vertente (1). O problema do subgrupo escondido surgiu quando os pesquisadores notaram que os algoritmos de Shor, Simon e Deutsch&Josza eram todos casos particulares de um problema mais geral cuja terminologia mais adequada era usando a teoria de grupo computacional. De forma resumida, o problema consiste em achar os geradores de um subgrupo H do grupo G. O grupo G é conhecido através de geradores e o subgrupo H pode ser obtido a partir de uma função f que é constante nas classes laterais de H em G. O problema tem uma solução eficiente se conseguirmos achar os geradores de H de forma que (1) o número de passos, (2) uso de memória e (3) número de vezes que f foi usada têm complexidade computacional O(poly(log⌈G⌉)). Nesse trabalho apresentamos uma breve revisão das portas quânticas mais usadas, supondo que o leitor já tem um conhecimento prévio dos conceitos básicos de computação quântica. A seguir descrevemos o algoritmo quântico para calcular o transformada de Fourier e baseado nessa transformada, descrevemos os diversos algoritmos quânticos para cálculo de ordem como o algoritmo de Shor, Kitaev e Watrous. O algoritmo de Kitaev é apresentado como uma aplicação do algoritmo para cálculo de fase de um autovalor de um operador unitário. Depois descrevemos o algoritmo para decompor grupos abelianos desenvolvido por Cheung&Mosca. Por falta de espaço, não podemos apresentar os detalhes do problema do subgrupo escondido não abeliano. 2. Portas Principais A porta X é a versão quântica da porta NOT clássica. O circuito dessa porta está mostrado na figura 1, que deve ser lido da esquerda para a direita. A entrada é o estado |j1 i onde j1 assume o valor 0 ou 1, ou seja, o qubit está escrito na base binária. A saída é X |j1 i. 67 |j1 i X X |j1 i Figura 1. Circuito da porta X. A matriz X é unitária dada por X= 0 1 1 0 . Assim se a entrada é |0i, a saída é |1i e vice-versa. Esse é um exemplo de um circuito com um único qubit. Vamos agora ver um exemplo com 2 qubits. A porta CNOT é uma das principais portas usadas em algoritmos. Vamos descrevêla em detalhes, pois ela serve como paradigma para o entendimento de outras portas quânticas. O circuito dessa porta está mostrado na figura 2. |j1 i |j2 i • |j1 i X j1 |j2 i Figura 2. Circuito da porta CNOT. Como sempre, o circuito deve ser lido da esquerda para a direita. A entrada é o estado |j1 i |j2 i onde j1 e j2 podem assumir os valores 0 ou 1. A saída é |0i |j2 i se j1 = 0 ou |1i (X |j2 i) se j1 = 1. Se a entrada do primeiro qubit for um estado da base computacional e a entrada do segundo for |0i, a porta CNOT pode ser interpretada como uma replicadora, pois a entrada |j1 i |0i gera a saída |j1 i |j1 i. Isso não pode ser generalizado a menos que o teorema da não-clonagem seja violado. Esse teorema afirma simplesmente que a produção de cópias de um estado quântico desconhecido é proibida e a prova é uma simples constatação de que a cópia de estados quânticos é uma operação não-unitária no caso geral. Foi possível fazer cópias no caso acima, porque os estados envolvidos eram ortogonais. A figura 2 nos dá a impressão que a saída da porta CNOT é sempre desemaranhada. Isso é falso. Na figura 3 podemos ver um exemplo em que a saída é emaranhada. |0i+|1i √ 2 |0i • Figura 3. Porta CNOT gerando uma saída emaranhada. Portas que emaranham podem desemaranhar e vice-versa. Isso segue do fato de que todo operador unitário tem inversa. A porta inversa, isto é, a porta que representa o operador inverso faz o papel inverso, como é de se esperar. A porta CNOT é um caso particular de porta controlada. Na verdade o nome CNOT vem de ‘Controlled NOT’. O qubit com a bolinha preta é o controle que só é ativado se o estado do qubit for |1i, e o outro qubit é o alvo. No caso do CNOT, o operador que é aplicado ao alvo é X, porém podemos substituí-lo por qualquer outro operador unitário de 1 qubit. A notação C(X) é sinônimo de CNOT e pode ser usada para outros operadores. 68 1 1 A porta H = 1 −1 ser descrita da seguinte forma √1 2 tem também papel de destaque. A sua atuação pode H |j1 i = |0i + (−1)j1 |1i √ . 2 (1) A porta H é muito usada em algoritmos para criar um estado de superposição de todos os vetores da base computacional. Esse estado é útil no paralelismo quântico. A forma usual de gerar esse estado é aplicar H ⊗n no estado |0i⊗n : n (H |0i) ⊗n 2 −1 1 X |ji . =√ 2n j=0 (2) Note que nessa equação, o lado direito usa a notação decimal. Por exemplo, o estado |2n − 1i corresponde ao estado |1i⊗n . Todo esse processo deve se feito num computador quântico de n qubits. E XERCÍCIO 2.1 Mostre como a equação (2) pode ser obtida a partir da equação (1). E XERCÍCIO 2.2 Dado um operador unitário U de n qubits podemos definir um operador controlado muito útil em algoritmos da seguinte forma V (|ji |ψi) = |ji U j |ψi , (3) onde o primeiro registrador tem m qubits e o segundo tem n qubits. No circuito abaixo vemos sua representação esquemática. |ji /m • |ji |ψi /n U U j |ψi Esse operador pode ser visto como uma porta C(U ) generalizada. A representação gráfica é a mesma de C(U ), porém não há perigo de confusão pois o primeiro registrador tem mais do que 1 qubit. Mostre que V é um operador unitário e mostre que o circuito abaixo é a sua implementação correta em termos de portas controladas usuais, ou seja, cada uma controlada por um qubit apenas. ··· |j1 i • .. . .. . • |jm−2 i • |jm−1 i |jm i |ψi |j1 i • /n U 20 1 U2 2 U2 69 ··· |jm−2 i ··· |jm−1 i ··· |jm i ··· m−1 U2 U j |ψi 3. A Transformada de Fourier Quântica A transformada de Fourier de uma função F : {0, . . . , N − 1} → C é uma nova função F̃ : {0, . . . , N − 1} → C definida por onde N −1 1 X jk ωN F (k), F̃ (j) = √ N k=0 (4) 2πi ωN = e N . (5) N O termo ωN é chamado de N −ésima raiz da unidade pois (ωN ) = 1. Omitiremos o sub-índice N quando for possível determiná-lo pelo contexto. Podemos aplicar a transformada de Fourier tanto em uma função quanto em um estado da base computacional. A transformada de Fourier aplicada ao estado |ji da base computacional é N −1 1 X jk ω |ki , (6) |ψj i ≡ TFN (|ji) = √ N k=0 onde o conjunto {|ψj i ; j = 0, . . . , N − 1} forma uma nova base ortonormal. A transformada de Fourier é um operador linear unitário, portanto se soubermos como ele atua nos estados da base computacional, podemos obter sua atuação num estado genérico do tipo |ψi = N −1 X a=0 F (a) |ai . (7) A transformada de Fourier de |ψi pode ser obtida tanto através da equação (4) como da equação (6). No primeiro caso calculamos a transformada de Fourier das amplitudes sem mexer nos vetores e no segundo caso calculamos a transformada de Fourier dos vetores sem mexer nas amplitudes. Os dois métodos são equivalentes. E XERCÍCIO 3.1 Prove a identidade N −1 1 X jk 1 se j é um múltiplo de N ω = 0 caso contrário, N k=0 (8) usando a fórmula da progressão geométrica. A partir desse resultado prove que {|ψj i ; j = 0, . . . , N − 1} é uma base ortonormal. E XERCÍCIO 3.2 Mostre que a transformada de Fourier de |ψi dado pela equação (7) pode ser calculada tanto através da equação (4) como da equação (6). Usando a identidade (8), podemos definir a transformada de Fourier inversa, que † é similar a (6), porém com um sinal de menos no expoente. Note que TF−1 N =TFN , já que TFN é um operador unitário. É um fato notável que a expressão (6) pode ser fatorada da seguinte forma n 1 Y l |0i + e2πij/2 |1i TFN (|ji) = √ 2n l=1 ! ! ! j j j |0i + e2πi 22 |1i |0i + e2πi 2n |1i |0i + e2πi 2 |1i √ √ √ ⊗ ⊗. . .⊗ . (9) = 2 2 2 70 E XERCÍCIO 3.3 Mostre que a expressão (6) é equivalente a (9). Sugestão: use a equação (5) e faça a decomposição binária de k. j j j E XERCÍCIO 3.4 Mostre que as expressões exponenciais e2πi 2 , e2πi 22 , · · · , e2πi 2n que aparecem na equação (9) são equivalentes a e2πi(0.j4 ) , e2πi(0.j3 j4 ) , · · · , e2πi(0.j1 ···jn ) , onde a fração binária 0.j1 · · · jn é definida como 0.j1 · · · jn = n X jk . k 2 k=1 Na figura 4 apresentamos um cicuito quântico que executa a transformada de Fourier em 4 qubits. A partir desse circuito podemos facilmente generalizá-lo para mais qubits desde que N seja da forma 2n onde n é o número de qubits. Se N não é uma potência de 2, não é conhecido um circuito exato para o cálculo da transformada de Fourier. |j1 i |j2 i H R(2) R(3) • H • |j3 i R(2) R(3) • H • |j4 i R(2) • • H j √1 (|0i 2 + e2πi 2 |1i) × √1 (|0i 2 +e × √1 (|0i 2 +e × R(4) √1 (|0i 2 × 2πi j2 2 2πi j3 + 2 2πi j4 2 e |1i) |1i) |1i) Figura 4. Circuito da transformada de Fourier sobre 4 qubits. A entrada é o estado |ji que é equivalente a |j1 j2 j3 j4 i. Vamos agora descrever as portas usadas no circuito. Vamos começar pelas mais simples. A duas últimas portas são chamadas de SWAP. Elas invertem o estado dos qubits. A figura 5 mostra como essa porta funciona e também descreve a sua decomposição em termos de portas universais (CNOT e portas de 1 qubit). |ψi × |ϕi |ϕi × |ψi ≡ • |ψi |ϕi • • |ϕi |ψi Figura 5. Circuito da porta SWAP. Esta porta inverte os estados dos qubits. E XERCÍCIO 3.5 Mostre que a decomposição da porta SWAP mostrada na figura 5 funciona corretamente. Sugestão: mostre que a decomposição funciona corretamente para a base computacional e conclua que ela é válida para vetores genéricos. O operador R(k) é definido por R (k) = 1 0 2πi 0 e 2k . No circuito da transfomada de Fourier ele aparece sempre controlado por outro qubit. Uma vez que R(k) é sempre aplicado depois de uma porta Hadamard, é crucial que saibamos o resultado da aplicação de R(k) controlado por um qubit |jl i sobre estados do tipo (1). Isso é deixado como exercício, que mostra que o circuito 4 calcula a transformada de Fourier corretamente. 71 E XERCÍCIO 3.6 Mostre que j 1 H |j4 i = √ (|0i + e2πi 2 |1i) 2 j 1 (2) R4 H |j3 i = √ (|0i + e2πi 22 |1i) 2 j 1 (3) (2) R4 R3 H |j2 i = √ (|0i + e2πi 23 |1i) 2 j 1 (4) (3) (2) R4 R3 R2 H |j1 i = √ (|0i + e2πi 24 |1i) 2 onde o sub-índice do operador R(k) indica por qual qubit ele está sendo controlado. Sugestão: use a expressão j = j1 23 + j2 22 + j3 2 + j4 e note que alguns termos dessa soma desaparecem quando estão no expoente. Uma vez que vamos usar o circuito que calcula a transformada de Fourier outras vezes, vamos descrevê-lo de uma forma mais sucinta. A figura 6 descreve o algoritmo como uma caixa preta. A saída correspondente a um vetor genérico da base computacional está mostrada. Assim podemos obter a saída correspondente a um vetor em superposição usando linearidade. ˛ 2πi 0.j ¸ ˛e n |j1 i |j2 i . . . |jn i TFN ˛ 2πi 0.j ¸ ˛e n−1 jn . . . ˛ 2πi 0.j ···j ¸ ˛e n 1 ˛ ¸ Figura 6. Circuito compacto da transformada de Fourier. Os vetores do tipo ˛e2πi 0.jn descrevem de √ forma compacta vetores do tipo (|0i + e2πi 0.jn |1i)/ 2. 4. Algoritmo de Shor O algoritmo de Shor acha os fatores primos de um número composto N . A fatoração pode ser reduzida ao cálculo da ordem de um número x menor que N escolhido aleatoriamente. O número de qubits necessário para armazenar N é muito menor que N . Esse número é log2 N , porém como ele não é um inteiro no caso geral, definimos n = ⌈log2 N ⌉. Um computador quântico com n qubits pode guardar N ou qualquer outro inteiro positivo menor que N . Facilmente vemos que o número de fatores primos de N é no máximo n. Se o número de qubits e o número de fatores primos são menores ou iguais que n, então é natural perguntar se existe um algoritmo que fatora N em um número de passos que é polinomial em n. Mais precisamente a questão é: Existe um algoritmo de fatoração na classe de complexidade P? A redução da fatoração de N ao problema de achar a ordem de um inteiro x menor que N pode ser descrita da seguinte forma. Se x e N possuem fatores comuns, então o 72 MDC(x, N ) fornece um fator de N , portanto é suficiente investigar o caso quando x é coprimo com N . A ordem de x módulo N é o menor inteiro positivo r tal que xr ≡ 1 mod N. Se r for par, podemos definir y como sendo xr/2 ≡ y mod N. A notação acima significa que y é o resto da divisãode xr/2 por N e, pela definição, 0 ≤ y < N . Note que y satisfaz y 2 ≡ 1 módulo N , ou equivalentemente (y − 1)(y + 1) ≡ 0 módulo N , o que significa que N divide (y − 1)(y + 1). Se 1 < y < N − 1, os fatores y − 1 e y + 1 satisfazem 0 < y − 1 < y + 1 < N , portanto N não pode dividir y − 1 nem y + 1 separadamente. A única alternativa é que ambos y − 1 e y + 1 tenham fatores de N (que resulta N por multiplicação). Então, MDC(y − 1, N ) e MDC(y + 1, N ) produzem fatores não triviais de N . Se N tiver mais fatores, eles podem ser calculados aplicando o algoritmo recursivamente. Considere N = 21 como exemplo. A sequência de equivalências 24 ≡ 16 mod 21 25 ≡ 11 mod 21 26 ≡ 11 × 2 ≡ 1 mod 21 mostra que a ordem de 2 módulo 21 é r = 6. Portanto, y ≡ 23 ≡ 8 módulo 21. De y − 1 resulta o fator 7 e de y + 1 resulta o fator 3 de 21. Resumindo, se escolhermos aleatoriamente um inteiro positivo x menor que N e calcularmos o MDC(x, N ), ou teremos um fator de N ou ficaremos sabendo que x é coprimo com N . Neste último caso, se x satisfizer as condições (1) a ordem r é par, e (2) 0 < y − 1 < y + 1 < N , então o MDC(y − 1, N ) e MDC(y + 1, N ) produzem fatores de N . Se uma das condições não é verdadeira, nós recomeçamos até achar um candidato x apropriado. O método não seria útil se estas suposições fossem restritivas demais, mas felizmente este não é o caso. O método sistematicamente falha se N for uma potência de algum primo, mas nesse caso um algoritmo clássico eficiente é conhecido. Se N for par, podemos continuar dividindo por 2 até o resultado ser ímpar. Resta-nos aplicar o método para os inteiros compostos ímpares que não são potências de algum número primo. É possível provar que a probabilidade de achar x coprimo com N satisfazendo as condições (1) e (2) é alta. Agora, considere o circuito da figura 7 que calcula a ordem r de um inteiro positivo x menor que N , coprimo com N . Vx é um operador linear unitário dado por Vx (|ji |ki) = |ji k + xj , (10) onde |ji e |ki são os estados do primeiro e segundo registrador respectivamente. As operações aritméticas são feitas módulo N , assim 0 ≤ k + xj < N . O operador TF2n foi descrito na seção anterior. E XERCÍCIO 4.1 Mostre que o operador Vx é unitário. O primeiro registrador possui m qubits, onde m deve ser escolhido de forma que N ≤ 2m ≤ 2N 2 para que a probabilidade de achar o resultado seja maior que 1/2. Se 2 73 2◦ registrador (n qubits) { { TF†2n H (n qubits) H 1◦ registrador |0i |0i Vx |0i |0i |ψ0 i |ψ1 i |ψ2 i |ψ3 i |ψ4 i |ψ5 i Figura 7. Circuito quântico para achar a ordem de um inteiro positivo x módulo N . a ordem é uma potência de 2, então é suficiente tomar m = n. Nesta seção, nós vamos considerar somente esse caso especial. Os estados do computador quântico estão indicados por |ψ0 i até |ψ5 i na figura 7. O estado inicial é |ψ0 i = |0 . . . 0i |0 . . . 0i . | {z } | {z } n n A aplicação do operador Hadamard em cada qubit do primeiro registrador resulta n 2 −1 1 X |ji |0i . |ψ1 i = √ 2n j=0 (11) Agora note o que acontece quando aplicamos Vx em |ψ1 i: |ψ2 i = Vx |ψ1 i 2n −1 1 X = √ Vx (|ji |0i) 2n j=0 n 2 −1 1 X = √ |ji xj . 2n j=0 (12) O estado |ψ2 i é interessante, pois, já que Vx é linear, ele atua simultaneamente em todos os termos |ji |0i para 2n valores de j, logo isto gera todas as potências de x simultaneamente. Esta característica é chamada paralelismo quântico. Algumas destas potências são 1, as quais correspondem aos estados n 2 |0i |1i , |ri |1i , |2ri |1i , · · · , − 1 r |1i . (13) r Isto explica a escolha de (10) para Vx . Classicamente, poderíamos calcular sucessivamente xj , para j começando de 2 até chegarmos a j = r. Quanticamente, pode-se calcular todas as potências de x com uma única aplicação de Vx . No nível quântico, 74 todos os valores de j que produzem xj ≡ 1 módulo N são “conhecidos”. Mas esta informação não esta totalmente disponível no nível clássico. Uma informação clássica de um estado quântico é obtida através de uma medida e, neste ponto, não ajudaria se medíssemos o primeiro registrador, já que todos os estados da superposição (12) possuem igual amplitudes. A primeira parte da estratégia para determinar r é observar que o primeiro registrador dos estados (13) é periódico. Então a informação que queremos é um período. Para facilitar os cálculos, vamos medir o segundo registrador. Antes de fazer isto, vamos reescrever o estado |ψ2 i fatorando os termos iguais do segundo registrador. Como xj é uma função periódica com período r, vamos substituir j por ar + b na equação (12), onde 0 ≤ a ≤ (2n /r) − 1 e 0 ≤ b ≤ r − 1. Lembre-se que estamos supondo que r é uma potência de 2, portanto r divide 2n . A equação (12) é convertida em 2n −1 r−1 r 1 XX |ψ2 i = √ |ar + bi xb . (14) 2n b=0 a=0 No segundo registrador, substituímos xar+b por xb , já que xr ≡ 1 módulo N . Agora o segundo registrador é medido. Qualquer resultado x0 , x1 , ..., xr−1 pode ser obtido com igual probabilidade. Suponha que o resultado é xb0 . O estado do computador quântico seja agora 2n r −1 r X r |ψ3 i = (15) |ar + b0 i xb0 . n 2 a=0 p Note que depois da medida, a constante é renormalizada para r/2n , já que existem 2n /r termos na soma (15). A figura 8 mostra a probabilidade de obtermos os estados da base computacional medindo o primeiro registrador. A probabilidade forma uma função periódica com período r. Estes valores são zeros exceto para os estados |b0 i, |r + b0 i, |2r + b0 i, ...,|2n − r + b0 i. Como o valor de b0 é randômico, ele esconde com perfeição a informação que desejamos encontrar, ou seja, o valor de r. A única saída é explorar a periodicidade dos kets ou equivalentemente, das amplitudes. Como podemos descobrir o período de uma função eficientemente? A resposta é a transformada de Fourier. A transformada de Fourier de uma função periódica de período Distribuição de probabilidades { r r 2n 0 b0 r + b0 2r + b0 3r + b0 Termos de |ψ3 i (1◦ registrador) Figura 8. Distribuição de probabilidades de |ψ3 i medido na base computacional (para o caso b0 = 3 and r = 8). O eixo horizontal tem 2n pontos. O número de picos é 2n /r e o período é r. 75 r é uma nova função com período proporcional a 1/r. Isto faz toda a diferença para determinar r. A transformada de Fourier é a segunda e última parte da estratégia usada por Shor. Todo o método depende de um algoritmo quântico eficiente para calcular a transformada de Fourier, que não está disponível classicamente. Vamos continuar o processo de cálculo da figura 7. Estamos prontos para achar o próximo estado do computador quântico — |ψ4 i. Aplicando a transformada de Fourier inversa no primeiro registrador, usando a equação (6) e a linearidade da TF†2n , obtemos |ψ4 i = TF†2n (|ψ3 i) ! r 2rn −1 2n −1 b r X 1 X −2πij(ar+b0 )/2n x 0 . √ e |ji = n 2n a=0 2 j=0 Invertendo a ordem do somatório, temos 2n n −1 −1 2X r X −2πija 1 n 2n /r e−2πijb0 /2 |ji xb0 . 1 |ψ4 i = √ e r j=0 2n /r a=0 (16) Usando (8), vemos que a expressão no colchetes é diferente de zero se e somente se j = k2n /r com k = 0, ..., r − 1. Quando j assume tais valores, a expressão no colchetes é igual a 1. Então temos ! r−1 b 1 X −2πi k b0 k2n x 0 . r e (17) |ψ4 i = √ r r k=0 Para acharmos r, a expressão |ψ4 i têm duas vantagens sobre a expressão |ψ3 i (equação (15)): r está no denominador do ket e o parâmetro aleatório b0 foi movido do ket para o expoente ocupando agora um lugar inofensivo. Distribuição de probabilidades { 2n r 1 r 0 2n r 2 2n r 3 2n r Termos de |ψ4 i (1◦ registrador) Figura 9. Distribuição de probabilidades de |ψ4 i medida na base computacional. O eixo horizontal tem 2n pontos, apenas os termos não nulos são mostrados. O número de picos é r e o período é 2n /r. A figura 9 mostra a distribuição de probabilidades de |ψ4 i medido na base computacional. Medindo o primeiro registrador, pegamos o valor k0 2n /r, onde k0 pode ser qualquer número entre 0 e r − 1 com igual probabilidade (os picos na figura 9). Se obtivermos k0 = 0, não teremos nenhuma informação sobre r e o algoritmo tem que ser 76 rodado novamente. Se k0 6= 0, dividimos k0 2n /r por 2n , obtendo k0 /r. Nem k0 nem r são conhecidos. Se k0 é coprimo com r, simplesmente selecionamos o denominador. Se k0 e r tem fator comum, o denominador da fração reduzida k0 /r é um fator de r mas não é o próprio r. Suponha que o denominador é r1 . Seja r = r1 r2 . Agora o objetivo é determinar r2 , que é a ordem de xr1 módulo N . Rodamos novamente a parte quântica do algoritmo para achar a ordem de xr1 . Se acharmos r2 na primeira rodada, o algoritmo para, caso contrário o aplicamos recursivamente. O processo recursivo não é longo, porque o número de interações é menor ou igual a log2 r. Tome N = 15 como exemplo, que é o menor número composto não trivial. O conjunto de números menores que 15 coprimo com 15 são {1, 2, 4, 7, 8, 11, 13, 14}. Os números no conjunto {4, 11, 14} tem ordem 2 e os números do conjunto {2, 7, 8, 13} tem ordem 4. Portanto, em qualquer caso r é uma potência de 2 e os fatores de N = 15 podem ser encontrados num computador quântico com ⌈log2 15⌉ = 8 qubits. E XERCÍCIO 4.2 Refaça os passos descritos nessa seção sem supor que r divide N . Note que todas as expressões onde aparece o termo 2n /r devem ser modificadas consistentemente. Após obter o estado |ψ4 i equivalente, faça o gráfico da distribuição de probabilidades (como o da figura 9) para N = 21 e x = 2. Repita novamente todo o processo aumentando o número de qubits m no primeiro registrador de forma que obedeça a restrição N 2 ≤ 2m ≤ 2N 2 . Compare o novo gráfico da distribuição de probabilidades com o anterior e explique porque as chances de encontrar r é maior no segundo caso. 5. Algoritmo para o Cálculo da Fase de um Autovalor O autovalor de um operador unitário U é sempre da forma e2πiφ onde a fase φ é um número real satisfazendo 0 ≤ φ < 1. E XERCÍCIO 5.1 Mostre! Nessa seção vamos apresentar um algoritmo para calcular uma aproximação de φ uma vez dado o autovetor |ψi correspondente, isto é, supomos conhecido o vetor |ψi que satisfaz U |ψi = e2πiφ |ψi. Na verdade não vamos supor apenas que |ψi seja conhecido. Vamos supor que é possível de alguma forma preparar um registrador do computador quântico no estado |ψi. Vamos assumir também que U é conhecido e pode ser implementado eficientemente. E XERCÍCIO 5.2 Suponha que U |ψi = e2πiφ |ψi. Mostre que a porta U k controlada pelo primeiro qubit como no circuito abaixo |0i H • |ψi /n Uk √1 (|0i 2 + e2πiφk |1i) |ψi onde k é um inteiro, produz o seguinte resultado |0i + e2πiφk |1i |0i + |1i k √ √ |ψi = |ψi . C(U ) 2 2 77 Se o inteiro k do exercício 5.2 for da forma 2m onde m é um inteiro de tamanho controlado, isto é, m = O(poly n) onde n é o número de qubits usado por |ψi, podemos implementar U k eficientemente usando o algoritmo do quadrado repetido. E XERCÍCIO 5.3 O algoritmo do quadrado repetido pode ser facilmente entendido com um exemplo. Suponha que queremos calcular U 13 . Fazemos a decomposição binária de 13 = 1 · 23 + 1 · 22 + 0 · 2 + 1. Então com um pouco de álgebra podemos expressar U 13 apenas com quadrados U 13 = (((U 2 U )2 )2 U. Note que o número de vezes que temos que elevar uma matriz ao quadrado é bem menor que o número 13. O número de multiplicações reduz drasticamente usando esse método. Mostre que U k pode ser calculada com um número O(log k) multiplicações matriciais. H |0i H |0i H |0i H • |ψi /n U2 • • 0 U2 1 U2 2 m−1 1 √ (|0i 2 + e2πiφ2 ··· 1 √ (|0i 2 + e2πiφ2 |1i) ··· 1 √ (|0i 2 + e2πiφ2 |1i) ··· 1 √ (|0i 2 + e2πiφ2 |1i) ··· |0i ··· • U2 m−1 |1i) 2 1 0 |ψi Figura 10. Primeira parte do circuito para cálculo da fase de um autovalor. O circuito da figura 10 mostra a primeira parte do algoritmo para o cálculo da fase φ. A partir do resultado do exercício 5.2, podemos facilmente confirmar que o resultado do circuito 10 é exatamente como mostrado. Vamos supor para simplificar a apresentação que a fase tem no máximo m dígitos binários φ = 0.φ1 · · · φm onde φ1 é igual a 0 ou 1, o mesmo para φ2 e assim por diante. Usando a equação m X φk 0.φ1 · · · φm = , k 2 k=1 m−1 m−2 0 podemos ver que os termos exponenciais e2πiφ2 , e2πiφ2 , · · · , e2πiφ2 na saída do circuito da figura 10 são iguais a e2πi(0.φm ) , e2πi(0.φm−1 φm ) , · · · , e2πi(0.φ1 ···φm ) . Se consultarmos a figura 6 podemos nos convencer de que se aplicarmos a transformada de Fourier inversa na saída do primeiro registrador do circuito da figura 10 obteremos o resultado |φ1 i · · · |φm i. Isso quer dizer que o circuito completo para o cálculo da fase de um autovalor é o circuito da figura 11. Se φ tiver um número de casas decimais muito grande ou se for um número irracional, o algoritmo fornece uma aproximação para o valor da fase. A aproximação melhora se o número m de qubits do primeiro registrador for aumentado. Na verdade o resultado é probabilístico e pode ser formalizado da seguinte forma. Seja ǫ a probabilidade de erro do algoritmo e n o número de casas decimais corretas de φ. Então o número 78 |0i H ··· |0i H ··· • • >= >= φ1 >= >= φm−1 φ2 TF† • |0i H |0i H • |ψi /n U2 ··· ··· 0 U2 1 ··· U2 m−2 U2 m−1 φm |ψi Figura 11. Circuito completo para cálculo da fase de um autovalor. de qubits no primeiro registrador deve ser 1 m = n + log(2 + ) . 2ǫ (18) E XERCÍCIO 5.4 (Difícil) Mostre que m deve ter no mínimo o valor descrito pela equação (18) caso se queira n dígitos de φ corretos com uma probabilidade de erro ǫ. Uma vez que vamos usar o circuito de cálculo de fase outras vezes, vamos descrevêlo de uma forma mais sucinta. A figura 12 descreve o algoritmo como uma caixa preta. Os seus detalhes não são mostrados, porém as grandezas relevantes estão alí representadas (U , |ψi, φ). Note que a saída do primeiro registrador corresponde aos dígitos binários de φ. Como φ é um número menor que 1, segue que a saída na verdade é o número φ2m ou uma aproximação desse número caso φ tenha mais do que m dígitos binários. |0i /m Fasem (U ) |ψi /n >= aprox. para φ2m |ψi Figura 12. Circuito simplificado para cálculo da fase de um autovalor φ de autovetor |ψi do operador U , onde U |ψi = e2πiφ |ψi. O número de qubits m no primeiro registrador deve ser dado pela equação (18) caso se queira n dígitos de φ corretos com uma probabilidade de erro ǫ. E XERCÍCIO 5.5 (Fácil) Mostre que o circuito abaixo H ⊗m • TF† U é equivalente ao circuito Fasem (U ). Sugestão: use o exercício 2.2. 6. Algoritmo de Kitaev O algoritmo de Shor calcula a ordem de um número x modulo N desde que MDC(x, N ) = 1. Na terminologia de Teoria de Grupos dizemos que o algoritmo de Shor calcula a ordem de x no grupo Z× N , chamado grupo das unidades, isto é, o conjunto dos números inteiros positivos x menores que N tal que MDC(x, N ) = 1 com a operação de multiplicação modulo N . Uma questão natural que surge é se o algoritmo de Shor pode ser 79 generalizado para o cálculo de ordem em outros grupos. Só para recordar, um grupo é um conjunto não vazio com uma operação binária que não precisa ser comutativa que satisfaz as propriedades de fechamento, associatividade, tem o elemento identidade e todo elemento tem um elemento inverso no conjunto. E XERCÍCIO 6.1 Seja G um grupo multiplicativo com o elemento identidade e e seja g ∈ G. Mostre que o conjunto hgi = {g, g 2 , · · · , g r } é um grupo comutativo onde r é a ordem de g, isto é, o menor inteiro tal que g r = e. O elemento g é chamado de gerador do grupo < g >. Quando um grupo é gerado por um único elemento ele é dito cíclico. O primeiro problema a se resolver é como representar os elementos do grupo no computador quântico. Vamos considerar grupos finitos. Seja |G| a ordem do grupo G. O número de qubits deve ser pelo menos n = ⌈log2 |G|⌉. Cada elemento do grupo deve ser então “codificado” como um número binário de n dígitos. Assim os vetores da base computacional vão corresponder aos elementos do grupo a menos de uma sobra. Se |G| < 2n então alguns vetores da base computacional não têm correspondência com elementos do grupo de forma que um subespaço do espaço de Hilbert não é utilizado. Nesse subespaço assumimos que todos os operedores tem atuação trivial, isto é, atuam como o operador identidade. Além disso assumimos que podemos implementar a operação de multiplicação do grupo, isto é, se |j1 · · · jn i corresponde ao elemento g1 ∈ G e |k1 · · · kn i corresponde ao elemento g2 ∈ G então assumimos que podemos encontrar o vetor |l1 · · · ln i da base computacional que corresponde ao elemento g1 g2 . De agora em diante vamos usar a notação |gi para representar o vetor da base computacional correspondente ao elemento g. Essa discussão mostra que é possível implementar o operador unitário Uh para um elemento genérico fixo h em G cuja atuação na base computacional é Uh |gi = |hgi . (19) Também assumimos que o custo computacional da operação Uh |gi é baixo, melhor dizendo, assumimos que é O(1). O algoritmo de Kitaev resolve eficientemente o problema de achar a ordem de Uh , isto é, achar o menor r tal que (Uh )r = I. E XERCÍCIO 6.2 Mostre que (1) Uh é unitário, (2) (Uh )j = Uhj para qualquer inteiro j, (3) a ordem de Uh é igual a ordem de h e (3) r ≤ |G|. E XERCÍCIO 6.3 Como é a atuação de Uh† na base computacional? Suponha que |ψi seja um autovetor de Uh , isto é, Uh |ψi = λ |ψi, onde λ ∈ C é o autovalor correspondente. Uma vez que (Uh )r |ψi = |ψi, segue que λr = 1. Portanto λ é uma das r-ésimas raízes da unidade. Para cada g ∈ G vamos definir r vetores indexados por k = 0, 1, · · · , r − 1 da seguinte forma r−1 E 1 X (g) (ωr )jk ghj . =√ ψk r j=0 (20) E (g) Os vetores ψk são autovetores de Uh cujos autovalores correspondentes são (ωr )k . 80 E (g) E XERCÍCIO 6.4 Mostre que ψk são autovetores de Uh com autovalores (ωr )k para k = 0, 1, · · · , r − 1 e ∀g ∈ G. E (g) Note que a fase do autovalor (ωr )k do autovetor ψk é kr . Como k é um inteiro satisfazendo 1 ≤ k < r, a determinação da fase pode nos dar o valor de r pois k pode ser coprimo com r. Temos a nossa disposição o algoritmo para cálculo da fase, conhecemos Uh e queremos a fase de um autovalor. O problema agora é como o segundo reg preparar E (g) istrador do circuito Fasem (Uh ) da figura 12 como o autovetor ψk . Parece um problema intransponível. No E entanto existe uma estratégia um pouco diferente. A superposição dos (g) autovetores ψk para todos os valores de k fornece um vetor bastante conhecido, que é r−1 1 X (g) E . |gi = √ ψ r k=0 k (21) E XERCÍCIO 6.5 Mostre que a equação (21) está correta. A idéia é usar |gi como entrada do segundo registrador, como mostra o circuito da figura 13. |0i /m |gi /n Fasem (Uh ) >= aprox. para ˛ E ˛ (g) ˛ψk0 k0 2m r Figura 13. Circuito para cálculo da ordem r do operador Uh dado pela equação (19). A saída do circuito 13 pode ser surpresa para muitos leitores. Aprendemos que o circuito para cálculo de fase mantém o estado do segundo registrador invariante se a entrada for o autovetor em questão. Isso não acontece no circuito 13, pois |gi não é um autovetor de Un . Para calcular a saída temos que usar e equação (21) e a linearidade do circuito da seguinte forma ! r−1 1 X (g) E Fasem (Uh )(|0i |gi) = Fasem (Uh ) √ |0i ψk r k=0 r−1 E 1 X (g) Fasem (Uh ) |0i ψk = √ r k=0 r−1 E 1 X k k2m (g) ωr = √ ψk . r aprox r k=0 (22) Ao medirmos o primeiro registrador obtemos uma aproximação de k0 2m /r para algum valor de k0 com igual probabilidade no intervalo 1 ≤ k < r. O estado do segundo E (g) registrador passa a ser ψk0 . A probabilidade de acerto do algoritmo é maior que 1/2 pois existem mais números k coprimos com r do que números com fatores comuns. 81 7. Algoritmo de Watrous Nesta seção abordaremos o problema do cálculo da ordem de um grupo solúvel, apresentando um algoritmo quântico eficiente para a sua solução. Vale ressaltar que não é possível construir algoritmo clássico eficiente para resolver esse problema no caso geral. O algoritmo que apresentaremos é uma generalização do algoritmo de Shor. Nessa seção e na seguinte estamos supondo que o leitor tenha já alguma familiaridade com teoria de grupos. Vamos relembrar rapidamente alguns conceitos básicos. Um grupo G é dito abeliano se a operação binária do grupo for comutativa. H ⊆ G é dito um subgrupo de G se H forma um grupo com o operação binária de G. Neste caso, escrevemos H ≤ G. Seja a ∈ G, o conjunto aH = {g ∈ G |g = ah para algum h ∈ H} é chamado uma classe lateral de H em G com representante a. Um subgrupo H de G é dito normal se H = gHg −1 para todo g ∈ G, neste caso escrevemos H E G. Vamos agora a definir o que é um grupo solúvel e descrever algumas de suas propriedades básicas. Existe vasta literatura a respeito dessa classe de grupos como mencionamos na bibliografia. Ao longo de toda esta seção sempre consideraremos G finito. Um grupo G é solúvel se existem g1 , · · · , gm ∈ G tais que, definindo Hj = hg1 , · · · , gj i temos G = Hm D · · · D H1 D H0 := {e}. (23) Note que pela normalidade de Hj−1 em Hj , temos que gj Hj−1 = Hj−1 gj e, assim, Hj = hgj i Hj−1 . Uma série de subgrupos como (23) é chamada uma série subnormal. E XERCÍCIO 7.1 Mostre que Hj = hgj i Hj−1 e que na série subnormal (23) os quocientes são todos cíclicos, com Hj /Hj−1 = hgj Hj−1 i. Dado um grupo G, um subgrupo H de G e g ∈ G, define-se a ordem de g em relação à H, denotada por rH (g), como rH (g) := min{d ∈ N; g d ∈ H}. Sendo G um grupo solúvel denotamos rj := rHj−1 (gj ). E XERCÍCIO 7.2 Mostre que rj = |Hj /Hj−1 | = | hgj Hj−1 i |. Conclua daí que |G| = Qm j=1 rj . Assim como no algoritmo de Kitaev, admitimos que os elementos do grupo G estejam codificados como um número binário de n dígitos. Nesta codificação a operação do grupo é efetuada por uma transformação unitária que, para cada g ∈ G fixo, atua da seguinte forma Ug |hi = |ghi . O algoritmo quântico que iremos apresentar computa eficientemente a ordem de um grupo solúvel e, além disso, produz um estado quântico que aproxima, com alta prob82 abilidade, uma superposição uniforme dos elementos desse grupo. A superposição uniforme dos elementos de um conjunto S é definida como o estado 1 X |gi . |Si := p |S| g∈S O algoritmo combina duas subrotinas. A primeira delas computa a ordem de um elemento, g ∈ G, em relação à um subgrupo H ≤ G. A segunda, converte superposições uniformes dos elementos do subgrupo H, em superposições uniformes do subgrupo hgi H. Vamos apresentar as duas subrotinas e depois combiná-las num algoritmo principal, obtendo o resultado desejado. Pelo Execício 7.2 vemos que se soubermos calcular a ordem rj dos elementos gj em relação ao subgrupo Hj−1 teremos calculado a ordem do grupo G. Nesta seção descrevemos como fazer isso. O algoritmo é basicamente o algoritmo de Shor para cálculo de ordem. A diferença reside no fato de iniciarmos um dos registradores com uma superposição uniforme dos elementos do subgrupo em questão. Surge aqui uma dificuldade que será superada à frente: Como criar eficientemente essas superposições? Seja H um subgrupo de G e g um elemento qualquer de G. Desejamos determinar r = rH (g). Considere um circuito quântico com dois p Pregistradores, R e A, o primeiro inicializado com a superposição |Hi = 1/ |H| h∈H |hi e o segundo inicializado no estado |0i correspondente à ZN , onde N será escolhido posteriormente. A figura 14 mostra um circuito para o cálculo de r. |0i /? Vg ↓ • TFN |Hi /? ↑ |ϕ1 i TF†N Ug ↑ |ϕ2 i NM ↑ |ϕ3 i ↑ |ϕ4 i ↑ |ϕ5 i Figura 14. Circuito para o cálculo da ordem rH (g). A porta TFN é, como antes, a transformada de Fourier em ZN e TF†N sua transposta conjugada. A porta Vg é definida como Vg (|ai |hi) = |ai (Ug )a |hi = |ai |g a hi (24) e sua implementação foi discutida no exercício 2.2. Vamos agora descrever passo a passo os estados |ϕ1 i · · · |ϕ5 i do algoritmo. Para o estado inicial |ϕ1 i = |0i |Hi, vamos supor que saibamos montar a superposição uniforme |Hi. O circuito começa aplicando a transformada de Fourier no primeiro registrador, que produz uma superposição dos elementos de ZN da seguinte forma N −1 1 X |ai |Hi . |ϕ2 i = |ZN i |Hi = √ N a=0 83 Quando a porta Vg atua sobre o estado |ϕ2 i obtemos N −1 1 X √ |ai |g a Hi . |ϕ3 i = N a=0 Desde que N seja suficientemente grande, N ≫ r, podemos rearranjar o estado |ϕ3 i, juntando os estados do primeiro registrador que tem o mesmo estado no segundo registrador. Por simplicidade, admitamos que r | N . Note que os únicos valores distintos possíveis para o segundo registrador são H, gH, g 2 H, · · · , g r−1 H, já que r = rH (g). Assim, dado a ∈ {0, · · · , N − 1}, podemos escrevê-lo como a = a′ + br onde 0 ≤ a′ ≤ r − 1 e ′ ′ 0 ≤ b ≤ N/r − 1 e temos que g a H = g a g br H = g a H. Assim |ϕ3 i pode ser reescrito como N r−1 r −1 E 1 XX ′ |ϕ3 i = √ |a′ + bri g a H . N a′ =0 b=0 Aplicando a transposta conjugada da transformada de Fourier, tomamos a informação importante contida no ket |a′ + bri e a colocamos no expoente de uma fase. Por simplicidade, trocaremos o símbolo a′ por a. O estado resultante é: N r−1 r −1 N −1 X 1 XX −c(a+br) ω |ci |g a Hi , |ϕ4 i = N a=0 b=0 c=0 N −c(a+br) onde ωN = e− é projetado em 2πic(a+br) N . Efetuando a medida no primeiro registrador, o estado |ϕ4 i N r−1 r −1 1 XX −c (a+br) |ϕ5 i = √ ωN 0 |c0 i |g a Hi N a=0 b=0 para algum valor de c0 como discutiremos adiante. Rearranjando este estado, temos N −1 r−1 r X X 1 −c0 br −c0 k ωN |c0 i |g a Hi . ωN |ϕ5 i = √ N a=0 b=0 Note a semelhança com o algoritmo de Shor. Usando a identidade (8) segue que c0 = sN/r, com s uniformemente distribuído entre 0 e r − 1. Dividindo por N obtemos s/r. Escolhendo N = 22n+O(log(1/ε)) , 0 < ε < 1, pelo método das frações repetidas encontramos u e v coprimos, tais que u/v = s/r com probabilidade 1 − ε. O v assim determinado ou é o próprio r ou algum de seus fatores primos. Para determinar r, repetimos todo o procedimento O (log (1/ε)) vezes e calculamos o mínimo múltiplo comum entre os vários v’s encontrados. Isto irá determiná-lo com probabilidade de pelo menos 1 − ε. Passamos agora a descrição da segunda subrotina. Como mencionamos anteriormente, ao iniciarmos o algoritmo anterior, pressupomos a existência de um estado de superposição de todos os elementos do subgrupo H. Descreveremos agora um método para converter superposições uniformes dos elementos do subgrupo H em superposições uniformes do subgrupo hgi H, ou seja, converter |Hi em |hgi Hi. Seja então H ≤ G e g ∈ G com a suposição adicional que gH = Hg. 84 E XERCÍCIO 7.3 Mostre que nessas condições hgi H é um subgrupo de G tal que H E hgi H. Além disso, | hgi H/H| = rH (g). Supondo que tenhamos várias cópias de |Hi, desejamos convertê-las em cópias de |hgi Hi. Para simplificar a notação, seja r = rH (g). Tomemos l suficientemente grande, mais tarde o definiremos apropriadamente. Considere registradores R1 , · · · , Rl todos inicializados no estado |Hi. Sejam ainda A1 , · · · , Al registradores inicializados com |0i, onde aqui 0 ∈ Zr . O circuito na figura 15 dará início à conversão das l cópias de |Hi em l − 1 cópias de |hgi Hi. A1 = |0i • TFr .. . • TFr TFr NM Ug .. . Ri = |Hi .. . Al = |0i NM Ug .. . R1 = |Hi .. . Ai = |0i TFr .. . • TFr TFr NM Ug Rl = |Hi ↑ |ϕi Figura 15. Circuito para início da conversão das cópias de |Hi em cópias de |hgi Hi. Para cada par de registradores (Aj , Rj ), a ação do circuito da figura 15 é equivalente à ação do circuito da figura 14 exceto pelo fato da medida ser feita sobre os registradores A’s. Deixamos então o seguinte exercício. E XERCÍCIO 7.4 Mostre que o estado |ϕi da figura 15 é ⊗l 1 X X a j bj ωr |bj i |g aj Hi |ϕi = r a ∈Z b ∈Z j r r j Efetuada a medida nos registradores Aj e denotando por b′j o resultado da medida para cada j = 1, · · · , l, o registrador Rj , após a renormalização, se encontra no estado |ψj i dado por 1 X aj b′j aj ωr |g Hi . |ψj i = √ r a ∈Z j r Se escolhemos l ∈ Ω((log log r)(log(1/ε))), 0 < ε < 1, a probabilidade de um desses b′j ser coprimo com r é, no mínimo, 1 − ε. Assumindo que seja este o caso, escolha k tal que b′k seja coprimo com r. Agora usaremos o estado |ψk i para converter os demais estados |ψj i em cópias de |hgi Hi. Primeiro, notemos que |ψk i é autovetor da transformação Ugs h qualquer que seja s ∈ Zr e h ∈ H, lembre-se Ugs h |h′ i = |g s hh′ i. De fato, como 85 gH = Hg 1 X ak b′k s ak Ugs h |ψk i = √ ωr |g hg Hi r a ∈Z r k 1 X ak b′k s ak ωr |g g hHi = √ r a ∈Z r k 1 X ak b′k s+ak ωr g H = √ r a ∈Z r k 1 X (a′k −s)b′k a′k E ωr = √ g H r ′ ak ∈Zr −sb′k = ωr |ψk i . Como b′k é coprimo com r, para cada j = 1, · · · , l, j 6= k seja cj ∈ N tal que cj ≡ b′j b−1 k mod r. De maneira análoga ao que fizemos anteriormente, mostra-se que |g s hi |ψk i c também é um autovetor de UGj . c E XERCÍCIO 7.5 Mostre que |ψk i é autovetor da transformação Ugsjh quaisquer que sejam s ∈ Zr , j = 1, · · · , l, j 6= k e h ∈ H com c −sb′j Ugsjh |ψk i = ωr |ψk i . Vamos definir o operador U U (|gi |hi) = |gi Ug |hi = |gi |ghi . E XERCÍCIO 7.6 Mostre que U é unitário. Além disso, temos que −sb′j U cj |g s hi |ψk i = ωr |g s hi |ψk i . quaisquer que sejam s ∈ Zr , j = 1, · · · , l, j 6= k e h ∈ H. E XERCÍCIO 7.7 Verifique a afirmação anterior. Dito isto, usaremos agora o estado |ψk i para converter cada um dos estados |ψj i em cópias da superposição uniforme dos elementos do grupo hgi H. Considere para cada par (Rj , Rk ) o circuito, exibido na figura 16, onde um novo registrador foi criado para carregar o qubit cj . Mostraremos que ele converte o estado |ψj i em uma cópia de |hgi Hi 86 e mantém |ψk i inalterado. De fato, temos que: Vg |cj i |ψj i |ψk i = U cj |ψj i |ψk i X X a j b′ 1 = p ωr j U cj |g aj hi |ψk i r|H| aj ∈Zr h∈H X X aj b′ −aj b′ 1 ωr j ωr j |g aj hi |ψk i = p r|H| aj ∈Zr h∈H X X 1 = p |g aj hi |ψk i r|H| aj ∈Zr h∈H = |hgi Hi |ψk i |cj i |ψj i |ψk i Vg ↓ • U Figura 16. Este circuito converte o estado |ψj i no estado |hgi Hi. Repetindo este argumento para cada j 6= k resulta na obtenção de l − 1 cópias de |hgi Hi. Após isso, podemos descartar o estado |ψk i. Vemos que a conversão das cópias de |Hi em cópias de |hgi Hi pode ser feita eficientemente e com probabilidade de correção tão alta quanto desejarmos. Iremos agora mostrar o algoritmo que, combinando as duas subrotinas mostradas até aqui, computa a ordem do grupo G. Relembrando as nossas hipóteses, temos um grupo G solúvel, portanto, existem g1 , · · · , gm ∈ G tais que sendo Hj = hg1 , · · · , gj i tem-se G = Hm D · · · D H1 D H0 := {e}, com Hj = hgj i Hj−1 , rj = rHj−1 (gj ) = |Hj /Hj−1 | e r = |G| = Qm j=1 rj . O algoritmo será inicializado com uma grande quantidade, K ∈ N, de cópias do estado |ei, que podem ser obtidas trivialmente. Após isso, o algoritmo executa as operações conforme mostra a figura 16. A fim de que ele calcule r com erro limitado por 0 < ε < 1, é necessário que em cada volta do laço, o erro cometido seja no máximo ε/m. Assim, o cálculo de rj deve ser feito com erro máximo ε/2m e também a conversão das cópias de |Hj−1 i em cópias de |Hj i deve ser feita com erro máximo ε/2m. Desta forma, K deve ser escolhido para atender às necessidades tanto do cálculo de ordem, quanto para a conversão das cópias, sendo suficiente escolher K = O(log n log(m/ε)). No algoritmo, quando usamos K − 1 cópias de |Hj−1 i para computar rj , significa que o procedimento para cálculo de ordem, primeira subrotina apresentada, se repetirá k − 1 vezes. Note também, que a cada volta 87 Algoritmo 1 Algoritmo para o cálculo da ordem de um grupo solúvel G. Entrada: K(m + Q 1) cópias do estado |ei. Saída: r = |G| = m j=1 rj . 1: Prepare K(m + 1) cópias do estado |ei. 2: para j from 1 to m, downward faça 3: Use K − 1 cópias de |Hj−1 i para computar rj e descarte estas cópias. 4: Use uma das cópias de |Hj−1 i para converter as cópias restantes em cópias de |Hj i. Descarte a cópia não convertida. 5: fim para do laço, K cópias são descartadas. Portanto, na última volta, K cópias serão descartadas e as K cópias remanescentes serão convertidas em cópias de |Gi. Por fim, concluímos que com a escolha feita para K, a ordem r de G e a superposição |Gi são computadas em tempo quântico polinomial em nm + O(1/ε), com probabilidade de acerto de pelo menos 1 − ε. 8. Algoritmo para Decompor Grupos Abelianos O Teorema Fundamental de Grupos Finitos Abelianos nos diz que qualquer grupo finito abeliano pode ser decomposto como uma soma direta de subgrupos cíclicos cujas ordens são potências de primos. Entretanto, não é conhecido nenhum algoritmo clássico que explicite este isomorfismo eficientemente. Por exemplo, considere o grupo das unidades Z× N . Nenhum algoritmo eficiente para determinar um conjunto gerador para esse tipo de grupo abeliano é conhecido. Consequentemente não podemos determinar eficientemente a decomposição de Z× N como uma soma direta de subgrupos cíclicos. Nesta seção apresentaremos um algoritmo quântico eficiente para fazer a decomposição. Sejam G1 , . . . , Gn grupos, definimos o produto direto de G1 , . . . , Gn como sendo o produto cartesiano G1 × . . . × Gn com a operação (g1 , . . . , gn ) · (h1 , . . . , hn ) := (g1 h1 , . . . , gn hn ). (25) E XERCÍCIO 8.1 Mostre que G1 × . . . × Gn é de fato um grupo com a operação definida em (25). Sugestão: o elementro neutro de G1 × . . . × Gn é (e1 , . . . , en ), onde ei é o elemento neutro de Gi , i = 1, . . . , n; o elemento inverso de (g1 , . . . , gn ) é (g1−1 , . . . , gn−1 ). No produto direto, um novo grupo é gerado a partir dos grupos G1 , . . . , Gn . Cada grupo pode ter um tipo diferente de produto, isto é, o produto dos elementos de G1 não precisa ter relação com o produto dos elementos de G2 . Um conceito relacionado ao produto direto é a soma direta, no entanto nesse último temos um único produto binário. Quando um grupo G e subgrupos H1 , . . . , Hn satisfazem as condições i) G = H1 . . . Hn , ii) Hi Gi , ∀ i = 1, . . . , n., iii) Hi ∩ (H1 . . . Hi−1 Hi+1 . . . Hn ) = {e}, ∀ i = 1, . . . , n, dizemos que G é a soma direta de H1 , . . . , Hn e escrevemos G = H1 ⊕ . . . ⊕ Hn . E XERCÍCIO 8.2 Mostre que se H é um subgrupo de um grupo abeliano G, então o conjunto das classes laterais de H formam um grupo com a multiplicação de classes laterais definida por g1 H · g 2 H = g 1 g2 H 88 para todo g1 , g2 ∈ G. Este grupo é denotado por G/H. E XERCÍCIO 8.3 Seja H um subgrupo de um grupo abeliano G. Mostre que se g1 , . . . , gk geram G, então g1 H, . . . , gk H geram G/H. Seja G um grupo e p um número primo. Seja H ≤ G. Então H é dito um psubgrupo de Sylow de G se |H| = pα para algum α ∈ N tal que pα divide |G| mas pα+1 não divide. E XERCÍCIO 8.4 Mostre que todo grupo finito abeliano G pode ser expresso como uma soma direta de seus p-subgrupos de Sylow. Sugestão: use o fato de que todo p-subgrupo de G é normal em G e as ordens dos p-subgrupos são coprimas. E XERCÍCIO 8.5 Seja H um subgrupo de G = Gp1 ⊕ . . . ⊕ Gpl onde Gpi é um pi subgrupo de Sylow para todo i = 1, . . . , l e p1 , . . . , pl primos distintos. Mostre que existe Hpi ≤ Gpi , i = 1, . . . , l tal que H = Hp1 ⊕ . . . ⊕ Hpl . Sugestão: defina Πi : G → Gpi , tal que (g1 , . . . , gl ) 7→ gi , i = 1, . . . , l e Hi = Πi (H). Verifique que Hi ≤ Gpi e H ≤ H1 ⊕ . . . ⊕ Hl . Tome (h1 , . . . , hl ) ∈ H1 ⊕ . . . ⊕ Hl e note que |Gp1 |, . . . , |Gpl | são dois a dois primos entre si, assim utilize o Teorema Chinês do Restos e conclua que (h1 , 0, . . . , 0), (0, h2 , . . . , 0), (0, 0, . . . , hl ) ∈ H. Uma matriz U é dita unimodular se ela é composta apenas de elementos inteiros e seu determinante tem módulo unitário. Sabemos que a matriz U −1 pode ser determinada em geral pela fórmula 1 Uij−1 = (26) (−1)i+j det(U ij ), det(U ) onde U ij é a matriz obtida eliminando a i-ésima linha e j-ésima coluna da matriz U . Como Uij−1 é um inteiro, concluímos que a matriz U −1 é inteira. E XERCÍCIO 8.6 Mostre que U é unimodular se, e somente se, U −1 é unimodular. Chamamos de operações elementares as seguintes operações sobre as colunas de uma matriz: 1. trocar duas colunas de lugar; 2. multiplicar uma coluna por −1; 3. adicionar um múltiplo inteiro de uma coluna numa outra coluna; As operações elementares sobre as linhas são definidas de forma análoga. T EOREMA 8.1 Para qualquer matriz com entradas inteiras A, pode-se determinar em tempo polinomial usando operações elementares sobre as linhas e colunas de A matrizes D 0 , onde D = diag(d1 , . . . , dk ) é uma unimodulares U e V tais que U AV = 0 0 matriz diagonal com entradas inteiras d1 , . . . , dk tais que d1 |d2 | . . . |dk , e para cada i, o produtod1 , . . . , di é igual ao mdc dos subdeterminantes de A de ordem i. Dizemos que a D 0 é a forma normal de Smith de A. matriz 0 0 89 O teorema que vamos enunciar logo abaixo é parte fundamental do algoritmo de decomposição de grupos abelianos. T EOREMA 8.2 Dado um conjunto gerador {a1 , . . . , ak } de um grupo finito abeliano G e uma matriz M tal que ax1 1 . . . axk k = e se, e somente se, x = (x1 , . . . , xk )T ∈ intcol(M ), onde intcol(M ) denota o conjunto dos valores obtidos tomando combinações lineares inteiras das colunas de M , nós podemos determinar em tempo polinomial (no tamanho de M ) g1 , . . . , gl , com l ≤ k tais que, G = hg1 i ⊕ . . . ⊕ hgl i. Demonstração: Pelo teorema 8.1, podemos achar em tempo polinomial matrizes uniD 0 −1 modulares Uk×k e Vn×n tais que Uk×k Mk×n Vn×n = , onde D = diag(d1 , . . . , dm ) 0 0 | {z } D′ é uma matriz diagonal com entradas inteiras d1 , . . . , dm . Como V é unimodular, temos que intcol(M V ) = intcol(M ). (27) Assim, ax1 1 . . . axk k = e ⇔ x = (x1 , . . . , xk )T ∈ intcol(M V ). ′ ′ Agora para cada i, j = 1, . . . , k, seja ri a ordem de ai , onde ai = au1 1i . . . auk ki e uji são as entradas da matriz U . Pela proposição 8.1 a′1 r1 . . . a′k rk = e se, e somente se, di |ri , logo di = ri pela minimalidade de ri . Observe também que devemos ter m = k. De fato, suponhamos por absurdo que m = k − j, para algum 1 ≤ j ≤ k − 1, então invocando novamente a proposição 8.1 temos x (a′1 1 . . . a′k−j xk−j x x )a′k−j+1 k−j+1 . . . a′k k = e x x ⇔ a′k−j+1 k−j+1 . . . a′k k = e ⇔ xk−j+1 = . . . = xk = 0. Mas isso é um absurdo, pois, como G é finito, existem inteiros positivos rk−j+1 , . . . , rk , tais que r r (28) a′k−j+1 k−j+1 . . . a′k k = e, onde rk−j+1 , . . . , rk são as ordens dos elementos a′k−j+1 , . . . , a′k , respectivamente. Portanto, m = k. Agora, seja j o menor índice tal que dj > 1. Considere o conjunto formado ′ pelos gi = ai+j−1 para todo i = 1, . . . , l, onde l = m − j + 1. É claro que o conjunto {g1 , . . . , gl } ainda gera G e a ordem de cada gi é di+j−1 . Com efeito, suponhamos que ′ ′ d1 = . . . = dj−1 = 1. Daí temos que a1 = . . . = aj−1 = e (pois di é a ordem de ′ ai ). Assim, se retirarmos as identintades do conjunto de geradores, ainda continuaremos com um conjunto de geradores para G. Observe ainda que são satisfeitas as seguintes propriedade para o grupo G: (1) G = hg1 , . . . , gl i = hg1 i . . . hgl i; (2) Para todo g ∈ G, existem elementos unicamente determinados x1 ∈ hg1 i , . . . , xl ∈ hgl i tais que g = x1 . . . xl ; (3) hgi i ∩ (hg1 i . . . hgi−1 i hgi+1 i . . . hgl i) = {e}, ∀ i = 1, . . . , l. 90 Portanto, segue direto das relações (1), (2) e (3) acima que G = hg1 i ⊕ . . . ⊕ hgl i e com isto provamos o teorema 8.2. E XERCÍCIO 8.7 Mostre que a equação (27) está correta. ′ ′ E XERCÍCIO 8.8 Mostre que G = a1 , . . . , ak . E XERCÍCIO 8.9 Mostre que o grupo G satisfaz as propriedades (1), (2), e (3) na demonstração do teorema 8.2. P ROPOSIÇÃO 8.1 Seja a′i = au1 1i . . . auk ki , ∀ i = 1, . . . , k. Então as seguintes condições são equivalentes: ′ x1 ′ x (i) a1 . . . ak k = e (ii) (x1 , . . . , xk )T ∈ intcol(D′ ) (iii) di |xi para i = 1, . . . , m e xi = 0 para i = m + 1, . . . , k. Demonstração: De fato, para provarmos que (i) ⇒ (ii), observe que ′ x1 ′ x u + . . . + xk ukk | 1 k1 {z } x u + . . . + xk u1k } | 1 11 {z xk z z1 k . . . ak a1 . . . ak = a1 =e T ⇔ z = (z1 , . . . , zk ) ∈ intcol(M ) = intcol(M V ) = intcol(U D′ ). Logo, z1 = α1 u11 d1 + . . . + αm u1m dm + αm+1 u1m+1 .0 + . . . + αn u1k .0 z2 = α1 u21 d1 + . . . + αm u2m dm + αm+1 u2m+1 .0 + . . . + αn u2k .0 .. . (29) zk = α1 uk1 d1 + . . . + αm ukm dm + αm+1 ukm+1 .0 + . . . + αn ukk .0. Substituindo zi = x1 ui1 + . . . + xk uik nas equações em (29) para todo i = 1, . . . , k, obtemos (x1 − α1 d1 )u11 + . . . + (xm − αm dm )u1m + xm+1 u1m+1 + . . . + xk u1k = 0 (x1 − α1 d1 )u21 + . . . + (xm − αm dm )u2m + xm+1 u2m+1 + . . . + xk u2k = 0 (x1 − α1 d1 )uk1 + . . . + (xm − αm dm )ukm + xm+1 ukm+1 + . . . + xk ukk = 0 ou equivalente, (x1 − α1 d1 ) u11 u21 .. . uk1 + . . . + (xm − αm dm ) u1m u2m .. . ukm + . . . + xk u1k u2k .. . ukk = 0 0 .. . 0 ⇔ x1 = α1 d1 , . . . , xm = αm dm , com xi = 0 ∀ i = m + 1, . . . , k, pois, U é invertível. Logo, (x1 , . . . , xk )T ∈ intcol(D′ ). 91 Que (ii) ⇒ (iii), segue imediatamente da definição de intcol(D′ ). Finalmente, vamos mostrar que (iii) ⇒ (i). Com efeito, segue de (iii) que existem inteiros positivos α1 , . . . , αm tais que x a′1 1 . . . a′k xm = ax1 1 u11 +...+xm u1m . . . axk 1 uk1 +...+xm ukm = a1α1 d1 u11 +...+αm dm u1m . . . aαk 1 d1 uk1 +...+αm dm ukm = ay11 . . . aykk , onde y = (y1 , . . . , yk )T ∈ intcol(U D′ ) = intcol(M ). (30) Mas por hipótese ay11 . . . ayk = e, portanto, a′1 x1 . . . a′k xk = e, e com isto terminamos a prova. Computadores quânticos prometem resolver certos problemas assintoticamente mais rápido do que seus equivalentes clássicos. A maior parte dos algoritmos quânticos com ganho exponencial em relação aos seus equivalentes clássicos pode ser considerada casos particulares do chamado Problema do Subgrupo Escondido (PSE). O PSE consiste em achar os geradores de um subgrupo H de um determinado grupo finito G com uma função oráculo f definida em G tal que f (a) = f (b) se, e somente se, aH = bH para todo a, b ∈ G. O PSE em grupos abelianos é resolvido eficientemente num computador quântico. O algoritmo para o PSE abeliano requer que o grupo finito G seja identificado com ZN1 ×. . .×ZNk . Mostraremos que usando o algoritmo para o PSE abeliano, nós podemos determinar o isomorfismo responsável pela identificação de G com ZN1 × . . . × ZNk de forma eficiente. Para isto faremos algumas suposições sobre o grupo G. 1. Temos uma única representação binária para cada elemento de G e podemos reconhecer eficientemente se uma palavra binária representa um elemento de G ou não. 2. Usando a representação binária, para qualquer a ∈ G, podemos construir um operador linear unitário eficiente Ua , tal que, Ua : |yi → |ayi . 3. Podemos achar um conjunto gerador para G eficientemente. 4. As ordens dos geradores são potências de primos. Para a suposição 3 veja o teorema abaixo. T EOREMA 8.3 Seja G um grupo finito. Para qualquer inteiro t ≥ 0, a probabilidade que t + ⌈log |G|⌉ elementos escolhidos aleatoriamente de G gerem G é dada por 1 prob{ g1 , g2 , . . . , gt+⌈log |G|⌉ = G} ≥ 1 − t para t ≥ 0. 2 Afim de entendermos a suposição 4, seja a um elemento no conjunto gerador de G de ordem pq, onde mdc(p, q) = 1, p 6= 1 e q 6= 1. Note que podemos encontrar p e q eficientemente utilizando o algoritmo de Shor. Então pelo algoritmo Euclidiano, podemos encontrar inteiros r e s, tais que, rp + sp = 1. Assim, temos que a = arp+sq = arp asq , 92 (31) e é fácil verificar que a ordem de arp é q e a ordem de sq é p (Mostre!). Se p e q são potências de primos, basta substituirmos a por arp e asq , que continuamos com um conjunto gerador, caso contrário, repetimos este procedimento, agora utilizando as ordens p e q. Façamos isto até que cada elemento no conjunto de geradores tenha ordem potência de primo. Para a suposição 2, já que conhecemos a ordem pq de a, podemos calcular eficientemente a−1 = apq−1 , e portanto, calcular Ua−1 . Sabemos que se G é um grupo finito abeliano então G pode ser espresso como uma soma direta de seus p-subgrupos de Sylow. Estes p-subgrupos de Sylow podem ser determinados eficientemente, uma vez que conhecemos a decomposição da ordem do grupo em seus fatores primos utilizando o algoritmo de Shor. Seja então G = Gp1 ⊕ . . . ⊕ Gpl onde Gpi é um pi -subgrupo de Sylow de G com pi primos distintos, para todo i = 1, . . . , l. Considere o conjunto Sj formado por todos os elementos no conjunto gerador de G cujas ordens são potências do primo pj . Veremos na proposição a seguir, a importância de termos definido o conjunto Sj desta forma . P ROPOSIÇÃO 8.2 Se G = Gp1 ⊕ . . . ⊕ Gpl onde Gpi é um pi -subgrupo de Sylow de G para todo i = 1, . . . , l e p1 , . . . , pl são primos distintos, então Sj gera Gpj . Demonstração: Para cada a ∈ Sj , seja Ka = hai. Pelo exercício (8.5), nós temos Ka = Kp1 ⊕ . . . ⊕ Kpl onde Kpi ≤ Gpi para todo i = 1, . . . , l. Como Ka é um pj -grupo, devemos ter Ka ≤ Gpj , o que implica que Sj ⊂ Gpj , portanto,hSj i ⊂ Gpj . Agora vamos mostrar que Gpj ⊂ hSj i. De fato, se g ∈ Gpj então |g| = pαj para algum inteiro positivo α. Por outro lado, g ∈ G, então g = aα1 1 . . . aαk k com ai no conjunto de geradores de G para todo i = 1, . . . , k. Como |g| = pαj , devemos ter |aαi i | = pαj i ∀ i = 1, . . . , k. Mas isto implica que g ∈ Sj , logo, Gpj ⊂ hSj i e isto demonstra a proposição 8.2. A proposição 8.2 nos diz como achar um conjunto de geradores para cada psubgrupo de Sylow de G. Então, podemos obter uma decomposição para G tomando o produto das decomposições dos p-subgrupos de Sylow de G. Desta forma, o problema de achar uma decomposição para G resume-se ao problema de achar a decomposição para cada p-subgrupo de Sylow de G. O algoritmo que descreveremos logo abaixo, determina a decomposição de cada p-subgrupo de Sylow de G, uma vez dado o seu conjunto de geradores. Verifiquemos agora que o algoritmo DecomporSylow realmente expressa um psubgrupo de Sylow como uma soma direta de subgrupos cíclicos com ordens potências de primos. Observe que o subgrupo escondido K de Zkq é o conjunto K = {x ∈ Zkq | ρ(x) = ax1 1 . . . axk k = e} (32) É fácil ver que a função ρ é um homomorfismo sobrejetor de Zkq em G, logo, temos um isomorfismo entre Zkq /K e G. Assim se o conjunto {y1 , . . . , yl } gera Zkq /K, então {ρ(y1 ), . . . , ρ(yl )} gera G. 93 Algoritmo 2 DecomporSylow 1: ENTRADA: 2: Um conjunto gerador {a1 , . . . , ak } de um p-subgrupo de Sylow de G. r r 3: q = max{p i , onde p i = |ai | ∀ i = 1, . . . , k}. 4: SAÍDA: 5: Um conjunto de elementos g1 , g2 , . . . , gl , l ≤ k, de Gp . 6: PROCEDIMENTO: xk x1 k 7: Defina ρ : Zq → G tal que (x1 , . . . , xk ) 7→ a1 . . . ak . Determine os geradores para o subgrupo escondido K de Zkq definido pela função ρ. k k 8: Calcule um conjunto y1 ,. . .,yk ∈ Zq /K de geradores para Zq /K. 9: Saída é o conjunto {g(y1 ), . . . , g(yl )}. E XERCÍCIO 8.10 Mostre que a equação (32) está correta. E XERCÍCIO 8.11 Mostre que a aplicação ρ definida pelo algoritmo DecomporSylow é um homomorfismo sobrejetor. Conclua então que ker(ρ) = K. E XERCÍCIO 8.12 Mostre que Zkq /K e G são isomorfos. Sugestão: use o exercício anterior seguido do Teorema dos Isomorfismos. Vejamos agora como podemos determinar os geradores de Zkq /K. Observe que e1 , . . . , ek geram Zkq , onde ei é um 0, 1-vetor com 1 na i-ésima coordenada. Além disso, seja M = qI, onde I é a matriz identidade de ordem k. Não há dificuldades em demonstrar que x1 e1 + . . . + xk ek = 0 (em Zkq ) ⇔ x ∈ intcol(M ). (33) E XERCÍCIO 8.13 Mostre que a expressão (33) está correta. Agora note que, como K ≤ Zkq e {e1 , . . . , ek } gera Zkq , temos que {e1 + K, . . . , ek + K} gera Zkq /K (veja exercício (8.3)). Observe também que v1 (e1 + K) + . . . + vk (ek + K) = K (34) se, e somente se, Iv ∈ K, onde I é a matriz identidade e v = (v1 , . . . , vk )T . E XERCÍCIO 8.14 Verifique que a equação dada em (34) está correta. P ROPOSIÇÃO 8.3 Seja A a matriz cujas colunas são os geradores do subgrupo escondido K. Então Iv ∈ K se, e somente se, v ∈ intcol([M |A]), onde q ··· 0 | [M |A] = ... . . . ... | A , 0 ··· q | 94 Demonstração: Note que, Iv ∈ K se, e somente se, existe um vetor x tal que ⇔ ⇔ ⇔ ⇔ ⇔ ⇔ Iv = Ax Iv = IAx I(v − Ax) = 0 v − Ax ∈ intcol(M ) (veja equação (33)) v − Ax = α1 qe1 + . . . + αk qek v = α1 qe1 + . . . + αk qek + Ax v ∈ intcol([M |A]). Aplicando o teorema 8.2 ao conjunto de geradores {ei + K | i = 1, . . . , k} (35) de Zkq /K e fazendo M ′ = [M |A], nós obtemos y1 ,. . . ,yl ∈ Zkq /K tal que Zkq /K = hy1 i ⊕ . . . ⊕ hyl i (36) como desejado. E XEMPLO 8.1 Veremos agora uma aplicação do algoritmo DecomporSylow no grupo × Z× 35 . O grupo Z35 é gerado pelo conjunto {8, 16} (verifique!). Podemos verificar facilmente que |8| = 22 e 26 = 2 × 3. Como o mdc(2, 3) = 1, pelo algoritmo de Euclides, podemos encontrar inteiros r e s tais que 2r + 3s = 1. Assim, temos que r s 26 = 262r+3s = (262 ) (263 ) . (37) Note que |262 | = 3 e |263 | = 2, logo, se substituírmos 26 por 262 ≡ 11 mod 35 e 263 ≡ 6 mod 35, obtemos um novo conjunto gerador para Z× 35 dado por Z× 35 = h6, 8, 11i , (38) onde as ordens dos elementos são todas potências de primos. Agora, vejamos quantos subgrupos de Sylow existem em Z× 35 a menos de subgrupos conjugados. Como φ(35) = 24 = 23 × 3, os subgrupos de Sylow de Z× 35 devem ter × 3 ordens 2 e 3 apenas. Vamos denominar os subgrupos de Sylow de Z35 de ordens 23 e 3 por G2 e G3 , respectivamente. Sejam S2 = {6, 8} e S3 = {11} os conjuntos formados pelos geradores de Z× 35 cujas ordens são potências de 2 e 3, respectivamente. Segue da proposição 8.2 que G2 = hS2 i e G3 = hS3 i . (39) Como o grupo G3 é cíclico de ordem potência de primo, basta aplicarmos o algoritmo DecomporSylow ao grupo G2 , e depois tomarmos a soma direta com G3 para obtermos a decomposição desejada. Para aplicarmos o algoritmo DecomporSylow ao grupo G2 , devemos passar como entrada para o algoritmo o conjunto de geradores {6, 8} e q = max{|6|, |8|} = 4. Considere então a função ρ : Z2q → G2 tal que ρ((x1 , x2 )) = 6x1 × 8x2 mod 35. Segue da expressão (32) que o subgrupo escondido K de Z24 é o conjunto K = {x ∈ Z24 | ρ(x) = 6x1 × 8x2 = 1}. 95 (40) Após alguns cálculos, vemos que K = h(2, 0)i . (41) 4 0 | 2 Agora, seja [M |A] = dada como na proposição 8.3. Então, basta 0 4 | 0 aplicar o teorema 8.2 ao conjunto de geradores e1 + K , e2 + K de Z24 e M ′ = [M |A]. | {z } | {z } a1 a2 Sejam D= (42) 0 0 34 eV = 1 1 0 1 0 2 (43) 2 0 0 0 4 0 a forma normal de Smith da matriz M ′ , U= 1 0 33 1 ′ matrizes unimodulares tais que U M ′ V = D. Observe que gi = ai ∀ i = 1, 2. Logo o conjunto {g1 , g2 } dado por ′ g1 = a1 = a1 + a02 = (1, 0) + K, ′ g2 = a2 = a33 1 + a2 = (3, 1) + K (44) é tal que Z24 /K = hg1 i ⊕ hg2 i . (45) G2 = hρ(g1 )i ⊕ hρ(g2 )i . (46) Como a função ρ : Z24 /K → G2 é um isomorfismo, temos Então, ρ(g1 ) = ρ((1, 0)) = 61 × 80 mod 35 = 6, ρ(g2 ) = ρ((3, 1)) = 63 × 81 mod 35 = 13 (47) e G2 = h6i ⊕ h13i . (48) Z× 35 = h11i ⊕ h6i ⊕ h13i . (49) Portanto, E XERCÍCIO 8.15 Verifique que as matrizes U e V dadas no exemplo (8.1) são de fato unimodulares. Podemos generalizar o algoritmo acima trabalhando com todos os p-subgrupos de Sylow simultaneamente. De fato, suponha que o conjunto {ai1 , . . . , aiki } 96 (50) gere o grupo Gpi . Então, seja qi = max{pi rj , com pi rj = |aij | ∀ j = 1, . . . , ki }. Em seguida, defina ρ : Zkqi1 × . . . × Zkqll → G que leva (x11 , . . . , x1k1 , . . . , xl1 , . . . , xlkl ) 7→ ρ(x) = l Y xik xi1 . . . aiki i . ai1 (51) i=1 Agora basta prosseguir como antes. Na prática deseja-se evitar trabalhar com todos os p-subgrupos de Sylow de uma única vez, pois, desta forma precisaríamos construir uma super rede quântica para resolver PSE no cálculo dos geradores para Zkq11 × . . . × Zkqll /K, onde K é o subgrupo escondido definido por ρ, além disso, precisaríamos de uma matriz com tamanho muito grande na aplicação do teorema 8.2. Observe também que para cada primo p, ao invés de usar Zkq , nós poderíamos ter usado Zpt1 × Zpt1 × . . . × Zptk . E XERCÍCIO 8.16 Mostre que a aplicação ρ definida pela expressão (51) é um homomorfismo. 9. Notas Bibliográficas As referências mais básicas de computação quântica que recomendamos são [Nielsen & Chuang 2000, Portugal et al. 2004, Aharonov 1998, Steane 1998, Rieffel & Polak 2000, Kitaev et al. 2002]. A seção sobre portas e circuitos quânticos se baseou nas referências [Nielsen & Chuang 2000, Portugal et al. 2004]. Outras referências relevantes são [Barenco et al. 1995b, Barenco et al. 1995a, Barenco 1995, Cleve et al. 1998]. A seção sobre transformada de Fourier se baseou nas referências [Nielsen & Chuang 2000, Portugal et al. 2004]. Outras referências relevantes são [Coppersmith 1994, Barenco et al. 1996, Griffiths & Niu 1996, Hales & Hallgren 2000, Cleve & Watrous 2000, Coppersmith 1994, Lomont 2004a, Cleve 2004]. A seção sobre o algoritmo de Shor se baseou nas referências [Shor 1997, Lavor et al. 2003]. Outras referências relevantes são [Ekert & Jozsa 1996, Vandersypen et al. 2001, Beckman et al. 1996]. As seções sobre cálculo de fase e do algoritmo de Kitaev se basearam nas referências [Nielsen & Chuang 2000, Kitaev 1995]. O algoritmo de Watrous foi descrito pela primeira vez em [Watrous 2001]. Outras referências relevantes são [Ivanyos et al. 2003, Fenner & Zhang 2004]. O algoritmo para decompor grupos abelianos finitos foi descrito pela primeira vez em [Cheung & Mosca 2001]. Outra referência relevante é [Mosca 1999a]. Algumas das principais referências sobre o problema do subgrupo são [Lomont 2004b, Jozsa 2000, Lomonaco & Kauffmann 2002, Ettinger & Hoyer 1999, Grigni et al. 2001]. A prova do teorema 8.1 pode ser encontrada na referência [Kannan & Bachem 1979] e a do teorema 8.3 em [Lomont 2004b]. Referências D. Aharonov. Quantum computation. In Dietrich Stauffer, editor, Annual Reviews of Computational Physics, volume 6. World Scientific, 1998. A. Barenco. A universal two bit gate for quantum computation. 449:679–683, 1995. 97 A. Barenco, D. Deutsch, and R. Jozsa. Conditional quantum dynamics and logic gates. Phys. Rev. Lett., 74:4083–4086, 1995. A. Barenco, A. Ekert, K.-A. Suominen, and P. Törmä. Approximate quantum Fourier transform and decoherence. Phys. Rev. A, 54:139–146, 1996. D. Barenco, C. H. Bennett, R. Cleve, D. P. DiVincenzo, N. Margolus, P. Shor, T. Sleator, J. Smolin, and H. Weinfurter. Elementary gates for quantum computation. Phys. Rev. A, 52:3457, 1995. D. Beckman, A. N. Chari, S. Devabhaktuni, and J. Preskill. Efficient networks for quantum factoring. Phys. Rev. A, 54:1034, 1996. K.K.H. Cheung and M. Mosca. Decomposing finite abelian groups. J. Quantum Inf. Comp., 1(3):26–32, 2001. R. Cleve. A note on computing Fourier transforms by quantum programs. http://pages.cpsc.ucalgary.ca/~cleve, 2004. R. Cleve, A. Ekert, C. Macchiavello, and M. Mosca. Quantum algorithms revisited. Proc. R. Soc. Lond. A, 454:339–354, 1998. R. Cleve and J. Watrous. Fast parallel circuit for the quantum Fourier transform. In 41th Annual Symposium on Foundations of Computer Science, page 526, 2000. D. Coppersmith. An approximate Fourier transform useful in quantum factoring. Technical Report IBM Research Report 19642, IBM, 1994. A. Ekert and R. Jozsa. Notes on quantum factoring. 68:733–753, 1996. M. Ettinger and P. Hoyer. On quantum algorithms for noncommutative hidden subgroups. In Proc. 16th STACS, pages 478–487, 1999. Final version in Adv. in Appl. Math. . Stephen Fenner and Yong Zhang. Quantum algorithms for a set of group theoretic problems, 2004. R. B. Griffiths and C.-S. Niu. Semiclassical Fourier transform for quantum computation. Phys. Rev. Lett., 76:3228, 1996. M. Grigni, L. Schulman, M. Vazirani, and U. Vazirani. Quantum mechanical algorithms for the nonabelian hidden subgroup problem. In Proc. 33th STOC, pages 68–74, 2001. L. Hales and S. Hallgren. An improved quantum Fourier transform algorithm and applications. In Proc. 41st Ann. Symp. on Foundations of Computer Science, pages 515–525, Redonda Beach, California, November 2000. G. Ivanyos, F. Magniez, and M. Santha. Efficient quantum algorithms for some instances of the non-abelian hidden subgroup problem, 2003. to be published in I. J. Found. Comput. Sci. R. Jozsa. Quantum factoring, discrete logarithms and the hidden subgroup problem, 2000. Prepared for IEEE Computing in Science and Engineering. R. Kannan and A. Bachem. Historical notes on the Fast Fourier Transform. SIAM Journal on Computing, 8(4):499–507, 1979. A. Kitaev. Quantum measurements and the abelian stabilizer problem, 1995. 98 A. Yu. Kitaev, A. H. Shen, and M. N. Vyalyi. Classical and quantum computation. Graduate studies in mathematics. American Mathematical Society, Providence, Rhodes Island, 2002. C. Lavor, L.R.U. Manssur, and R. Portugal. Shor’s algorithm for factoring large integers. quant-ph/0303175, 2003. S.J. Lomonaco Jr. and L.H. Kauffmann. Quantum hidden subgroup problems: a mathematical perspective. quant-ph/0201095, 2002. C. Lomont. A quantum Fourier transform algorithm. ph/0404060, 2004. Los Alamos arXiv, quant- C. Lomont. The hidden subgroup problem: review and open problems. ph/0411037, 2004. quant- M. Mosca. Quantum Computer Algorithms. PhD thesis, University of Oxford, 1999. M. A. Nielsen and I. L. Chuang. Quantum Computation and Quantum Information. Cambridge University Press, Cambridge, UK, 2000. R. Portugal, C.C. Lavor, L.M. Carvalho, and N. Maculan. Uma Introdução à Computação Quântica, volume 8 of Notas em Matemática Aplicada. SBMAC, 2004. E.G. Rieffel and W. Polak. An introduction to quantum computing for non-physicists. ACM Comput. Surv., 32(3):300–335, 2000. P. W. Shor. Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM J. Comput., 26:1484–1509, 1997. A. M. Steane. Quantum computing. 61:117, 1998. Lieven M. K. Vandersypen, Matthias Steffen, Gregory Breyta, Costantino S. Yannoni, Mark H. Sherwood, and Isaac L. Chuang. Experimental realization of Shor’s quantum factoring algorithm using nuclear magnetic resonance. Nature, 414:883–886, December 2001. J. Watrous. Quantum algorithms for solvable groups. Proceedings of the 33rd ACM Symposium on Theory of Computing, pages 60–67, 2001. 99 100