Note
This is the documentation for the current state of the development branch of Qiskit Experiments. The documentation or APIs here can change prior to being released.
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_levelintranspile_optionschanged from0to1for 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:NoneA list of RB sequences lengths.num_samples (int)
Default value:NoneNumber of samples to generate for each sequence length.seed (None or int or SeedSequence or BitGenerator or Generator)
Default value:NoneA seed used to initializenumpy.random.default_rngwhen generating circuits. Thedefault_rngwill be initialized with this seed value everytimecircuits()is called.full_sampling (bool)
Default value:NoneIf 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:NoneThe 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_rngwill 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.