\documentclass{article} \usepackage[top=1.5cm,bottom=1.5cm]{geometry} \usepackage[utf8]{inputenc} \usepackage{amsfonts} \usepackage{hyperref} \usepackage{mathtools} \usepackage{multicol} \usepackage{polski} \usepackage{qcircuit} \newcommand\CC{\mathbb{C}} \newcommand\NN{\mathbb{N}} \DeclarePairedDelimiter\ket{\lvert}{\rangle} \DeclarePairedDelimiter\bra{\langle}{\rvert} \begin{document} \section{Bramki} % TODO Bramki X, Y, Z \subsection{Bramki odwracalne} Bramka $U$ działająca na $m$ kubitach jest odwracalna, jeśli liczba wejść bramki jest równa liczbie wyjść. \subsection{Bramka Hadamarda} $$ \Qcircuit @C=1em @R=1em { & \gate{H} & \qw } $$ $$ H = \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix} $$ \begin{align*} H(|0\rangle) & = \frac{1}{\sqrt{2}} |0\rangle + \frac{1}{\sqrt{2}} |1\rangle =: |+\rangle \\ H(|1\rangle) & = \frac{1}{\sqrt{2}} |0\rangle - \frac{1}{\sqrt{2}} |1\rangle =: |-\rangle \\ H(|+\rangle) & = |0\rangle \\ H(|-\rangle) & = |1\rangle \end{align*} \subsection{Bramka CNOT} Jest to bramka kontrolowanej negacji. \[ \Qcircuit @C=1em @R=.7em { \lstick{\ket{\alpha}} & \ctrl{1} & \rstick{\ket{\alpha}} \qw \\ \lstick{\ket{\beta}} & \targ & \rstick{\ket{\alpha \oplus \beta }} \qw } \] \begin{multicols}{2} \begin{align*} \ket{00} \rightarrow \ket{00} \\ \ket{01} \rightarrow \ket{01} \\ \ket{10} \rightarrow \ket{11} \\ \ket{11} \rightarrow \ket{10} \end{align*} $$ \text{CNOT} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0 \end{bmatrix} $$ \end{multicols} \subsection{Bramka SWAP} Zamienia kubity ze sobą. \[ \Qcircuit @C=1em @R=2em { \lstick{\ket{\alpha}} & \qswap & \rstick{\ket{\beta}} \qw \\ \lstick{\ket{\beta}} & \qswap \qwx & \rstick{\ket{\alpha}} \qw } \] \begin{multicols}{2} \begin{align*} \ket{00} \rightarrow \ket{00} \\ \ket{01} \rightarrow \ket{10} \\ \ket{10} \rightarrow \ket{01} \\ \ket{11} \rightarrow \ket{11} \end{align*} $$ \text{SWAP} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} $$ \end{multicols} Implementowalna przy pomocy bramki CNOT. \[ \Qcircuit @C=1em @R=.7em { \lstick{\ket{\alpha}} & \ctrl{1} & \targ & \ctrl{1} & \rstick{\ket{\beta}} \qw \\ \lstick{\ket{\beta}} & \targ & \ctrl{-1} & \targ & \rstick{\ket{\alpha}} \qw } \] \subsection{Bramka Toffoliego} \[ \Qcircuit @C=1em @R=.7em { \lstick{\ket{a}} & \ctrl{1} & \rstick{\ket{a}} \qw \\ \lstick{\ket{b}} & \ctrl{1} & \rstick{\ket{b}} \qw \\ \lstick{\ket{c}} & \targ & \rstick{\ket{c \oplus (a \land b) }} \qw } \] \begin{multicols}{2} \begin{align*} \ket{000} \rightarrow \ket{000} \\ \ket{001} \rightarrow \ket{001} \\ \ket{010} \rightarrow \ket{010} \\ \ket{011} \rightarrow \ket{011} \\ \ket{100} \rightarrow \ket{100} \\ \ket{101} \rightarrow \ket{101} \\ \ket{110} \rightarrow \ket{111} \\ \ket{111} \rightarrow \ket{110} \end{align*} W zależności od ustawienia kubitów, bramka implementuje następujące operacje: \begin{align*} c = 0 &\longrightarrow a \land b \\ c = 1 &\longrightarrow \lnot (a\land b) \\ a = b = 1 & \longrightarrow \lnot c \\ a = 1, c = 0 & \longrightarrow \text{copy } b \text{ to } c \end{align*} \end{multicols} Zbiór bramek odwracalnych $R$ nazywamy uniwersalnym, jeśli przy użyciu bramek należących do $R$, można zbudować dowolny układ odwracalny. \section{Układy kwantowe} \subsection{Półsumator} Dodaje kubity $a$ i $b$, dając w wyniku bit sumy $s$ i bit przeniesienia (carry) $c$. \[ \Qcircuit @C=1em @R=.7em { \lstick{\ket{a}} & \ctrl{1} & \ctrl{1} & \rstick{\ket{a}} \qw \\ \lstick{\ket{b}} & \ctrl{1} & \targ & \rstick{\ket{s}} \qw \\ \lstick{\ket{0}} & \targ & \qw & \rstick{\ket{c}} \qw } \] % TODO Teleportacja kwantowa \end{document}