Nauka wykonywania obliczeń kwantowych z artykułów Quantum KataLearn quantum computing with the Quantum Katas

Quantum Kata to seria realizowanych samodzielnie samouczków i ćwiczeń programistycznych typu open-source, które służą zarówno do nauki elementów obliczeń kwantowych, jak i programowania w języku Q#.The Quantum Katas are open-source, self-paced tutorials and programming exercises aimed at teaching the elements of quantum computing and Q# programming at the same time.

Nauka przez praktykęLearning by doing

W samouczkach i ćwiczeniach zebranych w tym projekcie położono nacisk na uczenie się przez praktykę: udostępniają one zadania programistyczne obejmujące różne tematy, od bardzo prostych do stosunkowo trudnych.The tutorials and exercises collected in this project emphasize learning by doing: they offer programming tasks that cover certain topics which progress from very simple to quite challenging. Każde zadanie wymaga wypełnienia kodu. Pierwsze zadania mogą wymagać tylko jednego wiersza, a następne mogą wymagać dużego fragmentu kodu.Each task asks you to fill in some code; the first tasks might require just one line, and the later ones might require a sizable fragment of code.

Co najważniejsze, artykuły Kata obejmują struktury testowe, które konfigurują, uruchamiają i weryfikują rozwiązania zadań.Most importantly, the katas include testing frameworks that set up, run and validate the solutions to the tasks. Dzięki temu możesz szybko uzyskiwać informacje zwrotne na temat swojego rozwiązania i ponownie rozważać swoje podejście, jeśli jest ono nieprawidłowe.This allows you to get immediate feedback on your solution and to reconsider your approach if it is incorrect.

Możesz używać artykułów kata do uczenia się w wybranym środowisku:You can use the katas for learning in your environment of choice:

  • Notesy Jupyter online w środowisku integratoraJupyter Notebooks online within the Binder environment
  • Notesy Jupyter uruchomione na komputerze lokalnymJupyter Notebooks running on your local machine
  • Visual StudioVisual Studio
  • Visual Studio CodeVisual Studio Code

Czego można się nauczyć z artykułów Quantum Kata?What can I learn with the Quantum Katas?

Poznaj podstawy obliczeń kwantowych lub bardziej zaawansowane algorytmy i protokoły kwantowe.Explore the basics and fundamentals of quantum computing or dive deeper into quantum algorithms and protocols. Zalecamy, aby na początku postępować zgodnie z tą ścieżką szkoleniową w celu zapewnienia, że dobrze opanujesz podstawowe koncepcje obliczeń kwantowych.We recommend you to follow this learning path in the beginning to make sure you have a solid grasp on the fundamental concepts of quantum computing. Oczywiście możesz pominąć znane sobie tematy, na przykład arytmetykę zespoloną, i poznawać algorytmy w dowolnej kolejności.Of course, you can skip the topics you're comfortable with, such as complex arithmetic, and learn the algorithms in any order you want.

Wprowadzenie do koncepcji obliczeń kwantowychIntroduction to quantum computing concepts

KataKata OpisDescription
Arytmetyka zespolonaComplex arithmetic W tym samouczku objaśniono podstawy matematyczne wymagane do pracy z obliczeniami kwantowymi, takie jak liczby urojone i zespolone.This tutorial explains some of the mathematical background required to work with quantum computing, such as imaginary and complex numbers.
Algebra liniowaLinear algebra Algebra liniowa służy do przedstawiania kwantowych stanów i operacji w obliczeniach kwantowych.Linear algebra is used to represent quantum states and operations in quantum computing. Ten samouczek obejmuje podstawy, w tym macierze i wektory.This tutorial covers the basics, including matrices and vectors.
Koncepcja kubituThe concept of a qubit Dowiedz się więcej na temat kubitów — jednego z podstawowych pojęć obliczeń kwantowych.Learn about qubits - one of the core concepts of quantum computing.
Bramki kwantowe z jednym kubitemSingle-qubit quantum gates W tym samouczku przedstawiono bramki kwantowe z jednym kubitem, które pełnią rolę bloków konstrukcyjnych algorytmów kwantowych i na różne sposoby przekształcają kwantowe stany kubitów.This tutorial introduces single-qubit quantum gates, which act as the building blocks of quantum algorithms and transform quantum qubit states in various ways.
Systemy z wieloma kubitamiMulti-qubit systems W tym samouczku przedstawiono systemy z wieloma kubitami, ich reprezentację w notacji matematycznej i w kodzie Q# oraz pojęcie splątania.This tutorial introduces multi-qubit systems, their representation in mathematical notation and in Q# code, and the concept of entanglement.
Bramki kwantowe z wieloma kubitamiMulti-qubit quantum gates Ten samouczek stanowi kolejną część samouczka Bramki kwantowe z jednym kubitem i koncentruje się na zastosowaniu bram kwantowych do systemów z wieloma kubitami.This tutorial follows the Single-qubit quantum gates tutorial, and focuses on applying quantum gates to multi-qubit systems.

