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)
Bases : BaseSequence[FidelityIndex]
Une suite d'indices de fidélité.
Paramètres
- start_fragment – Le début de la séquence.
- repeatable_fragment – La partie centrale répétable de la séquence.
- end_fragment – Fin de la séquence.
- fragment_depth – Nombre de répétitions du fragment répétable.
__init__
__init__(start_fragment: Iterable[T], repeatable_fragment: Iterable[T], end_fragment: Iterable[T], fragment_depth: int | None = None)
Méthodes
Chronique « 1 » | Chronique « 2 » |
|---|---|
__init__(début_fragment,...[, fragment_depth]) | |
bind_at(fragment_depth) | Renvoie une nouvelle instance avec les mêmes fragments liés à la profondeur des fragments. |
extend_permutations(séquence d'instructions) | Renvoie une séquence d'instructions avec des permutations étendues permettant de parcourir la structure « self ». |
fragment_sign_flips(séquence d'instructions) | Les fragments de séquence d'instructions inversent-ils le signe de l'observable lors de la traversée de self? |
is_traversed_by(séquence d'instructions) | Que ce chemin soit ou non parcouru par la séquence d'instructions. |
to_instruction_sequence() | Renvoie une séquence d'instructions minimalement spécifiée qui parcourt ce chemin. |
unbind() | Renvoie une nouvelle instance contenant les mêmes fragments, mais dont la profondeur des fragments est définie sur None. |
Attributs
Chronique « 1 » | Chronique « 2 » |
|---|---|
end_fragment | Le fragment final. |
end_fragment_observable_idxs | Les indices observables du fragment final. |
fragment_depth | Le nombre de répétitions du fragment répétable. |
is_unbound | Si la séquence n'est pas liée. |
repeatable_fragment | Le fragment répétitif. |
repeatable_fragment_observable_idxs | Les indices observables du fragment répétable. |
start_fragment | Le fragment initial. |
start_fragment_observable_idxs | Les indices observables du fragment initial. |
start_fragment_observable_idxs
repeatable_fragment_observable_idxs
end_fragment_observable_idxs
extend_permutations
extend_permutations(instruction_sequence: InstructionSequence) → InstructionSequence | None
Renvoie une séquence d'instructions avec des permutations étendues permettant de parcourir la structure « self ».
Étant donné un instruction_sequence, cette méthode tente d'étendre sa définition en construisant une nouvelle séquence d'instructions présentant la même structure que l'entrée, mais dans laquelle les PartialPauliPermutations sont étendus afin de spécifier le sur-ensemble minimal des applications nécessaires pour parcourir ce chemin. Si cela n'est pas possible, la fonction renverra None, indiquant que la procédure a échoué.
En ce qui concerne l'algorithme spécifique, lorsqu'il rencontre un PartialPauliPermutation lors de l'itération conjointe sur et self instruction_sequence, cette méthode tentera d'étendre la permutation afin de faire correspondre le Pauli actuel dans le chemin au Pauli du prochain pertinent FidelityIndex. Il convient de noter que cela peut entraîner des défaillances lorsque plusieurs permutations se produisent à la suite, même s'il est techniquement possible de trouver une séquence de super-instructions qui parcourt le chemin.
Paramètres
séquence_d'instructions – La séquence d'instructions de base.
Retours
La séquence d'instructions étendue, ou None si une extension n'est pas possible.
Augmentations
ValueError : si les transitions de ne commencent ni ne self se terminent par l'identité.
is_traversed_by
is_traversed_by(instruction_sequence: InstructionSequence) → bool
Que ce chemin soit ou non parcouru par la séquence d'instructions.
Le fait qu'un Path soit traversé ou non par un est InstructionSequence déterminé fragment par fragment.
Le chemin doit commencer et se terminer par l'identité.
Paramètres
séquence_d'instructions – La séquence d'instructions.
Retours
Que le chemin soit parcouru ou non.
Augmentations
ValueError : si le chemin ne commence ni ne se termine par l'identité.
fragment_sign_flips
fragment_sign_flips(instruction_sequence: InstructionSequence) → tuple[bool, bool]
Les fragments de séquence d'instructions inversent-ils le signe de l'observable lors de la traversée de self?
Le chemin doit commencer et se terminer par l'identité. Cette méthode ne tient pas compte des profondeurs des fragments du chemin et de la séquence d'instructions, et n'agit que sur la structure des fragments.
Paramètres
séquence_d'instructions – Une séquence d'instructions qui parcourt ce chemin.
Retours
Un tuple de valeurs booléennes, la première indiquant si l'action combinée des fragments de début et de fin inverse le signe, et la seconde indiquant si le fragment répétable inverse le signe.
Augmentations
- ValueError : si le chemin ne répond pas aux conditions requises.
- ValueError : si la séquence d'instructions ne parcourt pas le chemin.
to_instruction_sequence
to_instruction_sequence() → InstructionSequence
Renvoie une séquence d'instructions minimalement spécifiée qui parcourt ce chemin.
Les couches de Clifford à un qubit entre les éléments d’un ensemble de portes sont désignées par PartialPauliPermutations, qui spécifie uniquement les correspondances nécessaires pour parcourir ce chemin. La profondeur de fragment de la séquence d'instructions renvoyée est de self.fragment_depth.
Retours
Une séquence d'instructions parcourant ce chemin.