Skip to main content
IBM Quantum Platform

Transformationen

qiskit_addon_cutting.utils.transforms

Funktionen zur Manipulation von Quantenschaltungen.

separate_circuit

separate_circuit(circuit, partition_labels=None)

GitHub

Trennen Sie den Stromkreis in seine getrennten Komponenten.

Wenn partition_labels zur Verfügung gestellt wird, wird der Stromkreis nach diesen Bezeichnungen getrennt. Ein Partitionslabel von None wird besonders behandelt: Es muss auf ein unbenutztes (inaktives) Qubit angewendet werden, und dieses Qubit wird bei der Trennung der Schaltung entfernt.

Wenn partition_labels None ist, wird der Stromkreis vollständig in seine getrennten Komponenten zerlegt, die jeweils mit fortlaufenden ganzen Zahlen, beginnend mit 0, beschriftet werden. In den daraus resultierenden Schaltkreisen wird jede Leerlaufleitung eliminiert.

>>> qc = QuantumCircuit(4)
>>> _ = qc.x(0)
>>> _ = qc.cx(1, 2)
>>> separate_circuit(qc, "ABBA").subcircuits.keys()
dict_keys(['A', 'B'])
>>> separate_circuit(qc, "ABBA").qubit_map
[('A', 0), ('B', 0), ('B', 1), ('A', 1)]
>>> separate_circuit(qc, ["A", "B", "B", None]).qubit_map
[('A', 0), ('B', 0), ('B', 1), (None, None)]
>>> separate_circuit(qc).subcircuits.keys()
dict_keys([0, 1])
>>> separate_circuit(qc).qubit_map
[(0, 0), (1, 0), (1, 1), (None, None)]
>>> separate_circuit(qc, "BAAC").subcircuits.keys()
dict_keys(['B', 'A', 'C'])
>>> separate_circuit(qc, "BAAC").qubit_map
[('B', 0), ('A', 0), ('A', 1), ('C', 0)]

Parameter

  • circuit (QuantumCircuit) – Der Stromkreis, der in getrennte Teilstromkreise zu unterteilen ist
  • partition_labels (Sequence[Hashable] | None) – Eine Sequenz der Länge num_qubits. Qubits mit demselben Label landen im selben Subcircuit.

Rückgabetyp

SeparatedCircuits

Rückgabe

A SeparatedCircuits benanntes Tupel, das die subcircuits und qubit_map enthält.

Erhöht

  • ValueError - Die Anzahl der Partition-Labels entspricht nicht der Anzahl der Qubits in der Eingangsschaltung.
  • ValueError - Der Vorgang erstreckt sich über mehr als eine Partition.

SeparatedCircuits

class SeparatedCircuits(subcircuits, qubit_map)

GitHub

Basen: NamedTuple

Benanntes Tupel für das Ergebnis von separate_circuit().

subcircuits ist ein Diktat von Schaltkreisen, das durch jede Partitionsbezeichnung verschlüsselt ist. qubit_map ist eine Liste, deren Länge der Anzahl der Qubits in der ursprünglichen Schaltung entspricht. Jedes Element dieser Liste ist ein 2-Tupel, das die Partitionsbezeichnung dieses Qubits zusammen mit dem Index dieses Qubits im entsprechenden Teilschaltkreis enthält. Wenn das ursprüngliche Qubit unbenutzt ist und aus den getrennten Schaltkreisen entfernt wurde, dann ist dieses Tupel gleich (None, None).

Erstellen einer neuen Instanz von SeparatedCircuits(subcircuits, qubit_map)

Parameter

  • subcircuits (dict[Hashable, QuantumCircuit])
  • qubit_map (list[tuple[Hashable, int] | tuple[None, None]])

count

count(value, /)

Gibt die Anzahl der Vorkommen des Wertes zurück.

index

index(value, start=0, stop=9223372036854775807, /)

Gibt den ersten Index des Wertes zurück.

Gibt ValueError aus, wenn der Wert nicht vorhanden ist.

qubit_map

Typ: list[tuple[Hashable, int] | tuple[None, None]]

Alias für Feldnummer 1

subcircuits

Typ: dict[Hashable, QuantumCircuit]

Alias für Feldnummer 0

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.