# Extended Randomized Benchmarking (XRB)¶

This example illustrates how to generate extended randomized benchmarking (XRB) circuits and use them to estimate the probability of a stochastic error acting on the specified system(s) during a random gate. While this example uses a simulator to execute the circuits, the same procedure can be followed for hardware applications.

## Isolated XRB¶

This section illustrates how to generate XRB circuits to characterize a pair of qubits in isolation. Here, we are performing two-qubit XRB which learns the stochastic infidelity over the two-qubit Clifford gateset.

import trueq as tq

# generate XRB circuits to characterize a pair of qubits [0, 1]
# with 9 * 30 random circuits for each circuit depth [2, 4, 16]
circuits = tq.make_xrb([[0, 1]], [2, 4, 16], 30)

# initialize a noisy simulator with stochastic Pauli and overrotation

# run the circuits on the simulator to populate their results
sim.run(circuits, n_shots=1000)

# plot the exponential decay of the purities
circuits.plot.raw() # print the fit summary
circuits.fit()

True-Q formatting will not be loaded without trusting this notebook or rerunning the affected cells. Notebooks can be marked as trusted by clicking "File -> Trust Notebook".
 XRB Extended Randomized Benchmarking Cliffords (0, 1) Key: labels: (0, 1) protocol: XRB twirl: Cliffords on [(0, 1)] ${e}_{S}$ The probability of a stochastic error acting on the specified systems during a random gate. 4.0e-02 (7.7e-04) 0.03959221028443349, 0.0007686687234191399 ${u}$ The unitarity of the noise, that is, the average decrease in the purity of an initial state. 9.2e-01 (1.6e-03) 0.9172086640494292, 0.0015749022499892528 ${A}$ SPAM parameter of the exponential decay $Au^m$. 9.8e-01 (7.4e-03) 0.9770659131340907, 0.007431174940068485

## Simultaneous XRB¶

This section demonstrates how to generate XRB circuits that characterize the amount of stochastic noise while gates are applied simultaneously on a device.

# generate XRB circuits to simultaneously characterize a single qubit ,
# a pair of qubits [1, 2], and another single qubit  with 9 * 30 random circuits
# for each circuit depth [2, 4, 16]
circuits = tq.make_xrb([, [1, 2], ], [2, 4, 16], 30)

# initialize a noisy simulator with stochastic Pauli and overrotation

# run the circuits on the simulator to populate their results
sim.run(circuits, n_shots=1000)

# plot the exponential decay of the purities
circuits.plot.raw() # print the fit summary
circuits.fit()

True-Q formatting will not be loaded without trusting this notebook or rerunning the affected cells. Notebooks can be marked as trusted by clicking "File -> Trust Notebook".
 XRB Extended Randomized Benchmarking Cliffords (0,) Key: labels: (0,) protocol: XRB twirl: Cliffords on [0, (1, 2), 3] Cliffords (1, 2) Key: labels: (1, 2) protocol: XRB twirl: Cliffords on [0, (1, 2), 3] Cliffords (3,) Key: labels: (3,) protocol: XRB twirl: Cliffords on [0, (1, 2), 3] ${e}_{S}$ The probability of a stochastic error acting on the specified systems during a random gate. 1.9e-02 (7.9e-04) 0.019428892940902442, 0.0007944978016371508 3.8e-02 (8.2e-04) 0.038497290758833236, 0.0008233562680330869 1.8e-02 (7.9e-04) 0.018289478987547514, 0.0007881517705752506 ${u}$ The unitarity of the noise, that is, the average decrease in the purity of an initial state. 9.5e-01 (2.1e-03) 0.9486929279988054, 0.0020774975704196275 9.2e-01 (1.7e-03) 0.919453290536644, 0.0016888731357536197 9.5e-01 (2.1e-03) 0.951674062755388, 0.00206329836087551 ${A}$ SPAM parameter of the exponential decay $Au^m$. 9.7e-01 (9.1e-03) 0.9686470530567654, 0.009149624496366195 9.9e-01 (8.6e-03) 0.9864993529435445, 0.008595672119780564 9.6e-01 (9.8e-03) 0.9599310027085334, 0.009818712915635257

Total running time of the script: ( 0 minutes 3.900 seconds)

Gallery generated by Sphinx-Gallery