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
sim = tq.Simulator().add_stochastic_pauli(px=0.02).add_overrotation(0.04)

# 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()
XRB on [0, 1]
# 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 [0],
# a pair of qubits [1, 2], and another single qubit [3] with 9 * 30 random circuits
# for each circuit depth [2, 4, 16]
circuits = tq.make_xrb([[0], [1, 2], [3]], [2, 4, 16], 30)

# initialize a noisy simulator with stochastic Pauli and overrotation
sim = tq.Simulator().add_stochastic_pauli(px=0.02).add_overrotation(0.04)

# 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()
XRB on [0], XRB on [1, 2], XRB on [3]
# 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