implementac¸ao de interface gr˜ afica para um simulador´ da ... · de fourier e tambem a sua...

8
Implementac ¸˜ ao de Interface Gr ´ afica para um Simulador da Transformada Quˆ antica de Fourier Rachel Batalha de Lima, Ello ´ a B. Guedes 1 ucleo de Computac ¸˜ ao Escola Superior de Tecnologia Universidade do Estado do Amazonas Av. Darcy Vargas, 1200 – Manaus – Amazonas [email protected], [email protected] Abstract. FTSimulator is a software tool for research and study purposes which implements both classical and quantum Fourier transforms. In the quantum case, this simulation is very important since implementations of large scale quantum computers still not exist. One of the limitations found in this simu- lator was the absence of a graphics user interface, the users could only interact with it through a character-oriented interface. In this context, the goal of this work is to present the implementation of graphics user interface for this simula- tor, allowing a better interaction with its users as well as a better visualization of the data produced by this software. Resumo. O FTSimulator ´ e um software computacional voltado para fins de pesquisa e de estudo que implementa a transformada de Fourier em suas vers˜ oes cl´ assica e quˆ antica. Esta ´ ultima, em particular, ´ e de bastante inte- resse, pois tal simulac ¸˜ ao permite que computadores convencionais a executem, mesmo sem a existˆ encia de um computador quˆ antico de larga escala. Uma das limitac ¸˜ oes verificadas neste simulador, entretanto, era a ausˆ encia de uma inter- face gr´ afica para o usu´ ario, que interagia com o simulador por uma interface orientada ` a caracteres. Neste sentido, o objetivo deste trabalho ´ e apresentar a implementac ¸˜ ao de uma interface gr´ afica para este simulador, permitindo uma melhor interac ¸˜ ao com o usu´ ario e colaborando para uma melhor visualizac ¸˜ ao dos resultados produzidos por este software. 1. Introduc ¸˜ ao Um dos algoritmos de bastante destaque na Computac ¸˜ ao Quˆ antica ´ ea transformada quˆ antica de Fourier [Nielsen and Chuang 2010, Cap. 5]. Esta transformada consiste em um procedimento para estruturar uma representac ¸˜ ao alternativa de estados quˆ anticos, que vˆ em a auxiliar em muitos algoritmos. Por exemplo, grac ¸as ` a transformada quˆ antica de Fourier, Shor [Shor 1997] foi capaz de consolidar um algoritmo quˆ antico para fatorac ¸˜ ao e logaritmo discreto com um ganho superpolinomial em relac ¸˜ ao ao melhor algoritmo cl´ assico existente. Na verdade, este ´ e um dos resultados de maior impacto da Computac ¸˜ ao Quˆ antica at´ e os dias atuais. Levando em considerac ¸˜ ao a importˆ ancia desta transformada para a ´ area em quest˜ ao, o FTSimulator foi constru´ ıdo em um trabalho anterior, caracterizando-se por ser um soft- ware de c ´ odigo aberto desenvolvido em Visual-C ++ que implementa a transformada r´ apida de Fourier e tamb´ em a sua contrapartida quˆ antica [Pereira et al. 2013]. Este simulador possui importˆ ancia em diversos aspectos, pois (i) facilita a compreens˜ ao da transformada quˆ antica de Fourier em si, o que se mostra ´ util para ´ areas como Matem´ atica, Computac ¸˜ ao,

Upload: others

Post on 12-May-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Implementac¸ao de Interface Gr˜ afica para um Simulador´ da ... · de Fourier e tambem a sua contrapartida qu´ antica [Pereira et al. 2013]. Este simuladorˆ possui importancia

Implementacao de Interface Grafica para um Simuladorda Transformada Quantica de Fourier

Rachel Batalha de Lima, Elloa B. Guedes1Nucleo de Computacao

Escola Superior de TecnologiaUniversidade do Estado do Amazonas

Av. Darcy Vargas, 1200 – Manaus – Amazonas

[email protected], [email protected]

Abstract. FTSimulator is a software tool for research and study purposes whichimplements both classical and quantum Fourier transforms. In the quantumcase, this simulation is very important since implementations of large scalequantum computers still not exist. One of the limitations found in this simu-lator was the absence of a graphics user interface, the users could only interactwith it through a character-oriented interface. In this context, the goal of thiswork is to present the implementation of graphics user interface for this simula-tor, allowing a better interaction with its users as well as a better visualizationof the data produced by this software.

