Pozadí a historie kvantových výpočtůQuantum computing history and background

V posledních letech se objevilo mnoho nových počítačových technologií. Kvantové výpočty jsou pravděpodobně tou, která od vývojářů vyžaduje nejzásadnější změnu přístupu.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. Kvantové počítače navrhli v 80. letech minulého století Richard Feynman a Jurij Manin.Quantum computers were proposed in the 1980s by Richard Feynman and Yuri Manin. Intuice stojící za kvantovými výpočty vychází z toho, co se často považovalo za téměř největší ostudu fyziky: pozoruhodný vědecký pokrok narážející na neschopnost modelovat byť jen jednoduché systémy.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. Kvantová mechanika se rozvíjela v letech 1900 až 1925 a dodnes zůstává úhelným kamenem, na kterém pevně spočívá chemie, fyzika kondenzovaného stavu a technologie od počítačových čipů až po osvětlení diodami 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. Přes tyto úspěchy se však dokonce i některé z nejjednodušších systémů zdají být mimo lidské možnosti modelování s využitím kvantové mechaniky.Yet despite these successes, even some of the simplest systems seemed to be beyond the human ability to model with quantum mechanics. Důvodem je skutečnost, že i simulace systémů o pouhých několika desítkách částic, které spolu interagují, vyžaduje větší výpočetní výkon, než by jakýkoli běžný počítač mohl poskytnout za tisíce let!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!

Obtížnost simulace kvantové mechaniky je možné chápat mnoha způsoby.There are many ways to understand why quantum mechanics is hard to simulate. Nejjednodušším z pohledů je interpretace kvantové teorie jako výroku, že hmota na kvantové úrovni je současně v mnoha různých možných konfiguracích (označovaných jako stavy).Perhaps the simplest is to see that quantum theory can be interpreted as saying that matter, at a quantum level, is simultaneously in a host of different possible configurations (known as states) at the same time. Na rozdíl od klasické teorie pravděpodobnosti se množství těchto konfigurací kvantového stavu, které lze potenciálně pozorovat, může vzájemně ovlivňovat podobně jako vlny v přílivovém jezírku.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. Toto ovlivňování brání použití statistického vzorkování ke zjištění konfigurací kvantového stavu.This interference prevents the use of statistical sampling to obtain the quantum state configurations. Pokud chceme porozumět kvantové evoluci, musíme spíš sledovat každou možnou konfiguraci, ve které by se kvantový systém mohl nacházet.Rather, we have to track every possible configuration a quantum system could be in if we want to understand the quantum evolution.

Podívejme se například na soustavu elektronů, ve které můžou být elektrony ve kterékoli ze zhruba $40$ pozic.Consider a system of electrons where electrons can be in any of say $40$ positions. Elektrony se proto můžou nacházet ve kterékoli z $2^{40}$ konfigurací (protože každá pozice může, ale nemusí obsahovat elektron).The electrons therefore may be in any of $2^{40}$ configurations (since each position can either have or not have an electron). K uložení kvantového stavu elektronů v běžné počítačové paměti bychom jí potřebovali víc než $130$ GB!To store the quantum state of the electrons in a conventional computer memory would require in excess of $130$ GB of memory! Je to hodně, ale některé počítače by to zvládly.This is substantial, but within the reach of some computers. Kdybychom částicím povolili kteroukoli z $41$ pozic, bylo by konfigurací dvakrát víc ($2^{41}$), což by vyžadovalo více než $260$ GB paměti pro uložení kvantového stavu.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. Tuto hru se zvyšováním počtu pozic nejde hrát donekonečna, pokud chceme stav ukládat běžným způsobem, protože bychom brzy překročili kapacitu paměti i těch nejvýkonnějších počítačů na světě.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. Při několika stovkách elektronů by paměť potřebná k uložení systému překročila počet částic ve vesmíru; není proto žádná naděje, že by běžné počítače dokázaly kvantovou dynamiku alespoň simulovat.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. Přesto se ale v přírodě takové systémy neustále bez problémů vyvíjejí podle zákonů kvantové mechaniky v blažené neznalosti naší neschopnosti realizovat a simulovat jejich vývoj běžným výpočetním výkonem.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.

