• Nenhum resultado encontrado

http://tede.mackenzie.br/jspui/bitstream/tede/4398/5/FERNANDO%20TEN%C3%93RIO%20DE%20MIRANDA%20FILHO

N/A
N/A
Protected

Academic year: 2021

Share "http://tede.mackenzie.br/jspui/bitstream/tede/4398/5/FERNANDO%20TEN%C3%93RIO%20DE%20MIRANDA%20FILHO"

Copied!
45
0
0

Texto

(1)UNIVERSIDADE PRESBITERIANA MACKENZIE ´ ˜ EM PROGRAMA DE POS-GRADUAC ¸ AO ´ ˜ ENGENHARIA ELETRICA E COMPUTAC ¸ AO. Fernando Ten´ orio de Miranda Filho. PROJETO EVOLUTIVO DE CIRCUITOS ˆ COMBINACIONAIS QUANTICOS. Texto de mestrado apresentado ao Programa de P´os-Gradua¸ca˜o em Engenharia El´etrica e Computa¸ca˜o como requisito das exigˆencias do exame para obten¸ca˜o do t´ıtulo de Mestre em Engenharia El´etrica.. Orientador: Prof. Dr. Pedro Paulo Balbi de Oliveira. S˜ao Paulo 2020.

(2)

(3)

(4)

(5) Agradecimentos Agrade¸co `a CAPES pela bolsa de mestrado concedida, e registro o apoio da CAPES e do CNPq a meu orientador, pelos projetos de que participa, respectivamente, Mackenzie PrInt 88887.310281/2018-00 e CNPq-PQ 305199/2019-6. Agrade¸co tamb´em ao meu orientador, PP, pelo enorme apoio durante essa jornada. Por fim, agrade¸co tamb´em ao Pedro Contino, membro da banca e dono de um profundo conhecimento na ´area de informa¸c˜ao quˆantica..

(6) RESUMO Enquanto os avan¸cos em hardware quˆantico ocorrem em passos modestos, simuladores rodando em computadores cl´assicos permitem um avan¸co um pouco mais r´apido na constru¸ca˜o de algoritmos quˆanticos. Dada uma matriz unit´aria que efetue determinada opera¸ca˜o, obter o circuito quˆantico equivalente ´e uma tarefa n˜ao trivial que pode ser modelada como um problema de busca. Uma abordagem gen´erica que torne poss´ıvel a s´ıntese autom´atica destes circuitos permitiria n˜ao s´o o estudo e desenvolvimento de novos algoritmos, mas tamb´em avaliar o custo-benef´ıcio relacionado ao tamanho e complexidade do circuito. Um problema comum encontrado em trabalhos anteriores ´e o uso de portas quˆanticas controladas de unit´arias gerais, em raz˜ao da dificuldade de implementa¸ca˜o f´ısica de tais portas. Neste trabalho apenas portas controladas do tipo CNOT s˜ao utilizadas, resultando em circuitos mais pr´oximos da realidade f´ısica. Um algoritmo evolutivo ´e proposto para decompor uma matriz unit´aria em uma sequˆencia equivalente de portas quˆanticas. O m´etodo ´e testado para encontrar decomposi¸co˜es das unit´arias de Toffoli, da transformada quˆantica de Fourier de dois qubits e da moeda para o caminhante quˆantico. Os resultados mostram que o algoritmo ´e eficiente em encontrar as solu¸c˜oes, e que o problema da convergˆencia prematura ´e evitado ao se utilizar popula¸co˜es que evoluem em paralelo. Palavras-chave: Computa¸c˜ao quˆantica, circuitos quˆanticos, matriz unit´aria, algoritmos evolutivos. i.

(7) ABSTRACT While advances in quantum hardware occur in modest steps, simulators running on classical computers allow a slightly faster advance in the construction of quantum algorithms. Given a unitary matrix that performs a given operation, obtaining the equivalent quantum circuit is a non-trivial task that can be modeled as a search problem. A generic approach that makes possible the automatic synthesis of these circuits would allow not only the study and development of new algorithms, but also to evaluate the cost-benefit related to the size and complexity of the circuit. A common problem found in previous works is the use of quantum controlled gates from general unitaries, due to the difficulty of physically implementing such gates. In this work, only CNOT controlled gates are used, resulting in circuits closer to physical reality. An evolutionary algorithm is proposed to decompose a unitary matrix into an equivalent sequence of quantum gates. The method is tested to find decompositions of the Toffoli unitary, the two qubits quantum Fourier transform and the coin for the quantum walker. The results show that the algorithm is efficient in finding the solutions, and that the problem of premature convergence is avoided when populations are evolved in parallel. Keywords: quantum computing, quantum circuits, unitary matrices, evolutionary algorithms. i.

(8) Sum´ ario 1 Introdu¸c˜ ao 2 Introdu¸c˜ ao ` a Computa¸c˜ ao Quˆ antica 2.1 Bits e Qubits . . . . . . . . . . . . . 2.2 A esfera de Bloch . . . . . . . . . . . 2.3 Sistema com m´ ultiplos qubits . . . . 2.4 Portas quˆanticas de um u ´nico qubit . 2.5 Portas quˆanticas de m´ ultiplos qubits 2.6 Circuitos quˆanticos . . . . . . . . . .. 2 . . . . . .. . . . . . .. 3 Introdu¸c˜ ao aos Algoritmos Gen´ eticos 3.1 Algoritmos gen´eticos . . . . . . . . . . . 3.2 Representa¸c˜ao do cromossomo . . . . . . 3.3 Crossover . . . . . . . . . . . . . . . . . 3.4 Sele¸ca˜o . . . . . . . . . . . . . . . . . . . 3.5 Muta¸ca˜o . . . . . . . . . . . . . . . . . . 3.6 Algoritmo Gen´etico - abordagem cl´assica 3.7 Algoritmo Gen´etico - modelo em Ilhas .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . .. 4 Algoritmos Gen´ eticos para a s´ıntese de circuitos quˆ anticos 4.1 Portas quˆanticas universais . . . . . . . . . . . . . . . . . . . . 4.2 Fun¸ca˜o objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Representa¸c˜ao do cromossomo . . . . . . . . . . . . . . . . . . 4.4 Representa¸c˜ao dos genes: arquitetura em blocos unit´arios . . . 4.4.1 Tipos de bloco . . . . . . . . . . . . . . . . . . . . . . 4.5 Algoritmo GLO . . . . . . . . . . . . . . . . . . . . . . . . . 4.6 Crossover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6.1 Crossover intra-popula¸ca˜o . . . . . . . . . . . . . . . . 4.6.2 Crossover inter-popula¸ca˜o . . . . . . . . . . . . . . . . 4.7 Muta¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Resultados experimentais 5.1 Parˆametros . . . . . . . . . . . . . . . . . . . . 5.2 Moeda para o caminhante quˆantico . . . . . . . 5.3 Transformada quˆantica de Fourier de dois qubits 5.4 A porta de Toffoli . . . . . . . . . . . . . . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .. 5 . 5 . 6 . 7 . 8 . 9 . 10. . . . . . . .. . . . . . . .. 13 13 14 14 15 15 16 16. . . . . . . . . . .. 18 18 18 19 20 20 22 22 23 24 24. . . . .. 26 26 26 27 28. . . . . . . . . . . . . . .. 6 Conclus˜ oes. 30. Apˆ endice A Portas quˆ anticas. 32. Apˆ endice B Blocos pr´ e-definidos. 34. ˆ ´ REFERENCIAS BIBLIOGRAFICAS. 36.

(9) Lista de Figuras 1. Esfera de Bloch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7. 2. Porta CNOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11. 3. Circuito Swap.. 4. Circuito com portas CNOT, Pauli-Z e Hadamard. . . . . . . . . . . . . . . 12. 5. Crossover de 1 ponto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14. 6. Pseudoc´odigo para um AG cl´assico. . . . . . . . . . . . . . . . . . . . . . . 16. 7. Pseudoc´odigo para um AG em Ilhas. . . . . . . . . . . . . . . . . . . . . . 17. 8. Circuito com portas CNOT, Pauli-Z e Hadamard. . . . . . . . . . . . . . . 19. 9. Sequˆencia de blocos NCB, CB, NCB e PDB. . . . . . . . . . . . . . . . . . 21. 10. Fluxograma do algoritmo Group Leaders Optimization. . . . . . . . . . . . 22. 11. Indiv´ıduo atual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. 12. Indiv´ıduo l´ıder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. 13. Indiv´ıduo aleat´orio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. 14. Novo indiv´ıduo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23. 15. Solu¸ca˜o para a moeda do caminhante quˆantico. . . . . . . . . . . . . . . . 26. 16. Evolu¸c˜ao para a moeda do caminhante quˆantico. . . . . . . . . . . . . . . . 27. 17. Solu¸ca˜o para a transformada quˆantica de Fourier de dois qubits. . . . . . . 27. 18. Evolu¸c˜ao para a transformada quˆantica de Fourier de dois qubits. . . . . . 28. 19. Solu¸ca˜o para a unit´aria de Toffoli. . . . . . . . . . . . . . . . . . . . . . . . 29. 20. Evolu¸c˜ao para a unit´aria de Toffoli. . . . . . . . . . . . . . . . . . . . . . . 29. 21. Bloco H controlado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34. 22. Bloco Z controlado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34. 23. Bloco Y controlado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34. 24. Bloco X 1/2 controlado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34. 25. Bloco T controlado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34. 26. Bloco S controlado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35. 27. Bloco swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11. 1.

