Skip to main content
IBM Quantum Platform

Transformations

qiskit_addon_cutting.utils.transforms

Fonctions de manipulation des circuits quantiques.

separate_circuit

separate_circuit(circuit, partition_labels=None)

GitHub

Séparer le circuit en ses éléments déconnectés.

Si partition_labels est fourni, le circuit sera séparé en fonction de ces étiquettes. Une étiquette de partition de None fait l'objet d'un traitement particulier : elle doit être appliquée à un qubit inutilisé (inactif), et ce qubit sera supprimé lors de la séparation du circuit.

Si partition_labels est None, le circuit sera entièrement séparé en ses composants déconnectés, chacun d'eux étant étiqueté avec des nombres entiers consécutifs commençant par 0. Chaque fil de repos sera éliminé dans les circuits résultants.

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

Paramètres

  • circuit (QuantumCircuit) – Le circuit à séparer en sous-circuits déconnectés
  • partition_labels (Sequence[Hashable] | None) – Une séquence de longueur num_qubits. Les Qubits ayant la même étiquette se retrouveront dans le même sous-circuit.

Type de retour

SeparatedCircuits

Retours

A SeparatedCircuits tuple nommé contenant les adresses subcircuits et qubit_map.

Augmentations

  • ValueError - Le nombre d'étiquettes de partition n'est pas égal au nombre de qubits dans le circuit d'entrée.
  • ValueError - L'opération s'étend sur plus d'une partition.

SeparatedCircuits

class SeparatedCircuits(subcircuits, qubit_map)

GitHub

Bases : NamedTuple

Tuple nommé pour le résultat de separate_circuit().

subcircuits est une dictée de circuits, dont la clé est l'étiquette de chaque partition. qubit_map est une liste dont la longueur est égale au nombre de qubits du circuit original. Chaque élément de cette liste est un 2-tuple qui comprend l'étiquette de partition de ce qubit, ainsi que l'index de ce qubit dans le sous-circuit correspondant. Si le qubit d'origine est inutilisé et a été retiré des circuits séparés, ce tuple sera égal à (None, None).

Créer une nouvelle instance de SeparatedCircuits(subcircuits, qubit_map)

Paramètres

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

count

count(value, /)

Renvoie le nombre d'occurrences de la valeur.

index

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

Renvoie le premier indice de la valeur.

Lance ValueError si la valeur n'est pas présente.

qubit_map

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

Alias pour le champ numéro 1

subcircuits

Type: dict[Hashable, QuantumCircuit]

Alias pour le champ numéro 0

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