Udostępnij za pośrednictwem


Operacje na wielu kubitach

W tym artykule omówiono reguły używane do tworzenia stanów z wieloma kubitami poza stanami pojedynczego kubitu i omówiono operacje bramy potrzebne do uwzględnienia w zestawie bramek w celu utworzenia uniwersalnego komputera kwantowego z wieloma kubitami. 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, renderują obliczenia kwantowe bardziej zaawansowane niż klasyczne obliczenia.

Bramy z pojedynczym kubitem i wieloma kubitami

Prawdziwa moc obliczeń kwantowych staje się widoczna tylko w miarę zwiększania liczby kubitów. Pojedyncze kubity mają pewne intuicyjne funkcje, takie jak możliwość znajdowania się w więcej niż jednym stanie w danym momencie. Jeśli jednak wszystko, co było w komputerze kwantowym, to bramy z jednym kubitem, kalkulator i z pewnością klasyczny superkomputer skrzełował swoją 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 i drugi w stanie $\psi=\begin{bmatrix}\\\alpha\beta\\\end{bmatrix}$\gamma$\phi=\begin{bmatrix}\delta\end{bmatrix}$ , odpowiadający stan dwóch kubitów jest podawany przez produkt tensor (lub produkt Kronecker), który jest zdefiniowany 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 i $\phi$, każdy z wymiarów 2, odpowiadający stan $\psi\phi$\otimesdwóch kubitów $\psi$ jest 4-wymiarowy. 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 stan $kwantowy n$ kubitów jest reprezentowany przez wektor $jednostkowy v_1 \otimes v_2 v_n\otimes \otimes\cdots$ wymiaru $2 \cdot 2 \cdot 2 2\cdots=^n$ przy użyciu tej konstrukcji. 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\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 \\ 0 0\\ 0\\\end{bmatrix},\qquad 01\begin{bmatrix}\equiv 1 \\ 0 0\begin{bmatrix}\end{bmatrix}\otimes\\ 1 0 \\ 1 \end{bmatrix}\begin{bmatrix}\\=0 0\\\end{bmatrix}\\, 10\begin{bmatrix}\equiv 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}1 \\ 0&\end{bmatrix} amp;=\begin{bmatrix}0 0 \\ 1\\ 0\\ 0\end{bmatrix},\qquad 11 \equiv\begin{bmatrix}0 \\ 1=\end{bmatrix}\begin{bmatrix}\end{bmatrix}\otimes\begin{bmatrix} 0 \\ 0\\ \\ 0\\ 1 .\end{bmatrix} \end{align} $$

Należy pamiętać, że chociaż zawsze można wziąć tensorowy produkt dwóch stanów jednego kubitu w celu utworzenia stanu dwu kubitu, nie wszystkie dwa stany kwantowe kubitu mogą być zapisywane jako produkt tensor dwóch stanów jednego kubitu. Na przykład nie ma stanów $\psi=\begin{bmatrix}\alpha\beta\end{bmatrix}$\\i\gamma$\phi=\begin{bmatrix}\\\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 &; entangled state"; dwa kubity mówi się, że są splątane. Mówiąc luźno, 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 obliczeń kwantowych 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 bardzo 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 _{{00}|^2$, $01$ z prawdopodobieństwem $|\alpha_^2, $10$ z prawdopodobieństwem $|\alpha_{10}|{{01}|^2$$ i $11$ z prawdopodobieństwem $|\alpha$|\alpha_{11}|^2.$ Zmienne $\alpha_, \alpha_{00}, \alpha_{{01}{10}{i $\alpha_{11}$ zostały celowo nazwane,$ aby to połączenie było jasne. Po pomiarze, jeśli wynik wynosi $00$, stan kwantowy systemu dwu kubitów uległ zwinięciu i jest teraz

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