Resumo. O FTSimulator e um software computacional voltado para fins depesquisa e de estudo que implementa a transformada de Fourier em suasversoes classica e quantica. Esta ultima, em particular, e de bastante inte-resse, pois tal simulacao permite que computadores convencionais a executem,mesmo sem a existencia de um computador quantico de larga escala. Uma daslimitacoes verificadas neste simulador, entretanto, era a ausencia de uma inter-face grafica para o usuario, que interagia com o simulador por uma interfaceorientada a caracteres. Neste sentido, o objetivo deste trabalho e apresentar aimplementacao de uma interface grafica para este simulador, permitindo umamelhor interacao com o usuario e colaborando para uma melhor visualizacaodos resultados produzidos por este software.

1. IntroducaoUm dos algoritmos de bastante destaque na Computacao Quantica e a transformadaquantica de Fourier [Nielsen and Chuang 2010, Cap. 5]. Esta transformada consisteem um procedimento para estruturar uma representacao alternativa de estados quanticos,que vem a auxiliar em muitos algoritmos. Por exemplo, gracas a transformada quantica deFourier, Shor [Shor 1997] foi capaz de consolidar um algoritmo quantico para fatoracaoe logaritmo discreto com um ganho superpolinomial em relacao ao melhor algoritmoclassico existente. Na verdade, este e um dos resultados de maior impacto da ComputacaoQuantica ate os dias atuais.

Levando em consideracao a importancia desta transformada para a area em questao,o FTSimulator foi construıdo em um trabalho anterior, caracterizando-se por ser um soft-ware de codigo aberto desenvolvido em Visual-C++ que implementa a transformada rapidade Fourier e tambem a sua contrapartida quantica [Pereira et al. 2013]. Este simuladorpossui importancia em diversos aspectos, pois (i) facilita a compreensao da transformadaquantica de Fourier em si, o que se mostra util para areas como Matematica, Computacao,

Page 2: Implementac¸ao de Interface Gr˜ afica para um Simulador´ da ... · de Fourier e tambem a sua contrapartida qu´ antica [Pereira et al. 2013]. Este simuladorˆ possui importancia

Engenharias, etc.; (ii) serve como material para embasar a realizacao de outras pesquisas,a exemplo daquelas que vierem a utilizar o algoritmo da transformada quantica de Fouriercomo um de seus componentes; (iii) auxilia na reproducao de resultados ja apresentadosna literatura, como uma maneira de valida-los; e (iv) atua como um material de apoio noensino da Computacao e Comunicacoes Quanticas, apresentando os passos que compoemo algoritmo de maneira interativa e com a utilizacao de graficos.

Dada a importancia da transformada quantica de Fourier e a ausencia de computa-dores quanticos para implementa-la diretamente, o uso de tais simuladores torna-se im-prescindıvel. Porem, uma das limitacoes observadas no FTSimulator foi que este soft-ware nao dispoe e uma interface grafica, sendo executado completamente por linha decomando.

Cada vez mais, a vida humana esta ligada ao uso de computadores e dispositivoseletronicos; isto ocorre tanto nas atividades pessoais quanto no trabalho. A facilidadede uso destes elementos e crescentemente uma parte essencial do projeto, pelo simplesfato de que dispositivos ou aplicativos com “interface difıcil” nao sao utilizados comodeveriam, e que incorrem em desperdıcio de tempo e aumento da necessidade de treina-mento [Myers 1993]. Em funcao disso, uma das preocupacoes na no desenvolvimentode dispositivos e aplicativos e a interacao humano-computador, ou seja, a relacao entresistema e usuario.

No caso do software, em particular, a importancia de uma boa interface graficapode ser a diferenca entre a aceitacao ou rejeicao do mesmo. Os usuarios podem tendera rejeitar um software se perceberem que este nao e facil de aprender, de usar, ou dema-siadamente pesado, por exemplo. Uma boa interface grafica pode fazer um produto terfacil compreensao e utilizacao, o que resulta em uma maior aceitacao por parte do seupublico-alvo [Miranda 2011].

Levando o que foi apresentado consideracao, no contexto deste trabalho percebeu-se que a ausencia de uma interface grafica no FTSimulator para entrada e saıda de dados eum dos fatores que limitam o uso e a compreensao dos dados produzidos pela simulacao.

Com o intuito de prover uma melhor utilizacao do FTSimulator por seus usuarios,o objetivo deste trabalho foi a construcao de uma interface grafica para o simulador emquestao. Para apresentar os resultados obtidos, este artigo esta organizado como segue.A fundamentacao teorica da QFT e mostrada na Secao 2. A implementacao da interfacegrafica para o simulador e apresentada na Secao 3. Por fim, as consideracoes finais esugestoes de trabalhos futuros sao mostrados na Secao 4.

