quri_parts.algo.mitigation.zne.zne module#
- FoldingMethod#
Interface representing folding methods
alias of
Callable
[[NonParametricQuantumCircuit
,float
],list
[int
]]
- ZeroExtrapolationMethod#
Interface representing zero noise extrapolation methods
alias of
Callable
[[Iterable
[float
],Iterable
[float
]],float
]
- CircuitScaling#
Interface representing scaling methods of circuit
alias of
Callable
[[NonParametricQuantumCircuit
,float
,Callable
[[NonParametricQuantumCircuit
,float
],list
[int
]]],NonParametricQuantumCircuit
]
- create_folding_left()#
Returns a
FoldingMethod
that gives a list of indices of gates to be folded.Folding starts from the left of the circuit.
- Return type:
algo.mitigation.zne.zne.FoldingMethod
- create_folding_right()#
Returns a
FoldingMethod
that gives a list of indices of gates to be folded.Folding starts from the right of the circuit.
- Return type:
algo.mitigation.zne.zne.FoldingMethod
- create_folding_random(seed=None)#
Returns a
FoldingMethod
that gives a list of indices of gates to be folded.The gates to be folded are chosen at random.
- Parameters:
seed (int | None) – Seed for random number generator.
- Return type:
algo.mitigation.zne.zne.FoldingMethod
- scaling_circuit_folding(circuit, scale_factor, folding_method)#
Returns a scaled circuit. If the scale factor is odd, all gates are folded regardless of the folding method.
- Parameters:
circuit (NonParametricQuantumCircuit) – Circuit to be folded.
scale_factor (float) – Factor to scale the circuit. A real number that satisfies >= 1.
folding_method (algo.mitigation.zne.zne.FoldingMethod) – Folding method applied to the circuit as a
FoldingMethod
.
- Return type:
- create_polynomial_extrapolate(order)#
Returns a
ZeroExtrapolationMethod
that gives a zero-noise extrapolated value which is evaluated by using the polynomial fitting.- Parameters:
order (int) – Order of the polynomial used for fitting.
- Return type:
algo.mitigation.zne.zne.ZeroExtrapolationMethod
- create_exp_extrapolate(order)#
Returns a
ZeroExtrapolationMethod
that gives a zero-noise extrapolated value which is evaluated by using the curve fitting and exponential ansatz f(x) = a + b exp(p(x)), where p(x) is a polynomial of a given order.- Parameters:
order (int) – Order of the polynomial on the exponential used for fitting.
- Return type:
algo.mitigation.zne.zne.ZeroExtrapolationMethod
- create_exp_extrapolate_with_const(order, constant)#
Returns a
ZeroExtrapolationMethod
that gives a zero-noise extrapolated value which is evaluated by using the curve fitting and exponential ansatz f(x) = constant + b exp(p(x)), where p(x) is a polynomial of a given order and constant is a known parameter (obtained as the infinite-noise limit f(x->inf)).- Parameters:
order (int) – Order of the polynomial on the exponential used for fitting.
constant (float) – An infinite-noise limit parameter f(x->inf).
- Return type:
algo.mitigation.zne.zne.ZeroExtrapolationMethod
- create_exp_extrapolate_with_const_log(order, constant)#
Returns a
ZeroExtrapolationMethod
that gives a zero-noise extrapolated value which is evaluated by using the log fitting and exponential ansatz f(x) = constant + b exp(p(x)), where p(x) is a polynomial of a given order and constant is a known parameter (obtained as the infinite-noise limit f(x->inf)).- Parameters:
order (int) – Order of the polynomial on the exponential used for fitting.
constant (float) – An infinite-noise limit parameter f(x->inf).
- Return type:
algo.mitigation.zne.zne.ZeroExtrapolationMethod
- zne(obs, circuit, estimator, scale_factors, extrapolate_method, folding_method)#
Returns an error-mitigated expectation value of an observable by using zero-noise extrapolation (zne).
- Parameters:
obs (Estimatable) – Observable for which the expected value is calculated.
circuit (NonParametricQuantumCircuit) – Circuit that ZNE is applied to.
estimator (ConcurrentQuantumEstimator[GeneralCircuitQuantumState]) – An estimator that computes the expectation value from obs and circuit.
scale_factors (Iterable[float]) – Factor to scale the circuit. An real number that satisfies >= 1.
extrapolate_method (ZeroExtrapolationMethod) –
ZeroExtrapolationMethod
that determine the method of extrapolation.folding_method (FoldingMethod) –
FoldingMethod
that determines the method of folding.
- Return type:
float
- richardson_extrapolation(obs, circuit, estimator, scale_factors, folding_method)#
Returns an error-mitigated expectation value of an observable by using zne.
The order of polynomial = len(list(scale_factors)) - 1.
- Parameters:
obs (Estimatable) – Observable for which the expected value is calculated.
circuit (NonParametricQuantumCircuit) – Circuit that apply zne.
estimator (ConcurrentQuantumEstimator[GeneralCircuitQuantumState]) – An estimator that computes the expectation value from obs and circuit.
scale_factors (Iterable[float]) – Factor to scale the circuit. A real number that satisfies >= 1.
folding_method (FoldingMethod) –
FoldingMethod
that determines the method of folding.
- Return type:
float
- create_zne_estimator(estimator, scale_factors, extrapolate_method, folding_method)#
Wrap the given
ConcurrentQuantumEstimator
to create aQuantumEstimator
where zero-noise mitigation is automatically applied to the result.- Parameters:
estimator (ConcurrentQuantumEstimator[GeneralCircuitQuantumState]) – An estimator that computes the expectation value from obs and circuit.
scale_factors (Iterable[float]) – Factor to scale the circuit. A real number that satisfies >= 1.
extrapolate_method (ZeroExtrapolationMethod) –
ZeroExtrapolationMethod
that determine the method of extrapolation.folding_method (FoldingMethod) –
FoldingMethod
that determines the method of folding.
- Return type:
QuantumEstimator[GeneralCircuitQuantumState]