Distributors
- class pytket_dqc.distributors.Distributor
Abstract class defining the structure of distributors. Distributors are complete recommended DQC workflows.
- __init__() None
- class pytket_dqc.distributors.CoverEmbedding
Distributor applying
VertexCover
refinement to an initial distribution. This workflow is the simplest one considering embedding in the first instance.- distribute(circ: Circuit, network: NISQNetwork, **kwargs) Distribution
Method producing a distribution of the given circuit onto the given network.
Note that kwargs are passed on to
VertexCover
and the distribute method of the initial distributor.- Parameters:
circ (Circuit) – Circuit to be distributed
network (NISQNetwork) – Network onto which circuit should be distributed
- Returns:
Distribution of circ onto network.
- Return type:
- Key initial_distributor:
Initial distributor to be used to generate distribution refined by
VertexCover
. Default isPartitioningHeterogeneous
- class pytket_dqc.distributors.CoverEmbeddingSteiner
Distributor refining the output of
CoverEmbedding
to make use of Steiner trees.- distribute(circ: Circuit, network: NISQNetwork, **kwargs) Distribution
Abstract method producing a distribution of the given circuit onto the given network.
Note that kwargs are passed on to the distribute method of
CoverEmbedding
.- Parameters:
circ (Circuit) – Circuit to be distributed
network (NISQNetwork) – Network onto which circuit should be distributed
- Returns:
Distribution of circ onto network.
- Return type:
- class pytket_dqc.distributors.CoverEmbeddingSteinerDetached
Distributor refining the output of
BipartiteEmbeddingSteiner
to make use of detached gates.- distribute(circ: Circuit, network: NISQNetwork, **kwargs) Distribution
Abstract method producing a distribution of the given circuit onto the given network.
Note that kwargs are passed on to the distribute method of
CoverEmbeddingSteiner
. and the refine method ofDetachedGates
- Parameters:
circ (Circuit) – Circuit to be distributed
network (NISQNetwork) – Network onto which circuit should be distributed
- Returns:
Distribution of circ onto network.
- Return type:
- class pytket_dqc.distributors.PartitioningAnnealing
Distributor using the
Annealing
allocator.- distribute(circ: Circuit, network: NISQNetwork, **kwargs) Distribution
Method producing a distribution of the given circuit onto the given network.
Note that kwargs are passed on to the allocate method of
Annealing
.- Parameters:
circ (Circuit) – Circuit to be distributed
network (NISQNetwork) – Network onto which circuit should be distributed
- Returns:
Distribution of circ onto network.
- Return type:
- class pytket_dqc.distributors.PartitioningHeterogeneous
Distributor refining the output of
HypergraphPartitioning
to adapt the result to heterogeneous networks.- distribute(circ: Circuit, network: NISQNetwork, **kwargs) Distribution
Method producing a distribution of the given circuit onto the given network.
Note that kwargs are passed on to the allocate method of
HypergraphPartitioning
and the refine method ofBoundaryReallocation
.- Parameters:
circ (Circuit) – Circuit to be distributed
network (NISQNetwork) – Network onto which circuit should be distributed
- Returns:
Distribution of circ onto network.
- Return type:
- class pytket_dqc.distributors.PartitioningHeterogeneousEmbedding
Distributor refining the output of
PartitioningHeterogeneous
to make use of embedding.- distribute(circ: Circuit, network: NISQNetwork, **kwargs) Distribution
Method producing a distribution of the given circuit onto the given network.
Note that kwargs are passed on to the distribute method of
PartitioningHeterogeneousEmbedding
.- Parameters:
circ (Circuit) – Circuit to be distributed
network (NISQNetwork) – Network onto which circuit should be distributed
- Returns:
Distribution of circ onto network.
- Return type: