def distance(self, type, node1, node2):
if node1 in self.Dual[type].nodes() and node2 in self.Dual[type].nodes():
return nx.shortest_path_length(self.Dual[type], node1, node2)
elif node1 in self.Dual[type].nodes() and node2 not in self.Dual[type].nodes():
node2 = self.External[type][node2]['measure']
return nx.shortest_path_length(self.Dual[type], node1, node2) + 1
elif node1 not in self.Dual[type].nodes() and node2 in self.Dual[type].nodes():
node1 = self.External[type][node1]['measure']
return nx.shortest_path_length(self.Dual[type], node1, node2) + 1
else:
node1 = self.External[type][node1]['measure']
node2 = self.External[type][node2]['measure']
return nx.shortest_path_length(self.Dual[type], node1, node2) + 2
# Re-initializes Measurement qubits
评论列表
文章目录