Lära sig kvantberäkning med Quantum Katas

Quantum Katas är självstudier med öppen källkod och programmeringsövningar i egen takt som syftar till att lära ut elementen inom Q# kvantberäkning och programmering på samma gång.

Lära genom att göra

Självstudierna och övningarna som samlas in i projektet skapar inlärning med hjälp av praktiska uppgifter. De innehåller programmeringsuppgifter för vissa ämnen, från att vara mycket enkla till att vara ganska utmanande. I varje uppgift ska du fylla i viss kod. I den första uppgiften kanske enbart en rad krävs och i den sista måste du kanske ange ett stort kodfragment.

Det viktigaste är att Katas innehåller testramverk som ställer in, kör och validerar lösningarna för uppgifterna. På så sätt kan du få omedelbar feedback på lösningen och du kan fundera över vilken metod du ska använda om den var fel.

Du kan använda Katas för utbildning i valfri miljö:

  • Jupyter Notebook online i Binder-miljö
  • Jupyter Notebook som körs på den lokala datorn
  • Visual Studio
  • Visual Studio-koden

Vad kan jag lära mig med Quantum Katas?

Utforska grunderna i kvantberäkning eller fördjupa dig i kvantalgoritmer och protokoll. Vi rekommenderar att du följer den här utbildningsvägen i början för att se till att du har god kunskap om de grundläggande begreppen i kvantberäkning. Du kan naturligtvis hoppa över de avsnitt som du redan kan, till exempel komplex aritmetik, och du kan lära dig algoritmerna i valfri ordning.

Introduktion till kvantberäkningsbegrepp

Kata Description
Komplex aritmetik I den här självstudien förklaras några av de matematiska bakgrunder som krävs för att arbeta med kvantberäkning, till exempel imaginära och komplexa tal.
Linjär algebra Linjär algebra används för att representera kvanttillstånd och åtgärder inom kvantberäkning. Den här självstudien beskriver grunderna, inklusive matriser och vektorer.
Kvantbitsbegreppet Lär dig mer om kvantbitar – ett av grundbegreppen inom kvantberäkning.
Kvantgrindar med en kvantbit I den här självstudien introduceras kvantgrindar med en kvantbit, som fungerar som byggstenar i kvantalgoritmer och transformerar kvantbitstillstånd på olika sätt.
System med flera kvantbitar I den här självstudien introduceras system med flera qubitar, deras representation i matematisk notation och i kod, samt begreppet Q# samman sammanbrott.
Kvantgrindar med flera kvantbitar Den här självstudien följer självstudien om kvantgrindar med en kvantbit och fokuserar på att tillämpa kvantgrindar på system med flera kvantbitar.

Grunderna i kvantberäkning

Kata Description
Känna igen kvantgrindar En serie övningar som hjälper dig att bekanta dig med de grundläggande kvantgrindarna i Q# . Innehåller övningar för grundläggande grindar med en enda qubit och flera qubit, angränsande och kontrollerade grindar och hur du använder grindar för att ändra tillståndet för en qubit.
Skapa en kvantsuperposition Använd de här övningarna för att bekanta dig med begreppet superposition och programmering i Q# . Innehåller övningar för grundläggande grindar för en enskild qubit och multi-qubit, superposition och flödeskontroll och rekursion i Q# .
Särskilja kvanttillstånd med hjälp av mätningar Lös de här övningarna samtidigt som du lär dig om kvantmätning och oronala och icke-oronala tillstånd.
Kopplade mätningar Lär dig mer om gemensamma paritetsmått och hur du använder åtgärden Mått för att särskilja kvanttillstånd.

Algoritmer

Kata Description
Kvantteleportering Den här Kata utforskar kvant-teleportering – ett protokoll som gör det möjligt att kommunicera ett kvanttillstånd med endast klassisk kommunikation och tidigare delad kvantförseelse.
Superdense-kodning Superdense-kodning är ett protokoll som tillåter överföring av två bitar klassisk information genom att bara skicka en kvantbit med hjälp av tidigare delad kvant sammanslånde.
Deutsch-Jozsa-algoritm Den här algoritmen är känd för att vara ett av de första exemplen på en kvantalgoritm som är exponentiellt snabbare än en deterministisk klassisk algoritm.
Utforska egenskaper på hög nivå för Grovers sökalgoritm En introduktion på hög nivå till en av de mest berömda algoritmerna inom kvantberäkning. Det löser problemet med att hitta indata till en svart låda (orakel) som producerar en viss utdata.
Implementera Grovers sökalgoritm Den här kata fördjupar sig i Grovers sökalgoritm och beskriver hur du skriver orakel, utför steg i algoritmen och slutligen sätter ihop allt.
Lösa verkliga problem med Grovers algoritm: SAT-problem En serie övningar som använder Grovers algoritm för att lösa realistiska problem, med booleska tilltjäningsproblem (SAT) som exempel.
Lösa verkliga problem med Grovers algoritm: Graph färgningsproblem Den här Kata utforskar grovers algoritm ytterligare, den här gången för att lösa problem med begränsningsnöjdhet ,med hjälp av ett graffärgningsproblem som exempel.

Protokoll och bibliotek

Kata Description
BB84-protokoll för distribution av kvantnycklar Lär dig mer om och implementera ett kvantnyckelsdistributionsprotokoll, BB84,som använder kvantbitar för att utbyta kryptografiska nycklar.
Bit-flip-fel vid korrigering av kod Utforska kvantfelkorrigering med de enklaste av QEC-koderna (Quantum Error-Correction) – bit-flip-koden med tre kvantbitar.
Fasuppskattning Algoritmer för fasuppskattning är några av de mest grundläggande byggstenarna inom kvantberäkning. Lär dig mer om fasuppskattning med de här övningarna som täcker kvantfasberäkning och hur du förbereder och kör rutiner för fasuppskattning i Q# .
Kvantaritmetik: Skapa ripple-carry-adderare En djupgående serie övningar som utforskar ripple carry addition på en kvantdator. Skapa en kvant adderare på plats, expandera den med en annan algoritm och skapa slutligen en kvantsubtraktor på plats.

Sammanflätningsspel

Kata Description
CHSH-spel Utforska kvantentlementering med en implementering av CHSH-spelet. Det här icke-lokala spelet visar hur kvanten kan användas för att öka spelarnas chans att vinna utöver vad som skulle vara möjligt med en helt klassisk strategi.
GHZ-spel GHZ-spelet är ett annat icke-lokalt spel, men det omfattar tre spelare.
Mermin-Peres magiska kvadratspel En serie övningar som utforskar kvant pseudotelepati för att lösa ett magiskt kvadratspel.

Resurser

Se hela serien med Quantum Katas

Köra Katas online