(10) 1. Introdu¸c˜ ao Uma das promessas da computa¸c˜ao quˆantica ´e tornar vi´avel a solu¸ca˜o de problemas at´e. ent˜ao intrat´aveis por um computador cl´assico. Como exemplo mais dram´atico, podemos citar o algoritmo quˆantico de Shor, que fornece uma base para a fatora¸ca˜o de n´ umeros inteiros grandes em tempo polinomial. Em alguns outros casos, como no algoritmo de Grover, o ganho computacional ´e mais modesto, de ordem quadr´atica. O algoritmo de Grover encontra com alta probabilidade a entrada para uma fun¸c˜ao de caixa preta que produz um valor de sa´ıda espec´ıfico, usando apenas avalia¸c˜oes da fun¸ca˜o. A aplica¸ca˜o imediata afeta a seguran¸ca de muitos criptosistemas. De qualquer maneira, o uso de fenˆomenos de mecˆanica quˆantica como sobreposi¸c˜ao e entrela¸camento quˆantico fornecem um novo modelo de computa¸ca˜o que promete revolucionar a maneira na qual a informa¸ca˜o ´e processada. Segundo (Loceff, 2015), apesar de o hardware que impulsionar´a a computa¸ca˜o quˆantica ainda estar em fase de desenvolvimento, toda a base te´orica sobre a qual este hardware ir´a funcionar j´a existe (mecˆanica quˆantica), o que j´a torna poss´ıvel a constru¸ca˜o de algoritmos, independentemente da implementa¸ca˜o f´ısica destes componentes. O mesmo autor prop˜oe duas categorias diferentes no que diz respeito a` constru¸c˜ao de algoritmos quˆanticos: • Design de circuitos Complexidade e custo do circuito s˜ao fatores importantes a serem considerados, j´a que podem tornar a implementa¸ca˜o f´ısica muito dif´ıcil ou at´e imposs´ıvel. • Design de algoritmos Dada a natureza probabil´ıstica da mecˆanica quˆantica, nem sempre teremos um algoritmo determin´ıstico, o que pode demandar uma an´alise mais profunda das propriedades convergˆencia do algoritmo em quest˜ao, assim como o erro m´aximo associado. Em particular, a decomposi¸c˜ao de uma matriz unit´aria em uma sequˆencia de portas quˆanticas pode ser representada como um problema de otimiza¸c˜ao. Este trabalho lida exclusivamente com o design de circuitos e as propriedades de convergˆencia associadas ao algoritmo de busca. Williams and Gray (1999) sugeriram o uso de programa¸ca˜o gen´etica para encontrar novas solu¸c˜oes para o problema do teleporte quˆantico. A abordagem seguida ´e gen´erica, 2.

(11) por´em mais exemplos permitiriam avaliar melhor a abordagem seguida. Os autores defendem o uso de programa¸c˜ao gen´etica notando a importˆancia de se codificar as solu¸co˜es em estruturas que possuam tamanho vari´avel. Yabuki and Iba (2000) usaram algoritmos gen´eticos para evoluir uma solu¸ca˜o para o mesmo problema, utilizando uma codifica¸ca˜o espec´ıfica para o problema do teleporte quˆantico, n˜ao sendo portanto aplic´avel em outros problemas. Lukac and Perkowski (2002) prop˜oem uma algoritmo gen´etico cl´assico para a s´ıntese de circuitos quˆanticos, obtendo sucesso, por´em limitando-se a circuitos pequenos. Spector (2006) explora o uso de programa¸ca˜o gen´etica para evolu¸ca˜o de diversos algoritmos quˆanticos, discutindo as limita¸co˜es associadas a este tipo de abordagem, assim como os avan¸cos obtidos na a´rea. Daskin and Kais (2011) utilizam um algoritmo evolutivo denominado Group Leader Optimization (GLO) para evoluir circuitos quˆanticos. Aplica¸co˜es para as simula¸co˜es das Hamiltonianas das mol´eculas e ´agua e hidrogˆenio s˜ao apresentadas. A abordagem ´e gen´erica, por´em, os circuitos apresentados apresentam componentes dif´ıceis de serem implementados, como componente controlados de portas gerais. Poto˘cek, Reynolds, Fedrizzi, and Corne (2018) exploram o uso de um algoritmo evolutivo multi-objetivo, incorporando na fun¸ca˜o objetivo aspectos reais de projeto, ou seja, n´ umero de portas, profundidade do circuito e acur´acia. Resultados s˜ao apresentados para a busca de Grover e a transformada quˆantica de Fourier, mostrando que uma diversidade de circuitos podem ser encontrados para o mesmo problema, e cada solu¸ca˜o apresentando um balan¸co espec´ıfico entre as vari´aveis otimizadas. Uma outra aplica¸ca˜o poss´ıvel, ´e o uso de algoritmos gen´eticos quˆanticos para a s´ıntese de circuitos quˆanticos (Krylov & Lukac, 2018). Os autores concluem que o modelo evolucion´ario quˆantico mostrou uma performance pior que o modelo evolucion´ario cl´assico, devido as in´ umeras simplifica¸co˜es e restri¸co˜es adotadas. O algoritmo evolutivo adotado neste trabalho ´e uma implementa¸c˜ao do algoritmo GLO descrito em Daskin and Kais (2011), adaptada para refletir a representa¸ca˜o de cromossomo escolhida e os tipos de operadores gen´eticos poss´ıveis de serem aplicados em tal representa¸ca˜o. A evolu¸c˜ao de circuitos quˆanticos apresenta duas dificuldades principais: o tamanho e complexidade do espa¸co de busca, e o custo computacional associado. Al´em disso, uma. 3.

(12) abordagem cl´assica de algoritmos gen´eticos se mostra ineficiente, pois a convergˆencia prematura da popula¸c˜ao para um m´ınimo local costuma ocorrer com frequˆencia, mesmo utilizando-se operadores que combatam esse tipo de problema, como o crossover uniforme ou uma baixa taxa de muta¸ca˜o (Kalyanmoy & Samir, 1999). Portanto, um dos objetivos deste trabalho ´e apresentar um algoritmo evolutivo que evite este tipo de inconveniente. Modelos evolutivos baseados no conceito de ilhas de popula¸c˜ao s˜ao uma solu¸ca˜o popular para contornar o problema descrito acima (Timothy, Darrell, and Keith (1990)). Neste tipo de modelo, popula¸co˜es diferentes s˜ao evolu´ıdas separadamente (possivelmente em paralelo), e em seguida, ocorre troca de material gen´etico, em um processo denominado migra¸c˜ao. Tanto o intervalo de migra¸ca˜o, quanto a taxa em que essa migra¸c˜ao ocorrem s˜ao parˆametros importantes e dependentes do problema em quest˜ao. O algoritmo GLO citado acima e sua implementa¸c˜ao adotada neste trabalho, se apoiam justamente neste conceito. Por fim, o texto se organiza da seguinte maneira: o segundo cap´ıtulo fornece uma introdu¸ca˜o b´asica sobre computa¸ca˜o quˆantica, abordando os conceitos elementares de qubits, portas e circuitos quˆanticos. No terceiro cap´ıtulo, algoritmos gen´eticos ser˜ao abordados, e o algoritmo evolutivo adotado ser´a explicado. Em seguida, os circuitos de teste ser˜ao expostos, assim como uma discuss˜ao de cada solu¸ca˜o encontrada. Finalmente, conclus˜oes e novas linhas de pesquisa ser˜ao discutidas.. 4.

(13) 2. Introdu¸c˜ ao ` a Computa¸ c˜ ao Quˆ antica. 2.1. Bits e Qubits. O bit ´e o conceito fundamental da computa¸c˜ao cl´assica, podendo ser definido como uma vari´avel que assume o valor 0 ou 1. A computa¸c˜ao quˆantica ´e desenvolvida com base em um conceito similar, o bit quˆantico, ou de maneira abreviada, qubit. Podemos definir um qubit como um sistema de mecˆanica quˆantica de dois n´ıveis, que ´e descrito por um vetor de estado bidimensional sobre os n´ umeros complexos. De maneira geral, um qubit pode ser expresso da seguinte forma:. |Ψi = α |0i + β |1i .. (1).   α  . β. (2). Ou, na forma matricial,. Podemos dizer ent˜ao, que o qubit ´e uma combina¸c˜ao linear ou sobreposi¸c˜ao dos estados ortonormais |0i e |1i, que formam a sua base vetorial. Esses estados s˜ao geralmente     denotados por |0i = 10 e |1i = 01 , podendo-se escrever tamb´em: |Ψi = α. 1 0. +β. 0 1 .. (3). O s´ımbolo |0i est´a associado ao estado cl´assico 0, enquanto |1i corresponde ao estado cl´assico 1. Os s´ımbolos α e β s˜ao n´ umeros complexos que representam as amplitudes de probabilidade, ou seja, ao se medir o qubit obteremos 0 com probabilidade |α|2 e 1 com probabilidade |β|2 , satisfazendo. |α|2 + |β|2 = 1.. (4). Ao contr´ario do bit cl´assico, onde podemos examinar seu estado para determinar se o valor ´e 0 ou 1, n˜ao podemos inspecionar diretamente um qubit para determinar seu estado quˆantico representado por α e β. Em outras palavras, o estado de um qubit ´e desconhecido at´e o momento em que ele ´e medido, onde ocorre o colapso do sistema para os estados 0 ou 1 de acordo com as probabilidades acima. Como exemplo, consideremos. 5.

(14) o qubit representado por √ 1 3 |Ψi = |0i + |1i . 2 2 Neste caso, α =. 1 2. √. e β =. 3 . 2. Ao se medir esse qubit, obter´ıamos o valor 0 com. probabilidade ( 12 )2 = 25% e o valor 1 com probabilidade (. 2.2. (5). √. 3 2 ) 2. = 75%.. A esfera de Bloch. Uma interpreta¸ca˜o geom´etrica do qubit ´e poss´ıvel por meio da esfera de Bloch, que fornece uma maneira muito u ´til de se visualizar o estado de um u ´nico qubit, servindo muitas vezes como uma excelente ferramenta para se testar novas id´eias sobre computa¸ca˜o quˆantica (Nielsen & Chuang, 2010). Observando a Equa¸ca˜o (1), e expressando α e β na forma polar:. α = r0 eiφ0 .. (6). β = r1 eiφ1 .. (7). e substituindo as Equa¸co˜es 6 e 7 em 1, obtemos:. |Ψi = eiφ0 [r0 |0i + r1 ei(φ1 −φ0 ) |1i].. (8). Chamando (φ1 − φ0 ) de φ e lembrando que r02 + r12 = 1, podemos escrever: θ r0 = cos . 2. (9). θ r1 = sin . 2. (10). Substituindo as Equa¸c˜oes 9 e 10 em 8, obtemos:. iφ0. |Ψi = e.   θ θ iφ cos |0i + e sin |1i . 2 2. (11). onde 0 ≤ θ ≤ π e 0 ≤ φ ≤ 2π s˜ao n´ umeros reais. O fator global eiφ0 n˜ao apresenta nenhum efeito observ´avel ao se medir o sistema, uma vez que |eiφ0 | = 1, podendo portanto ser. 6.

(15) ˆ z = |0i |ψi θ y ˆ φ x ˆ −ˆ z = |1i Figura 1: Esfera de Bloch.. ignorado. Obtemos finalmente:. |Ψi = cos. θ θ |0i + eiφ sin |1i . 2 2. (12). Os n´ umeros reais θ e φ s˜ao parˆametros que definem o estado de um qubit em um ponto da superf´ıcie de uma esfera tridimensional, denominada esfera de Bloch. Essa representa¸c˜ao, mostrada na Figura 1, fornece uma intui¸c˜ao geom´etrica e nos permite visualizar o efeito das opera¸c˜oes poss´ıveis em um u ´nico qubit. Devemos lembrar que essa representa¸c˜ao ´e intuitiva apenas para um u ´nico qubit, n˜ao existindo uma maneira satisfat´oria de se representar graficamente um sistema de m´ ultiplos qubits pela esfera de Bloch.. 2.3. Sistema com m´ ultiplos qubits. Supondo um sistema composto por 2 bits cl´assicos, quatro estados s˜ao poss´ıveis: (0, 0), (0, 1), (1, 0) e (1, 1). Analogamente, um sistema de 2 qubits possui quatro bases computacionais denominadas |00i, |01i, |10i e |11i. De maneira similar a um u ´nico qubit, um par de qubits pode existir em qualquer sobreposi¸ca˜o destas quatro bases computacionais:. |Ψi = α00 |00i + α01 |01i + α10 |10i + α11 |11i .. (13). |α00 |2 + |α01 |2 + |α10 |2 + |α10 |2 = 1.. (14). obedecendo. 7.

(16) Considere os qubits |Ψ1 i = α |0i + β |1i e |Ψ2 i = γ |0i + δ |1i. A sobreposi¸c˜ao de |Ψ1 i e |Ψ2 i ´e representada pelo produto tensorial entre |Ψ1 i e |Ψ2 i:. |Ψ12 i = |Ψ1 i ⊗ |Ψ2 i .. (15). |Ψ12 i = (α |0i + β |1i) ⊗ (γ |0i + δ |1i).. (16). |Ψ12 i = αγ |00i + αδ |01i + βγ |10i + βδ |11i .. (17). De maneira geral, a sobreposi¸c˜ao de um sistema de n qubits pode ser expressa por. |Ψ123...n i = |Ψ1 i ⊗ |Ψ2 i ⊗ |Ψ3 i ⊗ ... ⊗ |Ψn i .. (18). O conceito de espa¸co de Hilbert ´e fundamental para a descri¸c˜ao formal de um sistema quˆantico, sendo um espa¸co vetorial dotado de produto interno, ou seja, com no¸c˜oes de distˆancia e aˆngulos. Al´em disso, esse espa¸co obedece uma rela¸ca˜o de completude, o que significa que toda sequˆencia de Cauchy ´e convergente. Formalmente, para um sistema com n qubits, associamos o espa¸co complexo de Hilbert C2n . Em outras palavras, um sistema de n qubits ´e descrito por 2n vetores ortogonais complexos, onde cada vetor ´e um ponto no espa¸co complexo de Hilbert de 2 dimens˜oes (Nielsen & Chuang, 2010).. 2.4. Portas quˆ anticas de um u ´ nico qubit. Um circuito cl´assico pode ser descrito por um conjunto de operadores l´ogicos conectados por fios. Os fios transportam a informa¸ca˜o e as portas l´ogicas s˜ao respons´aveis por transformar essa informa¸c˜ao (Nielsen & Chuang, 2010). A porta l´ogica NOT, por exemplo, atua em um u ´nico bit e ´e definido pela opera¸ca˜o 0 → 1 e 1 → 0. Por analogia, uma porta quˆantica NOT faria a transforma¸ca˜o |0i → |1i e |1i → |0i. Entretanto, ´e preciso especificar como esta porta agiria em uma sobreposi¸c˜ao dos estados |0i e |1i. Segundo Loceff (2015), uma porta quˆantica de um u ´nico qubit pode ser definida como uma transforma¸ca˜o linear que mapeia um vetor unit´ario (normalizado) para outro vetor unit´ario. Como exemplo, consideremos uma porta quˆantica NOT, representado por X:  X=. 0 1 1 0. 8.  .. (19).

(17) Ao se aplicar X no qubit |Ψi = α |0i + β |1i, obtemos o novo estado |Ψi0.     β α   =   |Ψi0 =  α β 1 0 . 0 1. = β |0i + α |1i . Observando a Equa¸c˜ao 4, onde |α|2 + |β|2 = 1, o mesmo deve ser verdade para o estado |Ψi0 . Consequentemente, a condi¸ca˜o necess´aria e suficiente para que a matriz U represente uma porta quˆantica ´e que ela seja unit´aria, ou seja U † U = U U † = I, onde U † ´e a matriz adjunta de U (obtida pela transposta conjugada de U), e I ´e a matriz identidade. Como exemplo adicional, considere a porta de Hadamard, representado por H:   1 1 1 . H=√  2 1 −1. (20). Ao se aplicar H no qubit |Ψi = α |0i + β |1i, obtemos o novo estado |Ψi0.      α+β √ 1 1 α 1   =  2  |Ψi0 = √  α−β 2 1 −1 √ β 2 α+β α−β = √ |0i + √ |1i . 2 2. 2.5. Portas quˆ anticas de m´ ultiplos qubits. Considere os qubits |Ψ1 i = α |0i + β |1i e |Ψ2 i = γ |0i + δ |1i. A sobreposi¸c˜ao de |Ψ1 i e |Ψ2 i, representada por |Ψ1 i ⊗ |Ψ2 i ´e dada por. |Ψ12 i = αγ |00i + αδ |01i + βγ |10i + βδ |11i .. (21). Como exemplo de porta quˆantica atuando em dois qubits, considere a porta CNOT. 9.

