Teleportacja kwantowa
Na potrzeby tego modułu Qiskit w klasach uczniowie muszą mieć działające środowisko Python z zainstalowanymi następującymi pakietami:
qiskitv2.1.0 lub nowszyqiskit-ibm-runtimev0.40.1 lub nowszyqiskit-aerv0.17.0 lub nowszyqiskit.visualizationnumpypylatexenc
Aby skonfigurować i zainstalować powyższe pakiety, zapoznaj się z przewodnikiem Instalacja Qiskit. Aby uruchamiać zadania na prawdziwych komputerach kwantowych, uczniowie będą musieli założyć konto IBM Quantum®, postępując zgodnie z krokami opisanymi w przewodniku Konfiguracja konta IBM Cloud.
Ten moduł był testowany i wykorzystał 14 sekund czasu QPU. To jedynie szacunek. Twoje rzeczywiste zużycie może się różnić.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'
Obejrzyj poniższy przewodnik po module przygotowany przez dr Katie McCormick lub kliknij tutaj, aby obejrzeć go na YouTube.
Wprowadzenie i tło
Teleportacja kwantowa to technika z dziedziny fizyki kwantowej, która umożliwia transfer informacji kwantowej z jednego miejsca do drugiego bez fizycznego przemieszczania cząstek. W odróżnieniu od koncepcji teleportacji rodem z science fiction, proces ten nie polega na transportowaniu materii. Zamiast tego opiera się na zasadzie splątania kwantowego, w którym dwie cząstki stają się ze sobą powiązane niezależnie od odległości. Poprzez serię precyzyjnych pomiarów i klasycznej komunikacji stan kwantowy jednej cząstki może zostać odtworzony w innej cząstce w odległym miejscu, efektywnie „teleportując" informację kwantową. W tym module zobaczymy, jak działa to matematycznie, a następnie zaimplementujemy teleportację kwantową na prawdziwym komputerze kwantowym. Poniższe wprowadzenie będzie krótkie; po więcej informacji o informacji kwantowej i dokładniejsze wyjaśnienie teleportacji zalecamy kurs Johna Watrusa dotyczący Podstaw informacji kwantowej, a w szczególności sekcję o Teleportacji.
Klasyczne bity mogą przyjmować stany 0 lub 1. Kwantowe bity (Qubit) mogą znajdować się w stanach kwantowych oznaczanych i , a także w liniowych kombinacjach tych stanów, zwanych „superpozycjami", takich jak , gdzie i . Choć stany mogą istnieć w tej superpozycji, pomiar stanu „zawęzi" go do stanu lub . Parametry i są powiązane z prawdopodobieństwem każdego wyniku pomiaru zgodnie z
Stąd warunek, że .
Kolejną kluczową cechą jest to, że kwantowe bity mogą być „splątane", co oznacza, że pomiar jednego Qubit może wpływać na wynik pomiaru innego, splątanego Qubit. Zrozumienie, czym splątanie różni się od zwykłych klasycznych korelacji, jest nieco skomplikowane. Najpierw wyjaśnijmy naszą notację. Nazwijmy dwa Qubit należące do przyjaciela 0 (Alicji) i przyjaciela 1 (Boba), z których każdy jest w stanie
lub
czasami skrócone po prostu do
Zauważ, że Qubit o najniższym numerze (lub literze) znajduje się najdalej po prawej stronie. Jest to konwencja zwana notacją „little-endian", stosowana w całym Qiskit. Jeśli dwuqubitowy stan przyjaciół wynosi i zmierzą oni stan swoich odpowiednich Qubit, każde z nich znajdzie 0. Podobnie, gdyby Qubit były w stanie , każdy z ich pomiarów dałby wynik 1. To niczym nie różni się od przypadku klasycznego. Jednak w obliczeniach kwantowych możemy połączyć to z superpozycją, aby uzyskać stany takie jak
W takim stanie to, czy Qubit Alicji i Boba są w stanie 0 czy 1, nie jest jeszcze znane — nawet natura tego jeszcze nie wyznaczyła — a jednak wiemy, że zmierzą ten sam stan swojego Qubit. Na przykład, jeśli Bob zmierzy swój Qubit jako będący w stanie , jedynym sposobem, żeby to się stało, jest to, że pomiar zawalił dwuqubitowy stan do jednego z dwóch możliwych stanów — konkretnie do . To pozostawia Qubit Alicji również w stanie .
Splątanie Qubit w ten sposób nie wymaga, aby Qubit pozostawały fizycznie blisko siebie. Innymi słowy, możemy splątać Qubit, a następnie rozdzielić je na dużą odległość i wykorzystać ich splątanie do przesyłania informacji. Splątany stan jak powyższy jest podstawową jednostką splątania i jest czasami nazywany „e-bitem" — pojedynczym bitem splątania. Te e-bity można traktować jako zasoby w komunikacji kwantowej, ponieważ każdy e-bit współdzielony między odległymi partnerami może być używany — jak tu opisujemy — do przenoszenia informacji z jednego miejsca do drugiego.
Pierwszą myślą wielu osób uczących się o tym po raz pierwszy jest kwestia naruszenia teorii względności: czy możemy użyć tego do wysyłania informacji szybciej niż światło? Jak najbardziej — pytaj i kwestionuj zasady naukowe — ale niestety to nie pozwoli nam wysyłać informacji szybciej niż światło, z powodów, które staną się jasne w trakcie tego modułu. Spoiler: co zadziwiające, NIE jest to spowodowane prędkością, z jaką ta „zawalona" informacja się propaguje, co wydaje się dziać szybciej niż światło [1]. Zaczynamy od dwóch współpracowników — Alicji i Boba — którzy początkowo są w tym samym miejscu i mogą razem pracować na tych samych Qubit. Ci współpracownicy splątają swoje Qubit. Następnie rozdzielą się do dwóch różnych lokalizacji geograficznych, zabierając ze sobą swoje odpowiednie Qubit. Alicja następnie uzyska informację kwantową na nowym Qubit Q. Nie robimy żadnych założeń dotyczących informacji na Q. Stan Q mógłby być sekretem nieznanym Alicji; mógłby być nieznany wszystkim ludziom. Ale Alicja dostaje zadanie przeniesienia informacji z Q do Boba. Zrobi to za pomocą teleportacji kwantowej.
Aby to osiągnąć, będziemy musieli znać pewne operacje kwantowe, czyli „bramki".
Operatory kwantowe (bramki)
Możesz pominąć tę sekcję, jeśli znasz już bramki kwantowe. Jeśli chcesz lepiej zrozumieć te bramki, zapoznaj się z kursem Basics of quantum information, szczególnie z pierwszymi dwoma lekcjami, dostępnymi na IBM Quantum Learning.
W tym protokole teleportacji będziemy używać przede wszystkim dwóch rodzajów bramek kwantowych: bramki Hadamarda oraz bramki CNOT. Kilka innych odegra mniejszą rolę: bramka , bramka oraz bramka SWAP.
Ten moduł można ukończyć przy bardzo ograniczonej znajomości algebry liniowej, jednak wizualizacja bramek kwantowych za pomocą macierzy i wektorów bywa pomocna. Dlatego przedstawiamy tu również macierzowo-wektorową reprezentację bramek i stanów kwantowych.
Stany, które już omówiliśmy, przyjmują (częściowo zgodnie z konwencją, a częściowo ze względu na narzucone ograniczenia) następujące postaci wektorowe:
W ten sposób dowolny stan można zapisać jako
Istnieje pewna swoboda w rozszerzeniu tej notacji na stany wieloqubitowe, ale poniższy wybór jest dość standardowy:
Mając na uwadze tę notację wektorową, możemy teraz przedstawić potrzebne bramki kwantowe, ich działanie na stany kwantowe oraz ich postaci macierzowe.
Bramka H Hadamarda: Tworzy stan superpozycji. Bramka jednoQubitowa.
Circuit z bramką Hadamarda tworzy się następująco:
from qiskit import QuantumCircuit
qc = QuantumCircuit(1)
qc.h(0)
qc.draw("mpl")
Bramka CNOT (Controlled-NOT): Ta bramka wykorzystuje dwa Qubity: sterujący i docelowy. Sprawdza stan Qubitu sterującego, który pozostaje niezmieniony. Jeśli jednak Qubit sterujący jest w stanie , bramka zmienia stan Qubitu docelowego; jeśli Qubit sterujący jest w stanie , żadna zmiana nie jest wprowadzana. W poniższej notacji przyjmijmy, że Qubit (skrajny prawy) jest sterującym, a Qubit (skrajny lewy) jest docelowym. Notacja poniżej przyjmuje postać
Zapis CNOT bywa niekiedy stosowany bez jawnego wskazania kolejności Qubitu sterującego i docelowego. W kodzie oraz na diagramach Circuit nie ma jednak żadnej dwuznaczności.
Bramka CNOT wygląda nieco inaczej w Circuit, ponieważ wymaga dwóch Qubitów. Oto jej implementacja:
qc = QuantumCircuit(2)
qc.cx(0, 1)
qc.draw("mpl")
Sprawdź swoją wiedzę
Przeczytaj poniższe pytanie, zastanów się nad odpowiedzią, a następnie kliknij trójkąt, aby ujawnić rozwiązanie.
Większość bramek ma tę samą postać macierzową w Qiskit co wszędzie indziej. Bramka CNOT działa jednak na dwa Qubity, przez co konwencje kolejności Qubitów nabierają znaczenia. Teksty, w których Qubity są uporządkowane jako , będą pokazywać inną postać macierzową bramki CNOT. Zweryfikuj przez jawne mnożenie macierzowe, że powyższa macierz CNOT działa poprawnie na stan
Odpowiedź:
Bramka : Odpowiednik operacji NOT. Bramka jednoQubitowa.
W Qiskit tworzenie Circuit z bramką wygląda następująco:
qc = QuantumCircuit(1)
qc.x(0)
qc.draw("mpl")
Bramka : Dodaje „fazę" do stanu (współczynnik, który dla stanów własnych Z, czyli i , wynosi odpowiednio 1 lub -1). Bramka jednoQubitowa.
W Qiskit tworzenie Circuit z bramką wygląda następująco:
qc = QuantumCircuit(1)
qc.z(0)
qc.draw("mpl")
Teoria
Opiszmy matematycznie protokół kwantowej teleportacji. W kolejnej sekcji zrealizujemy ten schemat na komputerze kwantowym.
Alice i Bob splatają swoje Qubity: Na początku Qubit Alice i Qubit Boba są oddzielnie w stanie (to rozsądne założenie, a zarazem właściwa inicjalizacja komputerów kwantowych IBM®). Możemy to zapisać jako lub po prostu . Obliczmy, co się dzieje, gdy Alice i Bob zastosują bramkę Hadamarda na Qubicie Alice, a następnie bramkę CNOT z Qubitem Alice jako kontrolnym i Qubitem Boba jako docelowym:
Zauważ, że teraz Qubity Alice i Boba są splątane. Choć natura nie zdecydowała jeszcze, czy oba Qubity są w stanie , czy , wiadomo, że będą w tym samym stanie. Alice i Bob się rozdzielają: Dwoje znajomych przenosi swoje Qubity do nowych lokalizacji, potencjalnie bardzo odległych od siebie. Wiąże się to z wieloma zastrzeżeniami: przenoszenie informacji kwantowej bez jej zakłócania nie jest trywialne. Można to jednak zrobić – i rzeczywiście zrobisz to w tym module. Pamiętaj jednak, że przenoszenie informacji kwantowej wiąże się z ryzykiem wystąpienia błędów.
Wprowadzamy Q: Na Qubicie Q przygotowywany jest tajny stan:
W tym momencie Q sąsiaduje po prostu z Qubitem Alice (A). Nie doszło do żadnego splątania, więc stan kwantowy wszystkich trzech Qubitów razem można zapisać jako: