StandardRB¶
- class StandardRB(physical_qubits, lengths, backend=None, num_samples=3, seed=None, full_sampling=False)[source]¶
An experiment to characterize the error rate of a gate set on a device.
Overview
Randomized Benchmarking (RB) is an efficient and robust method for estimating the average error rate of a set of quantum gate operations. See Qiskit Textbook for an explanation on the RB method.
A standard RB experiment generates sequences of random Cliffords such that the unitary computed by the sequences is the identity. After running the sequences on a backend, it calculates the probabilities to get back to the ground state, fits an exponentially decaying curve, and estimates the Error Per Clifford (EPC), as described in Refs. [1, 2].
Note
In 0.5.0, the default value of
optimization_level
intranspile_options
changed from0
to1
for RB experiments. That may result in shorter RB circuits hence slower decay curves than before.References
[1] Easwar Magesan, J. M. Gambetta, Joseph Emerson, Robust randomized benchmarking of quantum processes, Phys. Rev. Lett. 106, 180504 (2011), doi: 10.1103/PhysRevLett.106.180504 (open)
[2] Easwar Magesan, Jay M. Gambetta, Joseph Emerson, Characterizing Quantum Gates via Randomized Benchmarking, Phys. Rev. A 85, 042311 (2012), doi: 10.1103/PhysRevA.85.042311 (open)
Analysis class reference
Experiment options
These options can be set by the
set_experiment_options()
method.- Options
Defined in the class
StandardRB
:lengths (List[int])
Default value:None
A list of RB sequences lengths.num_samples (int)
Default value:None
Number of samples to generate for each sequence length.seed (None or int or SeedSequence or BitGenerator or Generator)
Default value:None
A seed used to initializenumpy.random.default_rng
when generating circuits. Thedefault_rng
will be initialized with this seed value everytimecircuits()
is called.full_sampling (bool)
Default value:None
If True all Cliffords are independently sampled for all lengths. If False for sample of lengths longer sequences are constructed by appending additional Clifford samples to shorter sequences.
Defined in the class
BaseExperiment
:max_circuits (Optional[int])
Default value:None
The maximum number of circuits per job when running an experiment on a backend.
Initialization
Initialize a standard randomized benchmarking experiment.
- Parameters:
physical_qubits (
Sequence
[int
]) – List of physical qubits for the experiment.lengths (
Iterable
[int
]) – A list of RB sequences lengths.backend (
Optional
[Backend
]) – The backend to run the experiment on.num_samples (
int
) – Number of samples to generate for each sequence length.seed (
Union
[int
,SeedSequence
,BitGenerator
,Generator
,None
]) – Optional, seed used to initializenumpy.random.default_rng
. when generating circuits. Thedefault_rng
will be initialized with this seed value everytimecircuits()
is called.full_sampling (
Optional
[bool
]) – If True all Cliffords are independently sampled for all lengths. If False for sample of lengths longer sequences are constructed by appending additional samples to shorter sequences. The default is False.
- Raises:
QiskitError – If any invalid argument is supplied.
Attributes
Return the analysis instance for the experiment
Return the backend for the experiment
Return the options for the experiment.
Return experiment type.
Return the number of qubits for the experiment.
Return the device qubits for the experiment.
Return options values for the experiment
run()
method.Return the transpiler options for the
run()
method.Methods
Return a list of RB circuits.
Return the config dataclass for this experiment
Return a copy of the experiment
StandardRB.enable_restless
([rep_delay, ...])Enables a restless experiment by setting the restless run options and the restless data processor.
StandardRB.from_config
(config)Initialize an experiment from experiment config
StandardRB.run
([backend, analysis, timeout])Run an experiment and perform analysis.
StandardRB.set_experiment_options
(**fields)Set the experiment options.
StandardRB.set_run_options
(**fields)Set options values for the experiment
run()
method.StandardRB.set_transpile_options
(**fields)Set the transpiler options for
run()
method.