2. Transformada Quantica de FourierA chamada analise de Fourier recebeu esta denominacao em homenagem ao ma-tematico Jean Baptiste Joseph Fourier (1768-1830), pelas suas contribuicoes a teoria derepresentacao de funcoes como superposicoes ponderadas de senoides. A TransformadaClassica de Fourier, ou Transformada Discreta de Fourier (DFT), converte sinais nao-periodicos do domınio do tempo em representacoes no domınio da frequencia (ou espec-trais). Esta transformada possui varias aplicacoes como na: Fısica, Quımica, Teoria dosNumeros, Analise Combinatoria, Processamento de Sinais, Imagem e Voz, Teoria dasProbabilidades, Estatıstica, Criptografia e outras areas [James 2002].

Por muitos anos pensou-se que a DFT exigisse O(N2) operacoes, onde N e onumero de pontos do vetor de entrada, o que parece uma ideia intuitiva ja que a Transfor-mada de Fourier pode ser vista como a multiplicacao de uma matriz NxN por um vetor.

Page 3: Implementac¸ao de Interface Gr˜ afica para um Simulador´ da ... · de Fourier e tambem a sua contrapartida qu´ antica [Pereira et al. 2013]. Este simuladorˆ possui importancia

Porem, Cooley e Tukey (1965) descreveram um algoritmo para calculo da DFT que rea-lizava apenas O(N logN ) operacoes a qual recebeu o nome de Transformada de FourierRapida (FFT) [Cooley and Tukey 1965]. Apenas um ano apos a publicacao do artigode Cooley e Tukey, Rudnick (1966) ja apresentava um programa de computador para ocalculo da DFT, tambem de complexidade O(N logN), baseando-se em um metodo de-senvolvido anteriormente por Danielson e Lanczos (1942). Ate mesmo Gauss, no inıciodo seculo XIX, ja havia descoberto um metodo eficiente para calculo de DFT em um casoparticular [Marquezino 2006].

A Transformada Quantica de Fourier (QFT – Quantum Fourier Transform) e exa-tamente a mesma da DFT, embora use uma notacao diferente, levando em consideracaoas adaptacoes necessarias para o domınio quantico. Para um melhor entendimento daTransformada Quantica de Fourier e necessario levar em consideracao que a Formula deEuler enuncia que um numero ω, escrito sob a forma ω = cos(θ) + ı sin(θ) pode tambemser denotado por ω = eıθ. Levando isto em consideracao, a definicao formal da QFT edada a seguir.

Definicao 1 (Transformada Quantica de Fourier). . Seja |j〉 um vetor ortonormal emum espaco de Hilbert H de dimensao 2m, ou seja, pertencente a base {|0〉, |1〉, ..., |2m −1〉}. A Transformada quantica de fourier de |j〉 e dada por

QFT |j〉 = 1√2m

2m−1∑k=0

e2Πkjι

2m |k〉. (1)

Para fins de implementacao, prefere-se a versao matricial da QFT, a qual pode serobtida pela multiplicacao de um vetor α de numeros complexos com a matriz da QFT dedimensao M = 2m, a qual e mostrada na Eq. (2) [Dasgupta et al. 2006, Cap. 10]. Oresultado desta multiplicacao e um vetor β, tambem de numeros complexos. Os vetores αe β representam, no cenario da Computacao Quantica, os chamados qubits, i.e., os estadosde um sistema quantico.

β0β1β2...βj...

βM−1

=

1√M

1 1 1 . . . 11 ω ω2 . . . ωM−1

1 ω2 ω4 . . . ω2(M−1)

...1 ωj ω2j . . . ω(M−1)j

...1 ω(M−1) ω2(M−1) . . . ω(M−1)(M−1)

·

α0

α1

α2

...αj

...αM−1

, (2)

em que ω e uma raiz M-esima da unidade. O fator 1√M

e introduzido para que |αı|2 e|βı|2 sejam igual a 1, uma das restricoes necessarias para a representacao adequada debits quanticos [Nielsen and Chuang 2010, Cap. 2].

Ao transpor a Eq. (2) para o domınio da programacao, possibilitando a suaimplementacao em computadores atuais, e interessante observar que o expoente de ωpode ser associado a duas variaveis de iteracao, uma no sentido horizontal e outra no sen-tido vertical, em que ambas variam de 0 a M − 1 a partir da segunda linha e da segundacoluna. Como resultado, e possıvel construir matrizes para a QFT de tamanho arbitrario,conforme ilustrado na Figura 1.

