Introduction
Graph state is a kind of notation of graphs in a quantum state version. It is widely used in surface coding, oneway quantum computing (also known as measurementbased computing), and probably some other amazing places. I add this type in order to implement the simulation about oneway quantum computing in QuCmp.jl.
New Dependencies
LightGraphs.jl An optimized graphs package for Julia
Implementation
Type structure
The graph state’s data is stored in a LightGraphs.jl Graph
type.


methods
Convert
Graph state can be converted to a normal state vector. Suppose \(S_1,S_2,S_m\) are the stabilizers of graph state \(G\rangle\). Define Hamiltonian \(H\)
\[ H = \sum_i S_i \]
The state vector of \(G\rangle\) can be proved to be the ground state of \(H\). Therefore, the convert
function is defined to use Julia’s function eigs
to calculate the eigen vector of sparse matrix H
, and is normalized by normalize
Stabilizers
Stabilizer group is calculated in this method : stabilizers
, with a return collection of all stabilizers defined by a certain graph structure
LC equivalence
LC equivalence is evaluated by isLCeq
\[ \mathbf{flag} = (\mathbf{1}\mathbf{\Gamma}\^{A}) \mathbf{P} (\mathbf{1}\mathbf{\Gamma}\^{B})^T \]
where \(\mathbf{\Gamma}\) is the adjacency matrix of graph A, while \(\mathbf{\Gamma'}\) is the adjacency matrix of graph B, and \(\mathbf{P}\) is defined below
\[ \begin{pmatrix} \mathbf{0} & \mathbf{1} \\\\ \mathbf{1} & \mathbf{0} \end{pmatrix} \]
A is LCequivalent to B, only when \(\mathbf{flag}\) is a zero matrix.
ToDo and To be decided
I’m note sure whether it is better to include GraphState
in AbstractQuState
or a subtype of AbstractQuVector
in QuBase or just let it be a single type. The problem is I can not convert a given state vector to a GraphState
or stlzState
due to their space are not actually equal.