Udostępnij za pośrednictwem


Operacje na wielu kubitach

W tym artykule przedstawiono zasady wykorzystywania stanów pojedynczych kubitów do tworzenia stanów wielokubitowych oraz omówiono operacje bram, które należy uwzględnić w zestawie bramek, aby skomponować uniwersalny komputer kwantowy do obsługi wielu kubitów. Te narzędzia są niezbędne do zrozumienia zestawów bram, które są często używane w Q# kodzie. Ważne jest również, aby uzyskać intuicję, dlaczego efekty kwantowe, takie jak splątanie lub interferencja, czynią obliczenia kwantowe potężniejsze niż klasyczne obliczenia.

Bramy kwantowe jednego kubitu i wielokubitowe

Prawdziwa moc obliczeń kwantowych staje się widoczna tylko w miarę zwiększania liczby kubitów. Pojedyncze kubity mają pewne nieintuicyjne funkcje, takie jak możliwość znajdowania się w więcej niż jednym stanie jednocześnie. Jeśli jednak w komputerze kwantowym masz tylko jednokubitowe bramki, kalkulator i z pewnością klasyczny superkomputer przewyższą jego moc obliczeniową.

Moc obliczeniowa kwantowa pojawia się częściowo, ponieważ wymiar przestrzeni wektorowej wektorów stanów kwantowych rośnie wykładniczo wraz z liczbą kubitów. Oznacza to, że podczas gdy pojedynczy kubit może być trywialnie modelowany, symulowanie pięćdziesiąt kubitów obliczeń kwantowych prawdopodobnie wypchnie limity istniejących superkomputerów. Zwiększenie rozmiaru obliczeń przez tylko jeden dodatkowy kubit podwaja pamięć wymaganą do przechowywania stanu i w przybliżeniu podwaja czas obliczeniowy. To szybkie podwojenie mocy obliczeniowej jest powodem, dla których komputer kwantowy z stosunkowo małą liczbą kubitów może znacznie przekroczyć najpotężniejsze superkomputery dzisiaj, jutro i poza nimi w przypadku niektórych zadań obliczeniowych.

Stany dwóch kubitów

Jeśli masz dwa oddzielne kubity, jeden w stanie $\psi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}$, a drugi w stanie $\phi=\begin{bmatrix}\gamma\\\delta\end{bmatrix}$, odpowiedni stan dwóch kubitów jest wynikiem produktu tensorowego, czyli iloczynu Kroneckera (), wektorów, które są zdefiniowane w następujący sposób.

$$ \psi \otimes \phi = \begin{bmatrix} \alpha \\ \beta \end{bmatrix} \otimes \begin{bmatrix} \gamma \\ \delta \end{bmatrix} =\begin{bmatrix} \alpha \begin{bmatrix} \gamma \\ \delta \end{bmatrix} \\ \beta \begin{bmatrix}\gamma \\ \delta \end{bmatrix} \end{bmatrix} = \begin{bmatrix} \alpha\gamma \\ \alpha\delta \\ \beta\gamma \\ \beta\delta \end{bmatrix}. $$

W związku z tym, biorąc pod uwagę dwa stany pojedynczego kubitu $\psi$ i $\phi$, każdy o wymiarze 2, odpowiadający stan dwóch kubitów $\psi\otimes\phi$ jest czterowymiarowy. Wektor

$$ \begin{bmatrix} \alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

reprezentuje stan kwantowy na dwóch kubitach, jeśli