Można również zmierzyć tylko jeden kubit stanu kwantowego z dwoma kubitami. W przypadku mierzenia tylko jednego kubitu stanu dwóch kubitów wpływ pomiaru jest subtelnie inny niż pomiar dwóch kubitów. Dzieje się tak, ponieważ cały stan nie jest zwinięty do stanu podstawy obliczeniowej, a nie zwinięty tylko do jednego podsystemu. Innymi słowy, pomiar jednego kubitu stanu dwukubitu tylko zwija powiązany podsystem do stanu podstawy obliczeniowej.

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

$$H^{\otimes 2}\left( \begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 0 \end{bmatrix}\\\right){1}{2}\begin{bmatrix}=&\frac{ 1 amp; 1 &&&\\ amp; 1 amp; 1 amp; -&1 amp&; 1 amp; -&\\1 1 amp&; -&1 amp; -1 amp; -1 amp; -&\\1 amp; -1 & -1 amp; -1 & 1\\ \end{bmatrix}\begin{bmatrix}0 0\\\end{bmatrix}=\\{1}{2}\begin{bmatrix}\\\\\frac{\\ 0 1 1 1 1 }=\begin{cases}\text{\mapsto\end{bmatrix}wynik 0 & \frac{{1}{\sqrt{2}}\begin{bmatrix}1 1 0 0\text{\end{bmatrix}\\\\ wynik }=1 &{2}}\begin{bmatrix}{1}{\sqrt{\frac{\\\\0 0\\\\ 1\\ 1 \end{bmatrix}\\\end{cases}. $$ Oba wyniki mają 50% prawdopodobieństwa wystąpienia. Może to być intuited z faktu, że stan kwantowy przed pomiarem nie zmienia się, jeśli $wartość 0$ zostanie zamieniona z $1$ na pierwszym kubitie.

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$ , będzie 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 zestawie } S}\psi^\dagger e_k e_k^\dagger\psi. $$

Uwaga

W tym artykule użyto formatu little-endian do etykietowania podstawy obliczeniowej. W niewielkim formacie endian najmniej znaczące bity są pierwsze. Na przykład liczba czwarta w formacie little-endian jest reprezentowana przez ciąg bitów 001.

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

Akcja, którą taki pomiar ma na stanie, można wyrazić matematycznie jako

$$\psi\mapsto\frac{\sum_{e_k \text{ w zestawie } S} e_k e_k^\psi}{\sqrt{\daggerP(\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$ udział w wektorze jednolitego stanu podanym powyżej i interesuje Cię pomiar pierwszego kubitu, wówczas

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

Należy pamiętać, że jest to tylko suma dwóch prawdopodobieństw, które byłyby oczekiwane do mierzenia wyników $10$ i $11$. W naszym przykładzie jest to wynikiem

$$\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{1}{=\frac{{2}. $$

idealnie pasuje do naszej intuicji. Podobnie stan po pierwszym kubitie jest mierzony 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}$$

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 \times 2^n$ (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\ \end{bmatrix}$$

Możemy również utworzyć bramy z dwoma kubitami, stosując bramy z jednym kubitem na obu kubitach. Jeśli na przykład stosujesz bramy

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

oraz

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

do pierwszych i drugich kubitów, odpowiednio, jest to równoważne zastosowaniu dwukubitowego unitary podanego przez ich produkt tensor: $$\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 z dwoma kubitami, biorąc tensorowy produkt niektórych znanych bram z jednym kubitem. 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 z jednym kubitem definiują bramę dwukrotną, biorąc swój produkt tensorowy, odwrotnie nie jest prawdziwe. Nie wszystkie bramy dwubitowe mogą być zapisywane jako produkt tensor bramek z jednym kubitem. Taka brama jest nazywana splątającą bramą. 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ę jednostkową kontrolowaną w tym przypadku na kubitie oznaczonym etykietą $$\Lambdax$ z _x(U)$. Na przykład $\Lambdae_ _0(U e_{\psi}={1}\otimes{{1}\otimes U{\psi}$ i$\Lambda _0(U) e_{{0}\otimes{\psi}=e_{0}\otimes{\psi}${ gdzie $e_0$ i e_1$ są wektorami obliczeniowymi dla pojedynczego kubitu odpowiadającego wartościom $0$ i $$1.$ Rozważmy na przykład następującą bramę kontrolowaną przez$ Z$, a następnie możesz 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. Najprostszy sposób implementacji wymaga utworzenia bazy danych kontrolowanych wersji bram podstawowych i zastąpienia każdej bramy podstawowej w oryginalnej operacji unitarnej jego kontrolowanym odpowiednikiem. Często jest to dość marnotrawne i sprytne wglądy często można użyć, aby po prostu zastąpić kilka bram kontrolowanych wersji, aby osiągnąć ten sam wpływ. Z tego powodu struktura zapewnia możliwość wykonywania naiwnej metody kontrolowania lub zezwalania użytkownikowi na zdefiniowanie kontrolowanej wersji unitary, jeśli jest znana zoptymalizowana wersja dostrojona ręcznie.

Bramy można również kontrolować przy użyciu informacji klasycznych. Klasycznie kontrolowany nie-brama, na przykład, jest tylko zwykłym nie-bramą, ale jest stosowany 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. Biorąc produkty tych bram, można przybliżyć dowolną macierz jednostkową na dwóch kubitach.

Systemy wiele kubitów

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 0 \\ 1 1\begin{bmatrix} \end{bmatrix}\otimes\\ 0 0\begin{bmatrix} \end{bmatrix}\otimes\\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 1\otimes\begin{bmatrix} \end{bmatrix}1 \\ 0\begin{bmatrix} \end{bmatrix}\otimes1 \\ 0\begin{bmatrix} \end{bmatrix}\otimes\\ 1.\end{bmatrix}\equiv\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 a trzecim kubitem, możesz wyrazić tę transformację jako

\begin{\begin{align}&Amp; (X \otimes\operatorname{CNOT}_{{12}\otimes\mathbf{1}\otimes \mathbf \mathbf{\mathbf{1}\mathbf{1}\otimes{\otimes \mathbf{\mathbf{1}) \begin{bmatrix} 0 \\ 1 1 \end{bmatrix}\otimes\\\begin{bmatrix} 0 0\begin{bmatrix} \end{bmatrix}\otimes\\ 1\begin{bmatrix} \end{bmatrix}\otimes0 \\ 1 1 1 \end{bmatrix}\otimes\begin{bmatrix} \\ 0\begin{bmatrix} \\ \end{bmatrix}\otimes1 0 \end{bmatrix}\otimes\\\begin{bmatrix} 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 jeszcze bardziej założyć, że jest zwracany ponownie do $e_0$ przed cofnięciem przydziału. To założenie jest ważne, ponieważ jeśli kubit pomocniczy zostanie splątany z innym rejestrem kubitów, gdy stanie się cofnięty, proces cofnięcia przydziału spowoduje uszkodzenie kubitu pomocniczego. 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 dwóch komputerów kwantowych kubitów, nie trzeba wprowadzać nowych bram w przypadku wielu kubitów. 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 obrotów kubitów. Następnie możesz wykorzystać teorię opracowaną dla przypadku dwóch kubitów i użyć jej ponownie tutaj, gdy masz wiele kubitów.

Uwaga

Podczas gdy notacja algebrai liniowa, która została użyta do tej pory, z pewnością może być używana do opisywania stanów wielokubitowych, staje się coraz bardziej kłopotliwe, gdy zwiększasz rozmiar stanów. Wynikowy wektor kolumnowy dla ciągu 7-bitowego długości, na przykład, jest $128$ wymiarowy, co sprawia, że wyrażanie go przy użyciu notacji opisanej wcześniej bardzo kłopotliwej. 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.