Podstawy obliczeń kwantowychQuantum computing fundamentals

KataKata OpisDescription
Rozpoznawanie bramek kwantowychRecognizing quantum gates Seria ćwiczeń mających na celu zapoznanie się z podstawowymi bramkami kwantowymi w języku Q#.A series of exercises designed to get you familiar with the basic quantum gates in Q#. Zawiera ćwiczenia dotyczące podstawowych bramek z jednym kubitem i z wieloma kubitami, bramek sprzężonych i kontrolowanych oraz sposobów modyfikowania stanu kubita przy użyciu bramek.Includes exercises for basic single-qubit and multi-qubit gates, adjoint and controlled gates, and how to use gates to modify the state of a qubit.
Tworzenie superpozycji kwantowejCreating quantum superposition Skorzystaj z tych ćwiczeń, aby zapoznać się z koncepcją superpozycji i z programowaniem w języku Q#.Use these exercises to get familiar with the concept of superposition and programming in Q#. Obejmuje ćwiczenia dotyczące podstawowych bramek z jednym kubitem i z wieloma kubitami, superpozycji oraz kontroli przepływu i rekursji w języku Q#.Includes exercises for basic single-qubit and multi-qubit gates, superposition, and flow control and recursion in Q#.
Rozróżnianie stanów kwantowych przy użyciu pomiarówDistinguishing quantum states using measurements Rozwiąż te ćwiczenia podczas uczenia się o pomiarach kwantowych oraz o stanach ortogonalnych i nieortogonalnych.Solve these exercises while learning about quantum measurement and orthogonal and non-orthogonal states.
Wspólne pomiaryJoint measurements Zapoznaj się z informacjami o wspólnych pomiarach parzystości i o tym, jak używać operacji Miara do rozróżniania stanów kwantowych.Learn about joint parity measurements and how to use the Measure operation to distinguish quantum states.

AlgorytmyAlgorithms

KataKata OpisDescription
Teleportacja kwantowaQuantum teleportation W tym artykule kata opisano teleportację kwantową — protokół, który pozwala na komunikację stanu kwantowego przy użyciu tylko komunikacji klasycznej i wcześniej udostępnionego splątania kwantowego.This kata explores quantum teleportation - a protocol which allows communicating a quantum state using only classical communication and previously shared quantum entanglement.
Kodowanie supergęsteSuperdense coding Kodowanie supergęste to protokół, który umożliwia transmisję dwóch bitów informacji klasycznej przez wysłanie tylko jednego kubitu za pomocą wcześniej udostępnionego splątania kwantowego.Superdense coding is a protocol that allows transmission of two bits of classical information by sending just one qubit using previously shared quantum entanglement.
Algorytm Deutscha-JozsyDeutsch–Jozsa algorithm Ten algorytm słynie z tego, że jest jednym z pierwszych przykładów algorytmu kwantowego, który jest wykładniczo szybszy, niż jakikolwiek deterministyczny algorytm klasyczny.This algorithm is famous for being one of the first examples of a quantum algorithm that is exponentially faster than any deterministic classical algorithm.
Badanie właściwości wysokiego poziomu w algorytmie wyszukiwania GroveraExploring high-level properties of Grover's search algorithm Ogólne wprowadzenie do jednego z najbardziej znanych algorytmów w obliczeniach kwantowych.A high-level introduction to one of the most famous algorithms in quantum computing. Rozwiązuje problem znajdowania danych wejściowych dla czarnej skrzynki (wyrocznia), która generuje określone dane wyjściowe.It solves the problem of finding an input to a black box (oracle) that produces a particular output.
Implementowanie algorytmu wyszukiwania GroveraImplementing Grover's search algorithm Ten artykuł kata bardziej szczegółowo opisuje algorytm wyszukiwania Grovera i obejmuje pisanie wyroczni, wykonywanie kroków algorytmu i łączenie tego wszystkiego w całość.This kata dives deeper into Grover's search algorithm, and covers writing oracles, performing steps of the algorithm, and finally putting it all together.
Rozwiązywanie rzeczywistych problemów przy użyciu algorytmu Grovera: problemy SATSolving real problems using Grover's algorithm: SAT problems Seria ćwiczeń wykorzystujących algorytm Grovera do rozwiązywania rzeczywistych problemów przy użyciu logicznych problemów spełnialności (SAT) jako przykładów.A series of exercises that uses Grover's algorithm to solve realistic problems, using boolean satisfiability problems (SAT) as an example.
Rozwiązywanie rzeczywistych problemów przy użyciu algorytmu Grovera: problemy kolorowania grafówSolving real problems using Grover's algorithm: Graph coloring problems Ten artykuł kata zawiera dalszy opis algorytmu Grovera, tym razem w kontekście rozwiązywania problemów z ograniczaniem satysfakcji na przykładzie problemu kolorowania grafu.This kata further explores Grover's algorithm, this time to solve constraint satisfaction problems, using a graph coloring problem as an example.

