A proposta deste trabalho e implementar o algoritimo de Grover, um algoritmo quântico de busca, utilizando a linguagem de programacao quântica QCL (Quantum Computation Language). Buscou-se melhor compreensao dos fundamentos da mecânica quântica que possibilitam o processamento de informacao em sistemas quânticos e que em alguns casos seriam mais eficientes do que em computadores classicos. Com este fim, sera estudado a manipulacao dos estados quânticos pelos comandos disponiveis pela linguagem QCL.
A proposta deste trabalho e implementar o algoritimo de Grover, um algoritmo quântico de busca, utilizando a linguagem de programacao quântica QCL (Quantum Computation Language). Buscou-se melhor compreensao dos fundamentos da mecânica quântica que possibilitam o processamento de informacao em sistemas quânticos e que em alguns casos seriam mais eficientes do que em computadores classicos. Com este fim, sera estudado a manipulacao dos estados quânticos pelos comandos disponiveis pela linguagem QCL.
Este artigo apresenta a implementacao de um algoritmo de busca quântica com pequenas modificacoes. A ideia desse algoritmo e ser hibrido, podendo funcionar em sistemas classicos e sistemas quânticos. Sao apresentados os conceitos quânticos das buscas e introduzido um pseudo-framework capaz de gerar codigos para computadores classicos (C++) e computadores quânticos (QCL). Os algoritmos foram submetidos a simulacoes, que resultaram em um estudo comparativo do funcionamento do algoritmo de Grover em ambos os sistemas, realizando buscas em uma massa de dados em arquivos no formato XML. Como resultado, observa-se numeros muito parecidos entre sistemas classicos e quânticos, isso gera uma expectativa de que a busca em computadores quânticos reais seja muito mais eficiente.
A computação quântica é uma das mais promissoras tecnologias atuais, ela se baseia nos princípios da mecânica quântica para fornecer um paradigma computacional que promete um ganho expressivo de processamento. Com isso, problemas considerados intratáveis classicamente poderão ter soluções quânticas eficientes. Como até então nenhuma máquina quântica efetiva foi criada, a simulação se tornou a alternativa mais viável para o estudo e o desenvolvimento da área. Em vista disso, é necessário disponibilizar um sistema computacional que permita uma descrição em nível apropriado de um algoritmo quântico e uma “máquina” para simular esta descrição. Na literatura relacionada o estudo da computação quântica é, em geral, realizado através da linguagem de circuitos quânticos. Nesta linguagem, um algoritmo é apresentado através de sua representação visual (sintaxe) aliada à descrição e manipulação simbólica do estado do sistema (semântica). No presente trabalho é apresentado o processo de desenvolvimento de um Computer Algebra System (CAS) específico para o contexto de circuitos quânticos. O CAS foi implementado como uma extensão para o Zeno, tornando o simulador a única ferramenta do gênero a fornecer uma descrição completa da linguagem de circuitos A simulação simbólica incorporada ao Zeno permite que as descrições matemáticas do estado do sistema sejam criadas e manipuladas facilmente. Com isso, é possível simplificar ou exibir formas de representação alternativas para facilitar a compreensão e resolução do sistema investigado. O uso conjunto da abordagem numérica e gráfica com a abordagem simbólica, facilita sobremaneira o entendimento de um algoritmo e a compreensão de sua descrição matemática. As funcionalidades atualmente fornecidas pelo Zeno agilizam o desenvolvimento de algoritmos, pois permitem que os usuários trabalhem de uma forma mais rápida e eficiente do que se executarem os cálculos à mão. Além disso, o CAS possibilita a apresentação de descrições fieis àquelas exibidas na literatura.
Um estudo passo a passo dos algoritmos de Grover e Shor A step-by-step study of Grover and Shor algorithmsResumo Os algoritmos de Grover e de Shor são duas das principais descobertas da computação quântica no início das pesquisas nessa área.O primeiro é um algoritmo de busca com um ganho de velocidade significativo em relação aos algoritmos clássicos e com grande aplicação na resolução de diversos outros problemas.O segundo é capaz de resolver o problema da fatoração de um número C em tempo polinomial, o que foi responsável por um grande impulso na pesquisa em computação e criptografia quântica.Neste trabalho de Iniciação Científica apresentamos os algoritmos quânticos de Grover e Shor, amplamente utilizados na computação quântica, com uma proposta original focada nos estados quânticos obtidos após cada passo na evolução do circuito.Dessa forma, exercita-se a aplicação das portas quânticas e a percepção das propriedades quânticas, bem como o funcionamento desses dois algoritmos.No circuito de Grover destacamos a fundamental propriedade de emaranhamento quântico que permite executar tarefas de processamento de informação.
Em computação quântica e especificamente na modelagem de circuitos quânticos de computação, uma porta lógica quântica (ou simplesmente porta quântica) é um circuito quântico básico que opera sobre um pequeno número de qubits, que são as unidades básicas de informação constituída por um sistema quântico de dois estados. Estes são os alicerces de construção de circuitos quânticos da mesma forma que as portas lógicas clássicas são para os circuitos digitais convencionais. No presente trabalho, pretendemos investigar aplicações da mecânica quântica não linear q-deformada em computação quântica, assim como a construção de suas portas lógicas quânticas que possam descrever fenômenos de interesse da comunidade científica nas áreas de computação quântica, teoria quântica, entre outras. Para a escrita dos trabalhos, utilizamos a linguagem de programação LaTeX, e para o desenvolvimento de gráficos ou resoluções de equações diferenciais, fizemos o uso da linguagem de programação Python. Para isso, promovemos estudos sobre alguns tópicos de computação quântica, álgebras generalizadas, linguagem de programação Python, entre outros. Nesta etapa do projeto, consideramos as seguintes referências bibliográficas: computação quântica, álgebra q-deformada, mecânica quântica não linear, circuitos quânticos, fenômenos de decoerência quântica, e etc. e promover as suas aplicações na construção do projeto, a fim de obter resultados que auxiliem a outros pesquisadores destes tópicos de pesquisa. Foram criados circuitos e analisamos a sua entropia em relação ao parâmetro de deformação algébrico q, analisamos também a taxa de variação da modificação dos estados e das probabilidades de estados dos qubits presentes nos circuitos simulados, sendo estudados também as plotagens acerca das funções generalizadas presentes nos artigos que foram usados como base neste trabalho e projeto. e para uma melhor consolidação dos resultados, criamos uma biblioteca no python que nos auxiliou no trabalho. Foi percebido que usando a matemática não usual presente nos artigos acerca da álgebra q-deformada, o parâmetro q consegue ter um enorme controle de entropia e velocidade de convergência do circuito quântico deformado em alguns respectivos algoritmos quânticos. Vendo que a sua velocidade de convergência pode ser modificada, para maior ou menor do que a usual, verifica-se aqui a extrema importância do parâmetro q em simulações e convergências de resultados acerca dos temas aqui trabalhados.
Computaçãao quântica pode ser entendida como transformação da informação codificada no estado de um sistema físico quântico. A idéia básica da computação quântica é codificar dados utilizando bits quânticos (qubits). Diferentemente do bit clássico, o qubit pode existir em uma superposição dos seus estados básicos permitindo o “paralelismo quântico”, o qual é uma característica importante da computação quântica visto que pode aumentar consideravelmente a velocidade de processamento dos algoritmos. Entretanto, tipos de dados quânticos são bastante poderosos não somente por causa da superposição de estados. Existem outras propriedades ímpares como medida e emaranhamento. Nesta tese, nós discutimos que um modelo realístico para computações quânticas deve ser geral com respeito a medidas, e completo com respeito a comunicação entre o mundo quântico e o mundo clássico. Nós, então, explicamos e estruturamos computações quânticas gerais e completas em Haskell utilizando construções conhecidas da área de semântica e linguagens de programação clássicas, como mônadas e setas. Em mais detalhes, esta tese se concentra nas seguintes contribuições. Mônadas e Setas. Paralelismo quântico, emaranhamento e medida quântica certamente vão além do escopo de linguagens funcionais “puras”. Nós mostramos que o paralelismo quântico pode ser modelado utilizando-se uma pequena generalização de mônadas, chamada mônadas indexadas ou estruturas Kleisli. Além disso, nós mostramos que a medida quântica pode ser explicada utilizando-se uma generalização mais radical de mônadas, as assim chamadas setas, mais especificamente, setas indexadas, as quais definimos nesta tese. Este resultado conecta características quânticas “genéricas” e “completas” `a construções semânticas de linguagens de programação bem fundamentadas. Entendendo as Interpretações da Mecânica Quântica como Efeitos Computacionais. Em um experimento hipotético, Einstein, Podolsky e Rosen demonstraram algumas consequências contra-intuitivas da mecânica quântica. A idéia básica é que duas partículas parecem sempre comunicar alguma informação mesmo estando separadas por uma distância arbitrariamente grande. Existe muito debate e muitos artigos sobre esse tópico, mas é interessante notar que, como proposto por Amr Sabry, essas características estranhas podem ser essencialmente modeladas por atribuições a variáveis globais. Baseados nesta idéia nós modelamos este comportamento estranho utilizando noções gerais de efeitos computacionais incorporados nas noções de mônadas e setas. Provando Propriedades de Programas Quânticos Utilizando Leis Algébricas. Nós desenvolvemos um trabalho preliminar para fazer provas equacionais sobre algoritmos quânticos escritos em uma sublinguagem pura de uma linguagem de programação funcional quântica, chamada QML.
Computação quântica é uma área de grande desenvolvimento hoje em dia e isso traz uma necessidade para desenvolver hardware e software. Uma vez que o hardware disponível é muito pouco e o software precisa de ser testado, existe uma necessidade de uma boa plataforma para testar as soluções de software. Simular um computador quântico num computador clássico não é ideal, contudo é uma resposta viável a esta necessidade, para um pequeno número de qubits. Além disso, os computadores quânticos necessitam dos computadores clássicos de forma a criar um sistema real prático, isto apresenta-se como uma excelente oportunidade para testar técnicas de programação clássica para melhorar a programação quântica. Esta tese propõe o uso de programação clássica para melhorar a implementação de um algoritmo de adição modular usando transformadas de Fourier quânticas. Os principais objectivos deste trabalho são: simular um circuito quântico; testar um algoritmo quântico e compará-lo com o seu equivalente clássico; implementar o algoritmo de adição modular, usando as capacidades de aceleração de computação das transformadas de Fourier quânticas e optimizá-lo; Testar e implementar códigos quânticos de correcção de erros; fazer um teste num computador quântico real.De forma a testar a linguagem e comparar um algoritmo quântico com um clássico, fez-se um teste ao algoritmo de Shor que está disponível de raiz na plataforma liquid. Apesar do algoritmo de Shor ter, teoricamente, uma dependência de tipo polinomial com a dimensão do problema, os testes realizados mostraram que o tempo de computação tem um comportamento exponencial. Simular um algoritmo quântico num computador clássico requer tempo de computação que cresce de forma exponencial, pois é necessário armazenar e processar todos os estados do sistema, que é um espaço de Hilbert de dimensão 2^n.O algoritmo de adição modular usando transformadas de Fourier quânticas foi implementado na plataforma liquid. Seguidamente fizeram-se melhorias e optimizações. O número de operações teórico é O(n^2). Contudo, depois de fazer melhorias ao circuito, removendo gates desnecessárias para casos específicos, o número de operações passa a ter um valor mínimo de Omega(n). Com este tipo de alterações o sistema pode apresentar melhorias no que respeito ao tempo de simulação até um factor de ordem 10. Isto mostra que programar um algoritmo quântico tendo em conta casos específicos pode melhorar imenso o desempenho da simulação.Os códigos de correção de erros quânticos foram implementados num circuito simples, com as ferramentas disponíveis na plataforma liquid, e obteve-se um sistema que consegue lidar com erros com probabilidade inferior ou igual a 2%, com uma taxa de sucesso na sua correção de 95%. Contudo são necessários circuitos muito grandes, pouco exequíveis.A plataforma disponibilizada pela IBM para fazer testes num computador quântico real, foi utilizada para testar o algoritmo de adição modular e adição normal (com carry bit). Uma vez que esta plataforma tem um número limitado de gates, reforça a ideia de que se deve otimizar os algoritmos tendo em conta casos particulares. Os resultados destes testes mostram também que é importante utilizar correcção de erros quânticos, mas para que isso seja viável é necessário que haja mais qubits disponíveis ou outro tipo de códigos.