$$|\alpha_{00}|^2+|\alpha_{01}|^2+|\alpha_{{10}|^2+|\alpha_{{11}|^2=1.$$

Ogólnie rzecz biorąc, widać, że wektor jednostkowy $v_1 \otimes v_2 \otimes\cdots\otimes v_n$ o wymiarze $2 \cdot 2 \cdot 2 \cdots= 2^n$ reprezentuje stan kwantowy $n$ kubitów przy użyciu tej metody. Podobnie jak w przypadku pojedynczych kubitów, wektor stanu kwantowego wielu kubitów zawiera wszystkie informacje potrzebne do opisania zachowania systemu. Aby uzyskać więcej informacji na temat wektorów i produktów tensorowych, zobacz Vectors and Matrices in Quantum Computing (Wektory i macierze w obliczeniach kwantowych).

Podstawa obliczeniowa dla stanów dwukubitowych jest tworzona przez produkty tensorowe stanów bazowych z jednym kubitem. Na przykład, masz

$$ \begin{ \begin{align} 00 \equiv\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 \\ 0 0 \\ 0\\\end{bmatrix}, \qquad 01 \equiv\begin{bmatrix}1 \\ 0 0 \end{bmatrix}\otimes\begin{bmatrix}0 \\1 \end{bmatrix} 0 =\begin{bmatrix}0 \\ 1 \\ 0 \\ 0 \end{bmatrix}, \\ 10 \equiv\begin{bmatrix}0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}&=\begin{bmatrix}0 0 \\ 1 \\ 0 \\ 0 \end{bmatrix}, \qquad 11 \equiv\begin{bmatrix}0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}0 \\ 1 \end{bmatrix}=0 \begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \end{bmatrix}. \end{align} $$

Chociaż zawsze można wziąć tensorowy produkt dwóch stanów pojedynczego kubitu, aby utworzyć stan dwukubitowy, nie wszystkie stany kwantowe dwukubitowe można zapisać jako produkt tensorowy dwóch stanów pojedynczego kubitu. Na przykład nie ma stanów $\psi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ i $\phi=\begin{bmatrix}\gamma\\\delta\end{bmatrix}$ takie, że ich produkt tensorowy jest stanem

$$\psi\otimes \phi = \begin{bmatrix} 1/\sqrt{{2}\\ 0 \\ 0 \\ 1/\sqrt{{2}\end{bmatrix}.$$

Taki stan dwóch kubitów, który nie może być zapisany jako produkt tensor stanów jednego kubitu, jest nazywany cudzysłów &; splątany stan&cudzysłów;; mówi się, że dwa kubity są splątane. Luźno mówiąc, ponieważ stan kwantowy nie może być uważany za produkt tensorowy stanów pojedynczego kubitu, informacje, które zawiera stan, nie są ograniczone do żadnego z kubitów indywidualnie. Zamiast tego informacje są przechowywane nie lokalnie w korelacjach między dwoma stanami. Ta nielokalność informacji jest jedną z głównych cech wyróżniających obliczenia kwantowego w przypadku przetwarzania klasycznego i jest niezbędna dla wielu protokołów kwantowych, w tym poprawki błędów kwantowych.

Mierzenie stanów dwóch kubitów

Pomiar stanów dwóch kubitów jest podobny do pomiarów z jednym kubitem. Mierzenie stanu

$$ \begin{bmatrix} \alpha_{{00}\\\alpha___{{01}\\\alpha{{10}\\\alpha{{11}\end{bmatrix}$$

zwraca wartość $00$ z prawdopodobieństwem $|\alpha_{{00}|^2$, $01$ z prawdopodobieństwem $|\alpha_{01}|^2$, $10$ z prawdopodobieństwem $|\alpha_{{10}|^2$, i $11$ z prawdopodobieństwem $|\alpha_{11}|^2$. Zmienne $\alpha_{00}, \alpha_{{01}, \alpha_{{10} i $_$\alpha zostały celowo nazwane, aby to połączenie było jasne. Po pomiarze, jeśli wynik jest $00$, stan kwantowy systemu dwu kubitów zwinie się i jest teraz

$$ 00 \equiv\begin{bmatrix} 1 \\ 0 0 \\\\ 0 \end{bmatrix}. $$

Można również zmierzyć tylko jeden kubit w stanie kwantowym składającym się z dwóch kubitów. W przypadku mierzenia tylko jednego kubitu stanu dwóch kubitów wpływ pomiaru jest subtelnie inny niż pomiar dwóch kubitów. To jest inne, ponieważ cały układ nie ulega redukcji do stanu bazowego obliczeniowego, a raczej redukuje się tylko do jednego podsystemu. Innymi słowy, pomiar jednego kubitu w stanie składającym się z dwóch kubitów prowadzi jedynie do kolapsu powiązanego podsystemu do stanu bazy obliczeniowej.

Aby to zobaczyć, rozważ pomiar pierwszego kubitu następującego stanu, który jest tworzony przez zastosowanie przekształcenia Hadamarda $H$ na dwóch kubitach początkowo ustawionych na stan "0":

$$H^{\otimes 2}\left( \begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}\right) =\frac{{1}{2}\begin{bmatrix}1 & 1 & 1 & 1 \\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 \end{bmatrix}\begin{bmatrix}1\\ 0\\ 0\\ 0\end{bmatrix}=\frac{{1}{2}\begin{bmatrix}1\\ 1\\ 1\\ 1\end{bmatrix}\mapsto\begin{cases}\text{wynik }=0 & \frac{{1}{\sqrt{2}}\begin{bmatrix}1\\ 1\\ 0\\ 0 \end{bmatrix}\\\text{wynik }=1 & \frac{{1}{\sqrt{{2}}\begin{bmatrix}0\\ 0\\ 1\\ 1 \end{bmatrix}\\\end{cases}. $$ Oba wyniki mają 50% prawdopodobieństwa wystąpienia. Ten wynik można wywnioskować z faktu, że stan kwantowy przed pomiarem nie zmienia się, jeśli $0$ jest zamieniony z $1$ na pierwszym kubicie.

Reguła matematyczna do mierzenia pierwszego lub drugiego kubitu jest prosta. Niech e_k być k^\rm th$ wektorem podstawy obliczeniowej i $S$ być zestawem wszystkich {e_k}$ tak, aby kubit, którego dotyczy problem, przyjmuje wartość 1$ dla tej wartości $$k$.$$$$ Jeśli na przykład interesuje Cię pomiar pierwszego kubitu, $S$ będzie składać się z $e_1\equiv 10$ i $e_3\equiv 11$. Podobnie, jeśli interesuje Cię drugi kubit $S$ składa się z $e_2\equiv 01$ i $e_3 \equiv 11$. Następnie prawdopodobieństwo pomiaru wybranego kubitu na wartość $1$ jest dla wektora stanu $\psi$

$$ P(\text{wynik}=1)=\sum_{e_k \text{ w zbiorze } S}\psi^\dagger e_k e_k^\dagger\psi. $$

Uwaga

W tym artykule użyto formatu little-endian do etykietowania podstawy obliczeniowej. W formacie little-endian najpierw występują najmniej znaczące bity. Na przykład w formacie little-endian ciąg bitów 001 reprezentuje liczbę czwartą.

Ponieważ każdy pomiar kubitu może przynieść tylko $0$ lub $1$, prawdopodobieństwo pomiaru $0$ jest $1-P(\text{wyniku}=1)$, dlatego potrzebujesz tylko formuły dla prawdopodobieństwa pomiaru $1$.

Wpływ, jaki taki pomiar ma na stan, może być wyrażony matematycznie jako

$$ \psi \mapsto \frac{\sum_{e_k \text{ w zestawie } S} e_k e_k^\dagger\psi}{\sqrt{P(\text{wynik}=1)}}. $$

Ostrożny czytelnik może martwić się o to, co się stanie, jeśli mianownik ma wartość zero. Chociaż taki stan jest niezdefiniowany, nie musisz martwić się o takie zdarzenia, ponieważ prawdopodobieństwo wynosi zero!

Jeśli weźmiesz $\psi$ jako wektor stanu jednolity podany wcześniej i interesuje Cię pomiar pierwszego kubitu, wówczas

$$P(\text{pomiar pierwszego kubitu}=1) = (\psi^\dagger e_1)(e_1^\dagger\psi)+(\psi^\dagger e_3)(e_3^\dagger\psi)=|e_1^\dagger\psi|2+|e_3^\dagger\psi|^2. $$

Jest to tylko suma dwóch prawdopodobieństw, które byłyby oczekiwane do mierzenia wyników $10$ i $11$. W naszym przykładzie to się oblicza jako

$$ \frac{ {1}{4}\left|\begin{bmatrix}0& 0& 1& 0\end{bmatrix}\begin{bmatrix}1 1\\ 1\\ 1\\\end{bmatrix}\right|^2+\frac{1}{{4}\left|\begin{bmatrix}0& 0& 0& 1\end{bmatrix}\begin{bmatrix}1 1\\\\ 1\\ 1\end{bmatrix}\right|^2=\frac{{1}{{2}. $$

idealnie pasuje do naszej intuicji. Podobnie stan qubitu po pierwszym zmierzeniu jako $1$ można zapisać jako

$$ \frac{\frac{ }{2}e_1+\frac{e_3}{2}}{\sqrt{\frac{1}{2}}}=\frac{1}{\sqrt{2}}\begin{bmatrix} 0\\ 0\\ 1 1\\\end{bmatrix}$$

ponownie zgodnie z naszą intuicją.

Operacje dwóch kubitów

Podobnie jak w przypadku pojedynczego kubitu każda transformacja jednostkowa jest prawidłową operacją na kubitach. Ogólnie rzecz biorąc, przekształcenie jednostkowe na $n$ kubitach jest macierzą $O$ rozmiarze 2^n^n $ 2^n\times (tak, aby działało na wektorach o rozmiarze $$2^n$), tak aby $U^ U^{-1}=\dagger$. Na przykład brama CNOT (kontrolowana NOT) jest często używaną bramą dwukubitową i jest reprezentowana przez następującą macierz jednostkową:

$$ \operatorname{CNOT}=\begin{bmatrix} 1\ 0\ 0\ 0 \\ 0\ 1\ 0\ 0 \\ 0\ 0\ 0\ 1 \\ 0\ 0\ 1\ 0 \end{bmatrix}$$

Możemy również utworzyć bramy dwukubitowe, stosując jednokubitowe bramy na obu kubitach. Na przykład, jeśli stosujesz bramy

$$ \begin{bmatrix} a\ b\\ c\ d \end{bmatrix}$$

oraz

$$\begin{bmatrix} e\ f g\\ \ h \end{bmatrix}$$

do pierwszego i drugiego kubitu odpowiednio, co jest równoważne z zastosowaniem operatora unitarnego dla dwóch kubitów, podanego jako ich iloczyn tensorowy: $$\begin{bmatrix} a\ b\\ c\ d \end{bmatrix}\otimes\begin{bmatrix} e\ f\\ g\ h \end{bmatrix}=\begin{bmatrix} ae\ af\ be\ bf \\ ag\ ah\ bg\ bh\\\ ce\ cf\ de\ df \\ cg\ ch\ dg\ dh .\end{bmatrix}$$

W związku z tym można utworzyć bramy dwukubitowe poprzez wzięcie iloczynu tensorowego niektórych znanych bram jednokubitowych. Niektóre przykłady bram z dwoma kubitami obejmują $H \otimes H$, $X \otimes\mathbf{1}$i $X \otimes Z$.

Należy pamiętać, że podczas gdy dwie bramy jednokubitowe definiują bramkę dwukubitową, biorąc ich produkt tensorowy, odwrotne twierdzenie nie jest prawdziwe. Nie wszystkie bramki dwukubitowe mogą być zapisane jako iloczyn tensorowy bramek jednokubitowych. Taka brama jest nazywana bramą splątującą. Jednym z przykładów bramy splątania jest brama CNOT.

Intuicja za kontrolowaną bramą nie może być uogólniona do dowolnych bram. Kontrolowana brama w ogóle to brama, która działa jako tożsamość, chyba że określony kubit ma $wartość 1$. Określasz kontrolowaną jednostkę unitarna, kontrolowaną w tym przypadku przez kubity oznaczone jako $x$, za pomocą $\Lambda_x(U)$. Na przykład $\Lambda_0(U) e_{{1}\otimes{\psi}=e_{1}\otimes U{\psi}$ i $\Lambda_0(U) e_{{0}\otimes{\psi}=e_{{0}\otimes{\psi}$, gdzie $e_0$ i $e_1$ są wektorami bazowymi cubitowymi dla pojedynczego kubita odpowiadającego wartościom $0$ i $1$. Na przykład, rozważmy następującą bramę kontrolowaną Z$$, można to wyrazić jako

$$ \Lambda_0(Z)=\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&1&0\\0&0&0&-1 \end{bmatrix}=(\mathbf{\mathbf{1}\otimes H)\operatorname{CNOT}(\mathbf{1}\otimes H). $$

Budowanie kontrolowanych jednostek w wydajny sposób jest głównym wyzwaniem. Najprostszym sposobem implementacji kontrolowanych operacji unitarnych jest utworzenie bazy danych wersji kontrolowanych bram fundamentalnych i zastąpienie każdej bramy podstawowej w oryginalnej operacji unitarnej jej kontrolowanym odpowiednikiem. Ta metoda jest często marnotrawna, a zrozumienie może być użyte, aby po prostu zastąpić kilka bram wersjami kontrolowanymi w celu osiągnięcia tego samego wpływu. Z tego powodu struktura zapewnia możliwość wykonywania zarówno naiwnej metody kontrolowania, jak i umożliwia użytkownikowi zdefiniowanie kontrolowanej wersji jednostkowej, jeśli znana jest zoptymalizowana, dostrojona ręcznie wersja.

Bramy można również kontrolować przy użyciu informacji klasycznych. Klasycznie kontrolowana bramka not to po prostu zwykła bramka not, która jest stosowana tylko wtedy, gdy bit klasyczny jest $1$, w przeciwieństwie do bitu kwantowego. W tym sensie klasycznie kontrolowana brama może być uważana za instrukcję if w kodzie kwantowym, w którym brama jest stosowana tylko w jednej gałęzi kodu.

Podobnie jak w przypadku pojedynczego kubitu zestaw bramek z dwoma kubitami jest uniwersalny, jeśli każda $macierz jednostkowa 4\times 4$ może być przybliżona przez produkt bram z tego zestawu do dowolnej precyzji. Jednym z przykładów uniwersalnego zestawu bramek jest brama Hadamard, brama T i brama CNOT. Wykorzystując produkty tych bram, możemy przybliżyć dowolną macierz jednostkową na dwóch kubitach.

Systemy wielokubitowe

Stosujemy dokładnie te same wzorce zbadane w przypadku dwóch kubitów w celu utworzenia stanów kwantowych z wielu kubitów z mniejszych systemów. Takie stany są tworzone przez tworzenie produktów tensorowych mniejszych stanów. Rozważmy na przykład kodowanie ciągu $bitowego 1011001$ na komputerze kwantowym. Możesz to zakodować jako

$$ 1011001 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes 1 \begin{bmatrix}\\ 0 \end{bmatrix} 1 \otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}. $$

Bramy kwantowe działają dokładnie w taki sam sposób. Jeśli na przykład chcesz zastosować bramę $X$ do pierwszego kubitu, a następnie wykonać CNOT między drugim i trzecim kubitem, możesz wyrazić tę transformację jako

\begin{ \begin{align} &(X \otimes\operatorname{CNOT}_{{12}\otimes\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes \mathbf{\mathbf{1}) \begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\\&\qquad\qquad\equiv 0011001. \end{align}

W wielu systemach kubitów często trzeba przydzielić i cofnąć przydział kubitów, które służą jako tymczasowa pamięć dla komputera kwantowego. Mówi się, że taki kubit jest pomocniczy. Domyślnie można założyć, że stan kubitu jest inicjowany do $e_0$ po alokacji. Można również założyć, że brama powraca ponownie do $e_0$ przed zwolnieniem zasobów. To założenie jest ważne, ponieważ jeśli kubit pomocniczy zostanie splątany z innym rejestrem kubitów, gdy zostanie odłączony, proces odłączania może uszkodzić kubit pomocniczy. Z tego powodu zawsze zakładasz, że takie kubity są przywracane do stanu początkowego przed wydaniem.

Na koniec, mimo że do zestawu bram należy dodać nowe bramy w celu osiągnięcia uniwersalnego przetwarzania kwantowego dla dwukubitowych komputerów kwantowych, nie trzeba wprowadzać nowych bram w przypadku komputerów wielokubitowych. Bramy $H$, $T$i CNOT tworzą uniwersalną bramę ustawioną na wielu kubitach, ponieważ każda ogólna transformacja jednostkowa może zostać podzielona na serię dwóch rotacji kubitów. Następnie można użyć teorii opracowanej dla przypadku dwóch kubitów i użyć go ponownie tutaj, gdy masz wiele kubitów.

Uwaga

Podczas gdy notacja algebrai liniowa używana do tego punktu z pewnością może służyć do opisywania stanów wielokubitowych, staje się coraz bardziej kłopotliwa w miarę zwiększania rozmiaru stanów. Wynikowy wektor kolumnowy dla ciągu 7-bitowego, na przykład, jest $128$-wymiarowy, co sprawia, że trudno go wyrazić przy użyciu wcześniej opisanej notacji. Zamiast tego, notacja Dirac, symboliczny skrót, który upraszcza reprezentację stanów kwantowych, jest używany. Aby uzyskać więcej informacji, zobacz Notacja Dirac.