squlearn.observables.SinglePauli
- class squlearn.observables.SinglePauli(num_qubits: int, qubit: int = 0, op_str: str = 'Z', parameterized: bool = False)
Observable constructed from a single Pauli operator of a single Qubit.
Equation for Z Pauli operator:
\[\hat{H} = \hat{Z_i} \qquad \text{or} \qquad \hat{H} = \theta\hat{Z_i}~~~~ \text{ (parameterized)}\]Can be parameterized or not, the four Pauli operators \(\hat{X},\hat{Y},\hat{Z}\) and \(\hat{I}\) are supported.
- Parameters:
num_qubits (int) – Number of qubits.
qubit (int) – Qubit on which the Pauli operator acts.
op_str (str) – Pauli operator to measure. Must be one of
'I','X','Y','Z'(default:'Z').parameterized (bool) – If True, the operator is parameterized (default: False).
Attributes:
- num_qubits
Number of qubits.
- Type:
int
- num_parameters
Number of trainable parameters in the single Pauli operator.
- Type:
int
- qubit
Qubit on which the Pauli operator acts.
- Type:
int
- op_str
Pauli operator to measure.
- Type:
str
- parameterized
If True, the operator is parameterized.
- Type:
bool
Methods:
- generate_initial_parameters(ones: bool = True, seed: int | None = None) ndarray
Generates random parameters for the observable
- Parameters:
ones (bool) – If True, returns an array of ones (default: True)
seed (Union[int,None]) – Seed for the random number generator
- Returns:
The randomly generated parameters
- get_operator(parameters: Parameters | ndarray) QuantumOperator
Returns Operator as a QuantumOperator expression.
- Parameters:
parameters (Union[Parameters, np.ndarray]) – Vector of parameters used in the operator
- Returns:
StateFn expression of the observable.
- get_params(deep: bool = True) dict
Returns hyper-parameters and their values of the Single Pauli operator.
- Parameters:
deep (bool) – If True, also the parameters for contained objects are returned (default=True).
- Returns:
Dictionary with hyper-parameters and values.
- get_pauli(parameters: Parameters | ndarray) QuantumOperator
Function for generating the QuantumOperator expression of the single Pauli operator.
- Parameters:
parameters (Union[Parameters, np.ndarray]) – Parameters of the single Pauli operator.
- Returns:
QuantumOperator expression of the specified single Pauli operator.
- get_pauli_mapped(parameters: Parameters | ndarray) QuantumOperator
Changes the operator to the physical qubits, set by
set_map().- Parameters:
parameters (Union[Parameters, np.ndarray]) – Vector of parameters used in the operator
- Returns:
Expectation operator in qc-executor’s QuantumOperator class with qubits mapped to physical ones
- set_map(qubit_map: list | dict, num_all_qubits: int)
Function for setting a qubit mapping from physical qubits to the ones of the operator.
This function is necessary whenever the number of physical qubits are different from the operator definition, as for example when running on a real backend. The number of qubits in the system has to be larger than the number of qubits in the observable.
- Parameters:
qubit_map (Union[list, dict]) – A list or dictionary specifying which of the input qubits are mapped to the output qubits.
num_all_qubits (int) – The total number of qubits in the system.
- set_params(**params) None
Sets value of the operator hyper-parameters.
- Parameters:
params – Hyper-parameters and their values, e.g.
num_qubits=2.