qiskit.algorithms.PhaseEstimationScale¶

class
PhaseEstimationScale
(bound)[Quellcode]¶ Set and use a bound on eigenvalues of a Hermitian operator in order to ensure phases are in the desired range and to convert measured phases into eigenvectors.
The
bound
is set when constructing this class. Then the methodscale
is used to find the factor by which to scale the operator.If
bound
is equal exactly to the largest eigenvalue, and the smallest eigenvalue is minus the largest, then these two eigenvalues will not be distinguished. For example, if the Hermitian operator is the Pauli Z operator with eigenvalues \(1\) and \(1\), andbound
is \(1\), then both eigenvalues will be mapped to \(1\). This can be avoided by makingbound
a bit larger.Increasing
bound
decreases the part of the interval \([0, 1)\) that is used to map eigenvalues tophi
. However, sometimes this results in a better determination of the eigenvalues, because 1) although there are fewer discrete phases in the useful range, it may shift one of the discrete phases closer to the actual phase. And, 2) If one of the discrete phases is close to, or exactly equal to the actual phase, then artifacts (probability) in neighboring phases will be reduced. This is important because the artifacts may be larger than the probability in a phase representing another eigenvalue of interest whose corresponding eigenstate has a relatively small weight in the input state. Parameter
bound (
float
) – an upper bound on the absolute value of the eigenvalues of a Hermitian operator. (The operator is not needed here.)

__init__
(bound)[Quellcode]¶  Parameter
bound (
float
) – an upper bound on the absolute value of the eigenvalues of a Hermitian operator. (The operator is not needed here.)
Methods
__init__
(bound) type bound
float
from_pauli_sum
(pauli_sum)Create a PhaseEstimationScale from a SummedOp representing a sum of Pauli Operators.
scale_phase
(phi[, id_coefficient])Convert a phase into an eigenvalue.
scale_phases
(phases[, id_coefficient])Convert a list or dict of phases to eigenvalues.
Attributes
Return the Hamiltonian scaling factor.

classmethod
from_pauli_sum
(pauli_sum)[Quellcode]¶ Create a PhaseEstimationScale from a SummedOp representing a sum of Pauli Operators.
It is assumed that the
pauli_sum
is the sum ofPauliOp
objects. The bound on the absolute value of the eigenvalues of the sum is obtained as the sum of the absolute values of the coefficients of the terms. This is the best bound available in the generic case. APhaseEstimationScale
object is instantiated using this bound. Parameter
pauli_sum (
SummedOp
) – ASummedOp
whose terms arePauliOp
objects. Verursacht
ValueError – if
pauli_sum
is not a sum of Pauli operators. Rückgabetyp
PhaseEstimationScale
 Rückgabe
A
PhaseEstimationScale
object

property
scale
¶ Return the Hamiltonian scaling factor.
Return the scale factor by which a Hermitian operator must be multiplied so that the phase of the corresponding unitary is restricted to \([\pi, \pi]\). This factor is computed from the bound on the absolute values of the eigenvalues of the operator. The methods
scale_phase
andscale_phases
are used recover the eigenvalues corresponding the original (unscaled) Hermitian operator. Rückgabetyp
float
 Rückgabe
The scale factor.

scale_phase
(phi, id_coefficient=0.0)[Quellcode]¶ Convert a phase into an eigenvalue.
The input phase
phi
corresponds to the eigenvalue of a unitary obtained by exponentiating a scaled Hermitian operator. Recall that the phase is obtained fromphi
as \(2\pi\phi\). Furthermore, the Hermitian operator was scaled so thatphi
is restricted to \([1/2, 1/2]\), corresponding to phases in \([\pi, \pi]\). But the values of phi read from the phasereadout register are in \([0, 1)\). Any value ofphi
greater than \(1/2\) corresponds to a raw phase of minus the complement with respect to 1. After this possible shift, the phase is scaled by the inverse of the factor by which the Hermitian operator was scaled to recover the eigenvalue of the Hermitian operator. Parameter
phi (
float
) – Normalized phase in \([0, 1)\) to be converted to an eigenvalue.id_coefficient (
float
) – All eigenvalues are shifted by this value.
 Rückgabetyp
float
 Rückgabe
An eigenvalue computed from the input phase.

scale_phases
(phases, id_coefficient=0.0)[Quellcode]¶ Convert a list or dict of phases to eigenvalues.
The values in the list, or keys in the dict, are values of
phi` and are converted as described in the description of ``scale_phase
. In casephases
is a dict, the values of the dict are passed unchanged. Parameter
phases (
Union
[List
,Dict
]) – a list or dict of values ofphi
.id_coefficient (
float
) – All eigenvalues are shifted by this value.
 Rückgabetyp
Union
[Dict
,List
] Rückgabe
Eigenvalues computed from phases.