Bramka kwantowa

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Symbol bramki Hadamarda używany w obliczeniach kwantowych i na schematach obwodów kwantowych
Bramka CNOT
Bramka SWAP
Bramka Toffoliego
Bramka Fredkina

Bramki kwantowe – proste elementy wykonujące podstawowe obliczenia przeprowadzane przez algorytmy kwantowe. Bramki kwantowe stanowią podstawowe operacje realizowane przez komputery kwantowe i służą do przetwarzania informacji kwantowej. Bramki kwantowe na schematach obwodów kwantowych oznaczamy za pomocą ramek, a w obliczeniach stosujemy postać macierzy unitarnych.

Bramka kwantowa przekształca stan kwantowy |\Psi\rangle w inny stan kwantowy |\Phi\rangle. Spośród wszystkich bramek kwantowych, cztery z nich:

 X = \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}
 T = \begin{bmatrix} 1 & 0 \\ 0 & e^{i\pi /4} \end{bmatrix}
  • bramka CNOT (zwana też bramką kontrolowanej negacji)

tworzą tzw. zbiór uniwersalny, tzn. dowolną bramkę kwantową można przybliżyć wykorzystując jedynie te 4 bramki.

Przykłady bramek kwantowych[edytuj | edytuj kod]

bramka NOT (bramka kwantowej negacji), bramka fazy, bramka Hadamarda, bramka pierwiastek z NOT (bramka pierwiastek kwadratowy z negacji)
 \sqrt{NOT} = \begin{bmatrix} 1 & -1 \\ 1 & 1 \end{bmatrix}
bramka CNOT, bramka Feynmana, bramka SWAP
 \mbox{SWAP} = \begin{bmatrix} 1&0&0&0\\0&0&1&0\\0&1&0&0\\0&0&0&1\end{bmatrix}
bramka Toffoliego, bramka Fredkina, bramka Deutscha

Właściwości[edytuj | edytuj kod]

  • obliczenia na bramkach kwantowych są odwracalne
  • mają jednakową liczbę wejść i wyjść

Realizacja bramki kwantowej NAND na dwóch kontrolowanych spinach – Przykład[edytuj | edytuj kod]

Bramkę kwantową zaprzeczenia koniunkcji lub NAND mozna zrealizować np. przy pomocy dwóch spinów elektronu oddziałujących najprostszym oddziaływaniem typu wymiennego umieszczonych w polu magnetycznym o kierunku zależnym od czasu użytym to jej pracy. Hamiltonian układu dany jest

H=-\boldsymbol{\sigma_1} \cdot \bold B-\boldsymbol{\sigma_2} \cdot \bold B-\boldsymbol{\sigma_1} \cdot \boldsymbol{\sigma_2},

gdzie \boldsymbol{\sigma_1}, \boldsymbol{\sigma_1} to operatory-wektory spinu elektronu zlozone z trzech macierzy Pauliego. Równania ruchu Blocha z równania Schrōdingera są:

\dot \boldsymbol{\sigma_1}=\boldsymbol{\sigma_1} \times \bold B + \boldsymbol{\sigma_1} \times \boldsymbol{\sigma_2}
\dot \boldsymbol{\sigma_2}=\boldsymbol{\sigma_2} \times \bold B + \boldsymbol{\sigma_2} \times \boldsymbol{\sigma_1}

Równania te można rozwiązać w przybliżeniu tzw. adiabatycznego śledzenia się wektorów spinów o infinityzymalnej precesji Larmora i wektora pola magnetycznego jeśli tylko zalozyć że |\bold B| = |\boldsymbol {\sigma_i}|. W zależności od tego czy wektory spinu są na początku oba równolegle czy antyrównolegle do pola lub antyrównolegle do siebie albo oba adiabatycznie śledzą wektor pola magnetycznego i oba razem zmieniają kierunek o 180° albo prawa strona jednego z równań znika tożsamościowo i zmienia się kierunek tylko drugiego spinu który śledzi adiabatycznie superpozycje pola i drugiego dodającego się jako pole efektywne spinu zamrożonego. Funkcja zmiany kierunku pola np. sinus jest oczywiście bezwarunkowa i nie zależy od stanu początkowego spinów co gwarantuje pracę bramki. Po czasie adiabatycznej zmiany kierunku pola \bold B o 180 stopni mamy więc

e^{-i\int H(t) dt_{op}}\begin{bmatrix} 1 \\ 0 \end{bmatrix} \otimes \begin{bmatrix} 1 \\ 0 \end{bmatrix}=\begin{bmatrix} 0 \\ -1 \end{bmatrix} \otimes \begin{bmatrix} 0 \\ -1 \end{bmatrix}
e^{-i\int H(t) dt_{op}}\begin{bmatrix} 0 \\ -1 \end{bmatrix} \otimes \begin{bmatrix} 0 \\ -1 \end{bmatrix}=\begin{bmatrix} 1 \\ 0 \end{bmatrix} \otimes \begin{bmatrix} 1 \\ 0 \end{bmatrix}
e^{-i\int H(t) dt_{op}}\begin{bmatrix} 1 \\ 0 \end{bmatrix} \otimes \begin{bmatrix} 0 \\ -1 \end{bmatrix}=\begin{bmatrix} 1 \\ 0 \end{bmatrix} \otimes \begin{bmatrix} 1 \\ 0 \end{bmatrix}
e^{-i\int H(t) dt_{op}}\begin{bmatrix} 0 \\ -1 \end{bmatrix} \otimes \begin{bmatrix} 1 \\ 0 \end{bmatrix}=\begin{bmatrix} 1 \\ 0 \end{bmatrix} \otimes \begin{bmatrix} 1 \\ 0 \end{bmatrix}

Interpretując spin do góry jako logiczną 1 a do dołu 0 i zduplikowany spin stanu końcowego jako wynik otrzymujemy bramkę zaprzeczenia koniunkcji lub NAND.

Zobacz też[edytuj | edytuj kod]