Regroupement observable
qiskit_addon_cutting.utils.observable_grouping
Module de regroupement des observables de Pauli.
observables_restricted_to_subsystem
observables_restricted_to_subsystem(qubits, global_observables, /)
Restreindre chaque observable à son support sur un sous-système donné.
A PauliList sera renvoyé si un PauliList est fourni; sinon, une adresse list[Pauli] sera renvoyée.
Toute information de phase sera rejetée, conformément au comportement standard lors du découpage d'un Pauli.
Paramètres
- qubits (Sequence[int]) – Les qubits d'un sous-système
- global_observables (Sequence[Pauli] | PauliList) – La liste des observables
Type de retour
[listePauli] | PauliList
Retours
Chaque Pauli limité au sous-système.
>>> observables_restricted_to_subsystem([1, 3], PauliList(["IXYZ", "iZZXX"]))
PauliList(['IY', 'ZX'])CommutingObservableGroup
class CommutingObservableGroup(general_observable, commuting_observables)
Bases : object
Ensemble d'observables commuant mutuellement dans le sens du qubit.
Paramètres
commuting_observables
Type: list[Pauli]
Observables qui peuvent être mesurés simultanément.
general_observable
Type: Pauli
Une seule chaîne de Pauli contenant toutes les mesures de qubits nécessaires pour mesurer tout ce qui se trouve sur commuting_observables.
pauli_bitmasks
Type: list[int]
Un masque de bits pour chaque observable dans commuting_observables; étant donné un élément, chaque bit correspond à la pertinence de l'entrée correspondante dans pauli_indices pour cet observable.
pauli_indices
Type: list[int]
Les indices de non-identité Paulidans general_observable.
ObservableCollection
class ObservableCollection(observables, /)
Bases : object
Collection d'observables organisée pour une prise de mesures efficace.
Les observables sont automatiquement organisées en ensembles d'observables commutant mutuellement dans le sens du qubit, chacun représenté par un CommutingObservableGroup.
Affecter des variables membres.
Paramètres
observables (PauliList | Iterable[Pauli]) – Observables d'intérêt
construct_general_observables
static construct_general_observables(commuting_subobservables, /)
Construire l'observable le plus général à partir de chaque ensemble d'observables se commutant mutuellement.
Dans des cas particuliers, les utilisateurs avancés peuvent vouloir sous-classer et surcharger ce site staticmethod afin de mesurer des qubits supplémentaires par rapport à la valeur par défaut pour chaque observable générale.
Type de retour
Paramètres
groups
Type: list[CommutingObservableGroup]
Liste des CommutingObservableGroupqui, ensemble, contiennent tous les observables souhaités.
lookup
Type: dict[Pauli, list[tuple[int, int]]]
Obtenir un dict qui associe chaque observable à une liste d'indices Pauli observable à une liste d'indices, (i, j), à des observables commutés dans groups.
Pour chaque élément de la liste, cela signifie que le Pauli est donnée par la j-ème observable commue dans le i-ème groupe.
Cette liste sera d'une longueur minimale de 1, mais pourra potentiellement être plus longue si plusieurs objets sont compatibles avec l'objet donné CommutingObservableGroup sont compatibles avec l'objet Pauli.