generate_rb_experiments¶
-
forest.benchmarking.randomized_benchmarking.
generate_rb_experiments
(benchmarker: pyquil.api._benchmark.BenchmarkConnection, qubit_groups: Sequence[Sequence[int]], depths: Sequence[int], interleaved_gate: pyquil.quil.Program = None, random_seed: int = None) → List[forest.benchmarking.observable_estimation.ObservablesExperiment]¶ Creates list of ObservablesExperiments which, when run in series, constitute a simultaneous randomized benchmarking experiment on the disjoint qubit_groups.
The number of ObservablesExperiments returned is equal to len(depths). A particular ObservablesExperiment consists of
- a program, which is a random sequence of Clifford gates compiled down to native gates.
- If len(qubit_groups) > 1 then the program is actually the sum of len(qubit_groups) many separate random sequences; each sequence acts only on the group of qubits in a particular element of the input ‘qubit_groups’ list.
- settings; for each group within qubit_groups there will be settings which dictate that
- each qubit in that group is initialized to the |0> state and that some observable which is a tensor product of Z and I factors is measured for that group. All of these settings are initialized within the ObservablesExperiment to be run in parallel.
Specifying a interleaved_gate will generate a Clifford sequence which alternates depth many times between a random Clifford and the specified gate. The gate itself should be a Program written as a sequence of native gates implementing a Clifford element. The sequence will still contain depth many random Cliffords (excluding the interleaved gate) including the final inverting Clifford.
For standard RB see [RB]. For interleaved RB see [IRB].
[RB] Scalable and Robust Randomized Benchmarking of Quantum Processes. Magesan et al. Phys. Rev. Lett. 106, 180504 (2011). https://dx.doi.org/10.1103/PhysRevLett.106.180504 https://arxiv.org/abs/1009.3639 [IRB] Efficient measurement of quantum gate error by interleaved randomized benchmarking. Magesan et al. Phys. Rev. Lett. 109, 080505 (2012). https://dx.doi.org/10.1103/PhysRevLett.109.080505 https://arxiv.org/abs/1203.4550 Parameters: - benchmarker – object returned from get_benchmarker() used to generate clifford sequences
- qubit_groups – the disjoint groups qubits for which random sequences will be generated and merged into a series of programs each of which runs groups of disjoint sequences ‘simultaneously’.
- depths – the depth of each sequence in the experiment
- interleaved_gate – optional gate to interleave throughout the sequence, see [IRB]
- random_seed – Random seed passed to benchmarker to seed sequence generation.
Returns: a list of ObservablesExperiments which constitute a simultaneous RB or IRB experiment