renamed to notes
This commit is contained in:
28
notes/Makefile
Normal file
28
notes/Makefile
Normal file
@@ -0,0 +1,28 @@
|
||||
latex=xelatex
|
||||
pdflatex=xelatex
|
||||
bibtex=bibtex
|
||||
|
||||
chapters = chapters/introduction.tex \
|
||||
chapters/naive_simulator.tex \
|
||||
chapters/introduction_qc.tex \
|
||||
chapters/stabilizer.tex \
|
||||
chapters/graph_simulator.tex
|
||||
|
||||
all: main.pdf
|
||||
|
||||
main.pdf: main.tex main.bib $(chapters)
|
||||
$(latex) main
|
||||
$(bibtex) main
|
||||
$(latex) main
|
||||
$(pdflatex) main
|
||||
|
||||
|
||||
clean:
|
||||
-rm main.aux
|
||||
-rm main.blg
|
||||
-rm main.dvi
|
||||
-rm main.log
|
||||
-rm main.out
|
||||
-rm main.pdf
|
||||
-rm main.toc
|
||||
-rm main.bbl
|
262
notes/chapters/graph_simulator.tex
Normal file
262
notes/chapters/graph_simulator.tex
Normal file
@@ -0,0 +1,262 @@
|
||||
\section{The Graph Simulator}
|
||||
|
||||
\subsection{Mathematical Prerequisites}
|
||||
|
||||
The following definitions and lemmata are required to understand both how the
|
||||
graph formalism works and how the simulator handles gates.
|
||||
|
||||
%A $n$ qbit graph or stabilizer state is a $+1$ eigenstate of some $ p \in P_n$ where $P_n$ is the Pauli group\cite{andersbriegel2005}.
|
||||
|
||||
One can show that the Clifford group $C_n$ can be generated using the elements of $C_1$ acting on all qbits and
|
||||
the controlled phase gate $CZ$ between all qbits\cite{andersbriegel2005}. It is worth noting that the $CX$ gate can be
|
||||
generated using $CZ$ and $C_1$ gates.
|
||||
|
||||
\begin{lemma}
|
||||
Let $a \in C_1$ then $\forall \phi \in [0, 2\pi)$ also $\exp(i\phi)a \in C_1$.
|
||||
|
||||
\textbf{Note}: This is also true for $C_n \forall n >= 1$.
|
||||
\end{lemma}
|
||||
\begin{proof}
|
||||
|
||||
Let $a' := \exp(i\phi)a$. $a' \in C_1$ iff $a'pa^{\prime\dagger} \in P \forall p \in P$.
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
a'pa^{\prime\dagger} &= (\exp(i\phi)a)p(\exp(i\phi)a)^\dagger \\
|
||||
& = \exp(i\phi)ap\exp(-i\phi)a^\dagger \\
|
||||
& = \exp(i\phi)\exp(-i\phi) apa^\dagger \\
|
||||
& = apa^\dagger \in P
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
\end{proof}
|
||||
|
||||
%\begin{lemma}
|
||||
% One cannot measure phases by projecting states.
|
||||
%\end{lemma}
|
||||
%\begin{proof}
|
||||
% Let $\ket{\psi}$ be a state, $\ket{\varphi}\bra{\varphi}$ a projector. $\ket{\psi'} := \exp(i\phi)\ket{\psi}$ for some $\phi \in [0, 2\pi)$.
|
||||
%
|
||||
% \begin{equation}
|
||||
% \begin{aligned}
|
||||
% \bra{\psi'}\ket{\varphi}\bra{\varphi}\ket{\psi'} &= \exp(-i\phi)\bra{\psi}\ket{\varphi}\bra{\varphi}\exp(i\phi)\ket{\psi} \\
|
||||
% & = \exp(-i\phi)\exp(i\phi)\bra{\psi}\ket{\varphi}\bra{\varphi}\ket{\psi} \\
|
||||
% & = \bra{\psi}\ket{\varphi}\bra{\varphi}\ket{\psi}
|
||||
% \end{aligned}
|
||||
% \end{equation}
|
||||
%\end{proof}
|
||||
%
|
||||
%\begin{definition}
|
||||
% A phase $\phi \in [0, 2\pi)$ is called qbit-global, if for some qbit states $\ket{\psi}, \ket{\varphi}$ $\ket{\psi} = \exp(i\phi)\ket{\varphi}$.
|
||||
%\end{definition}
|
||||
%
|
||||
%\begin{lemma}
|
||||
% When entangling qbits via projections one can disregard qbit-global phases.
|
||||
%
|
||||
% Two qbits are entangled via projection, if for some single qbit gates $M,N$
|
||||
% and two orthonormal states $\ket{a}, \ket{b}$
|
||||
%
|
||||
% \begin{equation}
|
||||
% C^{M,N}(i,j) = \ket{a}\bra{a}_j \otimes M_i + \ket{b}\bra{b}_j \otimes N_i
|
||||
% \end{equation}
|
||||
%
|
||||
% \textbf{Remark.}
|
||||
% In particular when entangling states using $CX$ and $CZ$ one can disregard qbit-global phases.
|
||||
% This is immideatly clear when recalling \eqref{eq:CX_pr} and \eqref{eq:CZ_pr}.
|
||||
%\end{lemma}
|
||||
%
|
||||
%\begin{proof}
|
||||
% Let $\alpha, \beta \in [0, 2\pi)$ be some phases, $\ket{\psi}, \ket{\varphi}, \ket{\psi'} := \exp(i\alpha)\ket{\psi}, \ket{\varphi'} := \exp(i\beta)\ket{\varphi}$ some single qbit states,
|
||||
% $M, N, \ket{a}, \ket{b}, C^{M,N}(i,j)$ as defined above.
|
||||
%
|
||||
%\begin{equation}
|
||||
%\begin{aligned}
|
||||
% C^{M,N}(1, 0) (\ket{\psi'}\otimes\ket{\varphi'}) & = \ket{a}\braket{a}{\varphi'}\otimes M\ket{\psi'} + \ket{b}\braket{b}{\varphi'} \otimes N\ket{\psi'} \\
|
||||
% & = \exp(i\beta)\ket{a}\braket{a}{\varphi}\otimes\exp(i\alpha)M\ket{\phi} + \exp(i\beta)\ket{b}\braket{b}{\varphi}\otimes\exp(i\alpha)N\ket{\phi}\\
|
||||
% & = \exp(i(\beta + \alpha))(\ket{a}\braket{a}{\varphi}\otimes M\ket{\psi} + \ket{b}\braket{b}{\varphi} \otimes N\ket{\psi})\\
|
||||
% & = \exp(i(\beta + \alpha))C^{M,N}(1, 0) (\ket{\psi}\otimes\ket{\varphi})
|
||||
%\end{aligned}
|
||||
%\end{equation}
|
||||
%
|
||||
% Where $\exp(i(\beta + \alpha))$ is a multi-qbit-global phase which can be (following the above argumentation) disregarded.
|
||||
%
|
||||
%\end{proof}
|
||||
%
|
||||
%\begin{corrolary}
|
||||
% One can disregard global phases of elements of the $C_1$ group.
|
||||
%\end{corrolary}
|
||||
%
|
||||
%\begin{proof}
|
||||
% As it has been shown above a quantum computer cannot measure global phases. Also
|
||||
% the entanglement gates $CX, CZ$ map qbit-global phases to multi-qbit-global phases which cannot
|
||||
% be measured. It has been shown above that one can choose the $C_1$ operators such that they do not yield
|
||||
% a phase.
|
||||
%\end{proof}
|
||||
|
||||
\begin{definition}
|
||||
\begin{equation}
|
||||
C_L := \{a \in C_1 | \nexists \phi \in [0, 2\pi), b \in C_L : a = \exp(i\phi)b\}
|
||||
\end{equation}
|
||||
Is called the non-trivial local Clifford group.
|
||||
\end{definition}
|
||||
|
||||
\textbf{Remark.} When computing the elements of $C_L$ and their products one will realize that $C_L$ is not a group.
|
||||
If one however disregards a global phase the product of two $C_L$ elements will be in $C_L$ again.
|
||||
\begin{theorem}
|
||||
\begin{equation}
|
||||
| C_L | = 24
|
||||
\end{equation}
|
||||
\end{theorem}
|
||||
|
||||
\begin{proof}
|
||||
It is clear that $\forall a \in C_L$ a is a group isomorphism $P \circlearrowleft$: $apa^\dagger a p' a^\dagger = a pp'a^\dagger$.
|
||||
Therefore $a$ will preserve the (anti-)commutator relations of $P$.
|
||||
Further note that $Y = iXZ$, so one has to consider the anti-commutator relations
|
||||
of $X,Z$ only.
|
||||
|
||||
As the transformations are unitary they preserve eigenvalues, so $X$ can be mapped
|
||||
to $\pm X, \pm Y, \pm Z$ which gives $6$ degrees of freedom, the image of $Z$ has to
|
||||
anti-commute with the image of $X$, so there are four degrees of freedom left which gives
|
||||
a total of $24$ degrees of freedom.
|
||||
|
||||
\end{proof}
|
||||
|
||||
\begin{theorem}
|
||||
One can use $C_L$ instead of $C_1$ when studying stabilizer states and
|
||||
the choice of $C_L$ is arbitrary.
|
||||
\end{theorem}
|
||||
\begin{proof}
|
||||
Let $\ket{\psi}$ be a stabilizer stabilized by $\langle S_i \rangle_i$. When applying an $a \in C_1$ to
|
||||
$\ket{\psi}$ $a\ket{\psi}$ is stabilized by $\langle a S_i a^\dagger \rangle_i$, let $b \in C_L$ s.t.
|
||||
$a = \exp(i\phi)b$ then $\forall j$ $a S_j a^\dagger = \exp(i\phi)b S_j \exp(-i\phi)b^\dagger = b S_j b^\dagger$,
|
||||
so the dynamics of a state under the local Clifford group is fully described by $C_L$ and the choice of
|
||||
the phases are arbitrary.
|
||||
\end{proof}
|
||||
|
||||
From now on $C_L = \langle H, S \rangle$ (disregarding a global phase) will be used,
|
||||
one can show (by construction) that $H, S$ generate a possible choice of $C_L$, as is
|
||||
$\langle \sqrt{-iX}, \sqrt{-iZ}\rangle$ that will be used in one specific operation on graph states.
|
||||
|
||||
$$ S = \left(\begin{array}{cc} 1 & 0 \\ 0 & i \end{array}\right)$$
|
||||
$$ \sqrt{-iX} = \frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 & i \\ i & 1 \end{array}\right)$$
|
||||
$$ \sqrt{-iZ} = \exp(-i\frac{\pi}{4})\left(\begin{array}{cc} 1 & 0 \\ 0 & -i \end{array}\right)$$
|
||||
|
||||
\subsection{Introduction to the Graph Formalism}
|
||||
|
||||
The first step towards the simulation in the graph formalism has been
|
||||
the discovery of the stabilizer states and stabilizer circuits \cite{gottesman2009}\cite{gottesman1997}.
|
||||
They led to the faster simulation using stabilizer tableaux\cite{gottesman_aaronson2008} and later
|
||||
to the graph formalism\cite{schlingenmann2001}\cite{andersbriegel2005}\cite{vandennest_ea2004}.
|
||||
The following discussion eludicates the graph formalism and explains how the graph simulator works.
|
||||
|
||||
A naive state is just a vector containing the coefficients $c_i$ as defined in \ref{ref:nqbitsystems}.
|
||||
It is a quite straight forward approach and gates are applied by updating the coefficients according
|
||||
to the gate's matrix representation. A naive state has the time and space complexity $\mathcal{O}(2^n)$ which limits the number
|
||||
of qbits drastically. \\
|
||||
The stabilizer tableaux represent the state by its stabilizers i.e. by those Pauli operators of which the
|
||||
state is a $+1$ eigenstate. This has a space complexity of $\mathcal{O}(n^2)$ while updating the tableaux
|
||||
has a time complexity of $\mathcal{O}(n)$ for unitary gates and $mathcal{O}(n^2)$ for measurements.
|
||||
|
||||
A graph state now represents the state by the gates that have been applied to it starting from the $\ket{+}$ state:
|
||||
|
||||
\begin{equation}
|
||||
\ket{+} := \bigotimes\limits_{i=0}^{n-1} H_i \ket{0}
|
||||
\end{equation}
|
||||
|
||||
\begin{definition}
|
||||
\label{def:graph_state}
|
||||
|
||||
A graph state $\ket{G}$ is a 3-tuple $(V, E, O)$ where $(V = \{0, ..., n-1\}, E)$ is a graph with the vertices $V$, edges $E$
|
||||
and vertex operators $O = \{o_i | i = 0, ..., n-1; o_i \in C_L \forall i\}$. The vertex operators and edges are defined
|
||||
by the following relation:
|
||||
|
||||
\begin{equation}
|
||||
\label{eq:g_state}
|
||||
\ket{G} = \left(\bigotimes\limits_{i=0}^{n-1} o_i \right)\left(\bigotimes\limits_{\{i, j\} \in E} CZ_{i,j} \right) \ket{+}
|
||||
\end{equation}
|
||||
\end{definition}
|
||||
|
||||
Where every $o_i$ acts on the $i$-th qbit.
|
||||
|
||||
One can show that any stabilizer state can be realized as a graph state (for instance in \cite{schlingenmann2001}).
|
||||
|
||||
|
||||
|
||||
|
||||
\subsection{Operations on the Graph State}
|
||||
|
||||
\subsubsection{Single Qbit Gates}
|
||||
|
||||
Recalling \eqref{eq:g_state}
|
||||
Makes it clear that for any single qbit gate $g \in C_L$ with $g_k$ being the gate
|
||||
acting on qbit $k$ the state changes according to
|
||||
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
g_k \ket{G} &= g_k \left(\bigotimes\limits_{i=0}^{n-1} o_{i} \right)\left(\bigotimes\limits_{\{i, j\} \in E} CZ_{i,j} \right) \ket{+} \\
|
||||
&= \left(\bigotimes\limits_{i=0}^{n-1} g_k^{\delta_{i,k}}o_{i} \right)\left(\bigotimes\limits_{\{i, j\} \in E} CZ_{i,j} \right)\ket{+}
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
meaning that the graph state $(V, E, O)$ changes to $(V, E, \{o_0, ..., o_{k-1}, go_k, o_{k+1}, ..., o_{n-1}\})$
|
||||
as $C_L$ is almost a group the element $go_k \in C_L$ up to a global phase that is disregarded. All the results
|
||||
of $C_L \times C_L \rightarrow C_L, a,b \mapsto ab$ have been precomputed in a lookup table and the vertex operators
|
||||
are updated according to that lookup table.
|
||||
|
||||
\subsubsection{Controlled Phase Gate}
|
||||
|
||||
Recalling \eqref{eq:g_state}
|
||||
it is clear that some $CZ$ application is less trivial
|
||||
than a single qbit gate.
|
||||
|
||||
%\begin{struktogramm}(100, 50)
|
||||
% \ifthenelse[10]{1, 4}
|
||||
% {Both Vertex operators Commute with CZ}{\sTrue}{\sFalse}
|
||||
% \change
|
||||
% \ifend
|
||||
%\end{struktogramm}
|
||||
|
||||
|
||||
\subsubsection{Measurement of a Qbit}
|
||||
|
||||
Note that the $Z$ gate is diagonal in the $\{\ket{1}_s,\ket{0}_s\}$ basis with eigen values $1, -1$.
|
||||
This gives a simple expression for the projector on the $\ket{0}_s$ and $\ket{1}_s$ state of qbit $k$:
|
||||
|
||||
\begin{equation}
|
||||
\tilde{P^{v}_{k}} := \frac{I_k + (-1)^vZ_k}{2}, v \in {0, 1}
|
||||
\end{equation}
|
||||
|
||||
This projector trivially commutes with any non-operand vertex operator yielding for a state
|
||||
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\ket{\psi} := \left(\bigotimes\limits_{\{i,j\} \in E} CZ_{i,j}\right) \ket{+} \\
|
||||
\tilde{P^{v}_{k}} \left(\bigotimes\limits_{i=0}{n-1} o_i\right)\ket{\psi} &=
|
||||
\left(\bigotimes\limits_{i=0,i \ne k}{n-1} o_i\right) \tilde{P^{v}_{k}} o_k \ket{\psi} \\
|
||||
&= \left(\bigotimes\limits_{i=0,i \ne k}{n-1} o_i\right) o_ko_k^\dagger \tilde{P^{v}_{k}} o_k \ket{\psi} \\
|
||||
&= \left(\bigotimes\limits_{i=0,i \ne k}{n-1} o_i\right) o_k = \frac{I_k + (-1)^v o_k^\dagger Z_ko_k}{2} \ket{\psi}
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
Now $o_k$ stabilizes $P$, as it is an element of $C_L$, meaning that $o_k^\dagger Z_k o_k \in \{-1,1\}\{X_k, Y_k, Z_k\}$
|
||||
Which gives a new projector on a Pauli matrix: $P_k := o_k^\dagger Z_ko_k$
|
||||
|
||||
|
||||
|
||||
\subsection{Graph Storage}
|
||||
|
||||
One of the gread advantages of simulating in the graph formalism is a great increase
|
||||
in simulation performance and a lower memory requirement. The simulation of
|
||||
at least $10^6$ qbits on a common desktop computer should be possible\cite{andersbriegel2005}.
|
||||
Therefore one has to take care when choosing a representation of the graph state.
|
||||
The following
|
||||
|
||||
FIXME
|
||||
|
||||
|
||||
\subsection{Usage}
|
||||
FIXME
|
||||
|
||||
\subsection{Performance}
|
||||
FIXME
|
3
notes/chapters/introduction.tex
Normal file
3
notes/chapters/introduction.tex
Normal file
@@ -0,0 +1,3 @@
|
||||
\section{Introduction}
|
||||
|
||||
--
|
118
notes/chapters/introduction_qc.tex
Normal file
118
notes/chapters/introduction_qc.tex
Normal file
@@ -0,0 +1,118 @@
|
||||
% vim: ft=tex
|
||||
\section{Introduction to Binary Quantum Computing}
|
||||
|
||||
\subsection{Single Qbits}
|
||||
\label{ref:singleqbitsystems}
|
||||
|
||||
A qbit is a two-level quantum mechanical system $ \{\ket{\uparrow} \equiv \ket{1}, \ket{\downarrow} \equiv \ket{0}\} $
|
||||
with $\braket{\uparrow}{\downarrow} = 0$. One can associate
|
||||
$\ket{\uparrow} \equiv \left(\begin{array}{c} 0 \\ 1\end{array} \right)$ and
|
||||
$\ket{\downarrow} \equiv \left(\begin{array}{c} 1 \\ 0 \end{array} \right)$ which
|
||||
is helpful in the following discussion.
|
||||
|
||||
A gate operating on a qbit is a unitary operator $G \in U(2)$. One can show that
|
||||
$\forall G \in U(2)$ $G$ can be arbitrarily good as a product of unitary generator matrices\cite[Chapter 4.3]{kaye_ea2007},
|
||||
common choices for the generators are $ X, H, R_{\phi}$ and $Z, H, R_{\phi}$ with
|
||||
\label{ref:singleqbitgates}
|
||||
|
||||
\begin{equation}
|
||||
X := \left(\begin{array}{cc} 0 & 1 \\ 1 & 0\end{array}\right)
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
Z := \left(\begin{array}{cc} 1 & 0 \\ 0 & -1\end{array}\right)
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
H := \frac{1}{\sqrt{2}}\left(\begin{array}{cc} 1 & 1 \\ 1 & -1\end{array}\right)
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
R_{\phi} := \left(\begin{array}{cc} 1 & 0 \\ 0 & \exp(i\phi)\end{array}\right)
|
||||
\end{equation}
|
||||
|
||||
\subsection{$N$ Qbit Systems}
|
||||
\label{ref:nqbitsystems}
|
||||
|
||||
\begin{postulate}
|
||||
A $N$ qbit quantum mechanical state is the tensor product\cite[Definition 14.3]{wuest1995} of the $N$ single qbit
|
||||
states. The $N$ qbit operators are the tensor product of the $N$ single qbit operators.
|
||||
\end{postulate}
|
||||
|
||||
Let $\ket{0}_s := \left(\begin{array}{c} 1 \\ 0 \end{array} \right)$ and $\ket{1}_s := \left(\begin{array}{c} 0 \\ 1 \end{array} \right)$
|
||||
be the basis of the one-qbit systems. Then two-qbit basis states are
|
||||
|
||||
\begin{equation}
|
||||
\ket{0} := \ket{0b00} := \ket{0}_s \otimes \ket{0}_s := \left(\begin{array}{c} 1 \\ 0 \\ 0 \\ 0 \end{array} \right)
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\ket{1} := \ket{0b01} := \ket{0}_s \otimes \ket{1}_s := \left(\begin{array}{c} 0 \\ 1 \\ 0 \\ 0 \end{array} \right)
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\ket{2} := \ket{0b10} := \ket{1}_s \otimes \ket{0}_s := \left(\begin{array}{c} 0 \\ 0 \\ 1 \\ 0 \end{array} \right)
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\ket{3} := \ket{0b11} := \ket{1}_s \otimes \ket{1}_s := \left(\begin{array}{c} 0 \\ 0 \\ 0 \\ 1 \end{array} \right)
|
||||
\end{equation}
|
||||
|
||||
The $N$ qbit basis states can then be constructed in a similar manner.
|
||||
A general $N$ qbit state can then be written as a superposition of the
|
||||
basis states:
|
||||
|
||||
\begin{equation}
|
||||
\ket{\psi} = \sum\limits_{i = 0}^{2^N - 1} c_i \ket{i}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
\sum\limits_{i = 0}^{2^N - 1} |c_i|^2 = 1
|
||||
\end{equation}
|
||||
|
||||
|
||||
FIXME: rewrite this.
|
||||
|
||||
One can show that the gates in \ref{ref:singleqbitgates} together with an entanglement gate, such as $CX$ or $CZ$ are enough
|
||||
to generate an arbitrary $N$ qbit gate\cite[Chapter 4.3]{kaye_ea2007}.
|
||||
The matrix representation of $CX$ and $CZ$ for two qbits is given by
|
||||
|
||||
\begin{equation}
|
||||
CX(1, 0) = \left(\begin{array}{cccc} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 1 & 0 \end{array}\right)
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
CZ(1, 0) = \left(\begin{array}{cccc} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & -1 \end{array}\right)
|
||||
\end{equation}
|
||||
|
||||
Where $1$ is the act-qbit and $0$ the control-qbit. In words $CX$ ($CZ$) apply an $X$ ($Z$) gate on the act-qbit,
|
||||
if the control-qbit is set.
|
||||
The following notation\cite{dahlberg_ea2019} can be more handy when discussing more qbits:
|
||||
|
||||
\begin{equation}\label{eq:CX_pr}
|
||||
CX(i, j) = \ket{0}\bra{0}_j\otimes I_i + \ket{1}\bra{1}_j \otimes X_i
|
||||
\end{equation}
|
||||
\begin{equation}\label{eq:CZ_pr}
|
||||
CZ(i, j) = \ket{0}\bra{0}_j\otimes I_i + \ket{1}\bra{1}_j \otimes Z_i
|
||||
\end{equation}
|
||||
|
||||
Where $i$ is the act-qbit, $j$ the control-qbit and $I_i$, $Z_i$ are the identity and Pauli $Z$ gate
|
||||
operating on qbit i. Note that $CX(i, j) = H(i) CZ(i, j) H(i)$ which will be important later.
|
||||
|
||||
\subsection{Measurement}
|
||||
|
||||
\begin{postulate}
|
||||
|
||||
Let $\ket{\psi} = \alpha\ket{\phi_1} \otimes \ket{1}_n + \beta\ket{\phi_0} \otimes \ket{0}_n$ be a state
|
||||
where $\ket{1}_n, \ket{0}_n$ denote the $n$-th qbit state and $|\alpha|^2 + |\beta|^2 = 1$.
|
||||
Then the measurement of the $n$-th qbit will yield $\ket{\phi_1} \otimes \ket{1}_n$ with probability
|
||||
$|\alpha|^2$ and $\ket{\phi_0} \otimes \ket{0}_n$ with probability $|\beta|^2$.
|
||||
|
||||
This is called collapse of the wave function.
|
||||
\end{postulate}
|
||||
|
||||
Measuring a qbit will also yield a classical result $0$ or $1$ with the respective probabilities.
|
||||
|
||||
\begin{corrolary}
|
||||
In general the measurement of a qbit is not invertible, in particular it cannot be represented as a
|
||||
unitary operator.
|
||||
\end{corrolary}
|
||||
|
||||
\begin{proof}
|
||||
The measuerment in not injective: Measuring both
|
||||
$\ket{0}$ and $\frac{1}{\sqrt{2}}(\ket{0} + \ket{1}$ (can) map to $\ket{0}$.
|
||||
|
||||
Any unitary matrix $U$ has the inverse $U^\dagger \equiv U^{-1}$.
|
||||
\end{proof}
|
53
notes/chapters/naive_simulator.tex
Normal file
53
notes/chapters/naive_simulator.tex
Normal file
@@ -0,0 +1,53 @@
|
||||
% vim: ft=tex
|
||||
\section{The naive Simulator}
|
||||
|
||||
A quite big part of the simulations interesting for students and researchers is not
|
||||
covered by stabilizer states and stabilizer circuits. In particular the
|
||||
phase estimation algorithm is essential for many applications. Being able to simulate
|
||||
such an algorithm is essential for education.
|
||||
|
||||
\subsection{Simulator Core}
|
||||
|
||||
Recalling \ref{ref:nqbitsystems} an arbitrary $N$ qbit state $\ket{\psi}$ can be written as such:
|
||||
|
||||
\begin{equation}
|
||||
\ket{\psi} = \sum\limits_{i = 0}^{2^N - 1} c_i \ket{i}
|
||||
\end{equation}
|
||||
|
||||
Which yields $2^N$ coefficients $c_i = \braket{\psi}{i}$. These coefficients are used to
|
||||
store the quantum mechanical state of the simulator and are stored in NumPy arrays \cite{numpy_array}.
|
||||
They can be modified and viewed without overhead
|
||||
using python and allow fast modification using so-called NumPy ufuncs\cite{numpy_ufunc}.
|
||||
A simulator state also contains a classical state which is a length $N$ integer array containing
|
||||
the measured classical bits with a default value of $-1$.
|
||||
|
||||
The gates are implemented as NumPy ufuncs which allows an efficient
|
||||
manipulation of NumPy arrays using C code. Every gate maps a length $2^N$
|
||||
\lstinline[basicstyle=\ttfamily, language=Python]{numpy.cdouble} and a length
|
||||
$N$ \lstinline[basicstyle=\ttfamily, language=Python]{numpy.int8} array to
|
||||
a length $2^N$ \lstinline[basicstyle=\ttfamily,
|
||||
language=Python]{numpy.cdouble}, a length $N$ \lstinline[basicstyle=\ttfamily,
|
||||
language=Python]{numpy.int8} and a \lstinline[basicstyle=\ttfamily,
|
||||
language=Python]{numpy.uint64} scalar. The \lstinline[basicstyle=\ttfamily,
|
||||
language=Python]{numpy.cdouble} arrays are the quantum mechanical state before
|
||||
and after the gate; the \lstinline[basicstyle=\ttfamily,
|
||||
language=Python]{numpy.int8} arrays are the respective classical states and the
|
||||
\lstinline[basicstyle=\ttfamily, language=Python]{numpy.uint64} scalar has
|
||||
a logical one at every bit that has been measured.
|
||||
|
||||
\subsection{Implemented Gates}
|
||||
|
||||
As stated in \ref{ref:singleqbitsystems} and \ref{ref:nqbitsystems} a just a small set of gates is required to
|
||||
approximate an arbitrary unitary matrix arbitrarily good. In principle just the $X$, $R_\phi$, $H$ and $CNOT$ gate
|
||||
would be sufficient for a simulator. As however both $X$ and $Z$ are often used in practice FIXME: CITATION NEEDED
|
||||
$X$, $Z$, $R_\phi$, $H$ and $CNOT$ are implemented. They can be accessed using
|
||||
\lstinline[basicstyle=\ttfamily]{pyqcs.X}, \lstinline[basicstyle=\ttfamily]{pyqcs.Z}, \lstinline[basicstyle=\ttfamily]{pyqcs.R},
|
||||
\lstinline[basicstyle=\ttfamily]{pyqcs.H} and \lstinline[basicstyle=\ttfamily]{pyqcs.C}.
|
||||
|
||||
\subsection{Usage}
|
||||
|
||||
FIXME
|
||||
|
||||
\subsection{Performance}
|
||||
|
||||
FIXME
|
409
notes/chapters/stabilizer.tex
Normal file
409
notes/chapters/stabilizer.tex
Normal file
@@ -0,0 +1,409 @@
|
||||
\section{The Stabilizer Formalism and VOP-Free Graph States}
|
||||
|
||||
\subsection{Stabilizers and Stabilizer States}
|
||||
|
||||
This chapter discusses the stabilizer formalism that was introduced by Gottesman\cite{gottesman1997}
|
||||
for quantum error correction but soon proved to be a useful tool to describe a subset of states:
|
||||
the stabilizer states which can be simulated in polynomial time \cite{gottesman2008}.
|
||||
|
||||
|
||||
|
||||
\begin{definition}
|
||||
\begin{equation}
|
||||
p \in P_n \Rightarrow p = \bigotimes\limits_{i=0}^n p_i \\
|
||||
\forall i: p_i \in P := \{\pm 1, \pm i\} \cdot \{I, X, Y, Z\}
|
||||
\end{equation}
|
||||
|
||||
Where $X = \left(\begin{array}{cc} 0 & 1 \\ 1 & 0\end{array}\right)$,
|
||||
$Y = \left(\begin{array}{cc} 0 & i \\ -i & 0\end{array}\right)$ and
|
||||
$Z = \left(\begin{array}{cc} 1 & 0 \\ 0 & -1\end{array}\right)$ are the Pauli matrices and
|
||||
$I$ is the identity.
|
||||
|
||||
$p \in P_n$ is called a multi-local Pauli operator.
|
||||
\end{definition}
|
||||
|
||||
\begin{definition}
|
||||
For a group $G$, $g_1, ..., g_n$ are called the generators of $G$ iff $\forall g \in G: g = \prod\limits_{i \in J} g_i$ for a
|
||||
subsed $J$ of $I = \{1, ..., n\}$. We write $G = \langle g_i \rangle_i$ if G is generated by the $g_i$. The generators $g_i$ are chosen
|
||||
to be the smallest set of generators of $G$.
|
||||
\end{definition}
|
||||
|
||||
The notation $\langle g_i \rangle_i \equiv \langle g_i \rangle_{i \in I}$ is used used as a shorthand
|
||||
notation for $\langle \{g_i\}_{i \in I} \rangle$.
|
||||
|
||||
\begin{definition}
|
||||
\label{def:stabilizer}
|
||||
For a $n$ qbit state $\ket{\psi}$ $\langle S^{(i)} \rangle_{i}$ is called the stabilizer of $\ket{\psi}$ if
|
||||
|
||||
\begin{enumerate}
|
||||
\item{$\forall i = 1, ..., n$ $S^{(i)} \in P_n$}
|
||||
\item{$\forall i,j = 1, ..., n$ $[S^{(i)}, S^{(j)}] = 0$ $S^{(i)}$ and $S^{(j)}$ commute}
|
||||
\item{$\forall i = 1, ..., n$ $S^{(i)}\ket{\psi} = +1 \ket{\psi}$}
|
||||
\end{enumerate}
|
||||
\end{definition}
|
||||
|
||||
\begin{lemma}
|
||||
For every $\langle S^{(i)} \rangle_i$ fulfilling the first two conditions in definition \ref{def:stabilizer} there exists
|
||||
a (up to a global phase) unique state $\ket{\psi}$ fulfilling the third condition. This state is called stabilizer state.
|
||||
\end{lemma}
|
||||
|
||||
\begin{proof}
|
||||
All multi-local Pauli operators are hermitian (observables in terms of quantum mechanics), as the $S^{(i)}$
|
||||
commute they have a common set of eigenstates. Because each $S^{(i)}$ has eigenvalues $+1, -1$, there
|
||||
exist $2^n$ eigenstates, one state $\ket{\psi}$ with eigenvalue $+1$ for all $S^{(i)}$. As the dimension of $n$ qbits is $2^n$
|
||||
the state $\ket{psi}$ is unique up to a global phase.
|
||||
\end{proof}
|
||||
|
||||
One can study the dynamics of stabilizer states using only the stabilizers\cite{nielsen_chuang_2010}. Two important
|
||||
cases are the unitary transformation of a state and the measurement of a qbit. When applying a unitary gate to a stabilizer
|
||||
state $\ket{\psi}$ the resulting state will in general be no stabilizer state anymore, however there exists a group of
|
||||
transformations that map stabilizers to other stabilizers: the Clifford group.
|
||||
|
||||
\begin{definition}
|
||||
\begin{equation}
|
||||
C_n := \{U \in SU(2) | UpU^\dagger \in P_n \forall p \in P_n\}
|
||||
\end{equation}
|
||||
is called the Clifford group on $n$ qbits.
|
||||
$C_1$ is called the local Clifford group.
|
||||
\end{definition}
|
||||
|
||||
The properties of this group will be discussed later, for the time being is existence is enough.
|
||||
|
||||
\begin{lemma}
|
||||
Let $\ket{\psi}$ be stabilized by $\langle S^{(i)} \rangle_i$, then $U\ket{\psi}$ is stabilized
|
||||
by $\langle US^{(i)}U^\dagger \rangle_i$.
|
||||
\end{lemma}
|
||||
|
||||
\begin{proof}
|
||||
$$ U\ket{\psi} = US^{(i)}\ket{\psi} = US^{(i)}U^\dagger U\ket{\psi}$$
|
||||
So $U\ket{\psi}$ is a $+1$ eigenstate of $US^{(i)}U^\dagger$.
|
||||
\end{proof}
|
||||
|
||||
This is an important insight that is used for simulations\cite{gottesman_aaronson2008}, as
|
||||
updating the $n$ stabilizers that are a tensor product of $n$ Pauli matrices scales with roughly
|
||||
$\mathcal{O}(n^2)$ instead of $\mathcal{O}(2^n)$ for the state vector approach.
|
||||
|
||||
Every qbit can be measured in the $X, Y$ or $Z$ basis which is a projection using
|
||||
|
||||
\begin{equation}
|
||||
\frac{I + (-1)^s g_a}{2}
|
||||
\end{equation}
|
||||
|
||||
Where $g_a \in \{Z_a, Y_a, X_a\}$ and $s \in \{0, 1\}$. How the stabilizers change when
|
||||
measuring a qbit is given by the following lemma:
|
||||
|
||||
\begin{lemma}
|
||||
\label{lemma:stab_measurement}
|
||||
Let $J := \{ S^{(i)} | [g_a, S^{(i)}] \neq 0\}$. Then
|
||||
|
||||
\begin{enumerate}
|
||||
\item{If $J = \{\}$, one value is measured with probability $1$ and the stabilizers are unchanged.}
|
||||
\item{If $J \neq \{\}$, $1$ and $0$ are measured with probability $\frac{1}{2}$ and after choosing
|
||||
a $j \in J$ the new state $\ket{\psi'}$ is stabilized by
|
||||
\begin{equation}
|
||||
\langle \{(-1)^s g_a\} \cup \{S^{(i)} S^{(j)} | S^{(i)} \in J \setminus \{S^{(j)}\} \} \cup J^c\rangle
|
||||
\end{equation}}
|
||||
\end{enumerate}
|
||||
\end{lemma}
|
||||
|
||||
\begin{proof}
|
||||
\begin{enumerate}
|
||||
\item{As $g_a$ commutes with all stabilizers, $\ket{\psi}$ is an eigenstate of $g_a$,
|
||||
so the result of the measurement is deterministic and $\ket{\psi}$ is left unchanged.}
|
||||
\item{As $g_a$ is a Pauli operator and $S^{(i)} \in J$ are multi-local Pauli operators,
|
||||
$S^{(i)}$ and $g_a$ anticommute. Choose a $S^{(j)} \in J$. Then
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
P(s=+1) &= \hbox{Tr}\left(\frac{I + g_a}{2}\ket{\psi}\bra{\psi}\right) \\
|
||||
&= \hbox{Tr}\left(\frac{I + g_a}{2}S^{(j)} \ket{\psi}\bra{\psi}\right)\\
|
||||
&= \hbox{Tr}\left(S^{(j)}\frac{I - g_a}{2}\ket{\psi}\bra{\psi}\right)\\
|
||||
&= \hbox{Tr}\left(\frac{I - g_a}{2}\ket{\psi}\bra{\psi}S^{(j)}\right)\\
|
||||
&= \hbox{Tr}\left(\frac{I - g_a}{2}\ket{\psi}\bra{\psi}\right)\\
|
||||
&= P(s=-1)
|
||||
\end{aligned}
|
||||
\notag
|
||||
\end{equation}
|
||||
|
||||
With $P(s=+1) + P(s=-1) = 1$ follows $P(s=+1) = \frac{1}{2} = P(s=-1)$.
|
||||
Further for $S^{(i)},S^{(j)} \in J$
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\frac{I + (-1)^sg_a}{2}\ket{\psi} &= \frac{I + (-1)^sg_a}{2}S^{(j)}S^{(i)} \ket{\psi} \\
|
||||
&= S^{(j)}\frac{I + (-1)^{s + 1}g_a}{2}S^{(i)} \ket{\psi} \\
|
||||
&= S^{(j)}S^{(i)}\frac{I + (-1)^{s + 2}g_a}{2}\ket{\psi} \\
|
||||
&= S^{(j)}S^{(i)}\frac{I + (-1)^sg_a}{2}\ket{\psi}
|
||||
\end{aligned}
|
||||
\notag
|
||||
\end{equation}
|
||||
|
||||
the state after measurement is stabilized by $S^{(j)}S^{(i)} i,j \in J$, and by
|
||||
$S^{(i)} \in J^c\setminus\{a\}$. $g_a$ trivially stabilizes $\ket{\psi'}$.
|
||||
}
|
||||
\end{enumerate}
|
||||
\end{proof}
|
||||
|
||||
\subsection{The Vertex Operator-Free Graph States}
|
||||
|
||||
In order to understand some essential transformations of graph states it is necessary
|
||||
to study the vertex operator-free graph states first, partially because the graph states as used in this paper
|
||||
were derived from the vertex operator-free graph states.
|
||||
|
||||
\begin{definition}
|
||||
\label{def:vop_free_g_state}
|
||||
A $n$ qbit vertex operator-free graph state $\ket{\overline{G}}$ is associated with a graph $\bar{G} = (V, E)$
|
||||
by the $n$ operators
|
||||
|
||||
\begin{equation}
|
||||
K^{(i)}_G := X_i \left(\prod\limits_{\{i, j\} \in E} Z_j\right)
|
||||
\end{equation}
|
||||
|
||||
for all $i \in V$ where for some operator $O$ $O_i$ indicates that it acts on the $i$-th qbit.
|
||||
|
||||
$\ket{\overline{G}}$ is the $+1$ eigenstate of all $n$ $K^{(i)}_G$.
|
||||
\end{definition}
|
||||
|
||||
\begin{corrolary}
|
||||
All $K^{(i)}_G$ commute and are hermitian. Therefore they have a common set of eigenstates
|
||||
(in particular definition \ref{def:vop_free_g_state} is well defined).
|
||||
In terms of quantum mechanics $K^{(i)}_G$ are observables.
|
||||
|
||||
Further as $\ket{\overline{G}}$ is a $+1$ eigenstate of all $n$ $K^{(i)}_G$ which are
|
||||
multi-local Pauli operators, $\{K^{(i)}_G | i \in \{0, ..., n-1\}\}$ is the stabilizer
|
||||
of $\ket{\overline{G}}$ and $\ket{\overline{G}}$ is a stabilizer state.
|
||||
\end{corrolary}
|
||||
|
||||
\begin{proof}
|
||||
As $X_i$ and $Z_i$ are hermitian their product is hermitian.
|
||||
|
||||
Consider the case $\{i,j\} \notin E$ first:
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\left[K^{(i)}_G, K^{(j)}_G\right] = \left[X_i \prod\limits_{\{i, n\} \in E} Z_n, X_j \prod\limits_{\{j, m\} \in E} Z_m\right] = 0
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
As operators acting on different qbits commute. The case $\{i,j\} \in E$ is slightly less trivial:
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
\left[K^{(i)}_G, K^{(j)}_G\right] &= \left[X_i \left(\prod\limits_{\{i, n\} \in E, n \neq j} Z_n\right) Z_j, X_j \left(\prod\limits_{\{j, m\} \in E, m \neq i} Z_m\right) Z_i\right] \\
|
||||
&= \left[X_i Z_j \prod\limits_n Z_n, X_j Z_i \prod\limits_m Z_m\right]\\
|
||||
&= \left(X_i Z_j X_j Z_i - X_j Z_i X_i Z_j\right) \prod\limits_n Z_n \prod\limits_m Z_m \\
|
||||
&= \left(Z_j X_j X_i Z_i - X_j Z_j Z_i X_i\right) \prod\limits_n Z_n \prod\limits_m Z_m \\
|
||||
&= \left((-1)^2X_j Z_j Z_i X_i - X_j Z_j Z_i X_i\right) \prod\limits_n Z_n \prod\limits_m Z_m \\
|
||||
&= 0
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
as $X$, $Z$ anticommute.
|
||||
\end{proof}
|
||||
|
||||
\begin{lemma}
|
||||
\begin{equation}
|
||||
\ket{\overline{G}} = \left(\prod\limits_{\{i,j\} \in E} CZ_{i,j} \right) \left(\prod\limits_{l \in V} H_l\right) \ket{0}
|
||||
\end{equation}
|
||||
|
||||
In particular definitions \ref{def:vop_free_g_state} and \ref{def:graph_state} are consistent, when there are no
|
||||
vertex operators on the graph state $\ket{G}$.
|
||||
\end{lemma}
|
||||
\begin{proof}
|
||||
Let $\ket{+} := \left(\prod\limits_{l \in V} H_l\right) \ket{0}$ as before. Note that for any $X_i$ $X_i \ket{+} = +1 \ket{+}$.
|
||||
Set $\ket{\tilde{G}} := \left(\prod\limits_{\{i,j\} \in E} CZ_{i,j} \right)\ket{+}$.
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
K_G^{(i)} \ket{\tilde{G}} & = X_i \left(\prod\limits_{\{i,j\} \in E} Z_j\right)\left(\prod\limits_{\{l,j\} \in E} CZ_{l,j} \right) \ket{+} \\
|
||||
& = \left(\prod\limits_{\{i,j\} \in E} Z_j\right)X_i\prod\limits_{\{l,j\} \in E}\left( \ket{0}\bra{0}_j \otimes I_l + \ket{1}\bra{1}_j \otimes Z_l\right) \ket{+} \\
|
||||
& = \left(\prod\limits_{\{i,j\} \in E} Z_j\right)\prod\limits_{\{l,j\} \in E}\left( \ket{0}\bra{0}_j \otimes I_l + (-1)^{\delta_{i,l}}\ket{1}\bra{1}_j \otimes Z_l\right) X_i \ket{+} \\
|
||||
& = \prod\limits_{\{l,j\} \in E}\left( \ket{0}\bra{0}_j \otimes I_l + (-1)^{2\delta_{i,l}}\ket{1}\bra{1}_j \otimes Z_l\right) \ket{+} \\
|
||||
& = \prod\limits_{\{l,j\} \in E}\left( \ket{0}\bra{0}_j \otimes I_l + \ket{1}\bra{1}_j \otimes Z_l\right) \ket{+} \\
|
||||
& = +1 \ket{\tilde{G}}
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
as $X, Z$ anticommute and $Z\ket{1} = -1\ket{1}$.
|
||||
\end{proof}
|
||||
|
||||
\begin{definition}
|
||||
Let $\bar{G} = (V, E)$ be a graph as in definition \ref{def:vop_free_g_state}.
|
||||
For a vertex $i \in V$ $n_i := \{j \in V | \{i,j\} \in E\}$ is called the neighbourhood
|
||||
of $i$.
|
||||
\end{definition}
|
||||
|
||||
\begin{lemma}
|
||||
Let $\bar{G}$, $\ket{\bar{G}}$, $K_G^{(i)}$ be as in definition \ref{def:vop_free_g_state} and for
|
||||
a vertex $a \in V$ set
|
||||
|
||||
\begin{equation}
|
||||
M_a := \sqrt{-iX_a} \prod\limits_{j\in n_a} \sqrt{iZ_j}
|
||||
\end{equation}
|
||||
|
||||
Then the graph $\bar{G}'$ associated with $\ket{\bar{G}'} = M_a\ket{\bar{G}}$ is changed according to
|
||||
the following equations:
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
n_a' &= n_a \\
|
||||
n_j' &= n_j, \hbox{ if } j \notin n_a\\
|
||||
n_j' &= (n_j \cup n_a) \setminus (n_j \cap n_a), \hbox{ if } j \in n_a
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
I.e. the neighbourhood of $a$ is toggled.
|
||||
\end{lemma}
|
||||
|
||||
\begin{proof}
|
||||
$\ket{\bar{G}'}$ is stabilized by $\langle M_a K_G^{(i)} M_a^\dagger \rangle_i$, so it is sufficient
|
||||
to study how the $ K_G^{(i)}$ change under $M_a$.
|
||||
At first note that $[K_G^{(a)}, M_a] = 0$ and $\forall i\in V\setminus n_a$ $[K_G^{(i)}, M_a] = 0$,
|
||||
so the first two equations follow trivially. For $j \in n_a$ set
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
S^{(j)} &= M_a K_G^{(j)} M_a^\dagger \\
|
||||
&= \sqrt{-iX_a} \left(\prod\limits_{l \in n_a \setminus \{j\}} \sqrt{iZ_l}\right)
|
||||
\sqrt{iZ_j} K_G^{(j)} \sqrt{iZ_j}^\dagger
|
||||
\left(\prod\limits_{l \in n_a \setminus \{j\}} \sqrt{iZ_l}^\dagger\right)
|
||||
\sqrt{-iX_a}^\dagger \\
|
||||
&= \sqrt{-iX_a} \left(\prod\limits_{l \in n_a \setminus \{j\}} \sqrt{iZ_l}\right)\sqrt{iZ_j}
|
||||
X_j \left(\prod\limits_{m \in n_j \setminus \{a\}} Z_m\right) Z_a
|
||||
\sqrt{iZ_j}^\dagger
|
||||
\left(\prod\limits_{l \in n_a \setminus \{j\}} \sqrt{iZ_l}^\dagger\right)
|
||||
\sqrt{-iX_a}^\dagger \\
|
||||
&= \sqrt{iZ_j} X_j\sqrt{iZ_j}^\dagger\left(\prod\limits_{m \in n_j \setminus \{a\}} Z_m\right)
|
||||
\sqrt{-iX_a} Z_a \sqrt{-iX_a}^\dagger \\
|
||||
&= (-1)^2 Y_j Y_a \left(\prod\limits_{m \in n_j \setminus \{a\}} Z_m\right)\\
|
||||
&= (-1)i^2 Z_j X_a X_j Z_a \left(\prod\limits_{m \in n_j \setminus \{a\}} Z_m\right)
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
One can now construct a new set of $K_{G'}^{(i)}$ s.t. $M_a \ket{\bar{G}}$ is the $+1$ eigenvalue
|
||||
of the new $K_{G'}^{(i)}$. It is clear that $\forall j \notin n_a$ $K_{G'}^{(j)} = K_G^{(j)}$.
|
||||
To construct the $K_{G'}^{(i)}$ let for some $j \in n_a$ $n_a = \{j\} \cup I$ and $n_j = \{a\} \cup J$.
|
||||
Then
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
S^{(j)} &= Z_j X_a X_j Z_a \prod\limits_{l \in J} Z_l\\
|
||||
&= Z_j X_a X_j Z_a \left(\prod\limits_{l \in J} Z_l\right)
|
||||
\left(\prod\limits_{l \in I}Z_l\right)
|
||||
\left(\prod\limits_{l \in I}Z_l\right) \\
|
||||
&= Z_j X_a X_j Z_a \left(\prod\limits_{l \in ((I\cup J) \setminus (I\cap J))} Z_L\right)
|
||||
\left(\prod\limits_{l \in I}Z_l\right) \\
|
||||
&= K_{G'}^{(a)} K_{G'}^{(j)} \\
|
||||
&= K_{G}^{(a)} K_{G'}^{(j)}
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
|
||||
Using this ine can show that $\ket{\bar{G}'}$ is a $+1$ eigenstate of $K_{G'}^{(j)}$:
|
||||
|
||||
\begin{equation}
|
||||
\ket{\bar{G}'} = S^{(j)}\ket{\bar{G}'} = K_{G}^{(a)} K_{G'}^{(j)}\ket{\bar{G}'}
|
||||
= K_{G'}^{(j)}K_{G}^{(a)}\ket{\bar{G}'} = K_{G'}^{(j)}\ket{\bar{G}'}
|
||||
\end{equation}
|
||||
|
||||
Because $\{K_G^{(i)} | i \notin n_a\} \cup \{S^{(i)} | i\in n_a\}$ and
|
||||
$\{K_G^{(i)} | i \notin n_a\} \cup \{K_{G'}^{(i)} | i\in n_a \}$ are both $n$ commuting
|
||||
multi-local Pauli operators where the $S^{(i)}$ can be generated from the $K_{G'}^{(i)}$
|
||||
and $\ket{\bar{G}'}$ is a $+1$ eigenstate of $K_{G'}^{(j)}$
|
||||
$\langle\{K_G^{(i)} | i \notin n_a\} \cup \{K_{G'}^{(i)} | i\in n_a \}\rangle$
|
||||
are the stabilizers of $\ket{\bar{G}'}$ and the associated graph is changed as given
|
||||
in the third equation.
|
||||
|
||||
\end{proof}
|
||||
|
||||
These insights can be used to understand how measurement works on the vop-free graph state \cite{nielsen_chuang_2010}:
|
||||
Consider a state $\ket{\psi}$ that is stabilized by $g_1, ... g_n$ and a Pauli operator $g \in \{Z_a, Y_a, X_a\}$
|
||||
that is to be measured.
|
||||
Recalling lemma \ref{lemma:stab_measurement} the following relations follow immideately:
|
||||
|
||||
\begin{enumerate}
|
||||
\item{For $g = X_a$ if $a$ is an isolated qbit $+1$ is measured with probability $1$
|
||||
and the state $\ket{\bar{G}}$ is unchanged.}
|
||||
\item{For $g = X_a$ and $a$ is non-isolated, choose $b \in n_a$ and the new stabilizers are
|
||||
\begin{equation}
|
||||
\langle \{(-1)^sX_a\}
|
||||
\cup \{K_G^{(b)}K_G^{(i)} | i \in n_a \setminus \{b\}\}
|
||||
\cup \{K_G^{(i)} | i \in V \setminus n_a \setminus \{a\}\} \rangle
|
||||
\end{equation}}
|
||||
\item{For $g = Z_a$ the new stabilizers are
|
||||
\begin{equation}
|
||||
\langle \{(-1)^sZ_a\}
|
||||
\cup \{K_G^{(i)} | i \in V \setminus n_a\} \rangle
|
||||
\end{equation}}
|
||||
\item{For $g = Y_a$ the new stabilizers are
|
||||
\begin{equation}
|
||||
\langle \{(-1)^sY_a\}
|
||||
\cup \{K_G^{(a)}K_G^{(i)} | i \in n_a\}
|
||||
\cup \{K_G^{(i)} | i \in V \setminus n_a \setminus \{a\}\} \rangle
|
||||
\end{equation}}
|
||||
\end{enumerate}
|
||||
|
||||
The states after the measurement are in general no vop-free graph states anymore,
|
||||
the following discussion will allow to construct new vop-free graph states and
|
||||
Clifford transformations from the vop-free graph state to the resulting state.
|
||||
In the case $g = X_a$ and $n_a = \{\}$ the graph is obviously unchanged.
|
||||
|
||||
\begin{lemma}
|
||||
\label{lemma:Z_measurement}
|
||||
\begin{enumerate}
|
||||
\item{For a result $+Z_a$ the new state is
|
||||
$\ket{+_Z}_a \otimes \ket{\bar{G}'}$
|
||||
with $\ket{\bar{G}'}$ being stabilized by $K_G^{(i)}$ for
|
||||
$i \notin n_a$ and $Z_aK_G^{(i)}$ for $i \in n_a$.
|
||||
}
|
||||
\item{For a result $-Z_a$ the new state is $U\ket{-_Z}_a \otimes \ket{\bar{G}'}$
|
||||
with $\ket{\bar{G}'}$ being stabilized by $K_G^{(i)}$ for $i \notin n_a$ and $Z_aK_G^{(i)}$ for $i \in n_a$
|
||||
and $U = \prod\limits_{i \in n_a}Z_i$.}
|
||||
\end{enumerate}
|
||||
\end{lemma}
|
||||
\begin{proof}
|
||||
\begin{enumerate}
|
||||
\item{
|
||||
It is trivial that $Z_a$ and $K_G^{(i)} i \neq a$ stabilize $\ket{+_Z}_a \otimes \ket{\bar{G}'}$.
|
||||
$Z_aK_G^{(i)}$ for $i \in n_a$ do not act on $a$, so $\ket{\bar{G}'}$ is well-defined.
|
||||
}
|
||||
\item{
|
||||
The state $\ket{-_Z}_a \otimes \ket{\bar{G}'}$ is the $-1$ eigenstate of $K_G^{(i)}$ for all
|
||||
$i \in n_a$. This can be corrected by transforming $K_G^{(i)}$ to $-K_G^{(i)} = Z_i K_G^{(i)} Z_i^\dagger$
|
||||
which stabilizes the state $U\ket{-_Z}_a \otimes \ket{\bar{G}'}$.
|
||||
}
|
||||
\end{enumerate}
|
||||
|
||||
\end{proof}
|
||||
|
||||
\begin{lemma}
|
||||
When $Y_a$ is measured with a result $s \in \{0, 1\}$ the state after the measurement is
|
||||
|
||||
\begin{equation}
|
||||
\ket{(-1)^s_Y}_a \otimes U_{Y,s} \ket{\bar{G}'}
|
||||
\end{equation}
|
||||
\begin{equation}
|
||||
U_{Y,s} = \prod\limits_{l \in n_a} \sqrt{(-1)^s iZ_l}
|
||||
\end{equation}
|
||||
|
||||
Where $\ket{\bar{G}'}$ is associated with the graph $G' = (V \setminus \{a\}, E')$
|
||||
with $E'$ being changed according to $\forall i \in n_a$ $n_i' = (n_i \cup n_a) \setminus (n_i \cap n_a) \setminus \{a\}$.
|
||||
\end{lemma}
|
||||
|
||||
\begin{proof}
|
||||
It is known that $(-1)^s Y_a$ has to stabilize the state after measurement,
|
||||
further $\forall j \in n_a$ $S^{(j)} = K_G^{(a)} K_G^{(j)}$, are the stabilizers of the new
|
||||
state around the measured qbit and the stabilizers $K_G^{(j)}, j \notin n_a$ are unchanged.
|
||||
Let $j \in n_a$ and $n_a =: \{j\} \cup I$, $n_j =: \{a\} \cup J$.
|
||||
|
||||
\begin{equation}
|
||||
\begin{aligned}
|
||||
S^{(i)} &= K_G^{(a)} K_G^{(j)} \\
|
||||
&= X_a \left(\prod\limits_{l \in n_a} Z_l\right)X_j\left(\prod\limits_{l\in n_j} Z_l\right) \\
|
||||
&= X_a Z_a Z_j X_j \left(\prod\limits_{l \in I} Z_l\right)\left(\prod\limits_{l \in J} Z_l\right)\\
|
||||
&= X_a Z_a Z_j X_j \left(\prod\limits_{l \in (I \cup J)\setminus(I\cap J)} Z_l\right) \\
|
||||
&= iY_a Z_j X_j \left(\prod\limits_{l \in (I \cup J)\setminus(I\cap J) \setminus \{a\}} Z_l\right) \\
|
||||
&= (-1)^si S^{(a)} Z_j X_j \left(\prod\limits_{l \in (I \cup J)\setminus(I\cap J)\setminus\{a\}} Z_l\right) \\
|
||||
&= S^{(a)} \sqrt{(-1)^siZ_j} K_{G'}^{(j)} \sqrt{(-1)^siZ_j}^\dagger
|
||||
\end{aligned}
|
||||
\end{equation}
|
||||
with $G'$ as above, the rest of the argument is analogous to lemma \ref{lemma:Z_measurement}.
|
||||
\end{proof}
|
||||
|
BIN
notes/graphics/gate_circuit_classes.dia
Normal file
BIN
notes/graphics/gate_circuit_classes.dia
Normal file
Binary file not shown.
110
notes/main.bib
Normal file
110
notes/main.bib
Normal file
@@ -0,0 +1,110 @@
|
||||
@online{
|
||||
numpy,
|
||||
url={https://numpy.org/},
|
||||
urldate={19.09.2019},
|
||||
author={NumPy developers},
|
||||
title={NumPy},
|
||||
year=2019
|
||||
}
|
||||
|
||||
@online{
|
||||
numpy_array,
|
||||
url={https://docs.scipy.org/doc/numpy/reference/generated/numpy.array.html},
|
||||
urldate={19.09.2019},
|
||||
author={NumPy developers},
|
||||
title={numpy.array -- NumPy v1.17 Manual},
|
||||
year=2019
|
||||
}
|
||||
|
||||
@online{
|
||||
numpy_ufunc,
|
||||
url={https://docs.scipy.org/doc/numpy/reference/ufuncs.html},
|
||||
urldate={19.09.2019},
|
||||
author={NumPy developers},
|
||||
title={Universal functions (ufunc) -- NumPy v1.17 Manual},
|
||||
year=2019
|
||||
}
|
||||
@article{
|
||||
andersbriegel2005,
|
||||
title={Fast simulation of stabilizer circuits using a graph state representation},
|
||||
author={Simon Anders and Hans J. Briegel},
|
||||
year=2005
|
||||
}
|
||||
@book{
|
||||
wuest1995,
|
||||
title={Höhere Mathematik Für Physiker Teil 1},
|
||||
author={Rainer Wüst},
|
||||
year=1995,
|
||||
publisher={de Gruyter}
|
||||
}
|
||||
@book{
|
||||
kaye_ea2007,
|
||||
title={An Introduction to Quantum Computing},
|
||||
author={Phillip Kaye, Raymond Laflamme and Michelle Mosca},
|
||||
year=2007,
|
||||
publisher={Oxford University Press}
|
||||
}
|
||||
@article{
|
||||
gottesman2009,
|
||||
title={An Introduction to Quantum Error Correction and Fault-Tolerant Quantum Computation},
|
||||
year=2009,
|
||||
author={Daniel Gottesman},
|
||||
note={https://arxiv.org/abs/0904.2557v1}
|
||||
}
|
||||
|
||||
@article{
|
||||
gottesman1997,
|
||||
title={Stabilizer Codes and Quantum Error Correction},
|
||||
year=1997,
|
||||
author={Daniel Gottesman},
|
||||
note={https://arxiv.org/abs/quant-ph/9705052}
|
||||
}
|
||||
|
||||
@article{
|
||||
gottesman_aaronson2008,
|
||||
title={Improved Simulation of Stabilizer Circuits},
|
||||
year=2008,
|
||||
author={Daniel Gottesman, Scott Aaronson},
|
||||
note={https://arxiv.org/abs/quant-ph/0406196v5}
|
||||
}
|
||||
|
||||
@article{
|
||||
schlingenmann2001,
|
||||
title={Stabilizer codes can be realized as graph codes},
|
||||
year=2001,
|
||||
author={D. Schlingemann},
|
||||
note={https://arxiv.org/abs/quant-ph/0111080v1}
|
||||
}
|
||||
|
||||
@article{
|
||||
vandennest_ea2004,
|
||||
title={Graphical description of the action of local Clifford transformations on graph states},
|
||||
year=2004,
|
||||
author={Maarten Van den Nest et al.},
|
||||
note={PhysRevA.69.022316}
|
||||
}
|
||||
|
||||
@article{
|
||||
dahlberg_ea2019,
|
||||
title={Counting single-qubit Clifford equivalent graph states is \#P-Complete},
|
||||
year=2019,
|
||||
author={Axel Dahlberg et al.},
|
||||
note={https://arxiv.org/abs/1907.08024v1}
|
||||
}
|
||||
@book{
|
||||
nielsen_chuang_2010,
|
||||
title={Quantum Computation and Quantum Information},
|
||||
year=2010,
|
||||
author={Michael A. Nielsen, Isaac L. Chuang},
|
||||
publisher={CAMBRIDGE UNIVERSITY PRESS},
|
||||
note={www.cambridge.org/9781107002173}
|
||||
}
|
||||
|
||||
@article{
|
||||
gottesman2008,
|
||||
title={The Heisenberg Representation of Quantum Computers},
|
||||
year=2008,
|
||||
author={Daniel Gottesman},
|
||||
note={https://arxiv.org/abs/quant-ph/9807006}
|
||||
}
|
||||
|
66
notes/main.tex
Normal file
66
notes/main.tex
Normal file
@@ -0,0 +1,66 @@
|
||||
%\documentclass[a4paper,12pt,oneside]{scrreprt}
|
||||
\documentclass[a4paper,12pt]{scrartcl}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{graphicx}
|
||||
\usepackage{amssymb, amsthm}
|
||||
\usepackage{setspace}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{hyperref}
|
||||
\usepackage{geometry}
|
||||
\usepackage{enumerate}
|
||||
\usepackage{physics}
|
||||
\usepackage{listings}
|
||||
\usepackage{struktex}
|
||||
|
||||
\geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm}
|
||||
|
||||
\newtheorem{definition}{Definition}
|
||||
\newtheorem{postulate}{Postulate}
|
||||
\newtheorem{corrolary}{Corrolary}
|
||||
\newtheorem{lemma}{Lemma}
|
||||
\newtheorem{theorem}{Theorem}
|
||||
|
||||
\numberwithin{equation}{section}
|
||||
|
||||
\title{Development of an Extensible Quantum Computing
|
||||
Simulator with a Focus on Simulation in the Graph Formalism }
|
||||
\author{Daniel Knüttel}
|
||||
\date{22.09.2019}
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
%\frontmatter
|
||||
\tableofcontents
|
||||
|
||||
\section{Acknowledgements}
|
||||
|
||||
--
|
||||
|
||||
\section{Abstract}
|
||||
|
||||
--
|
||||
|
||||
%\mainmatter
|
||||
|
||||
\include{chapters/introduction}
|
||||
|
||||
\include{chapters/introduction_qc}
|
||||
|
||||
\include{chapters/naive_simulator}
|
||||
|
||||
\include{chapters/stabilizer}
|
||||
|
||||
\include{chapters/graph_simulator}
|
||||
|
||||
\section{Appendix}
|
||||
|
||||
\subsection{Computing the Local Clifford Group and the Products of its Elements}
|
||||
|
||||
%\include{chapters/C_L_elements_and_products}
|
||||
|
||||
%\backmatter
|
||||
|
||||
\bibliographystyle{unsrt}
|
||||
\bibliography{main}{}
|
||||
\end{document}
|
||||
|
Reference in New Issue
Block a user