qrunch.quantum.groupers.groupers_protocols
Module containing groupers for grouping operators into groups of commuting operators.
Classes
Class that stores pauli sums, that can be measured simultaneously. |
|
Grouper for grouping Pauli string into groups of mutually commuting groups. |
- class MeasurementGroup
Bases:
objectClass that stores pauli sums, that can be measured simultaneously.
All fields are immutable (
frozen=True) so an instance can be safely reused.- Parameters:
measurement_basis – The measurement basis to use for the group.
pauli_sums – Mapping between original pauli sum and the part that belongs in the group.
- __init__(measurement_basis: MeasurementBasis, pauli_sums: dict[HermitianPauliSum, HermitianPauliSum]) None
- Parameters:
measurement_basis (MeasurementBasis)
pauli_sums (dict[HermitianPauliSum, HermitianPauliSum])
- Return type:
None
- calculate_expectation_value(measurement: QuantumMeasurement) dict[HermitianPauliSum, ExpectationValue]
Calculate the expectation value of the given pauli strings from the measurement.
- Parameters:
pauli_strings – A dictionary mapping Pauli strings to their coefficients.
measurement (QuantumMeasurement) – The measurement results.
- Return type:
- measurement_basis: MeasurementBasis
- pauli_sums: dict[HermitianPauliSum, HermitianPauliSum]
- class MeasurementGrouper
Bases:
ProtocolGrouper for grouping Pauli string into groups of mutually commuting groups.
- __init__(*args, **kwargs)
- group(pauli_sums: Sequence[HermitianPauliSum], circuit: Circuit | None = None) tuple[MeasurementGroup, ...]
Group the terms in the pauli sums into groups of Pauli strings of mutually commuting strings.
- Parameters:
pauli_sums (Sequence[HermitianPauliSum]) – Pauli sums to group.
circuit (Circuit | None) – Circuit for the pauli sums to be measured on. Most groupers do not require or use this.
- Returns:
A list measurement groups which can be measured simultaneously.
- Return type:
tuple[MeasurementGroup, …]