(18) (NOT controlado), representada pela matriz:  1 0 0 0     0 1 0 0 .  CN OT =   0 0 0 1   0 0 1 0 . (22). Pela matriz, notamos que esta porta mapeia os estados da seguinte forma: |00i → |00i, |01i → |01i, |10i → |11i, |11i → |10i. Ou seja, o segundo qubit ´e invertido somente se o primeiro qubit for igual a 1. Dizemos que o primeiro qubit do par |abi atua como controle, e o segundo atua como alvo do operador (neste caso o operador NOT). Ao aplicar esta porta na sobreposi¸ca˜o |Ψ12 i obtemos.     αγ αγ 1 0 0 0           0 1 0 0  αδ   αδ    =    CN OT |Ψ12 i =      0 0 0 1 βγ   βδ       βγ βδ 0 0 1 0 . = αγ |00i + αδ |01i + βδ |10i + βγ |11i .. De maneira geral, uma porta quˆantica que atua em n qubits ´e representado por uma matriz unit´aria de ordem 2n × 2n . Dado que a inversa de uma matriz unit´aria tamb´em ´e unit´aria, dizemos que as transforma¸co˜es dos operadores quˆanticos s˜ao revers´ıveis, sendo essa uma das propriedades fundamentais que alavancam o potencial da computa¸ca˜o quˆantica.. 2.6. Circuitos quˆ anticos. Um exemplo simples de circuito quˆantico de dois qubits ´e mostrado na Figura 2. Neste circuito o ponto escuro representa o qubit de controle para a porta em que est´a diretamente ligado. Neste exemplo, a porta CNOT (NOT controlado) ´e ilustrada: o operador X no fio 2 s´o ser´a aplicado se o qubit de controle no fio 1 for igual a 1. Em princ´ıpio, qualquer porta de um u ´nico qubit poderia ser utilizado no lugar de X, obtendo-se assim a vers˜ao controlada desta porta. 10.

(19) Figura 2: Porta controlada CNOT (MIT Media Lab, 2019).. O circuito da Figura 3 ´e bastante simples, apresentando trˆes portas CNOT em sequˆencia, onde o qubit de controle varia ao longo do circuito. Este circuito executa uma tarefa bastante simples, fazendo a troca (swap) dos qubits de input.. Figura 3: Circuito Swap.. Matematicamente: |a, bi → |a, a ⊕ bi → |a ⊕ (a ⊕ b), a ⊕ bi = |b, a ⊕ bi. (23). → |b, (a ⊕ b) ⊕ bi = |b, ai Na passagem acima, a e b representam os inteiros {0, 1}, e n˜ao os estados base. Em geral, o circuito ´e lido da esquerda para a direita, onde cada linha representa um fio que pode ser interpretado como a passagem do tempo, ou como uma part´ıcula f´ısica (por exemplo um f´oton). Por conven¸ca˜o, quando o estado de entrada do circuito n˜ao for especificado, assumimos-se que o input do circuito ´e estado base |0i em todos os fios. O s´ımbolo ⊕ indica a soma m´odulo 2, ou simplesmente a opera¸c˜ao XOR entre os bits. A Figura 4 acima mostra um circuito um pouco mais complexo. Vale notar que algumas caracter´ısticas encontradas em circuitos cl´assicos n˜ao aparecem em circuitos quˆanticos, devido a`s restri¸co˜es impostas pela mecˆanica quˆantica: loops internos, opera¸co˜es 11.

(20) Figura 4: Circuito com portas CNOT, Pauli-Z e Hadamard.. irrevers´ıveis ou que criem c´opias de qubits n˜ao s˜ao permitidas em circuitos quˆanticos. Definimos a profundidade do circuito como sendo o seu comprimento horizontal (n´ umero de colunas). O circuito da Figura 4 possui profundidade 7 e atua em 3 qubits. Por representar uma sequˆencia de transforma¸co˜es lineares, o efeito global de qualquer circuito quˆantico pode ser descrito por uma u ´nica matriz unit´aria U. A decomposi¸c˜ao de U no circuito quˆantico equivalente pode ser formulada como um problema de otimiza¸c˜ao, e determinar a sequˆencia e configura¸ca˜o das portas deste circuito ´e o foco principal deste trabalho, assim como investigar aspectos relevantes relacionados ao problema da busca em si. O pr´oximo cap´ıtulo fornece uma breve introdu¸ca˜o aos algoritmos evolutivos, em particular aos algoritmos gen´eticos.. 12.

(21) 3. Introdu¸c˜ ao aos Algoritmos Gen´ eticos. 3.1. Algoritmos gen´ eticos. O uso de algoritmos gen´eticos (AG) para a resolu¸ca˜o de problemas n˜ao ´e algo novo. O trabalho pioneiro de J. H. Holland nos anos 70 provou-se como uma grande contribui¸ca˜o para as aplica¸c˜oes em ciˆencia e engenharia. Inicialmente limitada a meios acadˆemicos, somente nas d´ecadas recentes um n´ umero maior de aplica¸co˜es industriais vem sendo observadas (Man, Tang, & Kwong, 1996). Um dos obst´aculos iniciais para a utiliza¸ca˜o de AG era justamente o alto custo computacional, mas com os avan¸cos cont´ınuos em hardware e capacidade de processamento em paralelo, este problema foi consideravelmente aliviado. Apesar de n˜ao ser uma abordagem matematicamente guiada, mas sim estoc´astica, discreta e n˜ao-linear, a literatura na ´area ´e extremamente vasta. As se¸c˜oes seguintes apresentam os conceitos b´asicos empregados na t´ecnica, assim como suas vantagens e limita¸c˜oes. Os princ´ıpios b´asicos dos algoritmos gen´eticos (Holland, 1975) foram inspirados pela teoria da evolu¸c˜ao de Darwin. Assumimos que um indiv´ıduo represente uma solu¸c˜ao potencial para o problema em quest˜ao e possa ser representado por um conjunto de parˆametros. Por analogia, estes parˆametros podem ser interpretados como genes de um cromossomo, e representam o material gen´etico do indiv´ıduo. De acordo com a qualidade deste cromossomo para resolver determinado problema, um valor de aptid˜ao pode ser associado. Partindo de uma popula¸ca˜o inicial aleat´oria e atrav´es de operadores gen´eticos de reprodu¸c˜ao e muta¸ca˜o, indiv´ıduos trocam material gen´etico com a esperan¸ca de se gerar uma nova popula¸c˜ao mais bem adaptada, ou seja, solu¸c˜oes cada vez melhores. A descri¸c˜ao acima n˜ao especifica ou imp˜oe restri¸c˜oes na maneira em que os cromossomos ou operadores gen´eticos s˜ao implementados: do ponto de vista computacional um cromossomo pode ser uma simples string bin´aria, onde cada gene ´e um bit, ou pode ser um array de objetos complexos. Esta flexibilidade se traduz em uma enorme gama de aplica¸co˜es de algoritmos gen´eticos em dom´ınios discretos, cont´ınuos ou combinat´orios. As pr´oximas se¸co˜es introduzem de maneira breve o framework cl´assico do AG, expondo os principais operadores e mecanismos de evolu¸ca˜o. As principais limita¸c˜oes associadas tamb´em ser˜ao discutidas, assim como as t´ecnicas mais comuns para contorn´a-las.. 13.

(22) 3.2. Representa¸ c˜ ao do cromossomo. Uma string bin´aria ´e uma representa¸c˜ao cl´assica mais utilizada, apesar de sua simplicidade. Uma das desvantagens desta abordagem se torna o´bvia ao lidar com problemas de otimiza¸ca˜o com valores reais: o tamanho da string pode aumentar significativamente dependendo da precis˜ao desejada. Neste caso, um cromossomo de valores reais costuma ser uma solu¸c˜ao poss´ıvel. Um exemplo claro disso ´e encontrar as ra´ızes reais de um polinˆomio de grau n: cada gene do cromossomo representa uma raiz, e temos assim um mapeamento direto entre cromossomo e solu¸ca˜o. Para problemas de natureza combinat´oria, um cromossomo de valores inteiros (dependendo do caso, uma permuta¸c˜ao) costuma ser utilizado. De maneira geral, o mapeamento o´timo cromossomo → solu¸c˜ao vai depender do problema e do grau de erro aceit´avel, j´a que mapeamentos diferentes levam a solu¸c˜oes diferentes.. 3.3. Crossover. Durante o processo de evolu¸ca˜o indiv´ıduos ir˜ao trocar material gen´etico a uma certa taxa, e o mecanismo no qual essa troca ocorre recebe o nome de recombina¸ca˜o (crossover). Qualquer operador que receba um par de cromossomos (pais) e retorne um ou mais cromossomos filhos que sejam fun¸c˜ao dos pais, pode ser empregado. A Figura 5 a seguir ilustra o crossover de 1 ponto, onde os cromossomos pais trocam material gen´etico a partir de um ponto de corte escolhido aleatoriamente:. Figura 5: Crossover de 1 ponto.. A codifica¸c˜ao Bi p representa um bloco de informa¸c˜ao gen´etica, onde i ´e o ´ındice do gene e p indica a qual pai esse gene pertence. Abordagens mais sofisticadas s˜ao poss´ıveis dependendo do problema. A defini¸ca˜o dos operadores de crossover pode influenciar tanto 14.

(23) na velocidade de convergˆencia quanto na qualidade das solu¸co˜es obtidas, j´a que promove a troca de material gen´etico entre indiv´ıduos da popula¸c˜ao. Um balan¸co entre custo computacional e efic´acia deste operador se torna um fator de aten¸c˜ao na cria¸ca˜o do algoritmo.. 3.4. Sele¸ c˜ ao. O operador de sele¸ca˜o ´e respons´avel por decidir quais indiv´ıduos trocar˜ao material gen´etico entre si durante o crossover. De acordo com a teoria de Darwin sobre a evolu¸ca˜o das esp´ecies, indiv´ıduos que herdarem caracter´ısticas gen´eticas favor´aveis a` sua sobrevivˆencia e reprodu¸ca˜o, tender˜ao a ter mais filhos, aumentando assim sua presen¸ca gen´etica na popula¸ca˜o. A maneira cl´assica de implementar esse operador consiste em selecionar indiv´ıduos com uma probabilidade proporcional ao seu valor de aptid˜ao, mecanismo esse denominado sele¸c˜ao por roleta. Outras formas de sele¸c˜ao podem ser aplicadas dependendo do problema. A sele¸c˜ao por torneio seleciona pequenos subconjuntos da popula¸c˜ao, escolhendo-se o indiv´ıduo de maior aptid˜ao de cada um dos subconjuntos. A sele¸c˜ao por truncamento simplesmente escolhe os N melhores indiv´ıduos da popula¸c˜ao, descartando-se os outros. In´ umeros mecanismos s˜ao poss´ıveis, e novamente, um balan¸co entre custo computacional e efic´acia do operador se torna um ponto de aten¸c˜ao.. 3.5. Muta¸ c˜ ao. Novos indiv´ıduos est˜ao suscet´ıveis a sofrer muta¸ca˜o em seu material gen´etico. Qualquer operador que perturbe o cromossomo a uma taxa (fixa ou n˜ao) pode ser utilizado. Em geral, esta perturba¸ca˜o ocorre no gene. Para uma string bin´aria, simplesmente inverter o bit com uma probabilidade p j´a ´e o suficiente. Para cromossomos de valores reais, uma pequena perturba¸ca˜o gaussiana pode ser utilizada. Esquemas mais elaborados, como sempre, podem ser adotados e ter˜ao forte influˆencia na velocidade de convergˆencia e qualidade das solu¸c˜oes.. 15.

