Histórico e informações da computação quânticaQuantum computing history and background

Uma série de novas tecnologias informáticas surgiu nos últimos anos, sendo que a computação quântica é talvez a tecnologia que requer dos programadores a maior mudança de paradigma.A host of new computer technologies has emerged within the last few years, and quantum computing is arguably the technology requiring the greatest paradigm shift on the part of developers. Os computadores quânticos foram propostos na década de 80 do séc. XX por Richard Feynman e Yuri Manin.Quantum computers were proposed in the 1980s by Richard Feynman and Yuri Manin. A ideia por detrás da computação quântica provinha daquilo que se considerava um dos maiores contratempos da física: grandes progressos científicos que se deparam com uma incapacidade de modelar até os sistemas simples.The intuition behind quantum computing stemmed from what was often seen as one of the greatest embarrassments of physics: remarkable scientific progress faced with an inability to model even simple systems. A mecânica quântica foi desenvolvida entre 1900 e 1925 e continua a ser a pedra basilar da química, física de matéria condensada e tecnologias que vão dos chips de computador à iluminação LED.You see, quantum mechanics was developed between 1900 and 1925 and it remains the cornerstone on which chemistry, condensed matter physics, and technologies ranging from computer chips to LED lighting ultimately rests. Mas, apesar destes sucessos, até mesmo alguns dos sistemas mais simples pareciam estar para além da capacidade humana de modelar com mecânica quântica eYet despite these successes, even some of the simplest systems seemed to be beyond the human ability to model with quantum mechanics. isto porque simular sistemas, mesmo com apenas algumas dezenas de partículas em interação, requer mais poder de computação do que os computadores convencionais podem dar ao longo de milhares de anos!This is because simulating systems of even a few dozen interacting particles requires more computing power than any conventional computer can provide over thousands of years!

Existem muitas formas de entender o porquê da mecânica quântica ser difícil de simular.There are many ways to understand why quantum mechanics is hard to simulate. Possivelmente, a forma mais simples é interpretar a teoria quântica da seguinte forma: a matéria, a um nível quântico, encontra-se simultaneamente numa multitude de configurações possíveis (conhecidas como estados).Perhaps the simplest is to see that quantum theory can be interpreted as saying that matter, at a quantum level, is in a multitude of possible configurations (known as states). Ao contrário da teoria de probabilidade clássica, estas muitas configurações do estado quântico, que podem potencialmente ser observadas, podem interferir umas com as outras, como ondas numa poça de maré.Unlike classical probability theory, these many configurations of the quantum state, which can be potentially observed, may interfere with each other like waves in a tide pool. Esta interferência, impede a utilização da amostragem estatística para obter as configurações de estado quântico.This interference prevents the use of statistical sampling to obtain the quantum state configurations. Em vez disso, temos de monitorizar todas as possíveis configurações em que um sistema quântico pode estar se quisermos entender a evolução quântica.Rather, we have to track every possible configuration a quantum system could be in if we want to understand the quantum evolution.

Considere um sistema de eletrões em que os eletrões podem estar em qualquer uma de, por exemplo, $40$ posições.Consider a system of electrons where electrons can be in any of say $40$ positions. Por conseguinte, os eletrões podem estar em qualquer uma de $2^{40}$ configurações (uma vez que cada posição pode ter ou não um eletrão).The electrons therefore may be in any of $2^{40}$ configurations (since each position can either have or not have an electron). Armazenar o estado quântico dos eletrões numa memória de computador convencional exigiria mais de $130$ GB de memória!To store the quantum state of the electrons in a conventional computer memory would require in excess of $130$ GB of memory! É substancial, mas está dentro das possibilidades de alguns computadores.This is substantial, but within the reach of some computers. Se permitirmos que as partículas estejam em qualquer uma de $41$ posições, haverá o dobro de configurações em $2^{41}$, o que requer mais de $260$ GB de memória para armazenar o estado quântico.If we allowed the particles to be in any of $41$ positions, there would be twice as many configurations at $2^{41}$ which in turn would require more than $260$ GB of memory to store the quantum state. Esta situação de aumento do número de posições não pode ser reproduzida indefinidamente se quisermos armazenar o estado convencionalmente, pois iríamos rapidamente exceder as capacidades de memória dos computadores mais poderosos do mundo.This game of increasing the number of positions cannot be played indefinitely if we want to store the state conventionally as we quickly exceed memory capacities of the world's most powerful machines. A centenas de eletrões, a memória necessária para armazenar o sistema excede o número de partículas no universo; por isso, não é sequer possível que os nossos computadores convencionais consigam sequer simular a dinâmica quântica.At a few hundred electrons the memory required to store the system exceeds the number of particles in the universe; thus there is no hope with our conventional computers to ever simulate their quantum dynamics. E, no entanto, na natureza, estes sistemas evoluem prontamente de acordo com as leis da mecânica quântica, sem se importarem com a capacidade de programar e simular a sua evolução com o poder de computação convencional.And yet in nature, such systems readily evolve in time according to quantum mechanical laws, blissfully unaware of the inability to engineer and simulate their evolution with conventional computing power.

