Kwantumcomputing leren met de Quantum Katas
De Quantum Katas zijn opensourcezelfstudies en programmeeroefeningen in eigen tempo die gericht zijn op het leren van de elementen van kwantumcomputing en Q# programmeren.
Leren door te doen
De zelfstudies en oefeningen in dit project benadrukken het leren door te doen: ze bevatten programmeertaken die betrekking hebben op bepaalde onderwerpen en die variëren van zeer eenvoudig tot moeilijk. Voor elke taak moet u bepaalde code invullen. Voor de eerste taken is dat misschien maar één regel, terwijl u voor de daaropvolgende taken mogelijk een aanzienlijk codefragment moet maken.
Het belangrijkste is dat de katas test frameworks bevatten waarmee de oplossingen voor de taken worden ingesteld, uitgevoerd en gevalideerd. Hierdoor kunt u onmiddellijk feedback krijgen over uw oplossing en kunt u uw aanpak indien nodig wijzigen als deze onjuist blijkt te zijn.
U kunt de katas gebruiken om te leren in de omgeving van uw keuze:
- Jupyter-notebooks online in de Binder-omgeving
- Jupyter-notebooks die worden uitgevoerd op uw lokale computer
- Visual Studio
- Visual Studio Code
Wat kan ik leren met de Quantum Katas?
Verken de basisbeginselen en basisbeginselen van kwantumcomputing of ga dieper in op kwantumalgoritmen en -protocollen. Het wordt aangeraden om dit leertraject zeker in het begin te volgen, om ervoor te zorgen dat u goed bekend bent met de basisconcepten van kwantumcomputing. Uiteraard kunt u bekende onderwerpen overslaan, zoals complexe wiskundige berekeningen, en de algoritmen in de gewenste volgorde doornemen.
Concepten van kwantumcomputing
| Kata | Description |
|---|---|
| Complexe wiskundige bewerkingen | In deze zelfstudie wordt een deel van de wiskundige achtergrond uitgelegd die nodig is om te werken met kwantumcomputing, zoals denkbeeldige en complexe getallen. |
| Lineaire algebra | Lineaire algebra wordt gebruikt om kwantumtoestanden en -bewerkingen in kwantumcomputing weer te geven. Deze zelfstudie gaat over de basisbeginselen, waaronder matrices en vectoren. |
| Het concept van een qubit | Meer informatie over qubits: een van de belangrijkste concepten van kwantumcomputing. |
| Kwantumpoorten met één qubit | In deze zelfstudie maakt u kennis met kwantumpoorten met één qubit, die fungeren als de bouwstenen van kwantumalgoritmen en kwantumqubittoestanden op verschillende manieren transformeren. |
| Systemen met meerdere qubits | In deze zelfstudie maakt u kennis met systemen met meerdere qubits, hun weergave in wiskundige notatie en in code, en het Q# concept van verstrengeling. |
| Kwantumpoorten met meerdere qubits | Deze zelfstudie volgt de zelfstudie Kwantumpoorten met één qubit en richt zich op het toepassen van kwantumpoorten op systemen met meerdere qubits. |
Basisprincipes van kwantumcomputing
| Kata | Description |
|---|---|
| Kwantumpoorten herkennen | Een reeks oefeningen die zijn ontworpen om u vertrouwd te maken met de basis kwantumpoorten in Q# . Bevat oefeningen voor eenvoudige poorten met één qubit en meerdere qubits, aangrenzende en gecontroleerde poorten en het gebruik van poorten om de toestand van een qubit te wijzigen. |
| Kwantumsuperpositie maken | Gebruik deze oefeningen om vertrouwd te raken met het concept van superpositie en programmeren in Q# . Bevat oefeningen voor eenvoudige poorten met één qubit en meerdere qubits, superpositie en stroombeheer en recursie in Q# . |
| Kwantumtoestanden onderscheiden met metingen | Los deze oefeningen op tijdens het leren over kwantummetingen engonale en niet-gonale toestanden. |
| Gezamenlijke metingen | Meer informatie over gezamenlijke pariteitsmetingen en het gebruik van de metingsbewerking om kwantumtoestanden te onderscheiden. |
Algoritmen
| Kata | Description |
|---|---|
| Kwantumteleportatie | Deze kata verkent kwantumteleportatie: een protocol waarmee een kwantumtoestand kan worden gecommuniceerd met behulp van alleen klassieke communicatie en eerder gedeelde kwantumverstrengeling. |
| Superdense codering | Superdense codering is een protocol waarmee twee bits klassieke informatie kunnen worden verzonden door slechts één qubit te verzenden met behulp van eerder gedeelde kwantumverstrengeling. |
| Deutsch–Jozsa-algoritme | Dit algoritme is een van de eerste voorbeelden van een kwantumalgoritme dat exponentieel sneller is dan een deterministisch klassiek algoritme. |
| Algemene eigenschappen van zoekalgoritme van Grover ontdekken | Een inleiding op hoog niveau tot een van de meest beroemde algoritmen in kwantumcomputing. Het probleem van het vinden van een invoer voor een zwarte doos (orakel) die een bepaalde uitvoer produceert, wordt opgelost. |
| Zoekalgoritme van Grover implementeren | Deze kata gaat dieper in op het zoekalgoritme van Grover en gaat over het schrijven van orakels, het uitvoeren van stappen van het algoritme en ten slotte het samenbrengen ervan. |
| Echte problemen oplossen met behulp van het algoritme van Grover: SAT-problemen | Een reeks oefeningen die gebruikmaken van het algoritme van Grover om realistische problemen op te lossen, met booleaanse satisfiability-problemen (SAT) als voorbeeld. |
| Echte problemen oplossen met behulp van het algoritme van Grover: problemen Graph kleuren | Deze kata gaat verder in op het algoritme van Grover, dit keer om problemen met beperkingen op te lossen, met behulp van een probleem met het kleuren van grafen als voorbeeld. |
Protocollen en bibliotheken
| Kata | Description |
|---|---|
| BB84-protocol voor distributie van kwantumsleutels | Meer informatie over en implementatie van een kwantumsleuteldistributieprotocol, BB84,met behulp van qubits voor het uitwisselen van cryptografische sleutels. |
| Bit-flip-fout bij het corrigeren van code | Verken kwantumfoutcorrectie met de eenvoudigste kwantumcodes voor foutcorrectie (QEC), de bit-flip-code met drie qubits. |
| Faseschatting | Faseschattingsalgoritmen zijn enkele van de meest fundamentele bouwstenen van kwantumcomputing. Meer informatie over faseschatting met deze oefeningen die betrekking hebben op kwantumfaseschatting en het voorbereiden en uitvoeren van faseschattingsroutines in Q# . |
| Kwantumberekening: Het bouwen van invoegaars voor het uitvoeren van domino's | Een diepgaande reeks oefeningen waarin de mogelijkheden van het gebruik van domino's worden verkend, worden op een kwantumcomputer opgeslagen. Bouw een in-place kwantum-invoegaar, breid deze uit met een ander algoritme en bouw ten slotte een in-place kwantum-subtractor. |
Verstrengelingsgames
| Kata | Description |
|---|---|
| CHSH-game | Verken kwantumverstrengeling met een implementatie van de CHSH-game. Dit niet-lokale spel laat zien hoe kwantumverstrengeling kan worden gebruikt om de kans van spelers op winst te vergroten boven wat mogelijk zou zijn met een uitsluitend klassieke strategie. |
| GHZ-game | Het GHZ-spel is een ander niet-lokaal spel, maar omvat drie spelers. |
| Mermin-Peres Magic Square-game | Een reeks oefeningen die kwantumse-pseudo- en kwantum-pseudo-kwantumspel verkent om een magic square-game op te lossen. |
Resources
Bekijk de volledige serie met Quantum Katas