(24) 3.6. Algoritmo Gen´ etico - abordagem cl´ assica. O pseudoc´odigo abaixo mostra a estrutura b´asica de um algoritmo gen´etico:. Figura 6: Pseudoc´odigo para um AG cl´assico.. O crit´erio de parada pode ser definido por um n´ umero m´aximo de gera¸co˜es, ou at´e uma solu¸ca˜o minimamente vi´avel for obtida.. 3.7. Algoritmo Gen´ etico - modelo em Ilhas. Como discutido anteriormente, uma das principais limita¸co˜es encontradas na abordagem cl´assica, ´e a convergˆencia prematura da popula¸ca˜o, resultando em solu¸c˜oes subo´timas. Uma estrat´egia comumente adotada para aliviar esse problema ´e o uso do chamado Modelo em Ilhas, conhecido tamb´em como algoritmo gen´etico em paralelo. Nesse modelo, a ideia principal ´e evoluir popula¸c˜oes separadamente, para, em seguida, efetuar a troca de material gen´etico entre essas popula¸co˜es, num processo denominado migra¸c˜ao, que ocorre a uma certa taxa controlada. De maneira intuitiva, cada popula¸ca˜o (inicialmente isolada), pode seguir uma linhagem evolutiva diferente, aumentando assim a diversidade gen´etica e consequentemente a efic´acia da busca (Whitley, Rana, & Heckendorn, 1997). O pseudoc´odigo abaixo mostra a estrutura b´asica de um algoritmo gen´etico em Ilhas:. 16.

(25) Figura 7: Pseudoc´odigo para um AG em Ilhas.. O crit´erio de parada ´e definido de maneira an´aloga ao caso cl´assico. O algoritmo evolutivo usado neste trabalho ´e uma vers˜ao ligeiramente modificada do algoritmo acima, e ser´a detalhado posteriormente.. 17.

(26) 4. Algoritmos Gen´ eticos para a s´ıntese de circuitos quˆ anticos. 4.1. Portas quˆ anticas universais. Sabemos que um conjunto pequeno de portas (AND, OR, NOT) bastam para computar qualquer fun¸ca˜o cl´assica. Dizemos que este conjunto ´e Universal para a computa¸ca˜o cl´assica. Um resultado similar pode ser obtido para a computa¸ca˜o quˆantica, onde um conjunto de portas ´e Universal para a computa¸c˜ao quˆantica caso qualquer opera¸ca˜o unit´aria possa ser aproximada, com precis˜ao arbitr´aria, por um circuito envolvendo estas portas (Nielsen & Chuang, 2010). Uma discuss˜ao aprofundada sobre a universalidade de portas quˆanticas pode ser encontrada em Dawson and Nielsen (2005). Neste trabalho o conjunto de portas utilizada ´e universal, ou seja, qualquer circuito pode ser aproximado com precis˜ao arbitr´aria por uma configura¸ca˜o destas portas. O fato desta aproxima¸c˜ao ser garantida n˜ao nos diz nada a respeito da eficiˆencia com que isso pode ser feito. De fato, dada uma matriz unit´aria U atuando em n qubits, nem sempre podemos encontrar um circuito de tamanho polinomial em n que aproxime U: a maioria destas transforma¸co˜es s˜ao exponenciais em n.. 4.2. Fun¸ c˜ ao objetivo. Dada uma matriz unit´aria U buscamos o circuito de portas quˆanticas que produza essa matriz com a maior fidelidade poss´ıvel. Para quantificar este aproxima¸ca˜o, definimos a fidelidade do tra¸co pela express˜ao abaixo:. f=. 1 | Tr(Ua Ut† )| 2n. (24). onde Ua ´e a unit´aria do circuito em quest˜ao, Ut ´e a unit´aria alvo, n ´e o n´ umero de qubits, e Tr ´e o tra¸co da matriz (Ua Ut† ). Notamos que para uma solu¸ca˜o exata, ou seja, quando ´ importante notar que no caso em que Ut e Ua diferem apenas Ua = Ut , obtemos f = 1. E em suas fases globais, obtemos tamb´em f = 1 (Daskin & Kais, 2011). Neste trabalho, a princ´ıpio n˜ao nos preocuparemos com o custo do circuito, que pode ser expresso como fun¸ca˜o da profundidade e da complexidade das portas individuais. A qualidade de um indiv´ıduo ser´a medida levando-se em conta apenas sua fidelidade. Essa 18.

(27) decis˜ao pode ser justificada baseando-se na representa¸ca˜o adotada para o cromossomo: circuitos de tamanho diferente ser˜ao permitidos e competir˜ao entre si de maneira natural. No caso de circuitos diferentes possu´ırem a mesma fidelidade, o circuito de menor profundidade ser´a considerado a melhor solu¸c˜ao.. 4.3. Representa¸ c˜ ao do cromossomo. Uma representa¸ca˜o de circuito linearizada foi adotada neste trabalho. Por exemplo, seja o circuito da figura abaixo. Figura 8: Circuito com portas CNOT, Pauli-Z e Hadamard.. cuja representa¸ca˜o em linearizada ´e dada por ( { 1 : ( ‘H’ , −1, None ) } , { 1 : ( ‘X’ , 0 , None ) } , { 2 : ( ‘X’ , 1 , None ) } , { 1 : ( ‘X’ , 0 , None ) } , { 0 : ( ‘H’ , −1, None ) , 2 : ( ‘X’ , 1 , None ) } , { 0 : ( ‘ Z ’ , 2 , None ) } , { 0 : ( ‘H’ , −1, None ) } ) Notamos que cada item desta lista representa uma ‘coluna’ do circuito, e dentro de cada coluna o mapeamento qubit-alvo: (opera¸c˜ao, qubit-controle, parˆametro) indica o qubit alvo, a opera¸ca˜o, o qubit de controle e o parˆametro, respectivamente. A ausˆencia de controle ´e indicada por -1 e a ausˆencia de parˆametros por None. Os ´ındices s˜ao mapeados de cima para baixo, com 0 indicando o primeiro qubit (ou primeiro fio), 1 indicando o segundo, etc. Como exemplo, observemos a quinta coluna do circuito, representada por ( 0 : ( ‘H’ , −1, None ) , 2 : ( ‘X’ , 1 , None ) ) 19.

(28) Nesta representa¸ca˜o, uma porta H atua no qubit 0, sem controle e sem parˆametros. Al´em disso, uma porta X atua no qubit 2, sendo controlado pelo qubit 1 e n˜ao possuindo nenhum parˆametro. Um restri¸ca˜o importante adotada neste trabalho diz respeito aos qubits de controle: apenas um controle ser´a permitido por coluna. Essa restri¸c˜ao dificulta a convergˆencia do algoritmo, mas permite a obten¸c˜ao de circuitos mais realistas, tendo em vista a dificuldade inerente encontrada na implementa¸ca˜o f´ısica destes componentes com mais de um controle.. 4.4. Representa¸ c˜ ao dos genes: arquitetura em blocos unit´ arios. A fim de se obter um ganho de performance na busca evolutiva dos circuitos e um maior grau de controle sobre os tipos de portas quˆanticas permitidas, uma arquitetura em blocos foi adotada. O esquema adotado permite o reaproveitamento do c´alculo das matrizes unit´arias para cada bloco, sendo necess´ario calcular novamente a unit´aria somente no caso em que tal bloco foi modificado. Isso permite obter a matriz unit´aria para o circuito total de maneira muito mais eficiente. As se¸co˜es seguintes explicam esta estrat´egia com mais detalhes. 4.4.1. Tipos de bloco. Quatro tipos b´asicos de blocos foram definidos: bloco n˜ao-controlado (NCB), bloco controlado (CB), bloco pr´e-definido (PDB) e bloco composto (COMPB). Um bloco NCB consiste em uma u ´nica coluna de portas quˆanticas n˜ao controladas. As portas poss´ıveis s˜ao as mesmas encontradas no Apˆendice A. Um bloco CB consiste em uma u ´nica coluna onde uma das portas possui necessariamente um controle. Neste trabalho, somente portas controlados do tipo CNOT foram permitidas. Al´em disso, um u ´nico ponto de controle foi permitido. Em outras palavras, um bloco CB consiste em uma u ´nica coluna de portas quˆanticas, onde uma das portas ´e do tipo CNOT. As outras portas poss´ıveis s˜ao as mesmas encontradas no Apˆendice A. Um bloco PBD consiste em uma sequˆencia pr´e-definida de blocos NCB e CB. A id´eia por tr´as dos blocos PDB ´e representar decomposi¸co˜es j´a conhecidas de portas controladas gerais, facilitando a convergˆencia do algoritmo. Uma lista dos blocos pr´e-definidos poss´ıveis se encontra no apˆendice B. Os blocos do tipo BPD s˜ao imut´aveis. Um bloco COMPB ´e simplesmente uma composi¸ca˜o de blocos NCB e CB. Um circuito 20.

