Skip to main content
IBM Quantum Platform

Trasformazioni

qiskit_addon_cutting.utils.transforms

Funzioni per la manipolazione dei circuiti quantistici.

separate_circuit

separate_circuit(circuit, partition_labels=None)

GitHub

Separare il circuito nei suoi componenti scollegati.

Se viene fornito partition_labels , il circuito verrà separato in base a tali etichette. Un'etichetta di partizione di None è trattata in modo speciale: deve essere applicata a un qubit inutilizzato (inattivo), che verrà rimosso al momento della separazione del circuito.

Se partition_labels è None, il circuito sarà completamente separato nei suoi componenti scollegati, ognuno dei quali sarà etichettato con numeri interi consecutivi a partire da 0. Ogni filo inattivo sarà eliminato nei circuiti risultanti.

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

Parametri

  • circuit (QuantumCircuit) – Il circuito da separare in sottocircuiti disconnessi
  • partition_labels (Sequence[Hashable] | None) – Una sequenza di lunghezza num_qubits. I Qubit con la stessa etichetta finiranno nello stesso sottocircuito.

Tipo di restituzione

SeparatedCircuits

Risultati

A SeparatedCircuits una tupla denominata contenente subcircuits e qubit_map.

Aumenti

  • ValueError - Il numero di etichette di partizione non è uguale al numero di qubit nel circuito di ingresso.
  • ValueError - L'operazione si estende su più di una partizione.

SeparatedCircuits

class SeparatedCircuits(subcircuits, qubit_map)

GitHub

Basi: NamedTuple

Tupla denominata per il risultato di separate_circuit().

subcircuits è un insieme di circuiti, con la chiave di ogni etichetta di partizione. qubit_map è una lista di lunghezza pari al numero di qubit del circuito originale. Ogni elemento di questa lista è una 2-tupla che include l'etichetta di partizione di quel qubit, insieme all'indice di quel qubit nel sottocircuito corrispondente. Se il qubit originale è inutilizzato ed è stato rimosso dai circuiti separati, la tupla sarà uguale a (None, None).

Creare una nuova istanza di SeparatedCircuits(subcircuits, qubit_map)

Parametri

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

count

count(value, /)

Restituisce il numero di occorrenze del valore.

index

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

Restituisce il primo indice del valore.

Solleva ValueError se il valore non è presente.

qubit_map

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

Alias per il campo numero 1

subcircuits

Tipo: dict[Hashable, QuantumCircuit]

Alias per il campo numero 0

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