Présentation
class qiskit.transpiler.Layout(input_dict=None)
Bases : object
Dictée à deux voies pour représenter une présentation.
construire un Layout à partir d'un dictionnaire bijectif, établissant une correspondance entre les qubits virtuels et les qubits physiques
Méthodes
add
add(virtual_bit, physical_bit=None)
Ajoute un élément de carte entre bit et physical_bit. Si le bit physique n'est pas défini, le bit sera affecté à un nouveau bit physique.
Paramètres
add_register
add_register(reg)
Ajoute à la fin physical_qubits qui met en correspondance chaque bit dans reg.
Paramètres
reg (Register) – Un registre de (qu)bits. Par exemple, QuantumRegister(3, « qr »).
combine_into_edge_map
combine_into_edge_map(another_layout)
Combine l'image de soi et l'image de l'autre en une "carte des bords".
Par exemple :
self another_layout resulting edge map
qr_1 -> 0 0 <- q_2 qr_1 -> q_2
qr_2 -> 2 2 <- q_1 qr_2 -> q_1
qr_3 -> 3 3 <- q_0 qr_3 -> q_0La carte des bords est utilisée pour composer des dags via, par exemple, compose.
Paramètres
another_layout (Layout) – L'autre disposition à combiner.
Retours
Une "carte des bords".
Type de retour
Augmentations
LayoutError – another_layout peut être plus grand que self, mais pas plus petit. Sinon, des augmentations.
compose
compose(other, qubits)
Composez ce modèle avec un autre modèle.
Si cette disposition représente une correspondance entre les qubits P et les positions des qubits Q, et que l'autre disposition représente une correspondance entre les qubits Q et les positions des qubits R, alors la disposition composée représente une correspondance entre les qubits P et les positions des qubits R.
Paramètres
- other (Layout) – L'existant
Layoutpour composer ceLayoutavec. - qubits (list[Qubit]) – Une liste
Qubitd'objets sur lesquelsotherest défini, utilisée pour établir la correspondance entre les positions desotherqubits et les qubits réels.
Retours
Un nouvel objet de mise en page qui représente cette mise en page composée avec la mise en page other .
Type de retour
copy
from_dict
from_dict(input_dict)
Remplit une présentation à partir d'un dictionnaire.
Le dictionnaire doit être une correspondance bijective entre les qubits virtuels (tuple) et les qubits physiques (int).
Paramètres
input_dict (dict) –
Par ex. :
{(QuantumRegister(3, 'qr'), 0): 0,
(QuantumRegister(3, 'qr'), 1): 1,
(QuantumRegister(3, 'qr'), 2): 2}
Can be written more concisely as follows:
* virtual to physical::
{qr[0]: 0,
qr[1]: 1,
qr[2]: 2}
* physical to virtual::
{0: qr[0],
1: qr[1],
2: qr[2]}from_intlist
static from_intlist(int_list, *qregs)
Convertit une liste d'entiers en un schéma de correspondance entre les qubits virtuels (index de la liste) et les qubits physiques (valeurs de la liste).
Paramètres
- int_list (list) – Une liste d'entiers.
- *qregs ( QuantumRegisters ) - Les registres quantiques auxquels appliquer la disposition.
Retours
L'objet Layout correspondant.
Type de retour
Augmentations
LayoutError – Structure de saisie non valide.
from_qubit_list
static from_qubit_list(qubit_list, *qregs)
Remplit un Layout à partir d'une liste contenant des qubits virtuels, Qubit ou None.
Paramètres
- qubit_list (list) – e. g.: [ [qr0], None, [qr2], [qr3] ]
- *qregs ( QuantumRegisters ) - Les registres quantiques auxquels appliquer la disposition.
Retours
l'objet Layout correspondant
Type de retour
Augmentations
LayoutError – Si les éléments ne sont ni « Qubit » ni « None »
generate_trivial_layout
static generate_trivial_layout(*regs)
Crée un modèle trivial ("one-to-one") avec les registres et les qubits de regs.
Paramètres
*regs* (Registres, Qubits* ) - registres et qubits à inclure dans la mise en page.
Retours
Un schéma avec tous les regs dans l'ordre donné.
Type de retour
get_physical_bits
get_physical_bits()
Renvoie le dictionnaire dont les clés sont des (qu)bits physiques et les valeurs des (qu)bits virtuels.
get_registers
get_registers()
Renvoie les registres dans la disposition [QuantumRegister(2, ‘qr0’ ), QuantumRegister(3, ‘qr1’ )] :returns: Un ensemble de registres dans la disposition :rtype: Set
get_virtual_bits
get_virtual_bits()
Renvoie le dictionnaire dont les clés sont des (qu)bits virtuels et les valeurs des (qu)bits physiques.
inverse
inverse(source_qubits, target_qubits)
Trouve l'inverse de cette disposition.
Cela est possible lorsque la disposition est une correspondance bijective, mais les qubits d'entrée et de sortie peuvent être différents (en particulier, cette disposition peut être la correspondance entre les qubits virtuels étendus avec les qubits d'ancillas et les qubits physiques). Ainsi, si cette disposition représente une correspondance entre les qubits P et les positions des qubits Q, la disposition inverse représente une correspondance entre les qubits Q et les positions des qubits P.
Paramètres
- source_qubits (list[Qubit]) – Une liste
Qubitd'objets représentant le domaine de la mise en page. - target_qubits (list[Qubit]) – Une liste
Qubitd'objets représentant l'image de la mise en page.
Retours
Un nouvel objet de mise en page qui représente l'inverse de cette mise en page.
order_based_on_type
static order_based_on_type(value1, value2)
décide lequel est physique/virtuel en fonction du type. Retourne (virtuel, physique)
reorder_bits
reorder_bits(bits)
Étant donné une liste ordonnée de bits, réorganisez-les selon cette disposition.
La liste des bits doit correspondre exactement aux bits virtuels de cette disposition.
Paramètres
bits (list[Bit]) – les éléments à réorganiser.
Retours
bits ordonnés.
Type de retour
Liste
swap
swap(left, right)
Permet d'intervertir la carte entre la gauche et la droite.
Paramètres
- left (tuple orint) – Objet à échanger avec le droit.
- right (tuple orint) – Objet à échanger avec la gauche.
Augmentations
LayoutError – Si « left » et « right » ne sont pas du même type.
to_permutation
to_permutation(qubits)
Crée une permutation correspondant à cette disposition.
Cela est possible lorsque la disposition est une correspondance bijective avec les mêmes qubits source et cible (par exemple, une "disposition finale" correspond à une permutation des qubits du circuit physique). Si cette disposition est une correspondance entre les qubits et leurs nouvelles positions, la permutation résultante décrit quels qubits occupent les positions 0, 1, 2, etc. après l'application de la permutation.
Par exemple, supposons que la liste des qubits soit [qr_0, qr_1, qr_2], et que la disposition associe qr_0 à 2, qr_1 à 0, et qr_2 à 1. En termes de positions dans qubits, cela permet de faire correspondre 0 à 2, 1 à 0 et 2 à 1, la permutation correspondante étant [1, 2, 0].
Paramètres