Skip to main content
IBM Quantum Platform

Layout

class qiskit.transpiler.Layout(input_dict=None)

GitHub

Basi: object

Dettatura a due vie per rappresentare un Layout.

costruire un Layout da un dizionario biiettivo, mappando qubit virtuali a qubit fisici


Metodi

add

add(virtual_bit, physical_bit=None)

GitHub

Aggiunge un elemento di mappa tra bit e physical_bit. Se physical_bit non è definito, il bit sarà mappato su un nuovo bit fisico.

Parametri

  • virtual_bit (tuple) – Un (qu)bit. Ad esempio, ( QuantumRegister(3, 'qr'), 2).
  • physical_bit (int) – Una parte fisica. Ad esempio, 3.

add_register

add_register(reg)

GitHub

Aggiunge alla fine physical_qubits che mappa ogni bit della reg.

Parametri

reg (Register) – Un registro di (qu)bit. Ad esempio, QuantumRegister(3, ‘qr’).

combine_into_edge_map

combine_into_edge_map(another_layout)

GitHub

Combina self e un altro layout in una "mappa dei bordi".

Ad esempio:

   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 mappa dei bordi viene utilizzata per comporre i dag tramite, ad esempio, compose.

Parametri

another_layout (Layout) – L'altro layout da combinare.

Risultati

Una "mappa dei bordi".

Tipo di restituzione

dict

Aumenti

LayoutError – another_layout può essere più grande di se stesso, ma non più piccolo. Altrimenti, aumenti.

compose

compose(other, qubits)

GitHub

Comporre questo layout con un altro layout.

Se questo layout rappresenta una mappatura dai bit P alle posizioni dei bit Q e l'altro layout rappresenta una mappatura dai bit Q alle posizioni dei bit R, allora il layout composto rappresenta una mappatura dai bit P alle posizioni dei bit R.

Parametri

  • other (Layout) – L'esistente Layout per comporre questo Layout con.
  • qubits (list[Qubit]) – Un insieme di Qubit oggetti su cui other è definita la funzione, utilizzato per stabilire la corrispondenza tra le posizioni dei other qubit e i qubit effettivi.

Risultati

Un nuovo oggetto layout che rappresenta questo layout composto con il layout other .

Tipo di restituzione

Layout

copy

copy()

GitHub

Restituisce una copia di un'istanza di layout.

from_dict

from_dict(input_dict)

GitHub

Popola un layout da un dizionario.

Il dizionario deve essere una mappatura biunivoca tra qubit virtuali (tuple) e qubit fisici (int).

Parametri

input_dict (dict) –

ad es.:

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

Converte un elenco di interi in un Layout che mappa i qubit virtuali (indice dell'elenco) in qubit fisici (i valori dell'elenco).

Parametri

  • int_list (list) – Un elenco di numeri interi.
  • *qregs ( QuantumRegisters ) - I registri quantici a cui applicare il layout.

Risultati

L'oggetto Layout corrispondente.

Tipo di restituzione

Layout

Aumenti

LayoutError – Layout di immissione non valido.

from_qubit_list

static from_qubit_list(qubit_list, *qregs)

GitHub

Popola un layout da un elenco contenente qubit virtuali, Qubit o Nessuno.

Parametri

  • qubit_list (list) – e. g.: [ [qr0], Nessuno, [qr2], [qr3] ]
  • *qregs ( QuantumRegisters ) - I registri quantici a cui applicare il layout.

Risultati

l'oggetto Layout corrispondente

Tipo di restituzione

Layout

Aumenti

LayoutError – Se gli elementi non sono né Qubit né None

generate_trivial_layout

static generate_trivial_layout(*regs)

GitHub

Crea un Layout banale ("uno a uno") con i registri e i qubit in regs.

Parametri

*regs* (registri, qubit* ) - registri e qubit da includere nel layout.

Risultati

Un layout con tutte le regole nell'ordine dato.

Tipo di restituzione

Layout

get_physical_bits

get_physical_bits()

GitHub

Restituisce il dizionario in cui le chiavi sono (qu)bit fisici e i valori sono (qu)bit virtuali.

get_registers

get_registers()

GitHub

Restituisce i registri nel layout [QuantumRegister(2, ‘qr0’ ), QuantumRegister(3, ‘qr1’ )] :returns: Un set di registri nel layout :rtype: Set

get_virtual_bits

get_virtual_bits()

GitHub

Restituisce il dizionario in cui le chiavi sono (qu)bit virtuali e i valori sono (qu)bit fisici.

inverse

inverse(source_qubits, target_qubits)

GitHub

Trova l'inverso di questo layout.

Questo è possibile quando la disposizione è una mappatura biunivoca, ma i qubit di ingresso e di uscita possono essere diversi (in particolare, questa disposizione può essere la mappatura dai qubit virtuali estesi con le cancellature ai qubit fisici). Così, se questo layout rappresenta una mappatura dai bit P alle posizioni dei bit Q, il layout inverso rappresenta una mappatura dai bit Q alle posizioni dei bit P.

Parametri

  • source_qubits (list[Qubit]) – Un elenco di Qubit oggetti che rappresentano il dominio del layout.
  • target_qubits (list[Qubit]) – Un elenco di Qubit oggetti che rappresentano l'immagine del layout.

Risultati

Un nuovo oggetto di layout che rappresenta l'inverso di questo layout.

order_based_on_type

static order_based_on_type(value1, value2)

GitHub

decide quale sia fisico/virtuale in base al tipo. Restituzione (virtuale, fisica)

reorder_bits

reorder_bits(bits)

GitHub

Dato un elenco ordinato di bit, riordinarli secondo questa disposizione.

L'elenco dei bit deve corrispondere esattamente ai bit virtuali di questo layout.

Parametri

bits (list[Bit]) – gli elementi da riordinare.

Risultati

bit ordinati.

Tipo di restituzione

Elenco

swap

swap(left, right)

GitHub

Scambia la mappa tra destra e sinistra.

Parametri

  • left (tuple orint) – Oggetto da scambiare con la destra.
  • right (tuple orint) – Oggetto da scambiare con la sinistra.

Aumenti

LayoutError – Se sinistra e destra non sono dello stesso tipo.

to_permutation

to_permutation(qubits)

GitHub

Crea una permutazione corrispondente a questo layout.

Questo è possibile quando il layout è una mappatura bijettiva con gli stessi qubit di origine e di destinazione (ad esempio, un "final_layout" corrisponde a una permutazione dei qubit del circuito fisico). Se questa disposizione è una mappatura dai qubit alle loro nuove posizioni, la permutazione risultante descrive quali qubit occupano le posizioni 0, 1, 2, ecc. dopo l'applicazione della permutazione.

Ad esempio, supponiamo che l'elenco dei qubit sia [qr_0, qr_1, qr_2], e che la disposizione mappi qr_0 a 2, qr_1 a 0, e qr_2 a 1. In termini di posizioni in qubits, questo mappa 0 a 2, 1 a 0 e 2 a 1, con la permutazione corrispondente a [1, 2, 0].

Parametri

qubits (list[Qubit])

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.