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
VertexCoverrefinement 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
VertexCoverand 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
CoverEmbeddingto 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
BipartiteEmbeddingSteinerto 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
Annealingallocator.- 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
HypergraphPartitioningto 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
HypergraphPartitioningand 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
PartitioningHeterogeneousto 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: