Implementação do algoritmo quântico Deutsch-Jozsa em linguagem funcional e no simulador IBM Q Experience

Autores

  • Lucas Lacava Faculdade de Tecnologia de Americana - Curso de Tecnologia em Análise e Desenvolvimento de Sistemas
  • Mariana Godoy Vazquez Miano Faculdade de Tecnologia de Americana - Curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Resumo

O objetivo deste artigo é mostrar a implementação do algoritmo quântico Deutsch-Jozsa em linguagem funcional e a simulação deste no IBM Q Experience. Para tanto, são apresentados conceitos matemáticos fundamentais e conceitos específicos da Computação Quântica, tal como sobreposição de estados, Bit Quântico, Esfera de Bloch e Portas Quânticas. Também serão apresentadas definições de programação imperativa, linguagem Python e seu caráter multi-paradigma, utilizada pela IBM no simulador IBM Q Experience, para a simulação de circuitos quânticos. Por fim, são exibidas definições e características da programação funcional, da linguagem Haskell e da linguagem Quipper, onde se apresenta a implementação detalhada e comentada do algoritmo quântico de Deutsch-Jozsa juntamente com o pseudocódigo.

Biografia do Autor

Lucas Lacava, Faculdade de Tecnologia de Americana - Curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Graduando em Análise e Desenvolvimento de Sistemas pela Faculdade de Tecnologia de Americana- FATEC, participou do programa de intercâmbio acadêmico Ciências sem Fronteiras, financiado pela Capes, em Trinity College Dublin, na Irlanda.

Mariana Godoy Vazquez Miano, Faculdade de Tecnologia de Americana - Curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Profa. Dr. Mariana Godoy Vazquez MianoPós-Doutorado em Engenharia de Produção pela Universidade Federal de São Carlos (UFSCAR - 2014). Doutorado (2009) e Mestrado (2004) em Engenharia Mecânica pela Universidade Estadual de Campinas (UNICAMP). Licenciatura Plena em Matemática pela Universidade Estadual Paulista (UNESP - 2001). Tem experiência nas áreas de Matemática, Engenharia eComputação, com ênfase em Matemática Aplicada à Engenharia e Simulação de Sistemas e Desempenho de Redes de Internet.Contato: vazquez.prof@gmail.comFonte: CNPQ – Curriculo Lattes

Referências

BARBOSA, Alexandre de Andrade. Introdução a Circuitos Quânticos. 2005. 22 f. Dissertação (Mestrado) - Curso de Ciência da Computação, Departamento de Sistemas e Computação, Universidade Federal de Campina Grande, Campina Grande, 2005. Disponível em: < http://lad.dsc.ufcg.edu.br/arq/AC - Escrito - Circuitos Quanticos.pdf> Acesso em: 20 nov. 2017.

CASTRO, T. C. et al. Utilizando programação funcional em disciplinas introdutórias de computação. In: X WORKSHOP SOBRE EDUCAÇÃO EM COMPUTAÇÃO. EVENTO INTEGRANTE DO XXII CONGRESSO DA SBC. 2002, Florianópolis. Anais... Florianópolis: WEI, 2002.

CERRI, Cristina; MONTEIRO, Martha S. (Org.). História dos Números Complexos. 2001. Disponível em: <https://www.ime.usp.br/~martha/caem/complexos.pdf >. Acesso em: 01 dez. 2017.

GREEN, Alexander S., LUMSDAINE, Peter L., ROSS, Neil J., SELINGER, Peter, VALIRON, Benoît. An introduction to quantum programming in Quipper. In: INTERNATIONAL CONFERENCE ON REVERSIBLE COMPUTATION, 5th., 2013, Victoria. Proceedings. Victoria, BC, Canadá, 2013. Disponível em: . Acesso em: 28 maio 2018.

GRILO, Alex Bredariol. Computação quântica e teoria de computação. 2014. 155 p. Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: < http://repositorio.unicamp.br/jspui/handle/REPOSIP/275508>. Acesso em: 2 nov. 2017.

JOSÉ, Marcelo Archanjo; PIQUEIRA, José Roberto Castilho; LOPES, Roseli de Deus. Introdução à programação quântica. Revista Brasileira de Ensino de Física, [s.l.], v. 35, n. 1, p.2-9, mar. 2013. FapUNIFESP (SciELO). http://dx.doi.org/10.1590/s1806-11172013000100006.

KUCHLING, A. M.. Functional Programming HOWTO. 2001. Disponível em: <https://docs.python.org/3/howto/functional.html>. Acesso em: 28 maio 2018.

SHIFFMAN, Daniel. Coordenadas polares. 2003. Disponível em: <https://pt.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-angular-movement/a/polar-coordinates>. Acesso em: 01 de dez de 2017.

STEINBRUCH, Alfredo; WINTERLE, Paulo. Introdução à álgebra linear. 2°. ed. [S.l.]: Makron Books, 1995. 245 p.

STRUBELL, Emma. An Introduction to Quantum Algorithms, Springer, vol. COS498, 2011.

NASCIMENTO, Mauri C.. Coordenadas Polares. 2005. Disponível em: <http://wwwp.fc.unesp.br/~mauri/Down/Polares.pdf>. Acesso em: 01 de dez de 2017.

NIELSEN, Michael A.; CHUANG, Isaac L.. Quantum Computation and Quantum Information. Cambridge: Cambridge University Press, 2010. 698 p.

ÖMER, Bernard. Structured Quantum Programming. 2003. 130 f. Dissertação, TU Vienna, 2003.

SIDDIQUI, Safat; ISLAM, Mohammed Jahirul; SHEHAB, Omar. Five Quantum Algorithms Using Quipper. 2014. 27 f. Tese (Doutorado) - Curso de Quantum Physics, University Of Maryland, Maryland, 2014. Disponível em: <https://arxiv.org/abs/1406.4481>. Acesso em: 08 jun. 2018.

THOMPSON, Simon. Haskell: the craft of functional programming. 3. ed. Boston: Addison-Wesley, 2011.

TUCKER, Allen B.; NOONAN, Robert E. Programming Languages: Principles and Paradigms. 2. ed. Boston: McGraw-Hill Higher Education, 2007.

VENNERS, Bill. The Making of Python. 2003. Disponível em: <https://www.artima.com/intv/pythonP.html>. Acesso em: 28 maio 2018.

VIGNATTI, André L., NETTO, Francisco S., BITTENCOURT, Luiz F. Uma introdução à Computação Quântica, 2004(Trabalho de Graduação (conclusão de curso)).

Downloads

Publicado

2018-12-22