Esta observação levou os primeiros visionários da computação quântica a fazer uma pergunta simples, conquanto poderosa: podemos transformar esta dificuldade numa oportunidade?This observation led those with an early vision of quantum computing to ask a simple yet powerful question: can we turn this difficulty into an opportunity? Especificamente, se a dinâmica quântica é difícil de simular, o que aconteceria se criássemos um hardware que tivesse efeitos quânticos como operações fundamentais?Specifically, if quantum dynamics are hard to simulate what would happen if we were to build hardware that had quantum effects as fundamental operations? Poderíamos simular sistemas de partículas em interação com recurso a um sistema que explore exatamente as mesmas leis que as que regem na natureza?Could we simulate systems of interacting particles using a system that exploits exactly the same laws that govern them naturally? Poderíamos investigar tarefas que estejam totalmente ausentes na natureza, mas que sigam ou beneficiem de leis de mecânica quântica?Could we investigate tasks that are entirely absent from nature, yet follow or benefit from quantum mechanical laws? Estas perguntas estiveram na génese da computação quântica.These questions led to the genesis of quantum computing.

A base da computação quântica é armazenar informações em estados quânticos de matéria e utilizar operações quânticas de porta para calcular nessas informações, ao tirar proveito e ao aprender a “programar” interferência quântica.The foundational core of quantum computing is to store information in quantum states of matter and to use quantum gate operations to compute on that information, by harnessing and learning to "program" quantum interference. Um dos primeiros exemplos da interferência de programação para resolver um problema considerado complexo nos nossos computadores convencionais foi levado a cabo por Peter Shor em 1994, para um problema conhecido como fatorização.An early example of programming interference to solve a problem thought to be hard on our conventional computers was done by Peter Shor in 1994 for a problem known as factoring. Resolver a fatorização deu-nos a capacidade de ultrapassar muitos dos nossos criptossistemas de chave pública subjacentes à segurança de comércio eletrónico dos dias de hoje, incluindo RSA e Criptografia de Curva Elíptica.Solving factoring brings with it the ability to break many of our public key cryptosystems underlying the security of e-commerce today, including RSA and Elliptic Curve Cryptography. Desde então, foram desenvolvidos algoritmos de computadores quânticos para muitas das nossas tarefa clássicas mais complexas: simular sistemas físicos em química, física e ciência de materiais, procurar numa base de dados não ordenada, resolver sistemas de equações lineares e aprendizagem automática.Since that time, fast and efficient quantum computer algorithms have been developed for many of our hard classical tasks: simulating physical systems in chemistry, physics, and materials science, searching an unordered database, solving systems of linear equations, and machine learning.

Criar um programa quântica para captar interferências pode parecer um desafio muito complexo e, apesar de o ser, muitas técnicas e ferramentas, incluindo o Microsoft Quantum Development Kit, foram introduzidas para tornar a programação quântica e o desenvolvimento de algoritmos mais acessível.Designing a quantum program to harness interference may sound like a daunting challenge, and while it is, many techniques and tools, including our Microsoft Quantum Development Kit, have been introduced to make quantum programming and algorithm development more accessible. Existem algumas estratégias básicas que podem ser utilizadas para manipular a interferência quântica de uma forma útil para a computação e, ao mesmo tempo, não fazer com que a solução seja perdida num labirinto de possibilidades quânticas.There are a handful of basic strategies that can be used to manipulate quantum interference in a way useful for computing, while at the same time not causing the solution to be lost in a tangle of quantum possibilities. A programação quântica é uma arte distinta da programação clássica que exige ferramentas muito diferentes para entender e expressar o raciocínio de algoritmos quânticos.Quantum programming is a distinct art from classical programming requiring very different tools to understand and express quantum algorithmic thinking. Com efeito, sem ferramentas gerais para ajudar um programador quântico a decifrar os problemas da programação quântica, o desenvolvimento de algoritmos quânticos não é tão simples.Indeed, without general tools to aid a quantum developer in tackling the art of quantum programming, quantum algorithmic development is not so easy.

Apresentamos o Microsoft Quantum Development Kit, que capacita uma comunidade cada vez maior com ferramentas para a revolução quântica nas suas tarefas, problemas e soluções.We present the Microsoft Quantum Development Kit to empower a growing community with tools to unlock the quantum revolution for their tasks, problems, and solutions. A Q#, a nossa linguagem de programação de alto nível, foi criada para resolver os desafios do processamento de informações; está integrada numa pilha de software que permite que um algoritmo quântico seja compilado para as operações primitivas de um computador quântico.Our high-level programming language, Q#, was designed to address the challenges of quantum information processing; it is integrated in a software stack that enables a quantum algorithm to be compiled down to the primitive operations of a quantum computer. Antes de abordar a linguagem de programação, é útil rever os princípios básicos nos quais a computação quântica se baseia.Before approaching the programming language, it's helpful to review the basic principles on which quantum computing is based. Vamos utilizar as regras fundamentais da computação quântica nos axiomas, em vez de detalhar as bases na mecânica quântica.We will take the fundamental rules of quantum computing to be axioms, rather than detailing their foundations in quantum mechanics. Além disso, vamos presumir que tem conhecimentos básicos de álgebra linear (vetores, matrizes, entre outros).Additionally, we will assume basic familiarity with linear algebra (vectors, matrices, and so on). Se quiser um estudo mais detalhado da história e dos princípios da computação quântica, veja a secção de referências, que contém mais informações.If a deeper study of quantum computing history and principles is desired, we refer you to the reference section containing more information.