qiskit_noise_learning.sequences.Path
class qiskit_noise_learning.sequences.Path(start_fragment: Iterable[T], repeatable_fragment: Iterable[T], end_fragment: Iterable[T], fragment_depth: int | None = None)
Basi: BaseSequence[FidelityIndex]
Una sequenza di indici di fedeltà.
Parametri
- start_fragment – L'inizio della sequenza.
- repeatable_fragment – La parte centrale ripetibile della sequenza.
- end_fragment – La fine della sequenza.
- fragment_depth – Il numero di ripetizioni del frammento ripetibile.
__init__
__init__(start_fragment: Iterable[T], repeatable_fragment: Iterable[T], end_fragment: Iterable[T], fragment_depth: int | None = None)
Metodi
Rubrica 1 | Rubrica 2 |
|---|---|
__init__(inizio_frammento,...[, fragment_depth]) | |
bind_at(fragment_depth) | Restituisce una nuova istanza con gli stessi frammenti associati alla profondità dei frammenti. |
extend_permutations(sequenza_di_istruzioni) | Restituisce una sequenza di istruzioni con permutazioni estese per percorrere se stessa. |
fragment_sign_flips(sequenza_di_istruzioni) | Se i frammenti della sequenza di istruzioni invertono il segno dell’osservabile durante la traversata di self. |
is_traversed_by(sequenza_di_istruzioni) | Se la sequenza di istruzioni percorra o meno questo percorso. |
to_instruction_sequence() | Restituisce una sequenza di istruzioni con specifiche minime che percorre questo percorso. |
unbind() | Restituisce una nuova istanza con gli stessi frammenti, ma con la profondità dei frammenti impostata su None. |
Attributi
Rubrica 1 | Rubrica 2 |
|---|---|
end_fragment | Il frammento finale. |
end_fragment_observable_idxs | Gli indici osservabili del frammento finale. |
fragment_depth | Il numero di ripetizioni del frammento ripetibile. |
is_unbound | Se la sequenza è libera. |
repeatable_fragment | Il frammento ripetibile. |
repeatable_fragment_observable_idxs | Gli indici osservabili del frammento ripetibile. |
start_fragment | Il frammento iniziale. |
start_fragment_observable_idxs | Gli indici osservabili del frammento iniziale. |
start_fragment_observable_idxs
repeatable_fragment_observable_idxs
end_fragment_observable_idxs
extend_permutations
extend_permutations(instruction_sequence: InstructionSequence) → InstructionSequence | None
Restituisce una sequenza di istruzioni con permutazioni estese per percorrere se stessa.
Dato un instruction_sequence, questo metodo cerca di estenderne la definizione costruendo una nuova sequenza di istruzioni con la stessa struttura dell'input, ma in cui gli PartialPauliPermutations vengono estesi per specificare il superset minimo di mappature necessario per percorrere questo percorso. Se ciò non fosse possibile, la funzione restituirà None, indicando che la procedura non è andata a buon fine.
Per quanto riguarda l'algoritmo specifico, quando si incontra un PartialPauliPermutation durante l'iterazione congiunta su e self instruction_sequence, questo metodo tenterà di estendere la permutazione per mappare l'attuale Pauli nel percorso al Pauli nel successivo rilevante FidelityIndex. Si noti che ciò può causare errori nei casi in cui si verifichino più permutazioni consecutive, anche se tecnicamente è possibile trovare una sequenza di superistruzioni che percorra il percorso.
Parametri
sequenza_di_istruzioni – La sequenza di istruzioni di base.
Risultati
La sequenza di istruzioni estesa, oppure, se None l'estensione non è possibile.
Aumenti
ValueError : se le transizioni di non iniziano e non self terminano con l'identità.
is_traversed_by
is_traversed_by(instruction_sequence: InstructionSequence) → bool
Se la sequenza di istruzioni percorra o meno questo percorso.
Il fatto che un Path sia attraversato o meno da un InstructionSequence viene determinato frammento per frammento.
Richiede che il percorso inizi e finisca con l'identità.
Parametri
sequenza_di_istruzioni – La sequenza di istruzioni.
Risultati
Indipendentemente dal fatto che il percorso venga percorso o meno.
Aumenti
ValueError : se il percorso non inizia e non termina con l'identità.
fragment_sign_flips
fragment_sign_flips(instruction_sequence: InstructionSequence) → tuple[bool, bool]
Se i frammenti della sequenza di istruzioni invertono il segno dell’osservabile durante la traversata di self.
Richiede che il percorso inizi e finisca con l'identità. Questo metodo ignora le profondità dei frammenti del percorso e della sequenza di istruzioni, operando esclusivamente sulla struttura dei frammenti.
Parametri
sequenza_di_istruzioni – Una sequenza di istruzioni che percorre questo percorso.
Risultati
Una tupla di valori booleani, in cui il primo indica se l'azione combinata dei frammenti iniziale e finale inverte il segno, mentre il secondo indica se il frammento ripetibile inverte il segno.
Aumenti
- ValueError : se il percorso non soddisfa i presupposti.
- ValueError : se la sequenza di istruzioni non percorre il percorso.
to_instruction_sequence
to_instruction_sequence() → InstructionSequence
Restituisce una sequenza di istruzioni con specifiche minime che percorre questo percorso.
Gli strati di Clifford a singolo qubit tra gli elementi del set di gate sono indicati con PartialPauliPermutations, specificando solo le mappature necessarie per percorrere questo percorso. La profondità dei frammenti della sequenza di istruzioni restituita è self.fragment_depth.
Risultati
Una sequenza di istruzioni che percorre questo percorso.