Toto pozorování vedlo ty, kdo už měli o kvantových výpočtech představu, k jednoduché, ale důležité otázce: Může se z této komplikace stát nová příležitost?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? Řečeno konkrétně: když se kvantová dynamika simuluje obtížně, co by se stalo, kdybychom měli vyrobit hardware, jehož základními operacemi by byly kvantové efekty?Specifically, if quantum dynamics are hard to simulate what would happen if we were to build hardware that had quantum effects as fundamental operations? Mohli bychom simulovat systémy interagujících částic pomocí systému využívajícího přesně tytéž zákony, které je řídí přirozeně?Could we simulate systems of interacting particles using a system that exploits exactly the same laws that govern them naturally? Mohli bychom prozkoumat úlohy, které se v přírodě naprosto nevyskytují, ale dodržují zákony kvantové mechaniky nebo by je mohly využívat?Could we investigate tasks that are entirely absent from nature, yet follow or benefit from quantum mechanical laws? Tyto otázky vedly ke zrodu kvantových výpočtů.These questions led to the genesis of quantum computing.

Základem kvantových výpočtů je ukládání informací v kvantových stavech hmoty. K výpočtům s těmito informacemi se používají operace s kvantovými hradly, které ovládají kvantovou interferenci a učí se ji „programovat“.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. S jedním z prvních příkladů naprogramování ovlivňování tak, aby řešilo problém, který byl u běžných počítačů považován za obtížný, přišel v roce 1994 Peter Shor. Jednalo se o problém rozkladu.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. Nalezení řešení pro rozklad přineslo i schopnost prolomit mnoho kryptografických systémů s veřejnými klíči, které tvoří základ dnešního elektronického obchodování, včetně šifrování RSA a ECC (Elliptic Curve Cryptography).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. Od té doby byly pro mnohé z náročných klasických úloh vyvinuty rychlé a efektivní kvantové počítačové algoritmy: simulace fyzických systémů v oblasti chemie, fyziky a nauky o materiálech, hledání v neřazené databázi, řešení soustav lineárních rovnic a strojové učení.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.

Návrh kvantového programu, který bude ovládat vzájemné ovlivňování, může znít jako náročná výzva; i když takový skutečně je, bylo uvedeno mnoho technik a nástrojů včetně naší sady Microsoft Quantum Development Kit, díky nimž je kvantové programování a vývoj algoritmů přístupnější.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. Existuje několik základních strategií, na základě kterých lze manipulovat s kvantovým ovlivňováním tak, aby to bylo užitečné pro provádění výpočtů a aby to současně nevedlo ke ztrátě řešení ve spleti kvantových možností.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. Kvantové programování se liší od klasického programování a pro pochopení a vyjádření kvantového algoritmického myšlení vyžaduje úplně jiné nástroje.Quantum programming is a distinct art from classical programming requiring very different tools to understand and express quantum algorithmic thinking. Bez obecných nástrojů, které kvantovému vývojáři pomáhají proniknout do umění kvantovému programování, by vývoj kvantových algoritmů samozřejmě nebyl snadný.Indeed, without general tools to aid a quantum developer in tackling the art of quantum programming, quantum algorithmic development is not so easy.

Přicházíme se sadou Microsoft Quantum Development Kit, abychom neustále rostoucí komunitě pro její úkoly, problémy a řešení poskytli nástroje pro odemknutí kvantové revoluce.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. Q#, náš programovací jazyk vysoké úrovně, byl navržen tak, aby řešil výzvy kvantového zpracování informací; je integrovaný do softwarového zásobníku, který umožňuje zkompilování kvantového algoritmu až na úroveň primitivních operací kvantového počítače.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. Než přejdete k programovacímu jazyku, je vhodné projít si základní principy, na kterých jsou kvantové výpočty založené.Before approaching the programming language, it's helpful to review the basic principles on which quantum computing is based. K základním pravidlům kvantových výpočtů budeme přistupovat jako k axiomům a jejich podrobnými základy v kvantové mechanice se zabývat nebudeme.We will take the fundamental rules of quantum computing to be axioms, rather than detailing their foundations in quantum mechanics. Dále budeme předpokládat základní znalosti lineární algebry (vektory, matice atd.).Additionally, we will assume basic familiarity with linear algebra (vectors, matrices, and so on). Pokud budete chtít studovat historii kvantových výpočtů a principů do větší hloubky, najdete další informace v části s odkazy.If a deeper study of quantum computing history and principles is desired, we refer you to the reference section containing more information.