Skip to main content
IBM Quantum Platform

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)

GitHub

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_fragmentLe fragment final.
end_fragment_observable_idxsLes indices observables du fragment final.
fragment_depthLe nombre de répétitions du fragment répétable.
is_unboundSi la séquence n'est pas liée.
repeatable_fragmentLe fragment répétitif.
repeatable_fragment_observable_idxsLes indices observables du fragment répétable.
start_fragmentLe fragment initial.
start_fragment_observable_idxsLes indices observables du fragment initial.

start_fragment_observable_idxs

Type : list[list[int]]

Les indices observables du fragment initial.

repeatable_fragment_observable_idxs

Type : list[list[int]]

Les indices observables du fragment répétable.

end_fragment_observable_idxs

Type : list[list[int]]

Les indices observables du fragment final.

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.

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