MagicRounding¶
- class MagicRounding(sampler, basis_sampling='uniform', seed=None, pass_manager=None)[source]¶
Bases:
RoundingSchemeMagic rounding scheme that measures in magic bases, and then uses the measurement results to round the solution. Since the magic rounding is based on the measurement results, it requires a quantum backend, which can be either hardware or a simulator.
The details are described in https://arxiv.org/abs/2111.03167.
- Parameters:
sampler (BaseSamplerV1 | BaseSamplerV2) – Sampler to use for sampling the magic bases.
basis_sampling (str) – Method to use for sampling the magic bases. Must be either
"uniform"(default) or"weighted"."uniform"samples all magic bases uniformly, and is the method described in https://arxiv.org/abs/2111.03167."weighted"attempts to choose bases strategically using the Pauli expectation values from the minimum eigensolver. However, the approximation bounds given in https://arxiv.org/abs/2111.03167 apply only to"uniform"sampling.seed (int | None) – Seed for random number generator, which is used to sample the magic bases.
pass_manager (BasePassManager | None) – Pass manager to transpile the circuits
- Raises:
ValueError – If
basis_samplingis not"uniform"or"weighted".ValueError – If the sampler is not configured with a number of shots.
Attributes
- basis_sampling¶
Basis sampling method (either
"uniform"or"weighted").
- sampler¶
Returns the Sampler used to sample the magic bases.
Methods
- round(rounding_context)[source]¶
Perform magic rounding using the given RoundingContext.
- Parameters:
rounding_context (RoundingContext) – The context containing the information needed for the rounding.
- Returns:
The results of the magic rounding process.
- Return type:
- Raises:
ValueError – If the rounding context has no circuits.
ValueError – If the rounding context has no expectation values for magic rounding with the weighted sampling.
QiskitOptimizationError – If the magic rounding did not return the expected number of shots.
QiskitOptimizationError – If the magic rounding did not return the expected number of bases.