Orientierung
class qiskit.transpiler.Layout(input_dict=None)
Basen: object
Zwei-Wege-Diktat zur Darstellung eines Layouts.
ein Layout aus einem bijektiven Wörterbuch zu erstellen, das virtuelle Qubits auf physische Qubits abbildet
Methoden
add
add(virtual_bit, physical_bit=None)
Fügt ein Zuordnungselement zwischen bit und physical_bit ein. Wenn physical_bit nicht definiert ist, wird das Bit auf ein neues physikalisches Bit abgebildet.
Parameter
add_register
add_register(reg)
Fügt am Ende physical_qubits hinzu, die jedes Bit in reg abbilden.
Parameter
reg (Register) – Ein (Qu)bit-Register. Zum Beispiel: QuantumRegister(3, „qr“).
combine_into_edge_map
combine_into_edge_map(another_layout)
Kombiniert self und another_layout zu einer "Edge Map".
Zum Beispiel:
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_0Die Kantendarstellung wird z. B. für die Zusammenstellung von Dags mit compose verwendet.
Parameter
another_layout (Layout) – Das andere Layout zu kombinieren.
Rückgabe
Eine "Randkarte".
Rückgabetyp
Erhöht
LayoutError – „another_layout“ kann größer als „self“ sein, aber nicht kleiner. Ansonsten: Gehaltserhöhungen.
compose
compose(other, qubits)
Verbinden Sie dieses Layout mit einem anderen Layout.
Wenn dieses Layout eine Abbildung von den P-Qubits auf die Positionen der Q-Qubits darstellt, und das andere Layout eine Abbildung von den Q-Qubits auf die Positionen der R-Qubits darstellt, dann stellt das zusammengesetzte Layout eine Abbildung von den P-Qubits auf die Positionen der R-Qubits dar.
Parameter
- other (Layout) – Die bestehenden
Layoutzu komponierendenLayoutmit. - qubits (list[Qubit]) – Eine Liste von
QubitObjekten, über dieotherdefiniert ist, die dazu dient, die Entsprechung zwischen den Positionen derotherQubits und den tatsächlichen Qubits herzustellen.
Rückgabe
Ein neues Layout-Objekt, das dieses Layout zusammen mit dem Layout other darstellt.
Rückgabetyp
copy
from_dict
from_dict(input_dict)
Füllt ein Layout aus einem Wörterbuch.
Das Wörterbuch muss eine bijektive Abbildung zwischen virtuellen Qubits (Tupel) und physischen Qubits (Int) sein.
Parameter
input_dict (dict) –
z. B.:
{(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)
Konvertiert eine Liste von Ganzzahlen in ein Layout, das virtuelle Qubits (Index der Liste) auf physikalische Qubits (die Listenwerte) abbildet.
Parameter
- int_list (list) – Eine Liste von Ganzzahlen.
- *qregs ( QuantumRegisters ) - Die Quantenregister, auf die das Layout angewendet werden soll.
Rückgabe
Das entsprechende Layout-Objekt.
Rückgabetyp
Erhöht
LayoutError – Ungültiges Eingabelayout.
from_qubit_list
static from_qubit_list(qubit_list, *qregs)
Füllt ein Layout aus einer Liste mit virtuellen Qubits, Qubit oder None.
Parameter
- qubit_list (list) – e. g.: [ [qr0], Keine, [qr2], [qr3] ]
- *qregs ( QuantumRegisters ) - Die Quantenregister, auf die das Layout angewendet werden soll.
Rückgabe
das entsprechende Layout-Objekt
Rückgabetyp
Erhöht
LayoutError – Wenn die Elemente weder „Qubit“ noch „None“ sind
generate_trivial_layout
static generate_trivial_layout(*regs)
Erzeugt ein triviales ("eins-zu-eins") Layout mit den Registern und Qubits in regs.
Parameter
*regs* (Register, Qubits* ) - Register und Qubits, die in das Layout aufgenommen werden sollen.
Rückgabe
Ein Layout mit allen Registern in der angegebenen Reihenfolge.
Rückgabetyp
get_physical_bits
get_physical_bits()
Gibt das Wörterbuch zurück, wobei die Schlüssel physische (Qu)Bits und die Werte virtuelle (Qu)Bits sind.
get_registers
get_registers()
Gibt die Register im Layout zurück [QuantumRegister(2, ‘qr0’ ), QuantumRegister(3, ‘qr1’ )] :returns: Eine Reihe von Registern im Layout :rtype: Set
get_virtual_bits
get_virtual_bits()
Gibt das Wörterbuch zurück, bei dem die Schlüssel virtuelle (Q)Bits und die Werte physische (Q)Bits sind.
inverse
inverse(source_qubits, target_qubits)
Findet die Umkehrung dieses Layouts.
Dies ist möglich, wenn das Layout eine bijektive Abbildung ist, die Eingangs- und Ausgangsqubits jedoch unterschiedlich sein können (insbesondere kann dieses Layout die Abbildung von den erweiterten virtuellen Qubits auf physikalische Qubits sein). Wenn dieses Layout also eine Abbildung von den P-Qubits auf die Positionen der Q-Qubits darstellt, stellt das inverse Layout eine Abbildung von den Q-Qubits auf die Positionen der P-Qubits dar.
Parameter
- source_qubits (list[Qubit]) – Eine Liste von
QubitObjekten, die den Bereich des Layouts darstellen. - target_qubits (list[Qubit]) – Eine Liste von
QubitObjekten, die das Layout darstellen.
Rückgabe
Ein neues Layout-Objekt, das die Umkehrung dieses Layouts darstellt.
order_based_on_type
static order_based_on_type(value1, value2)
entscheidet anhand des Typs, ob es sich um eine physische oder virtuelle Datei handelt. Rückgabe (virtuell, physisch)
reorder_bits
reorder_bits(bits)
Geben Sie eine geordnete Liste von Bits an und ordnen Sie sie nach diesem Schema neu.
Die Liste der Bits muss genau mit den virtuellen Bits in diesem Layout übereinstimmen.
Parameter
bits (list[Bit]) – die Teile, die neu angeordnet werden müssen.
Rückgabe
geordnete Bits.
Rückgabetyp
Liste
swap
swap(left, right)
Tauscht die Karte zwischen links und rechts.
Parameter
- left (tuple orint) – Gegenstand zum Tauschen mit rechts.
- right (tuple orint) – Gegenstand zum Tauschen mit links.
Erhöht
LayoutError – Wenn „left“ und „right“ nicht denselben Typ haben.
to_permutation
to_permutation(qubits)
Erzeugt eine Permutation, die diesem Layout entspricht.
Dies ist möglich, wenn das Layout eine bijektive Abbildung mit denselben Quell- und Ziel-Qubits ist (z. B. entspricht ein "final_layout" einer Permutation der physischen Schaltkreis-Qubits). Wenn dieses Layout eine Abbildung von Qubits auf ihre neuen Positionen ist, beschreibt die resultierende Permutation, welche Qubits die Positionen 0, 1, 2 usw. nach Anwendung der Permutation einnehmen.
Nehmen wir zum Beispiel an, dass die Liste der Qubits [qr_0, qr_1, qr_2] lautet und das Layout qr_0 auf 2, qr_1 auf 0 und qr_2 auf 1 abbildet. Bezogen auf die Positionen in qubits bedeutet dies, dass 0 auf 2, 1 auf 0 und 2 auf 1 abgebildet wird, wobei die entsprechende Permutation [1, 2, 0] lautet.
Parameter