pytket.architecture#
- class pytket.architecture.Architecture#
Class describing the connectivity of qubits on a general device.
- __init__(*args, **kwargs)#
Overloaded function.
__init__(self: pytket.architecture.Architecture) -> None
Produces an empty architecture
__init__(self: pytket.architecture.Architecture, connections: Sequence[Tuple[int, int]]) -> None
The constructor for an architecture with connectivity between qubits.
- Parameters:
connections – A list of pairs representing qubit indices that can perform two-qubit operations
__init__(self: pytket.architecture.Architecture, connections: Sequence[Tuple[pytket.unit_id.Node, pytket.unit_id.Node]]) -> None
The constructor for an architecture with connectivity between qubits.
- Parameters:
connections – A list of pairs representing Nodes that can perform two-qubit operations
- static from_dict(arg0: dict) pytket.architecture.Architecture #
Construct Architecture instance from JSON serializable dict representation of the Architecture.
- get_adjacent_nodes(self: pytket.architecture.Architecture, node: pytket.unit_id.Node) Set[pytket.unit_id.Node] #
given a node, returns adjacent nodes in Architecture.
- get_distance(self: pytket.architecture.Architecture, node_0: pytket.unit_id.Node, node_1: pytket.unit_id.Node) int #
given two nodes in Architecture, returns distance between them
- to_dict(self: pytket.architecture.Architecture) dict #
Return a JSON serializable dict representation of the Architecture.
- Returns:
dict containing nodes and links.
- valid_operation(self: pytket.architecture.Architecture, uids: Sequence[pytket.unit_id.Node]) bool #
nodes can be executed on the Architecture connectivity graph.
- Parameters:
uids – list of UnitIDs validity is being checked for
- property coupling#
Returns the coupling map of the Architecture as UnitIDs.
- property nodes#
Returns all nodes of architecture as Node objects.
- class pytket.architecture.FullyConnected#
A specialised non-Architecture object emulating an architecture with all qubits connected. Not compatible with Routing or Placement methods.
- __init__(self: pytket.architecture.FullyConnected, n: int, label: str = 'fcNode') None #
Construct a fully-connected architecture.
- Parameters:
n – number of qubits
label – Name for Node in FullyConnected Architecture
- static from_dict(arg0: dict) pytket.architecture.FullyConnected #
Construct FullyConnected instance from dict representation.
- to_dict(self: pytket.architecture.FullyConnected) dict #
JSON-serializable dict representation of the architecture.
- Returns:
dict containing nodes
- property nodes#
All nodes of the architecture as
Node
objects.
- class pytket.architecture.RingArch#
Inherited Architecture class for number of qubits arranged in a ring.
- __init__(self: pytket.architecture.RingArch, nodes: int, label: str = 'ringNode') None #
The constructor for a RingArchitecture with some undirected connectivity between qubits.
- Parameters:
qubits (number of) –
label – Name for Node in RingArch Architecture
- class pytket.architecture.SquareGrid#
Inherited Architecture class for qubits arranged in a square lattice of given number of rows and columns. Qubits are arranged with qubits values increasing first along rows then along columns i.e. for a 3 x 3 grid:
0 1 2
3 4 5
6 7 8
- __init__(*args, **kwargs)#
Overloaded function.
__init__(self: pytket.architecture.SquareGrid, n_rows: int, n_columns: int, label: str = ‘gridNode’) -> None
The constructor for a Square Grid architecture with some undirected connectivity between qubits.
- Parameters:
n_rows – The number of rows in the grid
n_columns – The number of columns in the grid
label – Name for Node in SquareGrid Architecture
__init__(self: pytket.architecture.SquareGrid, n_rows: int, n_columns: int, n_layers: int = 1, label: str = ‘gridNode’) -> None
The constructor for a Square Grid architecture with some undirected connectivity between qubits.
- Parameters:
n_rows – The number of rows in the grid
n_columns – The number of columns in the grid
n_layers – The number of layers of grids
label – Name for Node in SquareGrid Architecture
- qind_to_squind(self: pytket.architecture.SquareGrid, index: int) Tuple[int, int] #
Converts a single qubit index to a (row,column) index for a square grid.
- Parameters:
index – The global qubit index
- Returns:
the corresponding grid index as a pair (row,column)
- squind_to_qind(self: pytket.architecture.SquareGrid, row: int, column: int) int #
Converts a (row,column) index for a square grid to a single qubit index
- Parameters:
row – The given row index
column – The given column index
- Returns:
the corresponding global qubit index