2019-11-01 18:07:45 +00:00
\section { The Graph Simulator}
2019-10-11 09:47:17 +00:00
2019-11-11 10:22:47 +00:00
\subsection { Mathematical Prerequisites}
2019-10-31 12:58:45 +00:00
2019-11-11 10:22:47 +00:00
The following definitions and lemmata are required to understand both how the
graph formalism works and how the simulator handles gates.
2019-11-01 18:07:45 +00:00
\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.
\end { definition}
\begin { definition}
Let $ p _ i \in P _ n \forall i = 1 , ..., n $ , $ [ p _ i, p _ j ] = 0 \forall i,j $ be commuting multi-local Pauli operators.
Then a $ n $ qbit state $ \ket { \psi } $ is called a stabilizer state iff
\begin { equation}
\forall i: p_ i\ket { \psi } = +1\ket { \psi }
\end { equation}
\end { definition}
%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}.
\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.
2019-11-05 10:21:26 +00:00
$ C _ 1 $ is called the local Clifford group.
2019-11-01 18:07:45 +00:00
\end { definition}
2019-11-05 10:21:26 +00:00
One can show that the Clifford group $ C _ n $ can be generated using the elements of $ C _ 1 $ acting on all qbits and
2019-11-01 18:07:45 +00:00
the controlled phase gate $ CZ $ between all qbits\cite { andersbriegel2005} . It is worth noting that the $ CX $ gate can be
2019-11-05 10:21:26 +00:00
generated using $ CZ $ and $ C _ 1 $ gates.
2019-11-01 18:07:45 +00:00
\begin { lemma}
2019-11-05 10:21:26 +00:00
Let $ a \in C _ 1 $ then $ \forall \phi \in [ 0 , 2 \pi ) $ also $ \exp ( i \phi ) a \in C _ 1 $ .
2019-11-01 18:07:45 +00:00
\textbf { Note} : This is also true for $ C _ n \forall n > = 1 $ .
\end { lemma}
\begin { proof}
2019-11-05 10:21:26 +00:00
Let $ a' : = \exp ( i \phi ) a $ . $ a' \in C _ 1 $ iff $ a'pa ^ { \prime \dagger } \in P \forall p \in P $ .
2019-11-01 18:07:45 +00:00
\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}
2019-11-05 10:21:26 +00:00
One can disregard global phases of elements of the $ C _ 1 $ group.
2019-11-01 18:07:45 +00:00
\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
2019-11-05 10:21:26 +00:00
be measured. It has been shown above that one can choose the $ C _ 1 $ operators such that they do not yield
2019-11-01 18:07:45 +00:00
a phase.
\end { proof}
2019-11-05 10:21:26 +00:00
\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. Because the global phases
can be disregarded as discussed above $ C _ L $ will be used from now on instead of $ C _ 1 $ .
\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 $ . Also $ P $ is generated by $ X,Z $ when disregarding a phase wich
does not matter for anticommutator relations.
This means that $ X $ can be mapped to any $ p \in P $ which are six elements disregarding
2019-11-11 10:22:47 +00:00
FIXME
2019-11-05 10:21:26 +00:00
\end { proof}
2019-11-11 10:22:47 +00:00
\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.
Some parts will be kept short as they can be looked up in \cite { andersbriegel2005} .
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}
2019-11-20 18:28:42 +00:00
\begin { definition}
\label { def:graph_ state}
2019-11-11 10:22:47 +00:00
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}
2019-11-20 18:28:42 +00:00
\label { eq:g_ state}
2019-11-11 10:22:47 +00:00
\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}
2019-11-20 18:28:42 +00:00
\end { definition}
2019-11-22 16:27:35 +00:00
Where every $ o _ i $ acts on the $ i $ -th qbit.
2019-11-20 18:28:42 +00:00
One can show that any stabilizer state can be realized as a graph state (for instance in \cite { schlingenmann2001} ).
2019-11-25 20:37:48 +00:00
\subsubsection { 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 $ ( 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.
A state $ \ket { \overline { G } } $ is a $ + 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 eigen states
(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}
2019-11-20 18:28:42 +00:00
\subsection { Operations on the Graph State}
\subsubsection { Single Qbit Gates}
Recalling \eqref { eq:g_ state}
2019-11-25 20:37:48 +00:00
Makes it clear that for any single qbit gate $ g \in C _ L $ with $ g _ k $ being the gate
2019-11-20 18:28:42 +00:00
acting on qbit $ k $ the state changes according to
\begin { equation}
\begin { aligned}
2019-11-25 20:37:48 +00:00
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 { +}
2019-11-20 18:28:42 +00:00
\end { aligned}
\end { equation}
2019-11-25 20:37:48 +00:00
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
2019-11-20 18:28:42 +00:00
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}
2019-10-31 12:58:45 +00:00
2019-11-22 16:27:35 +00:00
\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 $
2019-10-11 09:47:17 +00:00
\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
2019-11-01 18:07:45 +00:00
FIXME
2019-11-11 10:22:47 +00:00
2019-11-01 18:07:45 +00:00
\subsection { Usage}
FIXME
\subsection { Performance}
FIXME