Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download

All published worksheets from http://sagenb.org

Views: 168755
Image: ubuntu2004
# Input Information g1 = {0:[1], 1:[2], 2:[3], 3:[4], 4:[5], 5:[6], 6:[7]} ancilla1 = [0] g2 = {0:[1], 1:[2], 2:[3], 3:[4], 4:[5],5:[6],6:[7]} ancilla2 = [0,1] g3 = {0:[1], 1:[2], 2:[3], 3:[4], 4:[5],5:[6],6:[7]} ancilla3 = [0,1,2] g4 = {0:[1], 1:[2], 2:[3], 3:[4], 4:[5],5:[6],6:[7]} ancilla4 = [0,7] g5 = {0:[1], 1:[2], 2:[3], 3:[4], 4:[5],5:[6],6:[7]} ancilla5 = [3,4] g6 = {0:[1], 1:[2], 2:[3], 3:[4], 4:[5],5:[6],6:[7]} ancilla6 = [0,2,4,6] #------------------------------------------ g_full = [[g1,ancilla1], [g2,ancilla2], [g3,ancilla3], [g4,ancilla4], [g5,ancilla5], [g6,ancilla6]] # visible = copy(TraceOut.basis_matrix()); visible.subdivide(0,G.order()); visible; g_full
# Function to generate a GeneratorMatrix # INPUT(graph type = dictionary) # OUTPUT(generatormatrix type = Matrix) | GeneratorMatrix for graph def Mgenerator(g): # Creating Graph G = Graph(g) # MatrixSpace and Field F = GF(2) MS = MatrixSpace(F, G.order()) adj = MS(G.adjacency_matrix()) return block_matrix([MS.identity_matrix(), adj], ncols = 2)
# Function to read the X'x and Z's from a F_2n Vector out # INPUT (vector type = vector over F_2) # OUTPUT (X_0 Z_0....X_iZ_i type = string) def vector_to_stabilizer(v): liste = v.list(); l = len(v.list()) / 2 Xlist = liste[0:l]; Zlist = liste[l: 2*l];string = '' for n in range(l): if Xlist[n] == 1: string = string + ' X_' + str(n) if Zlist[n] == 1: string = string + ' Z_' + str(n) return string
# Function to get a list of a stabilizer in X's and Z's Format # INPUT (generatormatrix type = matrix over F_2) # OUTPUT (list of stabilizers types = string) def generator_to_string(M): stabilizerlist = [] for x in range(M.parent().dims()[0]): stabilizerlist.append(vector_to_stabilizer(M.row(x))) return stabilizerlist
# Function for Reduced Clifford Dynamic # INPUT(graph type = dictionary, ancilla type = list) | Graph State and Ancilla System # OUTPUT(support type = VectorSpace) | Stabilizer - Group def rcd(g, ancilla): # Maybe some Check Up here if g is of correct format # Creating Graph G = Graph(g, boundary = ancilla) # Vector Space, p-list and Field F = GF(2) p = G.vertices() V = VectorSpace(F, G.order()) for x in G.get_boundary(): p.remove(x) # Creating Subspace SemiSubSpace = V.basis_matrix().matrix_from_rows(p).row_space() SubSpace = SemiSubSpace.direct_sum(SemiSubSpace) # Creating Stabilizer Space Stabilizer = Mgenerator(g).row_space() # Projection onto spanned subspace TraceOut = Stabilizer.intersection(SubSpace) return TraceOut
#Function for calculating everything and put it into a liststructure #INPUT(graphlist type = list(list(graph, list))) #OUTPUT( list FORMAT: ( graphdictionary, ancilla, GRAPH, GeneratorMatrix of GRAPH, RCD Subspace of GRAPH) ) def nrcd(glist): return [[x[0], x[1], Graph(x[0], boundary = x[1]), Mgenerator(x[0]), rcd(x[0], x[1]), generator_to_string(Mgenerator(x[0]))] for x in glist ]
def result(glist): for index, x in enumerate(nrcd(glist)): x[2].show() html.table([["Nr", "Stabilizer Matrix","rgS", "after Traceoperation", "rgT", "Rank-Reduction"], [index + 1, x[3].row_space(), x[3].rank(), x[4], x[4].rank(), x[3].rank() - x[4].rank()]], header = true) print x[5]
result(g_full)
Graph Nr Stabilizer Matrix rgS after Traceoperation rgT Rank-Reduction
1 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(10000000010000000100000010100000001000000101000000010000001010000000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 8 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(001000000101000000010000001010000000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 6 2
[' X_0 Z_1', ' Z_0 X_1 Z_2', ' Z_1 X_2 Z_3', ' Z_2 X_3 Z_4', ' Z_3 X_4 Z_5', ' Z_4 X_5 Z_6', ' Z_5 X_6 Z_7', ' Z_6 X_7']
Graph Nr Stabilizer Matrix rgS after Traceoperation rgT Rank-Reduction
2 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(10000000010000000100000010100000001000000101000000010000001010000000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 8 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(00010000001010000000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 5 3
[' X_0 Z_1', ' Z_0 X_1 Z_2', ' Z_1 X_2 Z_3', ' Z_2 X_3 Z_4', ' Z_3 X_4 Z_5', ' Z_4 X_5 Z_6', ' Z_5 X_6 Z_7', ' Z_6 X_7']
Graph Nr Stabilizer Matrix rgS after Traceoperation rgT Rank-Reduction
3 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(10000000010000000100000010100000001000000101000000010000001010000000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 8 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(0000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 4 4
[' X_0 Z_1', ' Z_0 X_1 Z_2', ' Z_1 X_2 Z_3', ' Z_2 X_3 Z_4', ' Z_3 X_4 Z_5', ' Z_4 X_5 Z_6', ' Z_5 X_6 Z_7', ' Z_6 X_7']
Graph Nr Stabilizer Matrix rgS after Traceoperation rgT Rank-Reduction
4 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(10000000010000000100000010100000001000000101000000010000001010000000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 8 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(0010000001010000000100000010100000001000000101000000010000001010\begin{array}{rrrrrrrrrrrrrrrr} 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \end{array}\right) 4 4
[' X_0 Z_1', ' Z_0 X_1 Z_2', ' Z_1 X_2 Z_3', ' Z_2 X_3 Z_4', ' Z_3 X_4 Z_5', ' Z_4 X_5 Z_6', ' Z_5 X_6 Z_7', ' Z_6 X_7']
Graph Nr Stabilizer Matrix rgS after Traceoperation rgT Rank-Reduction
5 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(10000000010000000100000010100000001000000101000000010000001010000000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 8 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(1000000001000000010000001010000000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 4 4
[' X_0 Z_1', ' Z_0 X_1 Z_2', ' Z_1 X_2 Z_3', ' Z_2 X_3 Z_4', ' Z_3 X_4 Z_5', ' Z_4 X_5 Z_6', ' Z_5 X_6 Z_7', ' Z_6 X_7']
Graph Nr Stabilizer Matrix rgS after Traceoperation rgT Rank-Reduction
6 \mathrm{RowSpan}_{\Bold{F}_{2}}\left(10000000010000000100000010100000001000000101000000010000001010000000100000010100000001000000101000000010000001010000000100000010\begin{array}{rrrrrrrrrrrrrrrr} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right) 8 \mathrm{RowSpan}_{\Bold{F}_{2}}() 0 8
[' X_0 Z_1', ' Z_0 X_1 Z_2', ' Z_1 X_2 Z_3', ' Z_2 X_3 Z_4', ' Z_3 X_4 Z_5', ' Z_4 X_5 Z_6', ' Z_5 X_6 Z_7', ' Z_6 X_7']