Skip to main content
IBM Quantum Platform

Diseño

class qiskit.transpiler.Layout(input_dict=None)

GitHub

Bases: object

Dictado bidireccional para representar un Layout.

construir un Layout a partir de un diccionario biyectivo, asignando qubits virtuales a qubits físicos


Métodos

add

add(virtual_bit, physical_bit=None)

GitHub

Añade un elemento de mapa entre bit y physical_bit. Si physical_bit no está definido, el bit se asignará a un nuevo bit físico.

Parámetros

  • virtual_bit (tuple) – Un (qu)bit. Por ejemplo, ( QuantumRegister(3, 'qr'), 2).
  • physical_bit (int) – Un poco físico. Por ejemplo, 3.

add_register

add_register(reg)

GitHub

Añade al final physical_qubits que mapea cada bit en reg.

Parámetros

reg (Register) – Un registro (qu)bit. Por ejemplo, QuantumRegister(3, 'qr').

combine_into_edge_map

combine_into_edge_map(another_layout)

GitHub

Combina self y another_layout en un "mapa de bordes".

Por ejemplo:

   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

El mapa de bordes se utiliza para componer dags mediante, por ejemplo, compose.

Parámetros

another_layout (Layout) – La otra disposición para combinar.

Devuelve

Un "mapa de bordes".

Tipo de retorno

dict

Eleva

LayoutError - another_layout puede ser mayor que self, pero no menor. Si no, sube.

compose

compose(other, qubits)

GitHub

Componga esta maqueta con otra maqueta.

Si este trazado representa un mapeo de los P-qubits a las posiciones de los Q-qubits, y el otro trazado representa un mapeo de los Q-qubits a las posiciones de los R-qubits, entonces el trazado compuesto representa un mapeo de los P-qubits a las posiciones de los R-qubits.

Parámetros

  • other (Layout) – Los existentes Layout para componer este Layout con.
  • qubits (list[Qubit]) – Una lista de Qubit objetos sobre los que other se define, utilizada para establecer la correspondencia entre las posiciones de los other qubits y los qubits reales.

Devuelve

Un nuevo objeto de diseño que representa este diseño compuesto con el diseño de other .

Tipo de retorno

Diseño

copy

copy()

GitHub

Devuelve una copia de una instancia de Layout.

from_dict

from_dict(input_dict)

GitHub

Rellena un Layout a partir de un diccionario.

El diccionario debe ser una correspondencia biyectiva entre qubits virtuales (tupla) y qubits físicos (int).

Parámetros

input_dict (dict) –

e. g.:

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

Convierte una lista de enteros en una disposición que asigna qubits virtuales (índice de la lista) a qubits físicos (los valores de la lista).

Parámetros

  • int_list (list) – Una lista de números enteros.
  • *qregs ( QuantumRegisters ) - Los registros cuánticos a los que aplicar la disposición.

Devuelve

El objeto Layout correspondiente.

Tipo de retorno

Diseño

Eleva

LayoutError - Diseño de entrada no válido.

from_qubit_list

static from_qubit_list(qubit_list, *qregs)

GitHub

Rellena un Layout a partir de una lista que contiene qubits virtuales, Qubit o Ninguno.

Parámetros

  • qubit_list (list) – e. g.: [ [qr0], Ninguno, [qr2], [qr3] ]
  • *qregs ( QuantumRegisters ) - Los registros cuánticos a los que aplicar la disposición.

Devuelve

el objeto Layout correspondiente

Tipo de retorno

Diseño

Eleva

LayoutError - Si los elementos no son Qubit o None

generate_trivial_layout

static generate_trivial_layout(*regs)

GitHub

Crea una disposición trivial ("uno a uno") con los registros y qubits en regs.

Parámetros

*regs* (Registros, Qubits* ) - registros y qubits a incluir en el diseño.

Devuelve

Un diseño con todos los regs en el orden dado.

Tipo de retorno

Diseño

get_physical_bits

get_physical_bits()

GitHub

Devuelve el diccionario donde las claves son (qu)bits físicos y los valores son (qu)bits virtuales.

get_registers

get_registers()

GitHub

Devuelve los registros en el diseño [QuantumRegister(2, ‘qr0’ ), QuantumRegister(3, ‘qr1’ )] : devuelve: Un conjunto de registros en el diseño : rtype: Conjunto

get_virtual_bits

get_virtual_bits()

GitHub

Devuelve el diccionario donde las claves son (qu)bits virtuales y los valores son (qu)bits físicos.

inverse

inverse(source_qubits, target_qubits)

GitHub

Encuentra la inversa de este diseño.

Esto es posible cuando el trazado es un mapeo biyectivo, sin embargo los qubits de entrada y de salida pueden ser diferentes (en particular, este trazado puede ser el mapeo de los qubits virtuales extendidos-con-ancillas a qubits físicos). Así, si esta disposición representa un mapeo de los P-qubits a las posiciones de los Q-qubits, la disposición inversa representa un mapeo de los Q-qubits a las posiciones de los P-qubits.

Parámetros

  • source_qubits (list[Qubit]) – Una lista de Qubit objetos que representan el dominio del diseño.
  • target_qubits (list[Qubit]) – Una lista de Qubit objetos que representan la imagen del diseño.

Devuelve

Un nuevo objeto de diseño que representa la inversa de este diseño.

order_based_on_type

static order_based_on_type(value1, value2)

GitHub

decide cuál es físico/virtual en función del tipo. Devuelve (virtual, físico)

reorder_bits

reorder_bits(bits)

GitHub

Dada una lista ordenada de bits, reordénalos según esta disposición.

La lista de bits debe coincidir exactamente con los bits virtuales de este diseño.

Parámetros

bits (list[Bit]) – los bits a reordenar.

Devuelve

bits ordenados.

Tipo de retorno

Lista

swap

swap(left, right)

GitHub

Cambia el mapa de izquierda a derecha.

Parámetros

  • left (tuple orint) – Artículo para intercambiar con la derecha.
  • right (tuple orint) – Artículo para intercambiar con la izquierda.

Eleva

LayoutError - Si la izquierda y la derecha no tienen el mismo tipo.

to_permutation

to_permutation(qubits)

GitHub

Crea una permutación correspondiente a este diseño.

Esto es posible cuando la disposición es un mapeo biyectivo con los mismos qubits de origen y destino (por ejemplo, una "disposición_final" corresponde a una permutación de los qubits del circuito físico). Si esta disposición es un mapeo de qubits a sus nuevas posiciones, la permutación resultante describe qué qubits ocupan las posiciones 0, 1, 2, etc. después de aplicar la permutación.

Por ejemplo, supongamos que la lista de qubits es [qr_0, qr_1, qr_2], y la disposición asigna qr_0 a 2, qr_1 a 0, y qr_2 a 1. En términos de posiciones en qubits, esto asigna 0 a 2, 1 a 0 y 2 a 1, siendo la permutación correspondiente [1, 2, 0].

Parámetros

qubits (list[Qubit])

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.