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.
InterleavedRB¶
- class InterleavedRB(interleaved_element, physical_qubits, lengths, backend=None, num_samples=3, seed=None, full_sampling=False, circuit_order='RIRIRI')[source]¶
An experiment to characterize the error rate of a specific gate on a device.
Overview
Interleaved Randomized Benchmarking (RB) is a method to estimate the average error-rate of a certain quantum gate.
An interleaved RB experiment generates a standard RB sequences of random Cliffords and another sequence with the interleaved given gate. After running the two sequences on a backend, it calculates the probabilities to get back to the ground state, fits the two exponentially decaying curves, and estimates the interleaved gate error. See Ref. [1] for details.
References
[1] Easwar Magesan, Jay M. Gambetta, B. R. Johnson, Colm A. Ryan, Jerry M. Chow, Seth T. Merkel, Marcus P. da Silva, George A. Keefe, Mary B. Rothwell, Thomas A. Ohki, Mark B. Ketchen, M. Steffen, Efficient measurement of quantum gate error by interleaved randomized benchmarking, Phys. Rev. Lett. 109, 080505 (2012), doi: 10.1103/PhysRevLett.109.080505 (open)
Analysis class reference
Experiment options
These options can be set by the
set_experiment_options()
method.- Options
Defined in the class
InterleavedRB
:circuit_order (str)
Default value:"RIRIRI"
How to order the reference and the interleaved circuits."RIRIRI"
(alternate a reference and an interleaved circuit) or"RRRIII"
(push all reference circuits first, then all interleaved ones).
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.
See also
Initialization
Initialize an interleaved randomized benchmarking experiment.
- Parameters:
interleaved_element (
Union
[QuantumCircuit
,Gate
,Delay
,Clifford
]) – The element to interleave, given either as a Clifford element, gate, delay or circuit. If the element contains any non-basis gates, it will be transpiled withtranspiled_options
of this experiment. If it is/contains a delay, its duration and unit must comply with the timing constraints of thebackend
(BackendTiming
is useful to obtain valid delays). Parameterized circuits/instructions are not allowed.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 (
bool
) – 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.circuit_order (
str
) – How to order the reference and the interleaved circuits."RIRIRI"
(default) - Alternate a reference and an interleaved circuit. Or"RRRIII"
- Push all reference circuits first, then all interleaved ones.
- Raises:
QiskitError – When interleaved_element has different number of qubits from the physical_qubits argument.
QiskitError – When interleaved_element is not convertible to Clifford object.
QiskitError – When interleaved_element has an invalid delay (e.g. violating the timing constraints of the backend).
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
InterleavedRB.enable_restless
([rep_delay, ...])Enables a restless experiment by setting the restless run options and the restless data processor.
InterleavedRB.from_config
(config)Initialize an experiment from experiment config
InterleavedRB.run
([backend, analysis, timeout])Run an experiment and perform analysis.
InterleavedRB.set_experiment_options
(**fields)Set the experiment options.
InterleavedRB.set_run_options
(**fields)Set options values for the experiment
run()
method.InterleavedRB.set_transpile_options
(**fields)Set the transpiler options for
run()
method.