35 lines
798 B
Python
35 lines
798 B
Python
|
from collections import deque
|
||
|
import matplotlib.pyplot as plt
|
||
|
import numpy as np
|
||
|
import json
|
||
|
|
||
|
from pyqcs import State, H, X, S, CZ
|
||
|
from pyqcs.graph.state import GraphState
|
||
|
from pyqcs.util.random_circuits import random_circuit
|
||
|
|
||
|
def S_with_extra_arg(act, i):
|
||
|
return S(act)
|
||
|
|
||
|
np.random.seed(0xdeadbeef)
|
||
|
|
||
|
circuit = random_circuit(50, 700, X, H, S_with_extra_arg, CZ)
|
||
|
|
||
|
state = circuit * GraphState.new_plus_state(50)
|
||
|
|
||
|
vops, edges = state._g_state.to_lists()
|
||
|
|
||
|
handled_edges = set()
|
||
|
dot_edges = deque()
|
||
|
|
||
|
for i, ngbhd in enumerate(edges):
|
||
|
for j in ngbhd:
|
||
|
if((i,j) not in handled_edges):
|
||
|
dot_edges.append(f"{i} -- {j}")
|
||
|
handled_edges |= {(i,j), (j,i)}
|
||
|
|
||
|
dot_edges_str = "\n".join(dot_edges)
|
||
|
|
||
|
dot_str = "graph graphical_state{\n" + dot_edges_str + "\n}"
|
||
|
|
||
|
print(dot_str)
|