Protokoły i bibliotekiProtocols and libraries

KataKata OpisDescription
Protokół BB84 do dystrybucji kluczy kwantowychBB84 protocol for quantum key distribution Poznaj i zaimplementuj protokół dystrybucji kluczy kwantowych, BB84, używając kubitów do wymiany kluczy kryptograficznych.Learn about and implement a quantum key distribution protocol, BB84, using qubits to exchange cryptographic keys.
Kod naprawczy dla błędu przerzucania bitówBit-flip error correcting code Zapoznaj się z korygowaniem błędów kwantowych przy użyciu najprostszych kodów naprawczych błędów kwantowych (QEC) — trzykubitowego kodu przerzucania bitów.Explore quantum error correction with the simplest of the quantum error-correction (QEC) codes - the three-qubit bit-flip code.
Szacowanie fazyPhase estimation Algorytmy szacowania fazy to jedne z najbardziej podstawowych bloków konstrukcyjnych obliczeń kwantowych.Phase estimation algorithms are some of the most fundamental building blocks of quantum computing. Dowiedz się więcej na temat szacowania faz, korzystając z tych ćwiczeń, które obejmują kwantowe szacowanie fazy oraz przygotowywanie i uruchamianie procedur szacowania fazy w języku Q#.Learn about phase estimation with these exercises that cover quantum phase estimation and how to prepare and run phase estimation routines in Q#.
Arytmetyka kwantowa: tworzenie sumatorów z przeniesieniami szeregowymiQuantum arithmetic: Building ripple-carry adders Seria szczegółowych ćwiczeń, które eksplorują sumowanie z przeniesieniami szeregowymi na komputerze kwantowym.An in-depth series of exercises that explores ripple carry addition on a quantum computer. Utwórz sumator kwantowy w miejscu, rozwiń go za pomocą innego algorytmu, a na końcu utwórz kwantowy układ odejmujący w miejscu.Build an in-place quantum adder, expand on it with a different algorithm, and finally, build an in-place quantum subtractor.

Gry ze splątaniemEntanglement games

KataKata OpisDescription
Gra CHSHCHSH game Zapoznaj się ze splątaniem kwantowym na podstawie implementacji gry CHSH.Explore quantum entanglement with an implementation of the CHSH game. Ta nielokalna gra pokazuje, w jaki sposób można zastosować splątanie kwantowe, aby zwiększyć szanse graczy na wygraną ponad to, co byłoby możliwe przy strategii czysto klasycznej.This nonlocal game shows how quantum entanglement can be used to increase the players' chance of winning beyond what would be possible with a purely classical strategy.
Gra GHZGHZ game Gra GHZ to inna gra nielokalna, ale dla trzech graczy.The GHZ game is another nonlocal game, but involves three players.
Gra w kwadrat magiczny Mermina-PeresaMermin-Peres magic square game Seria ćwiczeń, które pozwalają poznać kwantową pseudo-telepatię zastosowaną do rozwiązania gry w kwadrat magiczny.A series of exercises that explores quantum pseudo-telepathy to solve a magic square game.

ZasobyResources

Zobacz pełną serię artykułów Quantum KataSee the full series of Quantum Katas

Uruchamianie artykułów Kata w trybie onlineRun the katas online