(29) quˆantico ´e definido como uma sequˆencia de blocos dos tipos definidos acima. A Figura 9 ilustra um circuito composto por cinco blocos: o primeiro bloco NCB consiste em uma u ´nica porta H, o segundo bloco CB define uma porta CNOT, o terceiro bloco NCB consiste em duas portas H, o quarto bloco PDB representa uma porta H controlada, com o controle no primeiro qubit, e o u ´ltimo bloco COMPB representa um bloco composto, formado por uma porta H e um CNOT. Todo bloco PDB ´e composto. Um bloco PDB pode sofrer muta¸c˜ao e perder sua defini¸ca˜o original, tornando-se apenas composto.. Figura 9: Sequˆencia de blocos NCB, CB, NCB e PDB.. A representa¸ca˜o linearizada de cada bloco ´e listada a seguir: B1 = ( { 0 : ( H, −1, None }) B2 = ( { 1 : ( X, 0 , None ) } ) B3 = ( { 0 : ( H, −1, None ) , 1 : ( H, −1, None ) } ) B4 = ( { 1 : ( Ry , −1, −p i / 4 ) } , { 1 : (X, 0 , None ) } , { 1 : ( Ry , −1, p i / 4 ) } ) B5 = ( { 0 : ( H, −1, None ) } , { 1 : (X, 0 , None ) } ). A unit´aria para um circuito composto por n blocos ´e dada por:. U = Bn .Bn−1 .Bn−2 . . . B2 .B1. (25). onde Bn ´e a unit´aria do u ´ltimo bloco e B1 ´e a unit´aria do primeiro bloco, obtidas pelo produto tensorial entre as unit´arias das portas da respectiva coluna.. 21.

(30) 4.5. Algoritmo GLO. O algoritmo evolutivo adotado ´e uma adapta¸ca˜o da estrutura geral apresentada em Daskin and Kais (2011). A Figura 10 abaixo apresenta o fluxograma do algoritmo:. Figura 10: Fluxograma do algoritmo Group Leaders Optimization.. O conceito de l´ıder ´e utilizado para se introduzir elitismo em cada popula¸c˜ao. Notase que na segunda etapa do algoritmo, popula¸c˜oes diferentes trocam material gen´etico, aliviando o problema da convergˆencia prematura. As pr´oximas se¸c˜oes ilustram o funcionamento dos operadores de crossover e muta¸ca˜o e os parˆametros que afetam o algoritmo.. 4.6. Crossover. Neste algoritmo o crossover ocorre em duas etapas distintas: dentro de uma popula¸ca˜o e entre indiv´ıduos de popula¸co˜es diferentes. As subse¸co˜es seguintes ilustram cada operador. 22.

(31) 4.6.1. Crossover intra-popula¸c˜ ao. Cada etapa do crossover conta com a participa¸c˜ao de trˆes indiv´ıduos: o indiv´ıduo atual, o l´ıder, e um indiv´ıduo criado aleatoriamente. O resultado da opera¸ca˜o ´e um novo indiv´ıduo. O operador ´e controlado por trˆes parˆametros: rt, rl e rr, representando respectivamente a fra¸c˜ao dos indiv´ıduos atual, l´ıder e aleat´orio, que estar˜ao presentes no indiv´ıduo resultante. As figuras abaixo ilustram o processo:. Figura 11: Indiv´ıduo atual.. Figura 12: Indiv´ıduo l´ıder.. Figura 13: Indiv´ıduo aleat´orio.. Assumindo rt = 0.5, rl = 0.3 e rr = 0.2, obtemos um novo indiv´ıduo:. Figura 14: Novo indiv´ıduo.. O indiv´ıduo resultante ´e composto tomando-se 50% dos primeiros blocos do indiv´ıduo atual, 30% dos primeiros blocos do l´ıder e 20% dos primeiros blocos do indiv´ıduo aleat´orio. 23.

(32) Neste exemplo, isso corresponde a dois blocos do indiv´ıduo atual, um bloco do indiv´ıduo l´ıder e um bloco do indiv´ıduo aleat´orio. 4.6.2. Crossover inter-popula¸c˜ ao. Dados dois cromossomos pais, o crossover de 1 ponto ´e aplicado de acordo com a Figura 5: um ponto de corte ´e escolhido aleatoriamente e os blocos s˜ao trocados entre os dois indiv´ıduos, gerando dois indiv´ıduos filhos, conforme ilustrado.. 4.7. Muta¸ c˜ ao. A fim de maximizar a explora¸c˜ao do espa¸co de solu¸c˜oes, diversos operadores de muta¸ca˜o foram implementados. Conforme descrito no Fluxograma da Figura 10, uma u ´nica muta¸c˜ao ´e aplicada por indiv´ıduo. Os diferentes mecanismos de muta¸c˜ao s˜ao listados abaixo: • Troca controle e seu alvo Inverte as fun¸co˜es controle-alvo de portas controladas: o controle passa a ser o alvo, e o alvo passa a ser o controle. • Troca de porta Altera o tipo de opera¸ca˜o unit´aria, escolhendo uma nova porta de maneira uniforme. • Remo¸ca˜o de controle Remove o controle de portas controladas. • Adi¸ca˜o de controle Insere um controle em portas n˜ao-controladas. • Altera posi¸c˜ao vertical Altera a posi¸ca˜o vertical da porta no circuito. • Altera posi¸c˜ao horizontal Altera a posi¸ca˜o horizontal da porta no circuito. • Altera ˆangulo de rota¸ca˜o Altera o ˆangulo de rota¸ca˜o em portas que possuam este parˆametro, introduzindo-se. 24.

(33) uma pequena perturba¸ca˜o gaussiana com m´edia de 0.00174533 radianos (0.1 grau) e variˆancia de 0.0174533 radianos (1 grau). Cada circuito ser´a submetido a uma u ´nica muta¸c˜ao em um bloco escolhido aleatoriamente. Um bloco sofre apenas muta¸co˜es que n˜ao modifiquem seu tipo: por exemplo, um bloco controlado pode ter sua posi¸ca˜o de controle alterada, mas n˜ao pode ter seu controle removido. Um bloco n˜ao-controlado n˜ao pode ter controles inseridos. Em outras palavras, cada tipo de bloco possui uma lista de muta¸c˜oes poss´ıveis, sendo que uma ´e sorteada de maneira aleat´oria. No caso de um bloco composto, um sub-bloco ´e escolhido aleatoriamente, e o mesmo procedimento acima ´e adotado para este sub-bloco.. 25.

(34) 5. Resultados experimentais. 5.1. Parˆ ametros. Em todos os experimentos fixamos os valores rt = 0 .5 , rl = 0 .3 e rr = 0 .2 . O n´ umero de grupos adotado foi g = 20 e a popula¸ca˜o de cada grupo n = 30. O n´ umero m´aximo de itera¸co˜es permitido foi de 2000. Para todos os problemas, os n´ umeros m´ınimo e m´aximo de blocos permitidos foram definidos em 4 e 15, respectivamente. Um erro inferior a 1 × 10−6 foi usado como crit´erio de parada. As portas quˆanticas dispon´ıveis para a busca s˜ao o conjunto de portas listadas no Apˆendice A, aliadas aos blocos pr´e-definidos do Apˆendice B.. 5.2. Moeda para o caminhante quˆ antico . 1   0 u=  0  0. 0. 0. √1 2 1 √ 2. √1 2 − √12. 0. 0. 0. .   0   0  1. (26). A unit´aria definida acima possui aplica¸co˜es importantes na simula¸ca˜o de passeios aleat´orios e autˆomatos celulares quˆanticos. Costa, Portugal, and de Melo (2018) abordam o tema em detalhes. As Figuras 15 e 16 mostram o melhor circuito encontrado e a curva de evolu¸ca˜o.. Figura 15: Solu¸ca˜o para a moeda do caminhante quˆantico.. A unit´aria encontrada apresenta um erro inferior a 3.3 × 10−16 e ´e apresentada abaixo.. 26.

(35) Figura 16: Evolu¸ca˜o para a moeda do caminhante quˆantico.. . −17. −17. 1.000 00 + 0j 3.925 23 × 10 + 0j 3.925 23 × 10 + 0j   5.551 11 × 10−17 + 0j 7.071 06 × 10−1 + 0j 7.071 06 × 10−1 + 0j    0.000 00 + 0j 7.071 06 × 10−1 + 0j −7.071 06 × 10−1 + 0j  0.000 00 + 0j 0.000 00 + 0j 0.000 00 + 0j. 5.3. 0.000 00 + 0j. .   0.000 00 + 0j    0.000 00 + 0j   1.000 00 + 0j. Transformada quˆ antica de Fourier de dois qubits . . 1 1 1 1     1 i −1 −i  1  QF T =   2 1 −1 1 −1   1 −i −1 i. (27). A transformada quˆantica de Fourier (QFT) possui um papel importante em diversos algoritmos, notavelmente no algoritmo de Shor para fatora¸ca˜o. As Figuras 17 e 18 mostram o melhor circuito encontrado e a curva de evolu¸c˜ao.. Figura 17: Solu¸ca˜o para a transformada quˆantica de Fourier de dois qubits.. A unit´aria encontrada apresenta um erro inferior a 5.5 × 10−16 e ´e apresentada abaixo.. 27.

(36) Figura 18: Evolu¸ca˜o para a transformada quˆantica de Fourier de dois qubits.. . . 0.5 + 0j 0.5 + 0j 0.5 + 0j 0.5 + 0j     0.5 + 0j 0. + 0.5j −0.5 + 0j 0. − 0.5j      0.5 + 0j −0.5 + 0j 0.5 + 0j −0.5 + 0j    0.5 + 0j 0. − 0.5j −0.5 + 0j 0. + 0.5j. 5.4. A porta de Toffoli. A porta de Toffoli ´e universal e atua em trˆes qubits, sendo que os dois primeiros atuam como controle e o terceiro como alvo. Ou seja, se os dois primeiros qubits forem 1, o terceiro qubit tem o seu valor invertido, caso contr´ario permanece o mesmo. A matriz unit´aria alvo ´e representada abaixo: . 1 0 0 0 0 0 0 0.   0   0   0   0   0   0  0. 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1. .   0   0   0   0   0   1  0. (28). As figuras 19 e 20 mostram o melhor circuito encontrado e a curva de evolu¸c˜ao. A unit´aria encontrada apresenta um erro inferior a 2.2 × 10−16 e ´e apresentada abaixo.. 28.

(37) Figura 19: Solu¸ca˜o para a unit´aria de Toffoli.. Figura 20: Evolu¸ca˜o para a unit´aria de Toffoli.. . 1. + 0j. 0. + 0j.   0. + 0j 1. + 0j   0. + 0j 0. + 0j   0. + 0j 0. + 0j   0. + 0j 0. + 0j   0. + 0j 0. + 1.11 × 10−16 j   0. + 0j 0. + 0j  0. + 0j 0. + 0j. 0. + 0j 0. + 0j 0. + 0j. 0. + 0j. 0. + 0j 0. + 0j. 0. + 0j 0. + 0j 0. + 0j. 0. + 0j. 0. + 0j. 1. + 0j 0. + 0j 0. + 0j. 0. + 0j. 0. + 0j. 0. + 0j 1. + 0j 0. + 0j. 0. + 0j. 0. + 0j. 0. + 0j 0. + 0j 1. + 0j 0. − 1.11 × 10−16 j 0. + 0j 0. + 0j 0. + 0j 0. + 0j. 1. + 0j. 0. + 0j. 0. + 0j 0. + 0j 0. + 0j. 0. + 0j. 0. + 0j. 0. + 0j 0. + 0j 0. + 0j. 0. + 0j. 1. + 0j. 29. .   0. + 0j    0. + 0j    0. + 0j    0. + 0j    0. + 0j    1. + 0j   0. + 0j.

(38) 6. Conclus˜ oes A s´ıntese autom´atica de circuitos quˆanticos ´e um problema aberto e importante para. o desenvolvimento de algoritmos quˆanticos. Este trabalho explora o uso de um algoritmo de busca evolutivo que utiliza grupos de popula¸co˜es que evoluem de forma separada, trocando material gen´etico entre si posteriormente. Para os problemas abordados, algoritmos gen´eticos cl´assicos apresentaram o problema da convergˆencia prematura, com os membros da popula¸ca˜o se tornando muito similares ou iguais, levando a um m´ınimo local na maioria das vezes. A abordagem utilizando popula¸c˜oes separadas, tamb´em conhecida na literatura como Island models se mostrou eficiente na decomposi¸c˜ao das unit´arias apresentadas, por´em, nem sempre o circuito m´ınimo foi encontrado. No caso da unit´aria de Toffoli por exemplo, s˜ao conhecidas decomposi¸co˜es de profundidade 12, em contraste com a solu¸c˜ao apresentada de profundidade 18. ´ preciso ressaltar que a velocidade de convergˆencia ´e extremamente dependente da E profundidade, n´ umero de qubits e complexidade do circuito em quest˜ao, assim como dos parˆametros de busca e portas poss´ıveis. Observando-se a curva de evolu¸ca˜o, notamos que circuitos limitados a portas sem aˆngulo de rota¸ca˜o parametrizado apresentam evolu¸ca˜o em passos discretos com longos per´ıodos de estagna¸ca˜o, o que ´e explicado pela ausˆencia de parˆametros cont´ınuos guiando a busca e pela irregularidade do espa¸co. Contrastando-se os resultados obtidos com trabalhos similares encontrados na literatura, dois aspectos se destacam positivamente: o car´ater gen´erico da abordagem descrita e a flexibilidade das solu¸co˜es obtidas. O algoritmo apresentado ´e prontamente aplic´avel para qualquer unit´aria, bastando especificar a unit´aria alvo e o conjunto de portas dispon´ıveis para a busca, caso seja desej´avel impor alguma limita¸ca˜o. Por evoluir popula¸co˜es em paralelo, solu¸co˜es estruturalmente distintas s˜ao encontradas, tanto no conjunto e arranjo das portas, como no tamanho e complexidade do circuito. Essa flexibilidade ´e obtida com um custo computacional relativamente menor ao se comparar com uma otimiza¸ca˜o multi-objetivo. Por outro lado, a implementa¸ca˜o apresentada possui limita¸co˜es quanto a` escalabilidade: evoluir circuitos com mais de 10 qubits pode ser problem´atico, j´a que a dimens˜ao das matrizes cresce na forma 2n , onde n ´e o n´ umero de qubits. Uma implementa¸c˜ao utilizando-se matrizes esparsas e bibliotecas especializadas em c´alculo matricial pode 30.

(39) aliviar consideravelmente este problema, sendo um objeto de pesquisa futura. Dadas as considera¸co˜es acima, uma investiga¸ca˜o mais profunda sobre a rela¸ca˜o entre as portas dispon´ıveis e a velocidade de convergˆencia se torna interessante. Limitar o n´ umero de portas n˜ao s´o diminuiria o espa¸co de busca, mas permitiria encontrar circuitos m´ınimos, fator importante ao se considerar a implementa¸ca˜o f´ısica destes componentes. Por fim, este trabalho ´e uma evolu¸ca˜o do artigo (De Oliveira, Miranda, & Costa, 2019), que explora dois dos problemas aqui mostrados, utilizando-se uma abordagem mais simples na representa¸ca˜o do circuito e na fun¸c˜ao objetivo. O c´odigo para reprodu¸ca˜o dos resultados se encontra no github do autor, em https://github.com/fernandotenorio/ QuantB.. 31.

(40) A. Portas quˆ anticas. 1. Porta Identidade N˜ao realiza nenhuma transforma¸ca˜o.  I=. 1 0 0 1.  (29). . 2. Porta de Hadamard Realiza uma rota¸ca˜o de π radianos sobre o eixo Z seguido de uma rota¸c˜ao de radianos sobre o eixo Y.. . 1. 1. π 2. . 1  H=√  2 1 −1. (30). 3. Porta X de Pauli Equivalente quˆantico do gate NOT cl´assico e performa uma rota¸ca˜o sobre o eixo X de π radianos..  X=. 0 1 1 0.  . (31). 4. Porta Y de Pauli Realiza uma rota¸c˜ao de π radianos sobre o eixo Y.   0 −i  Y = i 0. (32). 5. Porta Z de Pauli Realiza uma rota¸c˜ao de i radianos sobre o eixo Z.   1 0  Z= 0 −1. (33). 6. Porta S Porta de fase ou Z90, realiza uma rota¸ca˜o de π2 sobre o eixo Z.   1 0  S= 0 i. (34). 7. Porta S −1 Transposta conjugada da porta S.  S −1 =  32. 1. 0. 0 −i.  . (35).

(41) 8. Porta T Realiza uma rota¸c˜ao de. π 8. sobre o eixo Z.  1 T = 0. 0 1+i √ 2.  (36). . 9. Porta T −1 Transposta conjugada da porta T.  T −1 = . 1. 0. 0. 1−i √ 2.  (37). . 10. Porta X 1/2 Raiz quadrada da porta NOT. . X 1/2.  1 1 + i 1 − i =  2 1−i 1+i. (38). 11. X −1/2 Transposta conjugada da porta X 1/2 . . X −1/2 =. . 1 1 − i 1 + i  2 1+i 1−i. (39). 12. Porta Rx Realiza uma rota¸c˜ao de θ radianos sobre o eixo X.   cos( 2θ ) i sin( 2θ )  Rx =  θ θ i sin( 2 ) cos( 2 ). (40). 13. Porta Ry Realiza uma rota¸c˜ao de θ radianos sobre o eixo Y.   θ θ cos( 2 ) sin( 2 )  Ry =  − sin( 2θ ) cos( 2θ ). (41). 14. Porta Rz Realiza uma rota¸c˜ao de θ radianos sobre o eixo Z.   1 0  Rz =  0 exp(iθ). 33. (42).

(42) B. Blocos pr´ e-definidos. Figura 21: Bloco H controlado. Figura 22: Bloco Z controlado. Figura 23: Bloco Y controlado. Figura 24: Bloco X 1/2 controlado. Figura 25: Bloco T controlado. 34.

(43) Figura 26: Bloco S controlado. Figura 27: Bloco swap. 35.

(44) ˆ ´ REFERENCIAS BIBLIOGRAFICAS Costa, P. C., Portugal, R., & de Melo, F. (2018). Quantum walks via quantum cellular automata. Quantum Information Processing, 17 (9), 226. Daskin, A., & Kais, S. (2011, 04). Decomposition of unitary matrices for finding quantum circuits: Application to molecular hamiltonians. The Journal of chemical physics, 134 , 144112. doi: 10.1063/1.3575402 Dawson, C. M., & Nielsen, M. A. (2005). The solovay-kitaev algorithm. De Oliveira, P. P. B., Miranda, F. T., & Costa, P. C. (2019). Dois exemplos de projeto autom´atico de circuitos combinacionais quˆanticos. XIV Conferˆencia Brasileira de Dinˆamica, Controle e Aplica¸c˜oes. Retrieved from http://soac.eesc.usp.br/ index.php/dincon/xivdincon/paper/view/1958/1209 Holland, J. H. (1975). Adaptation in natural and artificial systems. Ann Arbor, MI: University of Michigan Press. (second edition, 1992) Kalyanmoy, D., & Samir, A. (1999). Understanding interactions among genetic algorithm parameters. In in foundations of genetic algorithms 5 (p. 265-286). Morgan Kaufmann. Krylov, G., & Lukac, M. (2018). Quantum encoded quantum evolutionary algorithm for the design of quantum circuits. In Proceedings of the 16th acm international conference on computing frontiers. Loceff, M. (2015). A course in quantum computing. Foothill College. Lukac, M., & Perkowski, M. (2002, July). Evolving quantum circuits using genetic algorithm. In Proceedings 2002 nasa/dod conference on evolvable hardware (p. 177185). doi: 10.1109/EH.2002.1029883 Man, K., Tang, W. K., & Kwong, S. (1996, 11). Genetic algorithms: Concepts and applications. IEEE Transactions on Industrial Electronics, 43 , 519 - 534. doi: 10.1109/41.538609 MIT Media Lab. (2019). Quantum circuit viewer: qasm2circ. Retrieved 2019-06-10, from http://www.media.mit.edu/quanta/qasm2circ/ Nielsen, M. A., & Chuang, I. L. (2010). Quantum computation and quantum information: 10th anniversary edition. Cambridge University Press. doi: 10.1017/ CBO9780511976667. 36.

(45) Poto˘cek, V., Reynolds, A. P., Fedrizzi, A., & Corne, D. W. (2018). Multi-objective evolutionary algorithms for quantum circuit discovery. Spector, L. (2006). Automatic quantum computer programming: A genetic programming approach (genetic programming). Berlin, Heidelberg: Springer-Verlag. Timothy, S., Darrell, W., & Keith, M. (1990). Optimization using distributed genetic algorithms. Parallel Problem Solving from Nature, 176-185. Whitley, D., Rana, S., & Heckendorn, R. B. (1997). Island model genetic algorithms and linearly separable problems. In D. Corne & J. L. Shapiro (Eds.), Evolutionary computing (pp. 109–125). Berlin, Heidelberg: Springer Berlin Heidelberg. Williams, C. P., & Gray, A. G. (1999). Quantum computing and quantum communication. Lecture Notes in Computer Science, 1509 , 113-125. Yabuki, T., & Iba, H. (2000). Genetic algorithms for quantum circuit design - evolving a simpler teleportation circuit. In Late Breaking Papers at GECCO 2000 , 421-425.. 37.

(46)

Referências

Documentos relacionados

O direito tributário tem na legalidade um princípio basilar de toda sua estrutura jurídica, tendo exigências específicas para a aplicação da lei tributária, de

Um guia de onda é uma região de um substrato em que o índice de refração é maior do que em outra, de tal modo que a luz (ou uma onda eletromagnética), possa ser confinada e

A partir desses pressupostos, desenvolveu-se aqui uma proposta de formação inicial e continuada de professores, visando à utilização de geotecnologias para o ensino

Para este grupo de frutas, a forma mais fácil para obtenção do suco é a trituração em liquidificador com adição de uma pequena porção de água. Após a trituração, filtra-se

À premência da adoção da perspectiva social na Constituição, reconhecendo a organização da sociedade em grupos que mereciam representação, expandindo direitos trabalhistas

Tendo como referência a letra da música Camaro Amarelo, julgue os itens de 83 a 85 e faça o que se pede no item 86, que é do tipo D.. 83 Nas canções Camaro Amarelo e Cuitelinho,

Um dos principais objetivos deste trabalho é produzir conhecimento sobre o comportamento do consumidor, através de sua reação às exposições que lhe são propostas. O objetivo

Devido ao seu impacto frente ao projeto e operação de sistemas de separação por membranas, uma vez que ela afeta a definição do pré-tratamento, limpeza das