Kubity, bramki, obwody

Skoro znamy już reguły świata kwantowego, czas na elementarz programisty kwantowego: czym dokładnie jest kubit, co robią bramki i jak czyta się obwód kwantowy — odpowiednik programu.

Kubit — bit z „pokrętłem”

Stany bazowe kubitu oznacza się |0⟩ i |1⟩ (czyt. „ket zero”, „ket jeden” — to tylko notacja). Ogólny stan kubitu to mieszanka: α·|0⟩ + β·|1⟩, gdzie α i β są wagami (amplitudami). Prawdopodobieństwo zmierzenia zera wynosi α², a jedynki β² — dlatego wagi muszą spełniać α² + β² = 1. To jedyny „wzór” w całym kursie.

Wygodna wizualizacja: sfera Blocha. Wyobraź sobie globus — biegun północny to |0⟩, południowy to |1⟩, a stan kubitu to strzałka wskazująca dowolny punkt na powierzchni. Bramki kwantowe po prostu obracają tę strzałkę. Bit klasyczny zna tylko dwa bieguny; kubit ma do dyspozycji cały globus.

Bramki — operacje na kubitach

Bramka kwantowa to odwracalna operacja zmieniająca stan kubitów — odpowiednik instrukcji procesora. Najważniejsze z nich:

BramkaDziała naCo robi
X (NOT)1 kubitzamienia |0⟩ ↔ |1⟩ — kwantowa negacja
H (Hadamard)1 kubittworzy superpozycję: z |0⟩ robi pół na pół |0⟩ i |1⟩
Z1 kubitodwraca fazę („znak”) składowej |1⟩ — niewidoczne w pojedynczym pomiarze, kluczowe dla interferencji
CNOT2 kubityneguje drugi kubit tylko wtedy, gdy pierwszy jest |1⟩ — podstawowe narzędzie splątania
Pomiar1 kubitodczytuje 0 lub 1 i kończy życie superpozycji

Co ciekawe, wystarczy niewielki zestaw bramek (np. H, T i CNOT), by zbudować dowolne obliczenie kwantowe — tak jak z bramek NAND można zbudować cały klasyczny procesor.

Obwód — partytura dla kubitów

Obwód kwantowy (ang. quantum circuit) to zapis programu: każda pozioma linia to jeden kubit, czas płynie od lewej do prawej, a symbole na liniach to bramki. Czyta się go jak partyturę — każdy kubit to osobny instrument, a kolumny to kolejne takty.

q0: ──[H]──●──[pomiar]──
           │
q1: ──────[X]──[pomiar]──

Ten trzytaktowy obwód to „Hello World” obliczeń kwantowych — tworzy stan Bella, czyli parę maksymalnie splątanych kubitów:

  1. Bramka H wprowadza pierwszy kubit w superpozycję pół na pół.
  2. Bramka CNOT (kropka ● to kubit sterujący, [X] to cel) splątuje oba kubity.
  3. Pomiar obu kubitów zwraca albo „00”, albo „11” — każde z prawdopodobieństwem 50%, ale nigdy „01” ani „10”. Wyniki są doskonale skorelowane: oto splątanie w akcji.

Co dalej?

Teoria za nami. W następnej lekcji zbudujemy dokładnie ten obwód w Pythonie i uruchomimy go — najpierw na symulatorze, potem na prawdziwym komputerze kwantowym IBM. Przejdź do lekcji Qiskit — pierwsze kroki.