Page 4: Implementac¸ao de Interface Gr˜ afica para um Simulador´ da ... · de Fourier e tambem a sua contrapartida qu´ antica [Pereira et al. 2013]. Este simuladorˆ possui importancia

1 void CQFT::QFTOPERATOR(complex **qftOp, int N) {2 for (int i = 0; i < N; i++) {3 for (int j = 0; j < N; j++) {4 qftOp[i][j] = complex((double)5 (1/sqrt((float) N))*cos(2*PI*i*((float) j/((int) N))),6 (double) (1/sqrt((float) N))*sin(2*PI*i*((float) j/((int) N))))7 }8 }9 }

Figura 1: Algoritmo na linguagem Visual C++ ilustrando como o operador da QFT econstruıdo [Pereira et al. 2013].

A Criptografia utilizada nos dias atuais baseia-se na hipotese intratabilidade decertos problemas perante o paradigma de computacao atual. Um dos principais algoritmosde chave publica utilizado nos dias atuais, o RSA, por exemplo, baseia-se na dificuldadedos computadores de fatorarem numeros grandes, as chaves sao geradas matematicamentepor meio do produto de dois numeros primos grandes [Paar and Pelzl 2010].

Perante os computadores quanticos, porem, a seguranca do RSA nao se mantem,em virtude do algoritmo quantico da fatoracao de Shor [Pfeiffer et al. 2014]. Este algo-ritmo faz uso da QFT e se vale dos princıpios matematicos de Euler, tendo por objetivoencontrar uma raiz primitiva da chave privada. Com isto, e possıvel fatorar a chave secretade maneira facil, o que causa uma quebra na seguranca. Este algoritmo foi um importantemarco para a Computacao Quantica, mas so sera implementado fisicamente quando hou-ver computadores quanticos com muitos qubits, o que ainda nao e uma realidade nos diasatuais.

Outros aplicacoes importantes da QFT sao seu uso no comprometimento da im-previsibilidade de geradores pseudo-aleatorios criptograficamente seguros [Guedes et al.2013] e no calculo da sındrome de decodificacao para codigos grafos quanticos [Santoset al. 2013], etc.

3. Implementacao da Interface Grafica para o FTSimulatorEm sua versao original, o FTSimulator nao dispoe de uma interface grafica, sendo exe-cutado pelo usuario somente por uma interface orientada a caracteres, conforme ilustradona Figura 2. A ausencia de uma interface grafica para entrada e saıda de dados diminui ausabilidade, um dos fatores que limitam o uso e a compreensao dos dados produzidos poreste simulador.

Figura 2: Exemplos de telas disponıveis para a interacao com o usuario na primeiraversao do FTSimulator.

(a) Tela inicial do FTSimulator(b) Tela de escolha da Transformada

Classica de Fourier

Para enderecar este problema, seria necessario implementar uma interface graficapara o simulador. Para alcancar este objetivo, houve primeiramente uma etapa de

Page 5: Implementac¸ao de Interface Gr˜ afica para um Simulador´ da ... · de Fourier e tambem a sua contrapartida qu´ antica [Pereira et al. 2013]. Este simuladorˆ possui importancia

prototipacao da interface grafica, na qual foram concebidas as telas de interacao com ousuario, levando em consideracao o fluxo de informacao necessario para uma simulacao.Em seguida, tomando como base estes prototipos, houve a implementacao da interfacegrafica. Estas duas etapas sao detalhadas nas secoes a seguir.

3.1. Prototipacao da Interface

A prototipacao e um processo que tem como objetivo facilitar o entendimento dos requi-sitos, apresentar conceitos e funcionalidades do software. Os prototipos sao aliados dasmetodologias ageis de desenvolvimento, por permitirem um maior alinhamento entre aequipe de desenvolvimento e o cliente final [Camarini 2013].

No escopo deste projeto, para a realizacao da prototipacao da interface do FT-Simulator foi utilizada a ferramenta Balsamiq Mockups, criada pela Balsamiq Studiosna linguagem de programacao ActionScript, que executa Adobe AIR (Adobe IntegratedRuntime). O Balsamiq Mockups e uma ferramenta grafica para esbocar interfaces como usuario, para sites, desktop e aplicacoes moveis da web. Esta ferramenta proporcionauma grande interatividade na concepcao de prototipos, tornando-os de facil criacao, com-partilhamento e de compreensao, permitindo um maior feedback por parte dos futurosusuarios [Studios 2015].

