# 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. 3.9e-02 (9.0e-04) 0.038643892998245, 0.0008990401343550026 ${u}$ The unitarity of the noise, that is, the average decrease in the purity of an initial state. 9.2e-01 (1.8e-03) 0.9191526021008745, 0.0018438351436839682 ${A}$ SPAM parameter of the exponential decay $Au^m$. 9.7e-01 (8.0e-03) 0.974605624004663, 0.008045087102620313

## 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. 2.1e-02 (7.6e-04) 0.020557561550105574, 0.0007617136655503758 4.0e-02 (1.0e-03) 0.03953702983037455, 0.0010205444950330317 2.2e-02 (7.2e-04) 0.022389273613436234, 0.0007224189918881885 ${u}$ The unitarity of the noise, that is, the average decrease in the purity of an initial state. 9.5e-01 (2.0e-03) 0.945743320315567, 0.0019894791732993798 9.2e-01 (2.1e-03) 0.9173217248715294, 0.002091083086697997 9.4e-01 (1.9e-03) 0.9409636431280863, 0.0018833188144406962 ${A}$ SPAM parameter of the exponential decay $Au^m$. 9.8e-01 (1.1e-02) 0.982578398782498, 0.010697896584521083 9.8e-01 (8.3e-03) 0.983695855764283, 0.008276750734998731 9.8e-01 (8.9e-03) 0.9823781487395532, 0.008917284798740528

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

Gallery generated by Sphinx-Gallery