Agrupación observable
qiskit_addon_cutting.utils.observable_grouping
Módulo para realizar la agrupación observable de Pauli.
observables_restricted_to_subsystem
observables_restricted_to_subsystem(qubits, global_observables, /)
Restringir cada observable a su soporte en un subsistema determinado.
A PauliList si se proporciona un PauliList en caso contrario, se devolverá list[Pauli] .
Cualquier información de fase será descartada, de acuerdo con el comportamiento estándar al cortar un Pauli.
Parámetros
- qubits (Sequence[int]) – Los qubits de un subsistema
- global_observables (Sequence[Pauli] | PauliList) – La lista de observables
Tipo de retorno
[listPauli] | PauliList
Devuelve
Cada Pauli restringido al subsistema.
>>> observables_restricted_to_subsystem([1, 3], PauliList(["IXYZ", "iZZXX"]))
PauliList(['IY', 'ZX'])CommutingObservableGroup
class CommutingObservableGroup(general_observable, commuting_observables)
Bases: object
Conjunto de observables mutuamente conmutables entre qubits.
Parámetros
commuting_observables
Tipo: list[Pauli]
Observables que pueden medirse simultáneamente.
general_observable
Tipo: Pauli
Una única cadena de Pauli que contiene todas las mediciones qubit-sabias necesarias para medirlo todo en commuting_observables.
pauli_bitmasks
Tipo: list[int]
Una máscara de bits para cada observable en commuting_observables; dado un elemento, cada bit corresponde a si la entrada correspondiente en pauli_indices es relevante para ese observable.
pauli_indices
Tipo: list[int]
Los índices de no identidad Paulis en general_observable.
ObservableCollection
class ObservableCollection(observables, /)
Bases: object
Recogida de observables organizada para una toma de medidas eficaz.
Los observables se organizan automáticamente en conjuntos de observables mutuamente conmutables qubit-sabios, cada uno representado por un CommutingObservableGroup.
Asignar variables miembro.
Parámetros
observables (PauliList | Iterable[Pauli]) – Observables de interés
construct_general_observables
static construct_general_observables(commuting_subobservables, /)
Construir el observable más general a partir de cada conjunto de observables mutuamente conmutables.
En casos especiales, los usuarios avanzados pueden querer subclasificar y anular este staticmethod para medir qubits adicionales a los predeterminados para cada observable general.
Tipo de retorno
Parámetros
groups
Tipo: list[CommutingObservableGroup]
Lista de CommutingObservableGroups que, en conjunto, contienen todos los observables deseados.
lookup
Tipo: dict[Pauli, list[tuple[int, int]]]
Obtener dict que asigna cada Pauli observable a una lista de índices, (i, j), a observables conmutables en groups.
Para cada elemento de la lista, significa que el Pauli viene dado por el j-ésimo observable conmutado en el i-ésimo grupo.
Esta lista tendrá como mínimo una longitud de 1, pero puede ser más larga si varios objetos CommutingObservableGroup son compatibles con el objeto Pauli.