Para a prototipacao da interface grafica, a melhoria de alguns aspectos foram con-siderados a partir da versao original do simulador, a citar: (i) as informacoes solicitadasao usuario – as opcoes de escolha eram enderecadas de maneira numerica, e.g., “ 1 paraopcao FFT, 2 para opcao QFT, etc.”; (ii) a localizacao dos arquivos de entrada e saıda –o usuario deveria manter arquivos de entrada com nomes especıficos em uma localizacaoespecıfica, os arquivos de saıda eram produzidos sempre na pasta em que o FTSimulatorexecutava; (iii) as mensagens de erro eram genericas e demandavam que o usuario reini-ciasse o programa; e (iv) uma vez feita uma escolha, esta nao poderia ser refeita, apenasse houvesse o reinıcio do simulador.

Embora permitisse a execucao das transformadas de Fourier, a interacao com ousuario nao era favorecida em virtude das caracterısticas mencionadas. Estes aspectos fo-ram levados em consideracao na etapa de prototipacao, visando a melhoria dos mesmos.As seguintes decisoes foram tomadas nesta etapa: no caso das opcoes numericas, a trocanatural seria por botoes ou listas de escolhas, evitando que o usuario pudesse escolheralem das opcoes disponıveis; no caso dos arquivos de entrada e saıda, teria-se a navegacaopor diretorios do sistema, a escolha de arquivos com qualquer nomenclatura para entrada,e a exibicao dos arquivos produzidos ao final da simulacao; no caso das mensagens deerro, elaborar mensagens mais especıficas, enderecando nao apenas o problema encon-trado, como tambem uma sugestao de solucao quando esta dependesse do usuario; e, porfim, a possibilidade de voltar a uma etapa anterior do processo de simulacao, incluindo aetapa inicial.

Como resultado destas consideracoes, a etapa de prototipacao resultou em um con-junto de interfaces graficas de interacao com o usuario, incluindo tambem a navegacaoentre estas telas, mostrando o fluxo da execucao do simulador. Algumas destas telasencontram-se ilustradas na Figura 3.

Page 6: Implementac¸ao de Interface Gr˜ afica para um Simulador´ da ... · de Fourier e tambem a sua contrapartida qu´ antica [Pereira et al. 2013]. Este simuladorˆ possui importancia

Figura 3: Prototipos para a interface grafica do FTSimulator

(a) Prototipo da tela inicial(b) Prototipo da tela de entrada de

arquivo

3.2. Implementacao da InterfaceApos a etapa de prototipacao da interface grafica, foi iniciada a implementacao da mesmana plataforma Microsoft Visual Studio. Esta plataforma permite que interfaces com ousuario sejam desenvolvidas de duas maneiras: (i) interface orientada a caracteres, naqual toda interacao e por meio de texto em um console; e (ii) interface em modo grafico(GUI – Graphical User Interface), por meio de formularios que consistem em janelas quepodem agregar janela principal, janela filha e caixas de dialogo [Manzano 2013].

Algumas das vantagens da plataforma Microsoft Visual Studio para aimplementacao de interfaces em modo grafico e a possibilidade de compilacao direta-mente para o hardware, o que a torna de execucao rapida, com baixo consumo de re-cursos e que gera executaveis de tamanho menor quando comparada a outras linguagensde programacao, e tambem a portabilidade para plataformas que a Microsoft fornece su-porte [ITProPortal 2010].

Algumas das interfaces graficas construıdas para o FTSimulator com a plataformaMicrosoft Visual Studio encontram-se ilustradas na Figura 4.

Na Figura 5 e possıvel observar um contraste entre a versao inicial da tela orientadaa caracteres disponıvel na primeira versao do FTSimulator, o seu prototipo e, finalmente,a sua versao implementada, produzida como resultado deste trabalho.

Figura 5: Contraste entre a versao inicial do FTSimulator, prototipo da interface grafica einterface grafica implementada.

(a) Versao inicial (b) Prototipo (c) Resultado Final

4. Consideracoes FinaisEste trabalho teve por objetivo apresentar o desenvolvimento de uma interface graficapara um simulador da Transformada Quantica de Fourier chamado FTSimulator. Estesimulador tem por objetivo possibilitar a execucao desta transformada em computadoresclassicos, sendo voltada para pesquisadores da area ou para estudantes interessados em

Page 7: Implementac¸ao de Interface Gr˜ afica para um Simulador´ da ... · de Fourier e tambem a sua contrapartida qu´ antica [Pereira et al. 2013]. Este simuladorˆ possui importancia

Figura 4: Interface grafica do FTSimulator.

(a) Tela inicial (b) Tela de entrada de arquivos

(c) Tela de escolha de funcoespre-definidas

aprender os conceitos ligados a este algoritmo quantico. Uma das limitacoes observadasna versao original deste simulador, entretanto, era a ausencia de uma interface grafica, oque era uma limitacao no uso e na compreensao dos resultados produzidos.

A nova versao do FTSimulator na qual a interface grafica ja encontra-se disponıvelpode ser obtida em https://goo.gl/UA5C8R. A nova versao tambem e open-sourcee gratuita, podendo ser utilizada para fins de pesquisa e educacionais.

Em trabalhos futuros almeja-se continuar o desenvolvimento de novas funciona-lidades para este simulador, incluindo, em particular, um metodo para otimizacao damultiplicacao de matrizes a ser utilizado na transformada quantica de Fourier.

AgradecimentosAs autoras agradecem o apoio financeiro provido pela Fundacao de Amparo a Pesquisado Estado do Amazonas (FAPEAM). A autora Rachel Batalha de Lima e bolsista doPrograma de Apoio a Iniciacao Cientıfica da Universidade do Estado do Amazonas eFAPEAM edicao 2014− 2015.

ReferenciasCamarini, B. (2013). Prototipacao e sua importancia no desen-

volvimento de software. http://www.dextra.com.br/prototipacao-e-sua-importancia-no-desenvolvimento-de-software/.

Cooley, J. W. and Tukey, J. W. (1965). An algorithm for the machine calculation ofcomplex fourier series. Mathematics of Computation, 19:297–301.

Page 8: Implementac¸ao de Interface Gr˜ afica para um Simulador´ da ... · de Fourier e tambem a sua contrapartida qu´ antica [Pereira et al. 2013]. Este simuladorˆ possui importancia

Dasgupta, S., Papadimitriou, C., and Vazirani, U. (2006). Algoritmos. McGraw-HillScience, New York.

Guedes, E. B., de Assis, F. M., and Lula Jr., B. (2013). Quantum attacks on pseudorandomgenerators. Mathematical Structures in Computer Science, 23:1–27.

ITProPortal (2010). Benefits of programming in visual C++.net. http://www.itproportal.com/2010/06/25/benefits-programming-visual-c-net/#disqus_thread.

James, J. F. (2002). A Student’s Guide to Fourier Transform. Cambridge.

Manzano, J. A. N. G. (2013). Visual C++/CLI – Guia de Introducao e Desenvolvimento.Editora Erica, Sao Paulo.

Marquezino, F. (2006). A transformada de fourier quantica aproximada e sua simulacao.Master’s thesis, Laboratorio Nacional de Computacao Cientıfica, Petropolis, Rio deJaneiro.

Miranda, M. G. (2011). The importance of graphic users interface analysis of graphicaluser interface design in the context of human-computer interaction. In EDULEARN11Proceedings, 3rd International Conference on Education and New Learning Technolo-gies, pages 7137–7144. IATED.

Myers, B. A. (1993). Why are human-computer interfaces difficult to design and im-plement? Carnegie Mellon University School of Computer Science Technical ReportCMU-CS-93-183.

Nielsen, M. A. and Chuang, I. L. (2010). Quantum Computation and Quantum Informa-tion. Cambridge University Press, Cambridge, Inglaterra.

Paar, C. and Pelzl, J. (2010). Understanding Cryptography. Springer.

Pereira, F. R. F., Guedes, E. B., and de Assis, F. M. (2013). Simulating the quantumfourier transform. In II Workshop-Escola de Informatica Teorica, Rio Grande, RioGrande do Sul. IEEE Press.

Pfeiffer, G., Paim, R., and Motta, V. (2014). Criptografia quantica. http://www.gta.ufrj.br/grad/11_1/quantica/index.html.

Santos, G. O., de Assis, F. M., and de Lima, A. F. (2013). Explicit error syndromecalculation for quantum graph codes. Quantum Information Processing, 12(2):1269–1285.

Shor, P. (1997). Polynomial-time Algorithms for Prime Factorization and Discrete Loga-rithms on a Quantum Computer. SIAM Journal on Computing, 26:1484–1509.

Studios, B. (2015). Why does balsamiq exist? https://balsamiq.com/company/.