Skip to main content
IBM Quantum Platform

Présentation

class qiskit.transpiler.Layout(input_dict=None)

GitHub

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)

GitHub

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

  • virtual_bit (tuple) – Un (qu)bit. Par exemple, ( QuantumRegister(3, 'qr'), 2).
  • physical_bit (int) – Un peu de physique. Par exemple, 3.

add_register

add_register(reg)

GitHub

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)

GitHub

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_0

La 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

dict

Augmentations

LayoutError – another_layout peut être plus grand que self, mais pas plus petit. Sinon, des augmentations.

compose

compose(other, qubits)

GitHub

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 Layout pour composer ce Layout avec.
  • qubits (list[Qubit]) – Une liste Qubit d'objets sur lesquels other est défini, utilisée pour établir la correspondance entre les positions des other qubits 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

Mise en page

copy

copy()

GitHub

Renvoie une copie d'une instance de Layout.

from_dict

from_dict(input_dict)

GitHub

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)

GitHub

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

Présentation

Augmentations

LayoutError – Structure de saisie non valide.

from_qubit_list

static from_qubit_list(qubit_list, *qregs)

GitHub

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

Présentation

Augmentations

LayoutError – Si les éléments ne sont ni « Qubit » ni « None »

generate_trivial_layout

static generate_trivial_layout(*regs)

GitHub

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

Présentation

get_physical_bits

get_physical_bits()

GitHub

Renvoie le dictionnaire dont les clés sont des (qu)bits physiques et les valeurs des (qu)bits virtuels.

get_registers

get_registers()

GitHub

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()

GitHub

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)

GitHub

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 Qubit d'objets représentant le domaine de la mise en page.
  • target_qubits (list[Qubit]) – Une liste Qubit d'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)

GitHub

décide lequel est physique/virtuel en fonction du type. Retourne (virtuel, physique)

reorder_bits

reorder_bits(bits)

GitHub

É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)

GitHub

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)

GitHub

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

qubits (list[Qubit])

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.